claude-code-dissect
Navigate and extract reusable design patterns from the Claude Code 2.1.88 source code for application in our project. It covers nine subsystems: startup/bootstrap, conversation engine, context compact
SKILL.mdclaude-code-dissect/SKILL.md
GitHubClaude Code Source Dissection
Setup
This skill requires the Claude Code source extracted from its sourcemap. To obtain it:
npm pack @anthropic-ai/claude-code→ get the tarball- Extract
cli.js.mapfrom the tarball - Run the extraction script (see
extract-sources.jsin the repo) to restore source files
The extracted source tree should live somewhere in your project. The skill will auto-discover
it by searching for restored-src/src/Tool.ts (a unique marker file).
How to use this skill
- Locate the source root: search the project for
restored-src/src/Tool.tsusing Glob. The directory containing it (minus/Tool.ts) isSOURCE_ROOT. All file paths in the reference files are relative to thisSOURCE_ROOT. - Identify the topic from the user's request
- Read the matching reference file from
references/below - Read the actual source files listed in the reference — prepend
SOURCE_ROOT/to each path - Present your findings using the output format at the bottom
Routing Table
| Topic | Reference File | Covers |
|---|---|---|
| Startup, init, bootstrap, state, session storage, git | references/bootstrap.md |
Boot sequence, global state singleton, session JSONL, git worktree |
| Conversation loop, API call, streaming, retry, messages | references/engine.md |
Query loop, streaming generator, retry strategies, message normalization |
| System prompt, CLAUDE.md, compaction, prompt cache, tokens | references/context.md |
5-level prompt assembly, summarizer agent, cache strategy, token budget |
| Tool definition, execution, schema, deferral, Bash parser | references/tools.md |
Tool interface, lazy schema, execution pipeline, ToolSearch, Bash AST |
| Permission, allow/deny, classifier, safety, rules | references/permissions.md |
10-step pipeline, rule matching, YOLO classifier, filesystem guards |
| Hooks, PreToolUse, PostToolUse, lifecycle events | references/hooks.md |
Hook definition, matching, execution, permission hooks |
| Agent, subagent, teammate, swarm, fork, multi-agent | references/agents.md |
3 spawn modes, fork cache optimization, swarm backends, file mailbox |
| Memory, MEMORY.md, extraction, session memory | references/memory.md |
3-layer memory, auto extraction, session summary, team sync |
| MCP, plugin, skill, marketplace, IDE bridge, UI, Ink | references/extensions.md |
MCP client, plugin lifecycle, skill format, IDE bridge, Ink render engine |
If the topic spans multiple areas, read the primary reference first, then follow its Neighbors section to related files.
If no topic matches, grep the source root for relevant keywords before giving up.
Output Format
Structure your response like this:
Pattern: one-line name Why it exists: 2-3 sentences on the problem it solves Data flow:
ASCII diagram showing runtime flow
Key code (from the source, simplified):
// The core abstraction, stripped to essentials
Files read: list with line numbers for critical sections How to adapt: what to keep, what to change for our project
Architecture Overview
For orientation, here's how the 9 subsystems connect:
User Input
↓
[bootstrap] → init, state singleton, session restore
↓
[engine] → query loop: message → API → stream → tool execution → continue/end
↓ ↓
[context] → prompt assembly [tools] → validate → permission → hooks → call
↓ ↓ ↓ ↓ ↓
[memory] ← compaction [agents] ←──── [permissions] ← [hooks]
↑ ↓
└──── extraction ←────── [extensions] → MCP, plugins, skills, UI
Each reference file contains: architecture knowledge, key abstractions, reading order, file table with line counts, and neighbor cross-references.