> Create, extract, or convert an ADR (architectural decision record) using the ADR template. Use when creating new ADRs, extracting an ADR from existing documentation, converting a document into an ADR, recording an architecture or design decision, or updating the status of an existing ADR. Does not create or update enforceable coding standards or conventions — use coding-standard for that. Does not write feature or system documentation — use project-documentation instead.
npx skills add https://github.com/testdouble/han --skill architectural-decision-record
find . -maxdepth 1 -name "CLAUDE.md" -type ffind . -maxdepth 3 -name "project-discovery.md" -type fDetermine which mode to operate in based on the user's request:
| Mode | When | Initial Status | Then |
|------|------|----------------|------|
| Creating new | Building an ADR from scratch for a new or recent decision | proposed | → Step 2 |
| Converting existing | User provides an existing document to convert into an ADR | accepted | → Step 2 |
| Updating existing | Modifying an existing ADR (status change, superseding, adding notes) | — | Read the existing ADR, → Step 3 |
## Project Discovery section for docs and ADR directories; fall back to project-discovery.md; fall back to Glob defaults (docs/, docs/adr/). Continue without any keys that remain unfound.{docs-dir}/adr/ if a docs directory was found; otherwise use docs/adr/. Run mkdir -p on the resolved directory to ensure it exists..md files in the ADR directory.auth-session-storage.md → top-level auth; auth-tokens-rotation.md → top-level auth, second-level tokens). Build a list of top-level prefixes and known second-level prefixes per top-level.auth, billing, api, worker, postgres, terraform).AskUserQuestion to clarify before writing. If the forcing function is the unclear one, surface that explicitly — "I don't see a current trigger forcing this decision; recommend deferring the ADR until {trigger}. Override?"Skip agent exploration if the user has already provided full context (converting or updating). When creating a new ADR with sparse context, launch 1-2 han-core:codebase-explorer agents to discover evidence. Use 1 agent for narrow decisions, 2 when the decision crosses multiple system areas. Explorer 1 focuses on code affected by the decision topic (current patterns, entry points, core logic). Explorer 2 focuses on existing ADRs, coding standards, and project docs (starting from the docs directory found in Step 2).
After agents complete (or if skipped), merge findings with user-provided context. Agent discovery items map to Context (current state of the codebase), Decision (why the chosen option fits), and Notes (key files table, cross-references). Merge duplicates and resolve conflicts between agents.
Skip this sub-step in update mode when only status is changing. Otherwise, launch review agents in parallel against the compiled evidence, the proposed decision, and the considered alternatives. Pass each agent the topic, the proposed decision, the alternatives, and the evidence compiled above.
han-core:software-architect when the decision is scoped to a single codebase or bounded context (module boundaries, class and interface design, abstraction points, refactoring paths). Use han-core:system-architect when the decision crosses service or bounded-context seams (integration patterns, data ownership across services, failure-domain topology, context-map relationships). If uncertain, prefer han-core:system-architect. Prompt: "Review the proposed decision against the compiled evidence. For the chosen option, identify structural or topological risks that the ADR's Consequences section should name. For each rejected alternative, identify the strongest case *for* it that the ADR's Decision section needs to rebut or concede. Return findings keyed to the ADR's Decision, Decision Drivers, and Consequences sections."Merge the three agents' findings into the Decision, Decision Drivers, and Consequences sections before writing. Where an agent raises a must-answer gap that requires user judgment, surface it with a recommended resolution rather than resolving silently.
{top-level}[-{second-level}]-{kebab-case-title}.md — a one- or two-level hierarchy prefix followed by the decision's specific title. The hierarchy must come from the taxonomy discovered in Step 2.6, never invented or hardcoded.auth, billing, api, postgres). Reuse an existing top-level prefix from Step 2.6 when one fits; only introduce a new top-level when no existing prefix applies, and prefer one that matches a subsystem, bounded context, or technology already named in CLAUDE.md or project-discovery.md.auth-tokens-…, auth-sessions-…). Reuse an existing second-level prefix from Step 2.6 when one fits. Skip the second level when the ADR is the only one (or one of a few) under its top-level.proposed for new, accepted for converted; use deprecated or superseded when updating). Date Created / Last Updated: current date and time.| File | Purpose |
|------|---------|
| path/to/file | Description |
See also Soft Deletes)superseded.See reference in the relevant section of any existing CLAUDE.md or AGENTS.md, following the pattern of existing ADR references. Place it near the feature or component the ADR describes.Read back the ADR file and confirm:
{placeholder} values remain) and template structure from template.md was followedRun the standardized readability self-check from ../../references/readability-rule.md over the ADR's prose regions only — never inside code fences, diagram bodies, or citation identifiers. This skill runs no rewrite pass, so this self-check is the fidelity guard on the output; criterion 6 is not optional. Confirm each criterion and fix any failure before presenting:
Fidelity wins: the standard governs how the content is said, never whether a required fact appears.
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
Intelligently organizes your files and folders across your computer by understanding context, finding duplicates, suggesting better structures, and automating cleanup tasks. Reduces cognitive load and keeps your digital workspace tidy without manual effort.
Generates creative domain name ideas for your project and checks availability across multiple TLDs (.com, .io, .dev, .ai, etc.). Saves hours of brainstorming and manual checking.
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Implements Manus-style file-based planning for complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when starting complex multi-step tasks, research projects, or any task requiring >5 tool calls.
Creative research ideation and exploration. Use for open-ended brainstorming sessions, exploring interdisciplinary connections, challenging assumptions, or identifying research gaps. Best for early-stage research planning when you do not have specific observations yet. For formulating testable hypotheses from data use hypothesis-generation.
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
Take testdouble/architectural-decision-record from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.