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.
| ID | Title | Status | Date |
|---|---|---|---|
| 0001 | The repo profile is committed data, not a skill | accepted | 2026-08-31 |
| 0002 | The roseline gate fails open, always | accepted | 2026-08-31 |
| 0003 | One plugin version; no per-skill version | accepted | 2026-08-31 |
| 0004 | Squash-only merges: the PR title is the release commit | accepted | 2026-08-31 |
| 0005 | The lifecycle skills run hands-off; triage-backlog does not | accepted | 2026-08-31 |
| 0006 | The kit targets Claude Code only | accepted | 2026-08-31 |
| 0007 | Workers are in-process sub-agents, never claude -p | accepted | 2026-08-31 |
| 0008 | Idea-tree search | rejected | 2026-07-23 |
| 0009 | Interaction modes | rejected | 2026-07-23 |
| 0010 | Novelty search | rejected | 2026-07-23 |
| 0011 | Hook gates are recorded rather than registered decisions | accepted | 2026-08-31 |
| 0012 | Two skill naming rules: verb-object, and family-role | accepted | 2026-08-31 |
| 0013 | profile-repo and setup-repo stay a reader and a writer | proposed | 2026-09-02 |
Table of contents
- The repo profile is committed data, not a skill
- The roseline gate fails open, always
- One plugin version; no per-skill version
- Squash-only merges: the PR title is the release commit
- The lifecycle skills run hands-off; triage-backlog does not
- The kit targets Claude Code only
- Workers are in-process sub-agents, never claude -p
- Idea-tree search
- Interaction modes
- Novelty search
- Hook gates are recorded rather than registered decisions
- Two skill naming rules: verb-object, and family-role
- profile-repo and setup-repo stay a reader and a writer