Architecture Decision Records
We record significant decisions as lightweight ADRs (context → decision → consequences). An ADR is Proposed until it is accepted at a sprint review. Superseded ADRs stay in place and link to the ADR that replaces them.
| ADR | Title | Status |
|---|---|---|
| 0001 | TypeScript pnpm monorepo, Node 22+/24 LTS | Accepted |
| 0002 | TypeScript analysis engine (TS 6 API, syntactic + resolveModuleName) | Accepted |
| 0003 | Local intelligence store (JSON store, SQLite deferred) | Accepted (amended) |
| 0004 | Deterministic, local-first core; AI optional | Accepted |
| 0005 | Capability-declared adapters, never emulate | Accepted |
| 0006 | Contracts first, in shared during Sprint 0 | Accepted |
| 0007 | Name, license and distribution | Accepted (1.0.0) |
| 0008 | Observed execution may rule out tests, except in SAFE mode | Accepted (0.5.0) |
| 0009 | Validated result cache, reported as cached | Accepted (0.8.0) |
| 0010 | Plugin SDK v1 and edge providers | Accepted (1.0.0) |
Boundaries from ADR-0004 are enforced by pnpm check:boundaries (scripts/check-boundaries.mjs).
Template: copy template.md.