Skill v1.0.0
currentAutomated scan100/100version: "1.0.0"
name: explore description: Meta-skill for internal codebase exploration at varying depths (quick/deep/architecture) allowed-tools: [Bash, Task, Read, Glob, Grep, Write] keywords: [explore, codebase, architecture, understand, analyze, layers, call graph, brownfield]
Explore - Internal Codebase Exploration
Meta-skill for exploring an internal codebase at varying depths. READ-ONLY workflow - no code changes.
Usage
/explore <depth> [options]
Question Flow (No Arguments)
If the user types just /explore with no or partial arguments, guide them through this question flow. Use AskUserQuestion for each phase.
Phase 0: Workflow Selection
question: "How would you like to explore?"header: "Explore"options:- label: "Help me choose (Recommended)"description: "I'll ask questions to pick the right exploration depth"- label: "Quick - fast overview"description: "Chain: tldr tree → tldr structure (~1 min)"- label: "Deep - comprehensive analysis"description: "Chain: onboard → tldr → research → document (~5 min)"- label: "Architecture - layers & dependencies"description: "Chain: tldr arch → call graph → layer mapping (~3 min)"
Mapping:
- "Help me choose" → Continue to Phase 1-4 questions
- "Quick" → Set depth=quick, skip to Phase 2 (scope)
- "Deep" → Set depth=deep, skip to Phase 2 (scope)
- "Architecture" → Set depth=architecture, skip to Phase 2 (scope)
If Answer is Unclear (via "Other"):
question: "I want to understand how deep you want to explore. Did you mean..."header: "Clarify"options:- label: "Help me choose"description: "Not sure - guide me through questions"- label: "Quick - fast overview"description: "Just want to see what's here"- label: "Deep - comprehensive analysis"description: "Need thorough understanding"- label: "Neither - let me explain differently"description: "I'll describe what I need"
Phase 1: Exploration Goal
question: "What are you trying to understand?"header: "Goal"options:- label: "Get oriented in the codebase"description: "Quick overview of structure"- label: "Understand how something works"description: "Deep dive into specific area"- label: "Map the architecture"description: "Layers, dependencies, patterns"- label: "Find where something is"description: "Locate specific code/functionality"
Mapping:
- "Get oriented" → quick depth
- "Understand how" → deep depth
- "Map architecture" → architecture depth
- "Find where" → quick with --focus
Phase 2: Scope
question: "What area should I focus on?"header: "Focus"options:- label: "Entire codebase"description: "Explore everything"- label: "Specific directory or module"description: "I'll specify the path"- label: "Specific concept/feature"description: "e.g., 'authentication', 'API routes'"
If "Specific directory" or "Specific concept" → ask follow-up for the path/keyword.
Phase 3: Output Format
question: "What should I produce?"header: "Output"options:- label: "Just tell me what you find"description: "Interactive summary in chat"- label: "Create a documentation file"description: "Write to thoughts/shared/docs/"- label: "Create handoff for implementation"description: "Prepare context for coding agent"
Mapping:
- "Documentation file" → --output doc
- "Handoff for implementation" → --output handoff
Phase 4: Entry Point (Architecture only)
If architecture depth selected:
question: "Where should I start the analysis?"header: "Entry point"options:- label: "Auto-detect (main, cli, app)"description: "Find common entry points"- label: "Specific function/file"description: "I'll specify the entry point"
Summary Before Execution
Based on your answers, I'll run:**Depth:** deep**Focus:** "authentication"**Output:** handoff**Path:** src/Proceed? [Yes / Adjust settings]
Depths
| Depth | Time | What it does | |
|---|---|---|---|
quick | ~1 min | tldr-explorer only - fast structure overview | |
deep | ~5 min | onboard + tldr-explorer + research-codebase + write doc | |
architecture | ~3 min | tldr arch + call graph + layer mapping + circular dep detection |
Options
| Option | Description | Example | |
|---|---|---|---|
--focus "area" | Focus on specific area | --focus "auth", --focus "api" | |
--output handoff | Create handoff for next agent | --output handoff | |
--output doc | Create documentation file | --output doc | |
--entry "func" | Start from specific entry point | --entry "main", --entry "process_request" |
Examples
# Quick structure overview/explore quick# Deep exploration focused on auth/explore deep --focus "auth" --output doc# Architecture analysis from specific entry/explore architecture --entry "cli" --output handoff# Quick focused exploration/explore quick --focus "hooks"
Workflow Details
Quick Depth
Fast structure overview using tldr-explorer. Best for:
- Initial orientation
- Quick questions about structure
- Finding where things are
Steps:
- Run
tldr treefor file structure - Run
tldr structurefor codemaps - If
--focusprovided, runtldr searchfor targeted results - Return summary
Commands:
# 1. File treetldr tree ${PATH:-src/} --ext .py# 2. Code structuretldr structure ${PATH:-src/} --lang python# 3. Focused search (if --focus provided)tldr search "${FOCUS}" ${PATH:-src/}
Deep Depth
Comprehensive exploration with documentation output. Best for:
- First time in a codebase
- Preparing for major work
- Creating reference documentation
Steps:
- Check if onboarded (look for
.claude/cache/tldr/), if not run onboard - Run tldr-explorer for structure
- Spawn research-codebase agent for patterns
- Write findings to doc or handoff
Subprocess:
# 1. Onboard checkif [ ! -f .claude/cache/tldr/arch.json ]; then# Spawn onboard agentfi# 2. Structure analysistldr structure src/ --lang pythontldr calls src/# 3. Research patterns (via scout agent)Task: research-codebase → "Document existing patterns in ${FOCUS:-codebase}"# 4. Write output→ thoughts/shared/research/YYYY-MM-DD-explore-{focus}.md→ OR thoughts/shared/handoffs/{session}/explore-{focus}.yaml
Architecture Depth
Architecture-focused analysis with layer detection. Best for:
- Understanding system boundaries
- Preparing for refactoring
- Identifying coupling issues
Steps:
- Run
tldr archfor layer detection - Run
tldr callsfor cross-file call graph - Analyze entry/middle/leaf layers
- Detect circular dependencies
- Map architectural boundaries
Commands:
# 1. Architecture detectiontldr arch ${PATH:-src/}# Returns: entry_layer, middle_layer, leaf_layer, circular_deps# 2. Call graphtldr calls ${PATH:-src/}# Returns: edges, nodes# 3. Impact analysis from entry point (if --entry provided)tldr impact ${ENTRY} ${PATH:-src/} --depth 3
Output Structure:
layers:entry: [routes.py, cli.py, main.py] # Controllers/handlersmiddle: [services.py, auth.py] # Business logicleaf: [utils.py, helpers.py] # Utilitiescall_graph:total_edges: 142hot_paths: [process_request → validate → authorize]circular_deps:- [module_a, module_b] # A imports B, B imports Aboundaries:- name: API layerfiles: [src/api/*]calls_to: [src/services/*]
Output Formats
--output doc
Creates: thoughts/shared/research/YYYY-MM-DD-explore-{focus}.md
---date: {ISO timestamp}type: explorationdepth: {quick|deep|architecture}focus: {focus area or "full"}commit: {git hash}---# Codebase Exploration: {focus}## Summary{High-level findings}## Structure{File tree / codemaps}## Architecture{Layer analysis - for architecture depth}## Key Components{Important files and their roles}## Patterns Found{Existing patterns - for deep depth}## References-`path/to/file.py:line` - Description
--output handoff
Creates: thoughts/shared/handoffs/{session}/explore-{focus}.yaml
---type: explorationts: {ISO timestamp}depth: {quick|deep|architecture}focus: {focus area}commit: {git hash}---summary: {One-line summary of findings}structure:entry_points: [{main.py}, {cli.py}]key_modules: [{auth.py}, {routes.py}]test_coverage: [{tests/}]architecture:layers:entry: [{files}]middle: [{files}]leaf: [{files}]circular_deps: [{pairs}]findings:- {key finding with file:line}next_steps:- {Recommended action based on exploration}refs:- path: {file.py}role: {what it does}
Integration with /build
The explore skill is designed to feed into /build brownfield:
# Step 1: Explore to understand/explore architecture --output handoff# Step 2: Build with context from exploration/build brownfield --from-handoff thoughts/shared/handoffs/session/explore-full.yaml
Implementation
When user invokes /explore <depth> [options]:
Parse Arguments
depth = args[0] # quick | deep | architecturefocus = extract_option(args, "--focus")output = extract_option(args, "--output") # handoff | docentry = extract_option(args, "--entry")
Execute Based on Depth
Quick:
# Just tldr commands, no agentstldr tree ${src_dir} --ext .pytldr structure ${src_dir} --lang pythonif [ -n "$focus" ]; thentldr search "$focus" ${src_dir}fi
Deep:
# 1. Check/run onboardif [ ! -f .claude/cache/tldr/meta.json ]; then# Spawn onboard agent via Task toolfi# 2. Structuretldr structure src/ --lang python# 3. Research (spawn scout agent)# Task tool with subagent_type: "scout"# Prompt: "Research patterns in ${focus:-codebase}"# 4. Write output# → doc or handoff based on --output
Architecture:
# 1. Arch detectionarch_output=$(tldr arch ${src_dir})# 2. Call graphcalls_output=$(tldr calls ${src_dir})# 3. Impact from entry (if provided)if [ -n "$entry" ]; thenimpact_output=$(tldr impact $entry ${src_dir} --depth 3)fi# 4. Synthesize and write output
Key Principles
- READ-ONLY - This skill never modifies code
- Uses scout, not Explore - Per project rules, scout (Sonnet) over Explore (Haiku)
- Token-efficient - Uses tldr commands (95% savings over raw reads)
- Outputs to shared locations -
thoughts/shared/research/or handoff directory - Entry point to /build - Exploration handoffs feed into brownfield builds
Related Skills
| Skill | When to Use | |
|---|---|---|
| tldr-explorer | Direct tldr commands (used internally by explore) | |
| tldr-code | Specific analysis commands (cfg, dfg, slice) | |
| onboard | First-time project setup (used by deep depth) | |
| research-codebase | Pattern documentation (used by deep depth) | |
| create_handoff | Handoff format (used by --output handoff) |
Troubleshooting
tldr not found:
# Check if installedwhich tldr# Install if missinguv tool install llm-tldr# or: pip install llm-tldr
No Python files found:
# Check language, adjust --langtldr structure src/ --lang typescript # or go, rust
Empty architecture output:
# May need to specify src directorytldr arch ./ # Current directorytldr arch src/ # Explicit src