Record the why behind your architecture
Code shows what a system does; an Architecture Decision Record shows why it does it that way. ADRs are short, immutable documents that capture one decision and the forces behind it. Months later, when someone asks “why did we choose this database?”, the answer is a single file instead of a lost Slack thread. This builder produces ADRs in the well-known Nygard format.
How it works
The builder assembles the five canonical Nygard sections in order. The Title is prefixed with a zero-padded record number. The Status field captures the lifecycle stage (Proposed, Accepted, Deprecated, or Superseded). Context describes the technical and business forces at play. Decision states the choice in active voice (“We will use…”). Consequences lists what becomes easier and harder as a result. An optional Alternatives considered section records the rejected options so the trade-off is visible.
Each multi-line list field is rendered as Markdown bullets, and the tool suggests a conventional filename like 0007-use-event-sourcing.md so the record drops straight into a docs/adr/ directory.
Tips and example
- Write titles as short noun phrases or imperatives: “Use PostgreSQL for the orders service”, not “Database decision”.
- State the decision in active voice — “We will…” — so there is no ambiguity about what was agreed.
- Always fill in negative consequences. An ADR that lists only benefits hides the real cost of the decision.
- Never edit an Accepted ADR. If the decision changes, write a new record and mark the old one Superseded, referencing the new number.