2.5 KiB
Detailed Analysis Contract
First pass: project map
Before interpreting architecture, establish:
- repository revision/snapshot;
- build system and top-level build graph;
- modules and their declared dependencies;
- runtime applications/entry points;
- persistence/messaging/cache/object storage/external service adapters;
- test modules and test types;
- configuration sources and environment boundaries.
The map is evidence, not a taxonomy exercise. Do not infer module responsibilities from names alone; inspect representative source and wiring.
Bounded analysis
A bounded scope should be small enough that one run can answer all of these:
- What public/consumed surface does the scope expose?
- What does it depend on and why?
- How is it wired into a running application?
- What state/data does it read or change?
- What are its main success and failure paths?
- What tests exercise it, and what do those tests actually prove?
- What behavior/configuration is declared but not actually connected?
- What operational or build-time constraints affect it?
- Which observations could become Case/Reference/Question/Decision material later?
Code tracing
Prefer symbol/path-based traces over broad summaries. Record exact source anchors in source-index.md and analysis prose.
Where useful, trace:
- inbound request/event/command;
- DTO/contract mapping;
- application use case/port;
- domain invariants/state transitions;
- transaction boundary;
- outbound port and adapter;
- ORM/query behavior;
- cache/messaging semantics;
- error translation;
- logs/metrics/tracing;
- response/event side effect.
Tests
Do not equate a green test suite with a verified architectural claim. For each important test, state what input is exercised, which real components are replaced, and what assertion proves. When a rule is enforced by build configuration or architecture tests, identify the failure point that would catch a violation.
Git history
Use history when current code cannot explain why a boundary/decision exists or when a Case depends on an evolution sequence. A current code shape alone proves existence, not historical motivation.
Final synthesis
final/document.md is not a shortened executive summary. It is the detailed project analysis assembled from bounded documents. Preserve:
- measured/observed behavior;
- failed approaches when evidenced;
- alternatives actually considered;
- unresolved questions;
- explicit decisions;
- limitations of the analysis;
- evidence/source references.