43 lines
1.8 KiB
Markdown
43 lines
1.8 KiB
Markdown
# Hierarchical Wave Analysis
|
||
|
||
Large codebases must be analyzed in waves — never attempt full analysis in a single session.
|
||
Each wave produces a condensed document that replaces raw context for subsequent waves.
|
||
|
||
## Wave 1 — Structure, No Code
|
||
- Read only directory structure and file names (ls, tree, glob) — do NOT open files
|
||
- Derive: rough modules, layers, top-level organization
|
||
- Output: `docs/A_discovery/structure-map.md`
|
||
- Context cost: minimal
|
||
|
||
## Wave 2 — Entry Points and Dependencies
|
||
- Read only structurally informative files: project files (.csproj, package.json, pom.xml),
|
||
main routers/controllers, DB migrations/schema files, configuration
|
||
- Do NOT read business logic yet
|
||
- Output: `docs/A_discovery/entry-points.md`
|
||
- Context loaded: structure-map.md
|
||
|
||
## Wave 3 — Module-by-Module Deep Dive
|
||
- One module = one session (or one subagent)
|
||
- Analyze ONLY the subtree for that module — ignore everything else
|
||
- Context loaded: structure-map.md + capabilities-inventory.md (current state)
|
||
- Output per module: dedicated discovery document in `docs/A_discovery/`
|
||
- After each module: update capabilities-inventory.md with new findings
|
||
|
||
## Key Principles
|
||
- Each wave produces a condensed document that replaces raw context
|
||
- Raw code (large, unstructured) → condensed docs (small, oriented) → growing inventory
|
||
- Never load the full codebase into a single session
|
||
- When dispatching parallel agents for Wave 3: each agent gets exactly one module subtree
|
||
- Track analyzed modules explicitly in task.md with checkboxes
|
||
|
||
## Wave Progression
|
||
```
|
||
Raw code (large, unstructured)
|
||
↓ Wave 1
|
||
structure-map.md (small, orienting)
|
||
↓ Wave 2
|
||
entry-points.md (small, precise)
|
||
↓ Wave 3 × N modules
|
||
domain-model.md, capabilities-inventory.md (growing, condensed)
|
||
```
|