Write a new Architecture Decision Record following CONSTITUTION §7, wire it into the `docs/decisions/README.md` index, and update the status lines of any ADR it supersedes. Use when a change meets an ADR trigger in AGENTS.md ("When to write an ADR"), when a human says "write an ADR for X", or when called by `implement-spec` / `draft-spec` at the point a decision is made. Edits files — it creates the ADR and the index row in the same change as the code it documents.
90
97%
Does it follow best practices?
Impact
100%
1.06xAverage score across 2 eval scenarios
Passed
No known issues
An ADR records a decision, in the same commit/branch as the change that embodies it. Use this skill when:
implement-spec, draft-spec) reaches a decision that meets an
AGENTS.md "When to write an ADR" trigger.Read the "When to write an ADR" section of AGENTS.md. Write one when the
change does any of:
Do not write one for: a bug fix with no design decision, a routine version bump, or a test that follows an established pattern. If none of the triggers fit, say so and stop — a noise ADR violates CONSTITUTION §9 ("ADRs capture decisions, not implementation notes"). When genuinely unsure, AGENTS.md says err toward writing one; the cost of an unnecessary ADR is low.
docs/decisions/README.md and ls docs/decisions/. The next number
is highest + 1, zero-padded to three digits (NNN). If two ADRs are in
flight on different branches they may collide — if your number already
exists on main, take the next free one and renumber your file.NNN-short-descriptive-title.md. The title must convey the
subject from the filename alone (CONSTITUTION §7) — 038-money-result- and-unchecked-constructors.md, not 038-domain-changes.md. kebab-case.Copy docs/decisions/000-template.md → docs/decisions/NNN-title.md and
fill it in:
# ADR NNN: Title
**Date:** YYYY-MM-DD ← today, absolute (resolve relative dates)
**Status:** Accepted
## Context
Why this decision needs to be made — the problem or situation.
## Decision
What was decided. State the chosen design as a fact, not a deliberation.
## Consequences
The trade-offs. What becomes easier or harder. Name what you gave up.Accepted when the ADR ships alongside the implementing
change (the common case). Use Proposed only when recording a decision
for review before acting on it.**Status:** line to
Superseded by [ADR NNN](NNN-title.md) (or Partially superseded by [ADR NNN](NNN-title.md) if only part is replaced).docs/decisions/README.md index table:
| [NNN](NNN-title.md) | Title | YYYY-MM-DD | Status |.sync-docs (or apply the
AGENTS.md doc-review row "ADR files … add/rename/status" by hand): fix any
ADR cross-references in AGENTS.md / README.md / the CONSTITUTION
enforcement map that this decision changes.docs(adr-NNN): <decision> (or fold it into the feature commit).README.md index row (the index is the
discovery path; a missing row is the most common staleness bug here).