From adr-wizard
This skill should be used when the user asks to 'supersede an ADR', 'replace an architectural decision', 'update an ADR with a new decision', 'mark an ADR as superseded', or when an existing architectural decision has changed and needs to be replaced while preserving the historical record.
How this skill is triggered — by the user, by Claude, or both
Slash command
/adr-wizard:adr-supersedeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creates a new ADR that supersedes an existing one, updates the old ADR's status, and maintains
Creates a new ADR that supersedes an existing one, updates the old ADR's status, and maintains bidirectional cross-references in both files and the directory index.
ADRs are additive only: never delete or heavily rewrite an accepted ADR. This skill exists so that the history of decisions is preserved — the old ADR remains readable, and the new ADR explains what changed and why.
Follow the same discovery procedure as adr-create (Step 1):
CLAUDE.md for any heading containing ADR Locations. Collect bullet paths into
adr_dirs, stripping inline # comments.docs/adrs, decisions, architecture/decisions.If multiple directories exist, auto-suggest the most relevant based on recent file context
(same logic as adr-create Step 2). Present the suggestion and wait for confirmation.
Use the confirmed path as target_dir.
Parse the argument (text after /adr-supersede) using this format:
<old_num>[->new_num] [new decision text or reason]
Examples:
3 Switching from PostgreSQL to CockroachDB → old=3, new ADR does not exist yet, decision text provided3->7 CockroachDB chosen to replace PostgreSQL → old=3, new=7 (ADR-0007 already exists), rationale provided3->7 → old=3, new=7 already exists, no extra textResolution:
target_dir matching NNNN-*.md.old_num from the argument. Zero-pad to 4 digits and find the matching file as
old_adr. If no argument was given, display the ADR list and ask:
Which ADR is being superseded? (enter the number)
new_num if an arrow (->) was present:
new_num is provided and the file <new_num_padded>-*.md exists, set new_adr to
that file. The new ADR already exists — skip Steps 4–6 and go directly to Step 7 to link
the two ADRs together.new_num is provided but the file does not exist, treat it as a title/number hint for
the new ADR to be created in Step 6.-> was given, the new ADR must be created (proceed through all steps).Superseding: ADR-NNNN — . Proceed? (y/n)
old_adr's current status is already Superseded by ADR-MMMM, warn:
ADR-NNNN is already superseded by ADR-MMMM. Supersede again? (y/n) Proceed only on confirmation.
The skill must understand why the old decision is being replaced and what the new decision is. Gather this from multiple sources:
/adr-supersede (beyond the ADR
number), use it as the supersession rationale.From these sources, derive:
new_adr_title: a concise title for the replacement decision.what_changed: why the original decision is being replaced (new constraints, better
alternatives, lessons learned, etc.).new_decision: what the new decision is, stated specifically and declaratively.If any of these cannot be confidently inferred, interview the user with AskUserQuestion.
Batch questions together — for example, if both the new title and rationale are needed:
I'm superseding ADR-NNNN (<old_title>). To write the replacement ADR, I need:
- What is the new decision? (e.g., "Use Redis for session storage instead of PostgreSQL")
- What changed that makes the old decision no longer appropriate?
Proceed only after all three pieces are clear.
Using the old ADR as a foundation and the supersession context from Step 4, draft all sections:
Write a paragraph explaining the situation. Start from the old ADR's Context (what was the original problem?), then explain what has changed since — new constraints, growth, incidents, technology shifts, or lessons learned that invalidate the original decision. Reference the old ADR by number.
Write the new decision clearly and declaratively. Contrast with the old decision where helpful
(e.g., "We will migrate from X to Y because..."). Include the **Supersedes:** ADR-<old_num>
cross-reference.
Write 3–7 bullet points covering:
If consequences cannot be inferred confidently, ask:
What are the key benefits of the new approach, and what migration or transition costs are anticipated?
Invoke the adr-create skill to create the new ADR. Pass it:
new_adr_title as the decision summary argumentAfter adr-create completes, it will have written the new file and updated the index. Capture
the new ADR's path and number as new_adr and next_num.
Then open the new ADR file and add the cross-reference metadata line after **Date:**:
**Supersedes:** ADR-<old_num_padded>
Save the file.
old_adr.**Status:** line. Replace its value with:
Superseded by ADR-<next_num_padded>new_adr already existed (the -> path), also add a **Superseded by:** metadata line
after **Date:** if it is not already present.<target_dir>/README.md.Status column to
Superseded by ADR-<next_num_padded>.README.md.Inform the user:
ADR-<old_num_padded> → ADR-<next_num_padded>: <new_adr_title> Updated ADR-<old_num_padded>: Status → "Superseded by ADR-<next_num_padded>" Updated index:
<target_dir>/README.mdReview the new ADR and change the Status to
Acceptedwhen finalised.
Invoke adr-check in scoped mode against the superseded ADR (the file this skill directly
modified in Step 7):
/adr-check <old_adr_path>
Display all output to the user.
adr-check returns a structural FAIL: block completion and prompt the user to resolve
the issue before proceeding:
The superseded ADR has a structural validation failure. Please fix the issue above before confirming this supersession is complete.
adr-check emits style warnings only: display them and continue. Style warnings are
informational and do not block completion.Note: the new ADR (created via adr-create in Step 6) is already validated by adr-create's
own post-write step — do not run adr-check on it again here.
npx claudepluginhub samrom3/claude-hyper-plugs --plugin adr-wizardInteractively create an architecture decision record (ADR) to document architectural decisions, technology choices, or design decisions with context, options, and consequences.
Authors, indexes, and lints Architecture Decision Records (ADRs) to preserve the rationale behind system decisions. Scaffolds new ADRs, enforces format, manages supersession, and maintains an index.
Records architectural decisions as ADRs from design documents. Use after brainstorming or planning to capture what was decided, why, and alternatives considered.