Install
$ agentstack add skill-evolplus-talos-adr-author ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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:— the Designated Dependency Approver named in SRS header per CLAUDE.md §2. Set by the user through the Orchestrator'sNEEDS_CONTEXTclarification flow; never set by the agent.Approval-Date:— 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:
- While drafting architecture, you identify a needed third-party dependency.
- Use
.claude/skills/third-party-dependency-evaluation/SKILL.mdto evaluate options. - Halt and return
NEEDS_CONTEXTto the Orchestrator with the multi-choice proposal. - The Orchestrator relays to the Designated Dependency Approver.
- The Approver picks an option.
- Resume work. Write the ADR with
Status: Accepted,Approver:,Approval-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:
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
- Choose the next sequential number from
docs/decisions/. Filenames:0001-.md,0002-.md, etc. Numbers are immutable; never renumber. - If the ADR introduces a new third-party dependency, follow the approval flow above before writing.
- Use the template in [
references/template.md](./references/template.md). IncludeApprover:andApproval-Date:if applicable. - Set Status to
Proposedif the choice is still under review;Acceptedonce SA + reviewers agree (and the human Approver has confirmed for dependency ADRs). - Reference the ADR from the relevant section of
docs/architecture.md(e.g., "Session storage: Postgres — see ADR-0007"). - When a later decision supersedes this one, update both files: the new ADR cites
Supersedes ADR-XXXX; the old ADR's Status changes toSuperseded 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
Acceptedrequires 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:
Acceptedis impossible without theApproverfield populated. The human is the gate. - An ADR without a
Consequencessection is incomplete — every choice has consequences, including good ones. List both. - An ADR without
Alternatives Consideredis 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
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: evolplus
- Source: evolplus/talos
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.