adr
Writing and maintaining Architecture Decision Records (MADR-style) that are linked to the Architecture Profile — when an ADR is required, structure, statuses, supersession, and how ADRs back profile e
SKILL.md.claude/skills/adr/SKILL.md
GitHubArchitecture Decision Records
An ADR is required when
profile.ymlchanges (new module, recipe/axis change, conventions change)- a profile exception is added or extended
- a new library that shapes code structure is introduced (mediator, ORM, messaging, validation)
- a ⚠️ combination from the compatibility matrix is used
- a decision is expensive to reverse (data model ownership, public contracts, event schemas)
File & numbering
docs/adr/NNNN-kebab-title.md, four-digit sequence, never renumbered. Template: assets/adr-template.md.
Writing rules
- Context = forces with evidence, not a narrative. Numbers, constraints, incidents.
- Options ≥ 2, including the status quo. Each with consequences, not just pros/cons adjectives.
- Decision in one paragraph, active voice: "We will…".
- Consequences include what becomes harder and the enforcement (test names or review rules).
- Profile diff section contains the exact YAML change.
- Status:
proposed→accepted|rejected; latersuperseded by NNNNordeprecated. Never edit the decision of an accepted ADR — supersede it. - ≤ 2 pages. Detail goes in links.