hermes

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.

context

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.

task

Write an ADR for this decision: Only if [CONTEXT] is given: Context and constraints: Only if [OPTIONS] is given: Options considered:

  1. 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.
  2. 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.
  3. 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.
  4. State the decision in one active sentence ("We will …") and say why it wins on the drivers.
  5. 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.
  6. 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.
constraints
  • 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.
output format

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

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install write-adr --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill write-adr -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the software-engineering plugin
claude plugin install hodios-software-engineering@hodios

The plugin brings every entry in this domain at once.

pairs well with

All of Architecture
PersonaArchitecture

Software 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-architect
PromptArchitecture

Compare 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-options
PromptArchitecture

Design 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-contract
PromptArchitecture

Review 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-design
PromptArchitecture

Write 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-doc
WorkflowArchitecture

API 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