Adr
Personal Claude Code plugin marketplace: 9 plugins for orchestration guards (workflow-model-guard), tiered deep research (deep-dive), subagent-driven development, ADRs, session retros, handoffs, and adversarial review.
npx -y skills add jasonm4130/claude-skills --skill adrAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when the user knows what they want built and says "/adr", "write an ADR for X", "decide and build X", or "ADR-driven". Turns an intent into a grounded, cited, build-ready ADR at docs/adr/YYYY-MM-DD-<slug>.md — load-bearing decisions surfaced to the human — then hands off to the subagent-driven-development loop. For exploratory "not sure what I want yet" work use brainstorming first; for visual planning use visual-plan.
SKILL.md
6.5 KB, as published. Nobody here has run it
ADR-Driven Development (front-end for adr → sdd)
Turn an intent into one grounded, cited, build-ready ADR, then hand it to the
deterministic subagent-driven-development (SDD) loop. This collapses
brainstorm → spec → writing-plans → sdd into adr → sdd for "I know what I
want, build it" work.
The arc:
intent → GROUND → ADR (you approve) → SDD loop → you ratify
Stay thin. This skill is a four-phase orchestrator — prose plus the two
embedded blocks below. The determinism lives in sdd.mjs, not here. One ADR doc,
not a multi-file apparatus. For exploratory "not sure what I want yet" work use
brainstorming first; for visual planning/recaps use visual-plan (which keeps
the visual niche — adr carries its own build-oriented template).
Phase 1 — Ground (scaled)
Read the real code and current external practice the change touches.
Default inline; escalate to a deep-dive fan-out only when the change is novel,
cross-cutting, or the user asks — a deep-dive on a one-line change is the
ceremony to avoid.
- State grounding: LSP (symbols/types/refs),
githistory, anExploreagent for breadth. - Research grounding:
context7for library docs, the cloudflare MCP for CF, adeep-divefan-out for novel/cross-cutting work or on request — current external knowledge, not ~1-year-stale training. - Record which mode was used (inline vs deep-dive fan-out) in the ADR.
Output: a grounding brief — every claim already cited — that feeds the ADR.
Phase 2 — Author the ADR
Write docs/adr/YYYY-MM-DD-<slug>.md (dated, not numbered; create docs/adr/ if
absent) using the template below.
- Citation rule (hard): a codebase claim cites a file/symbol; an external claim cites a dated source; an ungrounded claim is excluded from the ADR. This makes "not stale training" auditable.
- Success criteria must be checkable. Phrase each so the loop can verify it —
a test that must pass, a CI signal, a concrete assertion — and mark each
oracle-backed or
[checker](checker-agent-evaluable, only when no oracle exists). This block is the loop's done-oracle. - Decomposition is thin
### Task Nsubsections, placed LAST sotask-briefextracts each cleanly —{ n, title, tier, deps }-shaped, not pasted task prose.
ADR template (embed verbatim; Decomposition LAST)
# <Title>
**Status:** Proposed | Accepted | Superseded **Date:** YYYY-MM-DD
## Context <!-- grounded; every claim cites a file/symbol or dated source -->
## Decisions <!-- each load-bearing decision: options + the choice; these bind every task as global constraints -->
## Success criteria <!-- CHECKABLE; each marked oracle-backed or [checker]; this is the loop's done-oracle -->
## Consequences <!-- incl. hard-to-reverse bets / risks -->
## Grounding sources <!-- files/symbols read + external sources WITH dates -->
## Decomposition <!-- LAST section; thin `### Task N` subsections so task-brief extracts each -->
### Task 1: <title>
<2–4 lines: what to build, which files, deps, tier hint>
### Task 2: <title>
…
Phase 3 — Tiered decision gate (human-in-the-loop)
- Always-surface (blocking) set — new dependency · public-API change · schema/data-model change · architecture-shaping choice. Present each as an explicit choice the human picks before anything builds.
- Reversible decisions: record as "assuming X — override if wrong" defaults — non-blocking.
- Hard gate: nothing implements until the human approves the ADR (its decisions + criteria + decomposition).
Phase 4 — Handoff
On approval, resolve sdd.mjs by literal path — pinned to the version of
subagent-driven-development, not this plugin's own version — and invoke
the Workflow with the ADR.
Loud-fail guard: if the Decomposition has no parseable ### Task N entries,
stop and fix the ADR — do not hand off (mirrors task-brief's "task N not
found" guard). Nothing builds from an ADR the loop can't read.
Resolve the loop and invoke it:
P="$HOME/.claude/plugins/cache/jasonm4130-claude-skills/subagent-driven-development/0.7.0/workflows/sdd.mjs"
[ -f "$P" ] && echo "$P" || echo "MISSING: subagent-driven-development 0.7.0 is not installed at $P — run /plugin marketplace update jasonm4130-claude-skills, or /plugin install subagent-driven-development@jasonm4130-claude-skills if it was never installed"
If it reports MISSING, stop and tell the user to update the plugin. Do not
glob the cache for another version: superseded and rolled-back versions stay on
disk, so picking the highest cached one silently runs a loop whose args
contract this skill no longer matches.
Workflow({ scriptPath: "<resolved sdd.mjs>", args: {
adrPath: "<abs path to docs/adr/YYYY-MM-DD-<slug>.md>",
workdir: "<worktree root>",
pluginDir: "<plugin root containing workflows/ prompts/ scripts/>",
globalConstraints: "<the ADR Decisions, verbatim>",
successCriteria: "<the ADR Success criteria block, verbatim>",
mergeBase: "<git merge-base main HEAD>",
tasks: [ { n: 1, title: "...", tier: "sonnet", deps: [] }, ... ], // from the Decomposition
limits: { fixRounds: 2, escalateAttempts: 2 }
}})
pluginDir is the directory containing workflows/, prompts/, and
scripts/. The loop runs per-task implement → review → fix (model-tiered,
ponytail-lensed) — Decomposition tasks whose deps allow it run as parallel
waves with a per-wave merge gate, so mark deps honestly there — then judges
the whole branch against the ADR's Success criteria (oracle gates + a checker
agent). It converges only when oracles pass and the checker is satisfied;
merge stays human-gated in your session — the loop never merges.
Scope guard
The loop is for bounded, test-covered work. Large ambiguous brownfield → break into smaller ADRs or run manually; don't force it through one ADR.
See also
- Design spec:
docs/superpowers/specs/2026-06-27-adr-driven-development-design.md - The loop it drives:
plugins/subagent-driven-development/