write-an-adr
Write an Architectural Decision Record (ADR) to document a significant design choice. Use when user asks to write/create/document an ADR, or to record an architectural decision.
/plugin install inspect_evalsdetails
Write an Architectural Decision Record (ADR)
An ADR captures a single architecturally significant decision and its rationale. ADRs are stored in the adr/ directory at the repo root, numbered sequentially.
Background
This workflow follows the Nygard ADR format (Status, Context, Decision, Consequences) with practical additions (Date, Rationale, Considered Options) drawn from MADR and the project's existing conventions. See:
Prerequisites
- The user describes a decision that has been made (or is being proposed)
- If the user hasn't described the decision clearly, ask clarifying questions before writing
Steps
-
Determine the next ADR number:
- List files in
adr/and find the highest existing number - Increment by 1, zero-padded to 4 digits (e.g.,
0002)
- List files in
-
Gather information from the user:
- What problem or issue motivated this decision?
- What was decided?
- What alternatives were considered (if any)?
- What are the expected consequences (positive, negative, neutral)?
- What is the current status? (default:
Proposed) - If the user has already provided this information (e.g., in a design doc, PR discussion, or prior conversation), extract it rather than asking again
-
Write the ADR at
adr/NNNN-<slug>.mdusing the template below. The slug should be a short kebab-case summary of the decision (e.g.,use-huggingface-for-assets). -
Review with the user: Show them the file path and ask if they'd like any changes before considering it done.
Template
The ADR must use the structure in assets/adr-template.md. Copy that file as the starting point, then fill in the placeholders. All sections are required unless marked optional. Write in plain, direct language — avoid jargon and filler.
Placeholder guidance
| Placeholder | What to write |
|---|---|
{TITLE} | A short noun phrase describing the decision (e.g., "Use HuggingFace Hub for Asset Hosting"). |
{STATUS} | One of: Proposed, Accepted, Rejected, Deprecated, Superseded. Default to Proposed. If superseded, add a line: Superseded by [ADR-NNNN](NNNN-slug.md). If this supersedes another, add: Supersedes [ADR-NNNN](NNNN-slug.md). |
{DATE} | YYYY-MM-DD — the date the decision was made or proposed. Use today's date unless the user specifies otherwise. |
{CONTEXT} | The problem or situation motivating this decision. Describe forces at play — technical constraints, business requirements, team preferences, prior art. Reference issues, PRs, or prior ADRs. Should be understandable by someone unfamiliar with the history. |
{OPTION_A/B} | If multiple approaches were evaluated, list them with pros/cons. Optional for straightforward decisions, recommended when the choice was non-obvious. |
{DECISION} | The change being made. State clearly and concisely. Use active voice ("We will...", "Each eval will..."). Include enough detail to understand the change without reading the full implementation. |
| Consequences | Positive: what becomes easier, better, or more reliable. Negative: what becomes harder or more complex. Neutral (optional): side effects that are neither clearly positive nor negative. |
{RATIONALE} | Optional. If the reasoning isn't fully captured by Context + Consequences, explain why this option was chosen. Especially useful when the decision is surprising or counterintuitive. |
Guidelines
- One decision per ADR. If a design doc contains multiple decisions, write separate ADRs for each.
- Keep it short. A good ADR is 1-2 pages. If Context is getting long, link to a design doc instead of duplicating it.
- Write for future readers. Someone joining the team in 6 months should understand why this decision was made.
- Immutable once accepted. Don't edit accepted ADRs to reflect new information. Instead, write a new ADR that supersedes the old one.
- Status lifecycle: Proposed → Accepted (or Rejected). Later: Deprecated or Superseded.
- Link liberally. Reference PRs, issues, design docs, and other ADRs.
- Use today's date unless the user specifies a different date for the decision.
Notes
- The
Considered OptionsandRationalesections are optional but encouraged for non-trivial decisions - The
Neutralsubsection under Consequences is optional - If the user provides a design doc or PR discussion as input, extract the decision and context from it rather than asking the user to repeat themselves
- Do not stage or commit the ADR without asking the user first
technical
- github
- UKGovernmentBEIS/inspect_evals
- stars
- 517
- license
- MIT
- contributors
- 100
- last commit
- 2026-05-29T04:29:08Z
- file
- .claude/skills/write-an-adr/SKILL.md