Write an architecture decision record
Writes an architecture decision record that states one decision, the forces behind it, the options weighed and the honest consequences. Use when a significant technical choice is made or proposed.
An architecture decision record (ADR) captures one architecturally significant decision so that someone joining the team in two years can see what was decided, why, and what it cost. Its value is honesty about the forces and the consequences. An ADR that lists only upsides, or quotes a benchmark nobody ran, is worse than no ADR, because readers trust it.
Write an ADR for this decision: Only if [CONTEXT] is given: Context and constraints: Only if [OPTIONS] is given: Options considered:
- If you can read the repository, look for existing ADRs (for example
docs/adr/,doc/adr/,docs/decisions/,adr/). If you find any, copy their layout, numbering and tone, and use the next free number. Otherwise use the layout in the output format below. - Extract the decision drivers: the requirements, constraints and quality attributes that actually push the choice (for example latency, cost, team skills, deadline, compliance, existing systems). Use only drivers present in the input or the code.
- List the options. Include "keep the current approach" when it is a real option. For each option, give pros and cons measured against the drivers, not generic ones.
- State the decision in one active sentence ("We will …") and say why it wins on the drivers.
- Write the consequences: what becomes easier, what becomes harder, new risks, follow-up work, and the signal that should make the team revisit this decision.
- Record the status as . If the input does not support a decision yet, record it as proposed and list what is missing under Open questions.
- One decision per ADR. If the input bundles several, write the main one and list the others under Open questions as candidates for their own ADRs.
- Never invent facts: no made-up benchmarks, prices, dates, names, quotes or product limits. Where a number would matter and none was given, write
TODO: measure …with what to measure. - Every option, including the chosen one, gets at least one real downside.
- Keep it readable in five minutes: about 300 to 800 words.
- Plain language. Define any acronym a new team member might not know.
- Separate what you verified from what you inferred. Mark inferences as such.
- When you do not know, say "I don't know" once and state what would settle it.
First line: the suggested file name, NNNN-short-kebab-title.md, using the next number when you know it and NNNN when you do not.
Then the ADR in Markdown.
madr layout:
[Short title of the decision]
- Status: [status] · Date: [today if known, else TODO] · Deciders: [names given, else TODO]
Context and problem statement
Decision drivers
Considered options
Decision outcome
The chosen option and why, then a "Consequences" list of good, bad and neutral bullets.
Pros and cons of the options
One subsection per option.
Open questions
Omit when there are none.
nygard layout:
[N]. [Title]
Date line, then ## Status, ## Context, ## Decision, ## Consequences, and ## Open questions only when needed.
1 required value still a placeholder; the assistant will ask for it.
details
- kind
- Prompt: a task you run by name to get one finished thing back
- domain
- Software engineering
- category
- Architecture
- level
- Intermediate
- made for
- Software architect, Tech lead / staff engineer, Software engineer
- risk
- read-only
- version
- v1.0.0 · experimental
- reviewed
- 2026-10-02
- works in
- Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai
use in
npx @hermes-hq/hodios install write-adr --target claude-codenpx skills add hermes-hq/hodios-dist --skill write-adr -a claude-codeclaude plugin marketplace add hermes-hq/hodios-distclaude plugin install hodios-software-engineering@hodiosThe plugin brings every entry in this domain at once.
pairs well with
All of ArchitectureSoftware architect
Acts as a pragmatic software architect who designs from requirements and constraints, names trade-offs and failure modes, and keeps designs as simple as the problem allows.
software-architectCompare design options
Compares two to four technical options against the criteria that matter, weighs reversibility and risk, and recommends one. Use when a team is stuck choosing between approaches or tools.
compare-design-optionsDesign an API contract
Designs an API contract before implementation, with operations, schemas, errors, pagination, idempotency and evolution rules. Use when adding an API that other teams or clients will call.
design-api-contractReview a system design
Reviews a design document or proposal for failure modes, scaling limits, data and consistency risks and operability gaps, and returns ranked findings. Use before a design review or before building.
review-system-designWrite an engineering design doc
Writes an engineering design doc or RFC with context, goals and non-goals, options and trade-offs, the decision, risks and a rollout plan. Use before building a change that needs review or buy-in.
write-design-docAPI design track
Takes a new API from consumer needs to a resource model, a reviewed contract, error and versioning rules, and a mock with contract tests, pausing for approval between steps.
api-design-track