Skill
·
v1.0.0
·
MIT
adr-author
Write an Architecture Decision Record - capture the context, options considered, decision, and consequences so future readers understand why, not just what. Use when the user makes a significant technical choice, asks to document a decision, asks "why did we choose X", or wants to set up ADRs in a project.
elyra ›
/skills install adr-author
Record why a decision was made while the reasoning is still fresh. Code shows what was built; only the ADR shows what was rejected and why.
When to use
- A choice was just made between frameworks, storage engines, protocols, patterns, or vendors
- A decision is expensive to reverse (schema, API contract, auth model, build system)
- Someone asks "why is this built this way?" and the answer lives in one person's head
- Recurring debates re-litigate a settled decision — write it down once
Not every decision needs an ADR. Rule of thumb: would a new team member six months from now be confused or tempted to "fix" it? Then yes.
Principles
- Context over conclusion. The decision is one line; the constraints that forced it are the value.
- Honest alternatives. Each rejected option gets its real strengths stated — strawmen rot trust in the whole log.
- Immutable. An ADR is never edited into a new decision; it gets superseded by a new ADR that links back.
- Consequences include the bad ones. Every decision buys something and costs something. Name both.
Process
1. Locate or create the log
- Look for an existing convention:
docs/adr/,docs/decisions/,adr/ - If none exists, create
docs/adr/and number filesNNNN-short-title.md(e.g.0007-use-postgres-for-search.md)
2. Capture context
- What problem forced a decision? What constraints applied (deadlines, team skills, existing systems, cost, compliance)?
- Context must be true at the time of writing — it's the part that lets future readers judge whether the decision still applies
3. List the options actually considered
For each: what it is, its genuine pros, its genuine cons. Two to four options is typical. "Do nothing" is often a legitimate option.
4. State the decision and its consequences
- The decision in one or two sentences, active voice: "We will…"
- Consequences: what becomes easier, what becomes harder, what new obligations appear (ops, licensing, training)
- If known, the revisit trigger: "Reconsider if we exceed N requests/sec" / "when library X reaches 1.0"
Output format
# NNNN. <Title — short noun phrase>
**Status:** Proposed | Accepted | Superseded by NNNN
**Date:** YYYY-MM-DD
## Context
What situation and constraints forced this decision.
## Options considered
### Option A: …
Pros: … / Cons: …
### Option B: …
Pros: … / Cons: …
## Decision
We will … because …
## Consequences
- ✅ Easier: …
- ⚠️ Harder: …
- 🔁 Revisit if: …
Anti-patterns
- ❌ Writing the ADR months later from memory — the real context is gone
- ❌ Strawman alternatives listed only to be knocked down
- ❌ ADRs as design docs — keep it about the decision, not the full implementation
- ❌ Editing an old ADR when the decision changes (supersede instead)
- ❌ Status forever "Proposed" — decide, then mark it
- ❌ Consequences section that only lists upsides