Learn-skills.dev explain
Deep explanation of complex code, files, or concepts. Routes to expert agents, uses structural search, generates mermaid diagrams. Triggers on: explain, deep dive, how does X work, architecture, data flow.
git clone https://github.com/NeverSight/learn-skills.dev
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/0xdarkmatter/claude-mods/explain" ~/.claude/skills/neversight-learn-skills-dev-explain && rm -rf "$T"
data/skills-md/0xdarkmatter/claude-mods/explain/SKILL.mdExplain - Deep Code Explanation
Get a comprehensive explanation of code, files, directories, or architectural concepts. Automatically routes to the most relevant expert agent and uses modern CLI tools for analysis.
Arguments
$ARGUMENTS
- File path, function name, class name, directory, or concept<target>
- Level of detail (default: normal)--depth <shallow|normal|deep|trace>
- Specific focus area--focus <arch|flow|deps|api|perf>
Architecture
/explain <target> [--depth] [--focus] | +-> Step 1: Detect & Classify Target | +- File exists? -> Read it | +- Function/class? -> ast-grep to find definition | +- Directory? -> tokei for overview | +- Concept? -> rg search codebase | +-> Step 2: Gather Context (parallel) | +- structural-search skill -> find usages | +- code-stats skill -> assess scope | +- Find related: tests, types, docs | +- Load: AGENTS.md, CLAUDE.md conventions | +-> Step 3: Route to Expert Agent | +- .ts/.tsx -> typescript-expert or react-expert | +- .py -> python-expert | +- .vue -> vue-expert | +- .sql/migrations -> postgres-expert | +- agents/skills/commands -> claude-architect | +- Default -> general-purpose | +-> Step 4: Generate Explanation | +- Structured markdown with sections | +- Mermaid diagrams (flowchart/sequence/class) | +- Related code paths as file:line refs | +- Design decisions and rationale | +-> Step 5: Integrate +- Offer to save to ARCHITECTURE.md (if significant) +- Link to /save if working on related task
Execution Steps
Step 1: Detect Target Type
# Check if target is a file test -f "$TARGET" && echo "FILE" && exit # Check if target is a directory test -d "$TARGET" && echo "DIRECTORY" && exit # Otherwise, search for it as a symbol
For files: Read directly with bat (syntax highlighted) or Read tool.
For directories: Get overview with tokei (if available):
command -v tokei >/dev/null 2>&1 && tokei "$TARGET" --compact || echo "tokei unavailable"
For symbols (function/class): Find definition with ast-grep:
# Try ast-grep first (structural) command -v ast-grep >/dev/null 2>&1 && ast-grep -p "function $TARGET" -p "class $TARGET" -p "def $TARGET" # Fallback to ripgrep rg "(?:function|class|def|const|let|var)\s+$TARGET" --type-add 'code:*.{ts,tsx,js,jsx,py,vue}' -t code
Step 2: Gather Context
Run these in parallel where possible:
Find usages (structural-search skill):
# With ast-grep ast-grep -p "$TARGET($_)" --json 2>/dev/null | head -20 # Fallback rg "$TARGET" --type-add 'code:*.{ts,tsx,js,jsx,py,vue}' -t code -l
Find related files:
# Tests fd -e test.ts -e spec.ts -e test.py -e spec.py | xargs rg -l "$TARGET" 2>/dev/null # Types/interfaces fd -e d.ts -e types.ts | xargs rg -l "$TARGET" 2>/dev/null
Load project conventions:
- Read AGENTS.md if exists
- Read CLAUDE.md if exists
- Check for framework-specific patterns
Step 3: Route to Expert Agent
Determine the best expert based on file extension and content:
| Pattern | Primary Agent | Condition |
|---|---|---|
| typescript-expert | No JSX/React imports |
| react-expert | JSX present |
, | javascript-expert | - |
| python-expert | - |
| vue-expert | - |
, | postgres-expert | - |
, , | claude-architect | Claude extensions |
, | (framework expert) | Route by file type |
| Other | general-purpose | Fallback |
Invoke via Task tool:
Task tool with subagent_type: "[detected]-expert" Prompt includes: - File content - Related files found - Project conventions - Requested depth and focus
Step 4: Generate Explanation
The expert agent produces a structured explanation:
# Explanation: [target] ## Overview [1-2 sentence summary of purpose and role in the system] ## Architecture [Mermaid diagram - choose appropriate type] ### Flowchart (for control flow) ` ` `mermaid flowchart TD A[Input] --> B{Validate} B -->|Valid| C[Process] B -->|Invalid| D[Error] C --> E[Output] ` ` ` ### Sequence (for interactions) ` ` `mermaid sequenceDiagram participant Client participant Server participant Database Client->>Server: Request Server->>Database: Query Database-->>Server: Result Server-->>Client: Response ` ` ` ### Class (for structures) ` ` `mermaid classDiagram class Component { +props: Props +state: State +render(): JSX } ` ` ` ## How It Works ### Step 1: [Phase Name] [Explanation with code references] See: `src/module.ts:42` ### Step 2: [Phase Name] [Explanation] ## Key Concepts ### [Concept 1] [Explanation] ### [Concept 2] [Explanation] ## Dependencies | Import | Purpose | |--------|---------| | `package` | [why it's used] | ## Design Decisions ### Why [decision]? [Rationale and tradeoffs considered] ## Related Code | File | Relationship | |------|--------------| | `path/to/file.ts:123` | [how it relates] | ## See Also - `/explain path/to/related` - [description] - [External docs link] - [description]
Depth Modes
| Mode | Output |
|---|---|
| Overview paragraph, key exports, no diagram |
| Full explanation with 1 diagram, main concepts (default) |
| Exhaustive: all internals, edge cases, history, multiple diagrams |
| Data flow tracing through entire system, sequence diagrams |
Shallow Example
/explain src/auth/token.ts --shallow
Output: Single paragraph + exports list.
Deep Example
/explain src/core/engine.ts --deep
Output: Full internals, algorithm analysis, performance notes, edge cases.
Trace Example
/explain handleLogin --trace
Output: Traces data flow from entry to database to response.
Focus Modes
| Mode | What It Analyzes |
|---|---|
| Module boundaries, layer separation, dependencies |
| Data flow, control flow, state changes |
| Imports, external dependencies, integrations |
| Public interface, inputs/outputs, contracts |
| Complexity, bottlenecks, optimization opportunities |
CLI Tool Integration
Commands use modern CLI tools with graceful fallbacks:
| Tool | Purpose | Fallback |
|---|---|---|
| Code statistics | Skip stats |
| Structural search | with patterns |
| Syntax highlighting | Read tool |
| Content search | Grep tool |
| File finding | Glob tool |
Check availability:
command -v tokei >/dev/null 2>&1 || echo "tokei not installed - skipping stats"
Usage Examples
# Explain a file /explain src/auth/oauth.ts # Explain a function (finds it automatically) /explain validateToken # Explain a directory /explain src/services/ # Deep dive with architecture focus /explain src/core/engine.ts --deep --focus arch # Trace data flow /explain handleUserLogin --trace # Quick overview /explain src/utils/helpers.ts --shallow # Focus on dependencies /explain package.json --focus deps
Integration
| Skill/Command | Relationship |
|---|---|
| Review after understanding |
| Generate tests for explained code |
| Save progress if working on related task |
Persistence
After significant explanations, you may be offered:
Would you like to save this explanation? 1. Append to ARCHITECTURE.md 2. Append to AGENTS.md (if conventions-related) 3. Don't save (output only)
This keeps valuable architectural knowledge in git-tracked documentation.
Notes
- Explanations are based on code analysis, not documentation
- Complex systems may need multiple
calls/explain - Use
for unfamiliar codebases--deep - Mermaid diagrams render in GitHub, GitLab, VSCode, and most markdown viewers
- Expert agents provide framework-specific insights