Decision records
Decision records capture durable architectural choices and their trade-offs. They complement release plans and GitHub issues: an active plan defines approved scope, an issue tracks implementation, and a decision record explains why a long-lived choice was made.
Each record has a status:
- Proposed: under discussion;
- Accepted: governs current development;
- Superseded: replaced by a later record;
- Rejected: considered but not adopted.
Records
- Project scope and layering
- Weights, radii, gauge, and component offsets
- Compatibility-first API evolution
- Canonical inverse namespace and separator organization
- Common tessellation result contract
- v0.8 is a cleanup-only compatibility-removal release
- Separator inverse objective contract
- Separator solver and linear-backend selection
- Certified scalar proximal solver
- Strict native construction preconditions
- Strict public input and ownership contract
- Certified periodic nearest-image geometry
- Central generator preparation and mandatory backend safety
- Two-layer separator observation and source identity
- Atomic separator active-set final state
- Severity-complete tessellation diagnostics
- Functional stabilization precedes 1.0 and later inverse families
New records should describe context, decision, consequences, alternatives, and links to the active plan and relevant issues. See the development workflow. Do not create a record for every small implementation choice.