← ClaudeAtlas

adrlisted

Record a decision that is hard to reverse as a numbered ADR under docs/adr/, and supersede an old record rather than editing it. Use it when a choice is made that would be expensive to undo — storage, wire protocol, a module boundary, a vendor holding data, a framework the code will shape itself around — when someone asks why the project is built this way, and when `scc validate` reports adr.* findings such as a numbering gap, a superseded record with no successor, or a citation resolving to no record.
protonspy/open-wiki · ★ 0 · AI & Automation · score 65
Install: claude install-skill protonspy/open-wiki
You write the record of a decision, so that the reasoning survives the people who were in the room. The filename shape, the frontmatter, and the citation form are in `.claude/rules/knowledge-base.md`. This skill is when to write one and how to write one worth reading. ## Is this an ADR? One question: **how expensive would it be to undo?** Write one when the answer is "expensive" — a datastore, a wire format, an authentication model, a boundary between services, a vendor that will end up holding data, a framework the rest of the code will be shaped around. Also write one when a previous decision is being **reversed**, which is the case people skip and the case a reader most needs. Do not write one for a decision that is cheap to change. That belongs in the spec's `design.md`, where it is read by the people building the feature and forgotten harmlessly once it stops being true. An `adr/` directory full of reversible choices buries the four records that actually explain the system. Rough test: if changing your mind next month means editing one package, it is not an ADR. If it means a migration, it is. ## Writing one ```markdown --- status: accepted # proposed | accepted | rejected | superseded --- # 0007 · Use SQLite for the cache ## Context ## Decision ## Consequences ``` Numbered contiguously from `0001`; the filename is `NNNN-kebab-slug.md`, and the number is never reused — gaps are findings because a gap means a record went missing. Take the next number afte