Skip to content
Agentmart
Submit a tool

adr-author

How to write an Architecture Decision Record under docs/decisions/.

Skill by evolplus

IndexedApache-2.0★ 8
Write a review

Chalk Labs

Need help deploying adr-author?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/evolplus-adr-author

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

How to write an Architecture Decision Record under docs/decisions/. Consult when the SA needs to record a non-trivial architectural choice during architecture authoring, especially when the choice involves a third-party dependency that requires human approval.

Use cases: writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/adr-author

What's inside

Skill name
adr-author
Description
How to write an Architecture Decision Record under docs/decisions/. Consult when the SA needs to record a non-trivial architectural choice during architecture authoring, especially when the choice involves a third-party dependency that requires human approval.
License
Apache-2.0
Instructions
84 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • template.md · references/

SKILL.md (first lines)

# ADR Author

## When to use

You are the SA, drafting `docs/architecture.md` or revising it during change synchronization. You face a choice that would surprise a new engineer joining the project, or that involves a trade-off you'd want a successor to understand. Per CLAUDE.md §3.2: every non-trivial choice gets an ADR. This skill defines the format and the trigger.

## Inputs and outputs

- **Inputs:** a candidate architectural choice and the alternatives you're weighing
- **Outputs:** a numbered ADR file under `docs/decisions/`, in the format in [`references/template.md`](./references/template.md)

## When a choice is "non-trivial"

A choice deserves an ADR when at least one is true:

- It's a one-way door (hard to reverse later — pricing model, data partition strategy, primary key shape)
- It commits the team to a vendor or stack (Postgres vs DynamoDB, Stripe vs Adyen, REST vs gRPC)
- It contradicts a previous default (the team usually does X; for this feature we're doing Y)
- A reasonable engineer would assume the opposite default
- It encodes a trade-off (cost vs latency, simplicity vs flexibility, build vs buy)

If a choice is "the obvious thing the team always does," no ADR. If you can't tell, write the ADR — it's cheap.

## Third-party dependency ADRs (require human Approver)

When the ADR introduces a **third-party dependency** that has not been approved in a prior ADR for this project, the ADR gains two required fields:

- `Approver: <human name>` — the Designated Dependency Approver named in SRS header per CLAUDE.md §2. Set by the user through the Orchestrator's `NEEDS_CONTEXT` clarification flow; never set by the agent.
- `Approval-Date: <ISO-8601>` — the date the human approved the choice.

Per CLAUDE.md §10 hard rule, you must NOT write the ADR with `Status: Accepted` until the human has approved. The flow:

1. While drafting architecture, you identify a needed third-party dependency.
2. Use `.claude/skills/third-party-dependency-evaluation/SKILL.md` to evaluate options.
3. Halt and return `NEEDS_CONTEXT` to the Orchestrator with the multi-choice proposal.
4. The Orchestrator relays to the Designated Dependency Approver.
5. The Approver picks an option.
6. Resume work. Write the ADR with `Status: Accepted`, `Approver: <name>`, `Approval-Date: <date>`.

**Default-vendor ADRs** are a sub-case: when the dependency is the org-level default per `.claude/skills/solution-defaults/`, the ADR's `Approver` field cites the skill rather than naming a per-project human:

```
Approver: Org Engineering Standards (per .claude/skills/solution-defaults/)
Approval-Date: <date the default was declared — see the skill's Changelog>
```

Defaults are pre-approved at the org level; no `NEEDS_CONTEXT` is needed for the choice. See `.claude/skills/solution-defaults/` for the table of pre-approved defaults and deviation conditions.

For non-dependency ADRs (e.g., "use event sourcing for the audit log", "primary-key UUIDv7 vs ULID"), the `Approver` field is **not required**. The ADR follows the normal Proposed → Accepted path with SA + reviewers.

When a later ADR depends on the same vendor approved by a prior ADR, cite the prior ADR's approval rather than re-triggering the flow:

```
Refs: ADR-0007 (approves Stripe for payments)
```

## Procedure

1. Choose the next sequential number from `docs/decisions/`. Filenames: `0001-<kebab-title>.md`, `0002-<kebab-title>.md`, etc. Numbers are immutable; never renumber.
2. If the ADR introduces a new third-party dependency, follow the approval flow above before writing.
3. Use the template in [`references/template.md`](./references/template.md). Include `Approver:` and `Approval-Date:` if applicable.
4. Set Status to `Proposed` if the choice is still under review; `Accepted` once SA + reviewers agree (and the human Approver has confirmed for dependency ADRs).
5. Reference the ADR from the relevant section of `docs/architecture.md` (e.g., "Session storage: Postgres — see ADR-0007").
6. When a later decision supersedes this one, update *both* files: the new ADR cites `Supersedes ADR-XXXX`; the old ADR's Status changes to `Superseded by ADR-YYYY` (do not delete the old file).

## Hard rules

- Never delete an ADR. Status changes preserve history; deletion erases it.
- Never renumber an ADR. References to ADR-0007 in code comments and docs would silently rot.
- Status `Accepted` requires explicit reviewer sign-off (SA can self-accept low-stakes non-dependency ADRs; high-stakes choices need a second engineer's review).
- For third-party-dependency ADRs: `Accepted` is impossible without the `Approver` field populated. The human is the gate.
- An ADR without a `Consequences` section is incomplete — every choice has consequences, including good ones. List both.
- An ADR without `Alternatives Considered` is incomplete. If you didn't consider alternatives, you didn't make a decision; you made a default.

## References

- [`references/template.md`](./references/template.md) — copy-paste ADR template, including the Approver fields and worked examples
- CLAUDE.md §3.2 — SA exit criteria (every non-trivial choice → ADR)
- CLAUDE.md §10 — hard rule that third-party dependencies require human Approver
- `.claude/skills/solution-defaults/SKILL.md` — org-level pre-approved defaults; check before triggering the third-party-dependency-evaluation flow
- `.claude/skills/third-party-dependency-evaluation/SKILL.md` — what counts as third-party, dimensions to weigh, NEEDS_CONTEXT prompt format
- Michael Nygard's original ADR essay (external) — the format here follows his

From evolplus/talos, Apache-2.0.

More from evolplus/talos

Signals

Stars
8
Forks
0
Open issues
1
Last commit (this folder)
Jun 17, 2026 (4 months ago)
Last release
Oct 12, 2026 (19 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from evolplus

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get adr-author running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying adr-author?

CallGet help
Cite this page

adr-author skill. Agent Mart. https://agentmart.dev/skills/evolplus-adr-author (last updated 2026-10-24)