Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Authors Architecture Decision Records (ADRs) that capture context, considered options with trade-offs, the chosen decision, and its consequences. Use this skill when the user wants to write, draft, document, or revise an architecture decision, an ADR, a design decision record, a technical decision log, or asks "why did we choose X" / "we need to record this decision" / "document this trade-off" for things like database choice, framework selection, API style, build vs. buy, or deprecating a compo
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 60% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -21% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 62% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 87% | 0% |
An Architecture Decision Record (ADR) is a short, immutable document that captures one architecturally significant decision: the forces at play (context), the realistic options, the option chosen, and the consequences that follow. ADRs form an append-only log so future maintainers can reconstruct why the system looks the way it does — not just what it does.
This skill produces rigorous ADRs that distinguish facts from opinions, force an honest options comparison, and make consequences (good, bad, and neutral) explicit.
Keywords: ADR, architecture decision record, design decision, technical decision log, MADR, Nygard, trade-off analysis, options matrix, decision rationale, superseded decision, build vs buy, framework selection, database choice, API style, architecture governance.
Write an ADR when the decision is architecturally significant — it is costly to reverse, affects multiple teams/components, or constrains future choices. Use the checklist in references/significance-checklist.md. If none of the criteria fire, capture it as a code comment or a ticket instead, not an ADR.
references/significance-checklist.md.If it does not qualify, tell the user and suggest a lighter-weight record.
docs/adr/ ordoc/architecture/decisions/. Number them sequentially with a zero-padded prefix: 0001-use-postgresql.md, 0002-adopt-rest-over-graphql.md. Use scripts/new_adr.py to scan the directory, compute the next number, and scaffold the file.
business drivers, technical constraints, team skills, deadlines, existing systems, non-functional requirements (performance, security, cost, operability). Separate objective facts from assumptions — label assumptions explicitly.
valid option and should appear when relevant. Reject straw-man options. For each option, describe how it works and its pros/cons against the forces from step 3.
non-functional requirements that matter most here). See the worked example in examples/database-selection.md. The matrix makes the trade-off legible; it does not replace judgment.
the rationale tied directly to the forces and the matrix. Name who decided and when.
Negative consequences are mandatory — every decision has costs. Include follow-up actions, new risks, and what becomes harder.
Proposed, Accepted, Rejected,Deprecated, Superseded by ADR-NNNN. Link related and superseded ADRs bidirectionally.
templates/adr-template.md, keep it under ~2 pages, and presentit. Remind the user that accepted ADRs are immutable — to change a decision, write a new ADR that supersedes the old one rather than editing it.
Use the canonical structure (a pragmatic blend of Nygard and MADR):
ADR-NNNN: <short imperative phrase>Compare options against weighted decision drivers, not on vibes:
team familiarity, cost, latency, vendor lock-in, time-to-market).
++, +, o, -, --, or 1-5).Document why the winning option wins even if it doesn't top every column.
See examples/database-selection.md for a complete matrix and narrative.
examples/database-selection.md shows a full ADR choosing between PostgreSQL, MongoDB, and DynamoDB for a new service — including the drivers, the scored options matrix, the decision narrative, and honest negative consequences. Use it as the quality bar.
are still remembered. ADRs written months later lose the forces.
future readers what to re-check if reality diverges.
readers see through it and lose trust in the log. List options you genuinely weighed.
you decided; it must not leak the conclusion.
Write a superseding ADR instead.
the log with reversible, local choices.
service".
Other measured skills in the registry, with their headline benchmark lift.