Deep explanation of complex code, files, or concepts. Routes to expert agents, uses structural search, generates mermaid diagrams.
Provides comprehensive code explanations with expert routing, structural analysis, and visual diagrams.
/plugin marketplace add 0xDarkMatter/claude-mods/plugin install 0xdarkmatter-claude-mods@0xDarkMatter/claude-modsGet 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
<target> - File path, function name, class name, directory, or concept--depth <shallow|normal|deep|trace> - Level of detail (default: normal)--focus <arch|flow|deps|api|perf> - Specific focus area/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 /plan --save if working on related task
# 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
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:
Determine the best expert based on file extension and content:
| Pattern | Primary Agent | Condition |
|---|---|---|
.ts | typescript-expert | No JSX/React imports |
.tsx | react-expert | JSX present |
.js, .jsx | javascript-expert | - |
.py | python-expert | - |
.vue | vue-expert | - |
.sql, migrations/* | postgres-expert | - |
agents/*.md, skills/*, commands/* | claude-architect | Claude extensions |
*.test.*, *.spec.* | (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
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]
sequenceDiagram
participant Client
participant Server
participant Database
Client->>Server: Request
Server->>Database: Query
Database-->>Server: Result
Server-->>Client: Response
classDiagram
class Component {
+props: Props
+state: State
+render(): JSX
}
[Explanation with code references]
See: src/module.ts:42
[Explanation]
[Explanation]
[Explanation]
| Import | Purpose |
|---|---|
package | [why it's used] |
[Rationale and tradeoffs considered]
| File | Relationship |
|---|---|
path/to/file.ts:123 | [how it relates] |
/explain path/to/related - [description]
## Depth Modes
| Mode | Output |
|------|--------|
| `--shallow` | Overview paragraph, key exports, no diagram |
| `--normal` | Full explanation with 1 diagram, main concepts (default) |
| `--deep` | Exhaustive: all internals, edge cases, history, multiple diagrams |
| `--trace` | Data flow tracing through entire system, sequence diagrams |
### Shallow Example
```bash
/explain src/auth/token.ts --shallow
Output: Single paragraph + exports list.
/explain src/core/engine.ts --deep
Output: Full internals, algorithm analysis, performance notes, edge cases.
/explain handleLogin --trace
Output: Traces data flow from entry to database to response.
| Mode | What It Analyzes |
|---|---|
--focus arch | Module boundaries, layer separation, dependencies |
--focus flow | Data flow, control flow, state changes |
--focus deps | Imports, external dependencies, integrations |
--focus api | Public interface, inputs/outputs, contracts |
--focus perf | Complexity, bottlenecks, optimization opportunities |
Commands use modern CLI tools with graceful fallbacks:
| Tool | Purpose | Fallback |
|---|---|---|
tokei | Code statistics | Skip stats |
ast-grep | Structural search | rg with patterns |
bat | Syntax highlighting | Read tool |
rg | Content search | Grep tool |
fd | File finding | Glob tool |
Check availability:
command -v tokei >/dev/null 2>&1 || echo "ℹ tokei not installed - skipping stats"
# 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
| Command | Relationship |
|---|---|
/review | Review after understanding |
/test | Generate tests for explained code |
/plan --save | Save progress if working on related task |
/plan | Add architectural insights to project plan |
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.
/explain calls--deep for unfamiliar codebases