Architecture Decision Records¶
We record non-trivial technical choices as ADRs in MADR format. They live in this folder, numbered sequentially, and never change status once accepted — instead, a new ADR supersedes the old one and links back.
Process¶
- Discuss the idea in an issue using the ADR proposal template.
- Run
just adr-new "<short title>"to copy0000-template.mdto the next number. - Open a PR adding only the ADR. Get review. Set status to Accepted on merge (or Rejected, if appropriate — rejected ADRs still get merged so the reasoning isn't lost).
- If the decision is later reversed, write a new ADR that supersedes the old one; update the old one's status to Superseded by ADR-NNNN.
ADRs are required before introducing application code in a new area (new module, new external dependency, new architectural pattern). Small fixes, refactors, tests, and doc-only changes do not need an ADR.