Skip to content

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

  1. Project scope and layering
  2. Weights, radii, gauge, and component offsets
  3. Compatibility-first API evolution
  4. Canonical inverse namespace and separator organization
  5. Common tessellation result contract
  6. v0.8 is a cleanup-only compatibility-removal release
  7. Separator inverse objective contract
  8. Separator solver and linear-backend selection
  9. Certified scalar proximal solver
  10. Strict native construction preconditions
  11. Strict public input and ownership contract
  12. Certified periodic nearest-image geometry
  13. Central generator preparation and mandatory backend safety
  14. Two-layer separator observation and source identity
  15. Atomic separator active-set final state
  16. Severity-complete tessellation diagnostics
  17. 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.