Agent skill

Decide Adr

by genkovich in genkovich/sdd

A skill your agent uses to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code, in a chat, on a…

MITAuto-check passedDevelopment

Install Decide Adr

skills CLI
$ npx skills add genkovich/sdd --skill decide-adr -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install genkovich/sdd decide-adr --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/decide-adr .claude/skills/decide-adr && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
decide-adr
GitHub stars
171
Token cost
~2.6k tokens
SKILL.md length
1,235 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code, in a chat, on a…

  • Works in 12 steps: Locate the feature. test -d… → Worthiness check. Score the decision… → Dedup. ls docs/features//adr/*.md… → …
  • Record a post-hoc
  • SKILL.md covers Owner, Inputs, Protocol and Definition of Done, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Decide Adr is an agent skill from genkovich/sdd. Use to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code, in a chat, on a whiteboard, or one a tasks/review gate flagged as missing. Triggers on "ADR for {decision}", "adr for {slug}", "document the decision on {topic}", "lock in the decision about {X}", "MADR for {topic}", "/sdd:decide-adr {slug} {title}", "створи ADR для рішення", "задокументуй рішення", "ADR на {тему}". Confirms the decision is ADR-worthy…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Architecture decision records. The repository describes itself as: Spec-Driven Development for Claude Code: 12 atomic Socratic skills + a TDD implement engine (agent-team & dynamic-workflow modes). The licence is MIT.

When your agent uses it

  • Record a post-hoc
  • Asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code
  • On a whiteboard
  • One a tasks/review gate flagged as missing

Example prompts

  • “ADR for {decision}”
  • “adr for {slug}”
  • “document the decision on {topic}”
  • “/decide-adr”

Workflow steps

12 steps, taken from the first numbered list in SKILL.md.

  1. Locate the feature. test -d docs/features/. Missing → ask whether to proceed standalone (AskUserQuestion, phrasing per…
  2. Worthiness check. Score the decision against the blast-radius gate — ../design/references/blast-radius.md (irreversible / multi-module /…
  3. Dedup. ls docs/features//adr/*.md 2>/dev/null. An Accepted ADR on the same topic exists → don't duplicate: propose either editing it or a…
  4. Pick the number. NNNN = (count of existing adr/*.md) + 1, zero-padded to 4 digits (0001, 0002, …). Never reuse a number.
  5. Copy the template. Copy ../design/templates/adr.md → docs/features//adr/NNNN-.md. This is the canonical MADR shape, owned by design and…
  6. Context. 2–4 sentences: what forced this decision (an NFR, an incident, a constraint), and — if sad.md is absent — an explicit note that…
  7. Decision drivers. Bullets — the quality goals / constraints that pushed the choice, each traceable to a real source (spec §6 NFR, sad.md…
  8. Considered options. List all serious options (≥2 — one option is a declaration, not a decision), one line each with its trade-off. No…
  9. Decision outcome. «Chosen: » + 1–2 sentences on why it won, citing the drivers above.
  10. Consequences. Positive and Negative and Neutral — cons included, or it's rationalisation, not a record. Name what changes in the codebase…
  11. Status. Proposed while a reviewer still has to sign off; Accepted once final. Run the review flow when needed: write Proposed, fill…
  12. Close the loop. Add a row to sad.md §9 ADR index (and link from tasks/_epic.md if the ADR scopes a specific task). The ADR's own ## Links…

What it can do on your machine

Read from SKILL.md and the folder at commit 4403913. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Decide Adr loads about 2.6k tokens when it runs. Until then it costs about 220 tokens; SKILL.md has 1,235 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~220
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from genkovich/sdd at commit 4403913, republished under its MIT licence (© genkovich). 1,235 words, ~2,626 tokens.

Download SKILL.mdSave it as .claude/skills/decide-adr/SKILL.md (or your agent's skills folder).
name
decide-adr
description
Use to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code, in a chat, on a whiteboard, or one a tasks/review gate flagged as missing. Triggers on "ADR for {decision}", "adr for {slug}", "document the decision on {topic}", "lock in the decision about {X}", "MADR for {topic}", "/sdd:decide-adr {slug} {title}", "створи ADR для рішення", "задокументуй рішення", "ADR на {тему}". Confirms the decision is ADR-worthy via the blast-radius gate, picks the next 4-digit number, copies design's MADR template, and fills context / drivers / considered options / outcome / honest consequences. Supports a Proposed → Accepted review flow. Output: docs/features/{slug}/adr/NNNN-{title}.md. For decisions made live with the user, use `design` — it spawns ADRs inline (Accepted).
model
inherit
effort
high

Skill: decide-adr

The post-hoc / asynchronous ADR path (pipeline stage 8a). design spawns ADRs synchronously and Accepted while you walk it Socratically; decide-adr records a decision that missed that pass — already in code, agreed in a chat, sketched on a whiteboard, or flagged by a tasks/review gate as a contract with no ADR behind it. It can also run a Proposed → Accepted review flow when the decision still needs a reviewer's sign-off. One file = one decision; it reuses design's MADR template, so there is no second ADR format here.

It is a recording utility, not a Socratic design stage — it does not run the shared Socratic loop or critic. The two shared dependencies are question phrasing and the worthiness gate: → ../_shared/ask-style.md · ../design/references/blast-radius.md

ADR prose (context / drivers / consequences) follows artifact_language — the MADR headings and Status: values (Proposed / Accepted / …) stay English → ../_shared/artifact-language.md.

Owner

Decision author (usually the Architect or Tech Lead). A reviewer (Tech Lead, plus Security when relevant) signs off the Proposed → Accepted transition.

Inputs

  • <slug> — the feature slug, same as every earlier stage.
  • <title> — kebab-case, describes the decision, not the problem (time-sortable-ids, not id-strategy).
  • The decision itself + its alternatives — pulled from sad.md §4 Solution strategy / §9 ADR index / §11 Risks, or supplied by the user.
  • Input gate (soft). Expects docs/features/<slug>/ to exist, ideally with sad.md (decide-adr reads its §4/§9/§11 for context and drivers). If the decision is genuinely standalone — no feature folder yet — allow it, but note the missing design context in the ADR's Context section and warn the user, rather than refusing.

Protocol

  1. Locate the feature. test -d docs/features/<slug>. Missing → ask whether to proceed standalone (AskUserQuestion, phrasing per ../_shared/ask-style.md). On «yes», create docs/features/<slug>/adr/ and flag that design context is absent. sad.md present → read its §4 (strategy), §9 (existing ADR index), §11 (risks); absent → note it and source context from the user.
  2. Worthiness check. Score the decision against the blast-radius gate — ../design/references/blast-radius.md (irreversible / multi-module / has legitimate alternatives). 2-of-3 → proceed. Below the bar → tell the user it's likely inline-in-sad.md material, not an ADR, and confirm before writing one anyway.
  3. Dedup. ls docs/features/<slug>/adr/*.md 2>/dev/null. An Accepted ADR on the same topic exists → don't duplicate: propose either editing it or a new ADR that marks the old one Superseded by NNNN (and stamps the old one's status + updated_at).
  4. Pick the number. NNNN = (count of existing adr/*.md) + 1, zero-padded to 4 digits (0001, 0002, …). Never reuse a number.
  5. Copy the template. Copy ../design/templates/adr.md → docs/features/<slug>/adr/NNNN-<title>.md. This is the canonical MADR shape, owned by design and referenced here — do not invent a variant. Patch frontmatter: owner, updated_at: <today>, feature_size (from .size if present), ticket.
  6. Context. 2–4 sentences: what forced this decision (an NFR, an incident, a constraint), and — if sad.md is absent — an explicit note that there is no design document, so the context is reconstructed from the author.
  7. Decision drivers. Bullets — the quality goals / constraints that pushed the choice, each traceable to a real source (spec §6 NFR, sad.md §2 Constraints, a §1 top-3 quality goal). Don't invent drivers; they filter out pet decisions.
  8. Considered options. List all serious options (≥2 — one option is a declaration, not a decision), one line each with its trade-off. No strawman (an option an existing constraint already rules out).
  9. Decision outcome. «Chosen: <option>» + 1–2 sentences on why it won, citing the drivers above.
  10. Consequences. Positive and Negative and Neutral — cons included, or it's rationalisation, not a record. Name what changes in the codebase, ops, monitoring, onboarding. <!-- TBD --> only where a number honestly needs a spike.
  11. Status. Proposed while a reviewer still has to sign off; Accepted once final. Run the review flow when needed: write Proposed, fill reviewers, and on sign-off flip to Accepted and bump updated_at. A reader six months on must be able to tell a live plan from a settled fact.
  12. Close the loop. Add a row to sad.md §9 ADR index (and link from tasks/_epic.md if the ADR scopes a specific task). The ADR's own ## Links must point up to the spec + the relevant sad.md §N — no orphans.
  13. Structural self-check — per ../_shared/self-check.md: re-read the written ADR from disk and verify 6 items: (1) NNNN = prior adr/*.md count + 1 and is unique in the folder; (2) ≥2 options under Considered options; (3) Consequences carries at least one Negative; (4) status ∈ {Proposed, Accepted}; (5) a row for this ADR exists in sad.md §9 (when sad.md exists); (6) ## Links is non-empty. Fix + re-check ≤2 cycles; surface anything unresolved.
  14. Propose commit + handoff. adr: <slug> NNNN <title>. Then emit the stage-handoff block per ../_shared/handoff.md (utility variant) — What I did (incl. «self-check: 6/6 pass») + Review (adr/NNNN-<title>.md) + Run next: resume the gate that needed it (/sdd:tasks <slug> or /sdd:plan-tests <slug>); /clear optional.
Show full SKILL.md (453 more words)Show less

Definition of Done

  • docs/features/<slug>/adr/NNNN-<title>.md exists in design's MADR format (frontmatter + Context + Decision drivers + Considered options + Decision outcome + Consequences + Links).
  • NNNN is correct (existing count + 1, 4-digit) and the title is in decision-form (0007-time-sortable-ids.md ✓ vs 0007-id-strategy.md ✗).
  • status is explicit — Accepted (final) or Proposed (reviewer pending, reviewers filled).
  • ≥2 considered options, no strawman; Consequences carry real Negatives, not only Positives.
  • Linked both ways: a row in sad.md §9 (when sad.md exists) and the ADR's ## Links point up to spec + sad §N. A genuinely standalone ADR notes the missing design context instead.
  • Dedup ran; a same-topic prior decision is Superseded by NNNN, never silently duplicated.

Anti-patterns

  • Using this for a live decision. A choice made now with the user belongs in design (spawned inline, Accepted); decide-adr is for what missed that pass.
  • ADR without options. «We chose X» with no alternatives is a declaration. List ≥2 serious options; no strawman.
  • ADR as a changelog. «Tried it, didn't work» is a news feed, not a decision record.
  • ADR as a spec. Acceptance criteria / NFRs don't live here — an ADR is trade-off and reasoning. That detail is in spec.md / data-model / api.
  • No status. A reader six months on can't tell a current plan from an old decision.
  • Problem-form title (0007-id-strategy.md) — in the §9 index it's unclear which decision exists. Use the decision (0007-time-sortable-ids.md).
  • All-positive consequences — an honest ADR names its Negatives and Neutrals too.
  • Reinventing the template. Reuse ../design/templates/adr.md; a second ADR format fragments the genre.
  • Orphan ADR. Written but not in §9 and with no ## Links up to spec/sad — six-month archaeology can't find it.

References & template

  • ../design/templates/adr.md — the canonical MADR scaffold this skill copies and fills (owned by design; do not duplicate it here).
  • ../design/references/blast-radius.md — the 3-criteria worthiness gate (irreversible / multi-module / legitimate alternatives); same gate design runs, applied here to confirm the decision earns an ADR.
  • ../_shared/ask-style.md — phrasing for the standalone-confirm, worthiness-borderline, and Superseded questions.

Example invocation

User: «ADR for time-sortable-ids on checkout-discounts — tasks flagged a missing ADR for the id-generation choice» Skill: docs/features/checkout-discounts/ exists with sad.md → reads §4/§9/§11. Blast-radius: id strategy is irreversible (a switch later needs a backfill across every row) + multi-module (other modules read the ids) → 2-of-3, proceed. ls adr/ → 0001, 0002 exist → NNNN = 0003. Title 0003-time-sortable-ids.md (decision-form). Copies ../design/templates/adr.md. Context: the §11 risk on hot-row contention forced an explicit id choice. Drivers: spec §6 NFR (predictable ordering) + the existing capability in the stack. Options: (a) time-sortable ids generated in the app; (b) database auto-increment; (c) random ids. Outcome: «Chosen: (a)» — keeps natural ordering without a central sequence; (b) couples to one writer, (c) loses ordering. Consequences: + ordered without coordination; − slightly larger ids than auto-increment; neutral: switching later needs a backfill. Status Accepted. Adds a §9 row, fills ## Links. Commit adr: checkout-discounts 0003 time-sortable-ids.

© genkovich, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/decide-adr of genkovich/sdd.

Open the folder on GitHubat commit 4403913

Compare with similar skills

Decide Adr next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Decide Adr compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Decide Adr this skillgenkovich/sdd171—~2.6kAutomated safety check: PassMIT
PR Design DocOpenHands/OpenHands90k—~2.4kAutomated safety check: PassMIT
Cto AdvisorIbrahim-3d/orchestrator-supaconductor3814 repos~2.4kAutomated safety check: PassMIT
Architecture DecisionDonchitos/Claude-Code-Game-Studios26k—~1.7kAutomated safety check: PassMIT
Improve Codebase Architectureywwynm/EverythingDone14415 repos~1.3kAutomated safety check: PassGPL-3.0
Domain Modelingbrim-borium/spotify_sdk1665 repos~806Automated safety check: PassApache-2.0

Similar skills

  • PR Design Doc

    OpenHands/OpenHands

    For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…

    90k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Cto Advisor

    Ibrahim-3d/orchestrator-supaconductor

    Technical leadership guidance for engineering teams, architecture decisions, and technology strategy.

    381 GitHub starsUsed in 4 repos~2.4k tokens
    DevelopmentAuto-check passed
  • Architecture Decision

    Donchitos/Claude-Code-Game-Studios

    Create an ADR documenting a technical decision: context, alternatives considered, consequences.

    26k GitHub stars~1.7k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Improve Codebase Architecture

    ywwynm/EverythingDone

    Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/.

    144 GitHub starsUsed in 15 repos~1.3k tokens
    DevelopmentAuto-check passed
  • Domain Modeling

    brim-borium/spotify_sdk

    Build and sharpen a project's domain model. An agent skill from brim-borium/spotify_sdk.

    166 GitHub starsUsed in 5 repos~806 tokens
    DevelopmentAuto-check passed
  • Design Doc Mermaid

    SpillwaveSolutions/design-doc-mermaid

    Create Mermaid diagrams (flowchart, sequence, class, ER, state, C4, architecture) from text or source code.

    176 GitHub starsUsed in 1 repo~5.6k tokens
    DevelopmentAuto-check passed

More from genkovich/sdd

All 21 skills in this repo
  • Fix

    genkovich/sdd

    A skill your agent uses to fix a reported bug spec-first: reproduce it, trace the symptom to the owning feature's acceptance criteria, pin it with a failing (RED) test, apply the minimal GREEN fix…

    171 GitHub stars~2.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Implement

    genkovich/sdd

    A skill your agent uses to implement a feature from its tasks.json with test-driven development — writes a failing test first, makes it pass, refactors, gates, and commits per task.

    171 GitHub stars~2.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Interview

    genkovich/sdd

    Use BEFORE roadmap or specify to get the idea OUT OF YOUR HEAD and onto disk — a Socratic interview that surfaces hidden assumptions, names tradeoffs, exposes imprecisions and proposes fresh angles…

    171 GitHub stars~3.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Classify Size

    genkovich/sdd

    A skill your agent uses to classify a feature into XS/S/M/L/XL and write docs/features/{slug}/.size plus the pipeline route docs/features/{slug}/.route (quick|standard|full) so later skills know how…

    171 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Tasks

    genkovich/sdd

    A skill your agent uses to break a designed feature into atomic, ≤1-day tasks with a dependency graph, a per-task Definition of Done, and a machine-readable tasks.json that the implement engine…

    171 GitHub stars~4.8k tokensUpdated 1 mo ago
    Auto-check passed
  • API

    genkovich/sdd

    A skill your agent uses to derive the API contract for a feature — an OpenAPI 3.1 document at docs/features/{slug}/contracts/openapi.yaml plus a drift/sync report (and an events doc when the feature…

    171 GitHub stars~4.3k tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Decide Adr

What does Decide Adr do?

A skill your agent uses to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code, in a chat, on a…. Decide Adr is an agent skill from genkovich/sdd. Use to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code, in a chat, on a whiteboard, or one a tasks/review gate flagged as missing.

When should I use Decide Adr?

Decide Adr fits situations like: record a post-hoc; asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code; on a whiteboard; one a tasks/review gate flagged as missing.

How do I install Decide Adr in Claude Code?

Run `npx skills add genkovich/sdd --skill decide-adr -a claude-code`. Or copy the skill folder (skills/decide-adr in genkovich/sdd) into .claude/skills/decide-adr in your project. Claude Code loads it when a task matches its description.

How do I install Decide Adr in Codex?

Run `npx skills add genkovich/sdd --skill decide-adr -a codex`. Or copy the skill folder (skills/decide-adr in genkovich/sdd) into .agents/skills/decide-adr in your project. Codex loads it when a task matches its description.

Can I use Decide Adr in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add genkovich/sdd --skill decide-adr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/decide-adr, .gemini/skills/decide-adr, .github/skills/decide-adr and .opencode/skills/decide-adr in your project.

What does Decide Adr need to run?

SKILL.md names no scripts, command-line tools or credentials: Decide Adr is instructions for the agent only.

Does Decide Adr access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Decide Adr safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Decide Adr use?

Decide Adr is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Decide Adr use?

About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Decide Adr?

Skills that share tags, products or a category with Decide Adr: PR Design Doc (OpenHands/OpenHands, 90k stars), Cto Advisor (Ibrahim-3d/orchestrator-supaconductor, 381 stars), Architecture Decision (Donchitos/Claude-Code-Game-Studios, 26k stars) and Improve Codebase Architecture (ywwynm/EverythingDone, 144 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Decide Adr?

genkovich (a GitHub user) maintains it in genkovich/sdd, which has 171 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on September 5, 2026.

Source: genkovich/sdd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.