Skip to content
Flows
Build a Repo Map for Code Navigation
MCP & Tooling90-150 minutes
0/4 steps0%

Step 1 of 4

Extract symbols per file

The atom of the map is a signature, not a filename.

Prompt capsule

Build the extraction layer. Use tree-sitter (with the language grammars my repo needs) to parse each source file and extract: top-level functions and classes with full signatures, methods with signatures under their class, and export/visibility markers where the language has them. Store per-file digests: {path, language, symbols: [{kind, name, signature, line}], mtime, hash}. Skip vendored/generated directories via ignore rules. Handle parse failures gracefully (log, fall back to a names-only entry). Run extraction across the repo and spot-check 5 files: digests must match the code.

Paste into Claude · Complete implementation prompt with explicit requirements

Expected after this step

Per-file symbol digests across the repo, spot-checked.

Should not happen

  • Dumping the file tree and calling it a map - names without symbols barely orient
  • Unranked maps where the budget is spent alphabetically instead of relevantly
  • Stale maps confidently pointing at moved or deleted symbols
  • Maps so large they recreate the raw-dump problem they were meant to solve

Verify before continuing

Do not move on until every check is true. The complete button stays locked until then.

Do not continue if…

  • !Dumping the file tree and calling it a map - names without symbols barely orient
  • !Unranked maps where the budget is spent alphabetically instead of relevantly
  • !Stale maps confidently pointing at moved or deleted symbols
  • !Maps so large they recreate the raw-dump problem they were meant to solve

If the AI messes this up

Use this when the AI fakes progress or breaks the feature. It forces a real fix.

Symbols are missing for one language. Verify the tree-sitter grammar for it is installed and the query patterns cover its declaration forms - each language needs its own extraction queries.

Your notes for this step