explore — Claude Code skill: read a codebase at any depth
A skill for reading unfamiliar projects: a quick structure pass, a deep analysis, or a map of layers and dependencies. It never edits code.
npx skills add parcadei/Continuous-Claude-v3 --skill explore -a claude-codeWhat explore does
/explore is a meta-skill for internal codebase exploration. The workflow is read-only, so your files stay untouched. Three depths: quick returns a file tree and codemaps in about a minute, deep adds pattern research and writes a report in about five, architecture builds a call graph and sorts code into layers in about three.
You call it as /explore <depth> [options]. Run it bare and the skill asks what you want to understand, which area to focus on, and what to produce. Options cover --focus "area" for a specific topic, --output doc or --output handoff for a documentation file or context for the next agent, and --entry "func" to start from a named function. The deep depth leans on tldr and the research-codebase agent, so it first checks whether the project is indexed under .claude/cache/tldr/ and runs onboard if it is not.
The architecture depth looks for circular dependencies and layer boundaries. That is worth running before a big refactor: if your layers are tangled, you find out before you start pulling code apart. Reports land in thoughts/shared/research/ or thoughts/shared/handoffs/.
What it helps with
- get oriented in an unfamiliar repo on day one
- locate where a feature or function lives
- map layers and dependencies before a refactor
- spot circular dependencies between modules
- prepare context for the next coding agent
Example prompts for the agent
- /explore quick --focus "hooks"
- /explore deep --focus "auth" --output doc
- /explore architecture --entry "cli" --output handoff
How to install explore
1Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill explore -a claude-code2Manually: put the files in place
~/.claude/skills/explore/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/explore/
1Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill explore -a codex2Manually: put the files in place
.agents/skills/explore/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill explore -a cursor2Manually: put the files in place
.cursor/skills/explore/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install parcadei/Continuous-Claude-v3 explore2Manually: put the files in place
.github/skills/explore/SKILL.md1Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill explore -a gemini-cli2Platform CLI
gemini skills install https://github.com/parcadei/Continuous-Claude-v3 --path .claude/skills/exploreManually: put the files in place
.devin/skills/explore/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill explore -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about explore
How do I install explore in Claude?
Run npx skills add parcadei/Continuous-Claude-v3 --skill explore -a claude-code. The skill lands in ~/.claude/skills/explore/SKILL.md.
What does explore do?
It reads a codebase at the depth you pick: quick gives a structure overview, deep researches patterns and writes a report, architecture builds a call graph and layer map. No code is changed.
How is architecture different from deep?
architecture runs tldr arch and tldr calls to detect entry, middle and leaf layers and find circular dependencies. deep goes through onboard and the research-codebase agent and ends with a doc or a handoff file.
Source text
SKILL.md · MIT
---
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
```yaml
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"):**
```yaml
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
```yaml
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
```yaml
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
```yaml
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:
```yaml
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
```bash
# 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:**
1. Run `tldr tree` for file structure
2. Run `tldr structure` for codemaps
3. If `--focus` provided, run `tldr search` for targeted results
4. Return summary
**Commands:**
```bash
# 1. File tree
tldr tree ${PATH:-src/} --ext .py
# 2. Code structure
tldr 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:**
1. Check if onboarded (look for `.claude/cache/tldr/`), if not run onboard
2. Run tldr-explorer for structure
3. Spawn research-codebase agent for patterns
4. Write findings to doc or handoff
**Subprocess:**
```
# 1. Onboard check
if [ ! -f .claude/cache/tldr/arch.json ]; then
# Spawn onboard agent
fi
# 2. Structure analysis
tldr structure src/ --lang python
tldr 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:**
1. Run `tldr arch` for layer detection
2. Run `tldr calls` for cross-file call graph
3. Analyze entry/middle/leaf layers
4. Detect circular dependencies
5. Map architectural boundaries
**Commands:**
```bash
# 1. Architecture detection
tldr arch ${PATH:-src/}
# Returns: entry_layer, middle_layer, leaf_layer, circular_deps
# 2. Call graph
tldr calls ${PATH:-src/}
# Returns: edges, nodes
# 3. Impact analysis from entry point (if --entry provided)
tldr impact ${ENTRY} ${PATH:-src/} --depth 3
```
**Output Structure:**
```yaml
layers:
entry: [routes.py, cli.py, main.py] # Controllers/handlers
middle: [services.py, auth.py] # Business logic
leaf: [utils.py, helpers.py] # Utilities
call_graph:
total_edges: 142
hot_paths: [process_request → validate → authorize]
circular_deps:
- [module_a, module_b] # A imports B, B imports A
boundaries:
- name: API layer
files: [src/api/*]
calls_to: [src/services/*]
```
## Output Formats
### --output doc
Creates: `thoughts/shared/research/YYYY-MM-DD-explore-{focus}.md`
```markdown
---
date: {ISO timestamp}
type: exploration
depth: {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`
```yaml
---
type: exploration
ts: {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`:
```bash
# 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
```python
depth = args[0] # quick | deep | architecture
focus = extract_option(args, "--focus")
output = extract_option(args, "--output") # handoff | doc
entry = extract_option(args, "--entry")
```
### Execute Based on Depth
**Quick:**
```bash
# Just tldr commands, no agents
tldr tree ${src_dir} --ext .py
tldr structure ${src_dir} --lang python
if [ -n "$focus" ]; then
tldr search "$focus" ${src_dir}
fi
```
**Deep:**
```bash
# 1. Check/run onboard
if [ ! -f .claude/cache/tldr/meta.json ]; then
# Spawn onboard agent via Task tool
fi
# 2. Structure
tldr 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:**
```bash
# 1. Arch detection
arch_output=$(tldr arch ${src_dir})
# 2. Call graph
calls_output=$(tldr calls ${src_dir})
# 3. Impact from entry (if provided)
if [ -n "$entry" ]; then
impact_output=$(tldr impact $entry ${src_dir} --depth 3)
fi
# 4. Synthesize and write output
```
## Key Principles
1. **READ-ONLY** - This skill never modifies code
2. **Uses scout, not Explore** - Per project rules, scout (Sonnet) over Explore (Haiku)
3. **Token-efficient** - Uses tldr commands (95% savings over raw reads)
4. **Outputs to shared locations** - `thoughts/shared/research/` or handoff directory
5. **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:**
```bash
# Check if installed
which tldr
# Install if missing
uv tool install llm-tldr
# or: pip install llm-tldr
```
**No Python files found:**
```bash
# Check language, adjust --lang
tldr structure src/ --lang typescript # or go, rust
```
**Empty architecture output:**
```bash
# May need to specify src directory
tldr arch ./ # Current directory
tldr arch src/ # Explicit src
```
© parcadei · MIT · parcadei/Continuous-Claude-v3