adr-author
How to write an Architecture Decision Record under docs/decisions/.
Skill by evolplus
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.
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.
About
Use cases: writing
Reviews
Write a reviewNo 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
- 0.631score
be-framework-coding-standard
evolplus
Standardized backend implementation guidance for BE Dev using the SRS-declared Backend-Track and Backend-Framework.
SkillAFreshness: A★ 8Claude Code +9 - 0.631score
design-system-author
evolplus
How to build a Figma Foundation page (design tokens + reusable components) BEFORE drawing screens, so spacing / text sizes / button styles / element alignment…
SkillAFreshness: A★ 8Claude Code +9 - 0.628score
api-contract-author
evolplus
How to publish, freeze, and version an API contract under docs/api-contracts/.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-mode-external-source
evolplus
BA Phase 1.C ingestion mode (ingest-from-external-source).
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-post-implementation
evolplus
BA Phase 5 — post-implementation completeness verification (UI tasks).
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-design-completeness
evolplus
BA Phase 3 — post-sign-off design completeness verification.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-iteration-planning
evolplus
BA Phase 4 — iteration dispatch planning.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-mode-reverse-engineer
evolplus
BA Phase 1.E ingestion mode (reverse-engineer-from-code) — brownfield onboarding Stage 3.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
backend-logging-traceability
evolplus
Backend logging and traceability standard for BE Dev.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
codebase-inventory
evolplus
Produce the deterministic Tier-1 inventory of an existing codebase — routes/RPC/jobs, broker channels, persistent schema, external egress, deployables…
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
data-lifecycle-contracts
evolplus
How SA identifies gate fields and cross-component column-write contracts in the data model, and documents them in docs/architecture.md §6 so BE/FE Dev know…
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-mode-requirements-folder
evolplus
BA Phase 1.F ingestion mode (ingest-from-requirements-folder) — greenfield with fragmented upstream.
SkillAFreshness: A★ 8Claude Code +9
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
- Repository
- github.com/evolplus/talos
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from evolplus
- 0.631score
be-framework-coding-standard
evolplus
Standardized backend implementation guidance for BE Dev using the SRS-declared Backend-Track and Backend-Framework.
SkillAFreshness: A★ 8Claude Code +9 - 0.631score
design-system-author
evolplus
How to build a Figma Foundation page (design tokens + reusable components) BEFORE drawing screens, so spacing / text sizes / button styles / element alignment…
SkillAFreshness: A★ 8Claude Code +9 - 0.628score
api-contract-author
evolplus
How to publish, freeze, and version an API contract under docs/api-contracts/.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-mode-reverse-engineer
evolplus
BA Phase 1.E ingestion mode (reverse-engineer-from-code) — brownfield onboarding Stage 3.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-iteration-planning
evolplus
BA Phase 4 — iteration dispatch planning.
SkillAFreshness: A★ 8Claude Code +9 - 0.626score
ba-design-completeness
evolplus
BA Phase 3 — post-sign-off design completeness verification.
SkillAFreshness: A★ 8Claude Code +9
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.
Cite this page
adr-author skill. Agent Mart. https://agentmart.dev/skills/evolplus-adr-author (last updated 2026-10-24)