Decisions Registry¶
This page is the canonical list of Architecture Decision Records (ADRs) for
{{PROJECT_NAME}}. Each row corresponds to a decision with a stable D-xxx ID,
its one-line statement, and its current status.
Every decision has its own ADR page (Context / Decision / Consequences / Alternatives where meaningful / Reversibility / References), reached from the ADR column. This registry holds the canonical statement + status; the topic pages hold the reasoning — each fact has exactly one canonical home (see Records & canon).
When a decision's status changes, update its ADR and this registry row
together. New decision → next free ID, page from
docs/.templates/adr-template.md, row here, nav entry in mkdocs.yml.
Status legend: ✅ Decided · 🟡 Proposed · 🔴 Open · 🧊 Deferred/Superseded.
| ID | Decision | Status | ADR |
|---|---|---|---|
| D-001 | Documentation & decision records: the docs site is the single source of truth (strict build as a merge gate); stable typed IDs with one status legend; decisions live as ADRs + registry rows, superseded never rewritten; every record type has exactly one home | ✅ | ADR-0001 |
| D-002 | Work tracking: issues track work while docs hold truth — epics group native sub-issues (build tasks); findings are note-labelled issues, never sub-issues; notes are triaged at epic closeout; outcomes are written back as readouts |
✅ | ADR-0002 |
| D-003 | Branch model: feature branch → PR into development (the integration branch and default) → promotion PR into main; no direct pushes to the long-lived branches, no self-merges, no force-pushes or history rewrites; the bootstrap birth commit is the single sanctioned direct push |
✅ | ADR-0003 |
| D-004 | Enforcement doctrine: every process rule names its enforcer or is explicitly advisory with a reason; enforcement layers prose → hooks → CI, and every layer declares which way it fails — deny-hooks fall through when broken, approve-hooks defer and never block, server gates fail closed, bind admins (bypass = a temporary visible settings edit), and catch the deferred client tail (each deferral names its catcher, auditably); exceptions are reasoned commit trailers; exception lists are four-rule ledgers; no silent gate lanes | ✅ | ADR-0004 |
| D-005 | Testing policy: scaffolding ships binding hermetic self-tests inside make verify; test-writing is event-driven (bugfix → regression test named on the Pin: line), placement follows the project's layout; weakening a test takes a Test-Adjusted: trailer; no coverage thresholds |
✅ | ADR-0005 |
| D-006 | Verification & honesty: make verify plus exercising the change is the bar for "done"; reporting is honest — a ticked box was actually run, numbers name source and n=, capability claims state where they exist; load-bearing claims get risk-proportional adversarial verification |
✅ | ADR-0006 |
| D-007 | Binary hygiene: posture finalized at bootstrap — default strict/split (no binaries in source history; durable artifacts live outside it; LFS only where declared), wired through the single .claude/asset-dirs.txt seam so hook and CI can never disagree |
🟡 | ADR-0007 |