| title | Lightweight ADR convention |
|---|---|
| created | 2026-06-24 |
| type | convention |
| license | MIT © 2026 Yakiv Kramarenko |
A minimal Architecture Decision Record convention: record engineering/process decisions ("how we work") as one-screen ADRs an agent or a human can write and read cheaply. One file per decision:
ADR-NNN-short-title.md.Scope is engineering/process only. Product/feature decisions live with their feature (next to the feature's own docs), not here.
To add one: copy the template below, take the next number, start at
status: proposed. Propagation: a decision that changes a documented convention updates that doc in the same pass.Expanded version — a fuller home with worked example ADRs: https://github.com/automician/adrs-for-agents (MIT). This gist is the original standalone form.
Frontmatter + four sections. Minimum for a terse one-off: id + status +
date + ## Decision; in practice fill all four.
---
id: ADR-001
status: proposed # proposed | accepted | superseded | deprecated
date: 2026-06-24
tags: [docs] # grep/index aid — keep present
# supersedes: ADR-NNN # only when this replaces another
# superseded-by: ADR-NNN
---
# ADR-001: <outcome-implying title>
## Context
<situation / forces / why now.>
## Decision
<For accepted: the decision as flat prose. For proposed: open the heading or
first line with a working-hypothesis marker and the event that would verify it —
`## Decision (proposed — working hypothesis)` or
`**Proposed (working hypothesis).** Verified by <event>.` — then the question
and candidate options. Options read well as labeled `Alternative A / B / C`
bullets, each with a `Cost:` / `Risk:` line, the pick tagged `(this proposal)`.>
## Consequences
<trade-offs accepted, follow-ons, what this enables or blocks.>
## Trigger to revisit
<the event/condition that reopens this — or "never". For a proposed ADR, prefer
two gates: **Move proposed → accepted when:** … and **Move to superseded /
deprecated when:** ….>proposed— drafted and recommended (or an open decision-shaped question); awaiting a decision. This is "ready for review".accepted— the decision is ratified.superseded— replaced by a later ADR (superseded-by:); kept, never deleted — the record of the reversal is the value.deprecated— no longer applies, no direct successor.
- Number = permanent identity.
ADR-NNNis the stable handle — cite the number, never the path. Numbers are never reused (not across supersession, not to fill gaps), so files can be renamed or re-grouped later (e.g. a topic suffix once the log spans multiple areas) without breaking a reference. tagskeep the log greppable — filter by topic in search.- Refs are grep-derived, not indexed. Link related docs inline where
relevant; no maintained cross-ref index. When related docs genuinely have no
inline home, gather them in a trailing
## Connectedsection — residual only, not an index of everything. - Amend in place. When later work refines a landed ADR, add a dated bullet
in Consequences (
**Update YYYY-MM-DD:** …) leaving the original prose intact — no separate changelog. - Decision-meta stays visible. Status markers, working-hypothesis caveats,
verifying events, dated amendments are decision-bearing — keep them in body
prose. Only pure provenance/process asides go in
<!-- -->.