Architectural Decision Records
When an ADR is warranted. All three must hold: the decision is hard to reverse, it is surprising without context, and it involved a real trade-off. A decision that fails any of the three belongs in the code or in the file it governs, not here. (Ported from mattpocock/skills,
domain-modeling/ADR-FORMAT.md, MIT.)Files are MADR 4.0:
NNNN-<kebab-title>.md, YAML frontmatter (id,title,status,date,tags, optionallinksandcode_refs), body sectionsContext and Problem Statement/Considered Options/Decision Outcome/Consequences. Keep the Decision Outcome to one paragraph. Numbering is the highest existing id + 1 —create_adrdoes this for you.Author and amend these through the
adrMCP server (create_adr,validate_adr,set_status,supersede_adr,render_index);python3 tests/adr/check-adrs.pyis CI’s structural mirror ofvalidate_adr, since a runner cannot start the server. The table below is exactly whatrender_indexemits — re-running it withpreviewOnly: falserewrites the whole file, so put this preamble back afterwards.