Adr supersede
Skill samrom3/claude-hyper-plugs/adr-wizard/skills/adr-supersede
Curated Claude Code marketplace and custom plugins by samrom3 for empowering everyday Software Engineers
npx -y skills add samrom3/claude-hyper-plugs --skill adr-supersedeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 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
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.
SKILL.md
5.9 KB, as published. Nobody here has run it
adr-supersede
Creates new ADR superseding existing one, updates old ADR's status, maintains bidirectional cross-refs in both files and dir index.
ADRs additive only: never delete or heavily rewrite accepted ADR. History preserved — old ADR stays readable.
Step 1 — Discover ADR directories
Same discovery as adr-create Step 1:
- Search
CLAUDE.mdfor heading containingADR Locations. Collect bullet paths intoadr_dirs, strip inline# comments. - If not found, fall back: scan for
docs/adrs,decisions,architecture/decisions. - If empty, inform user and stop.
Step 2 — Select target directory
Multiple dirs → auto-suggest based on recent file context (same as adr-create Step 2). Present suggestion, wait for confirmation. Use confirmed path as target_dir.
Step 3 — Parse the argument and identify ADRs
Format:
<old_num>[->new_num] [new decision text or reason]
Examples:
3 Switching from PostgreSQL to CockroachDB→ old=3, new ADR doesn't 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 text
Resolution:
- List files in
target_dirmatchingNNNN-*.md. - Parse
old_num. Zero-pad to 4 digits, find file asold_adr. No arg → display list and ask:Which ADR is being superseded? (enter the number)
- Parse
new_numif->present:new_numprovided + file exists → setnew_adr, skip Steps 4–6, go to Step 7.new_numprovided + file missing → treat as title/number hint for Step 6.- No
->→ create new ADR (proceed through all steps).
- Confirm:
Superseding: ADR-NNNN — <title>. Proceed? (y/n) old_adralreadySuperseded by ADR-MMMM→ warn:ADR-NNNN is already superseded by ADR-MMMM. Supersede again? (y/n). Proceed only on confirm.
Step 4 — Understand the supersession
Gather from:
- Read old ADR in full — Context, Decision, Consequences as baseline.
- Conversation context — why old approach no longer works, what replacement is.
- Arg — text after
/adr-supersedeused as supersession rationale.
Derive:
new_adr_title: concise title for replacement.what_changed: why original replaced (new constraints, better alternatives, lessons learned).new_decision: new decision, specific and declarative.
If any can't be inferred, ask via AskUserQuestion. Batch questions:
I'm superseding ADR-NNNN (<old_title>). To write replacement ADR:
- 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 clear.
Step 5 — Draft the new ADR sections
Use old ADR as foundation + supersession context from Step 4.
Context
Start from old ADR's Context (original problem), then explain what changed (new constraints, growth, incidents, technology shifts, lessons learned that invalidate original decision). Reference old ADR by number.
Decision
New decision, clear and declarative. Contrast with old where helpful (e.g., "We will migrate from X to Y"). Include **Supersedes:** ADR-<old_num> cross-ref.
Consequences
3–7 bullets: benefits of new over old, migration/transition costs, risks/tradeoffs of new decision, follow-up work, what becomes easier/harder vs. superseded approach.
If can't infer:
What are key benefits of new approach, and what migration/transition costs are anticipated?
Step 6 — Create the new ADR via adr-create
Invoke adr-create with:
new_adr_titleas decision summary arg- Full supersession context (old ADR content + what changed + new decision) for section drafting
After completion, capture new file path and number as new_adr and next_num.
Open new ADR file, add cross-ref after **Date:**:
**Supersedes:** ADR-<old_num_padded>
Save file.
Step 7 — Link the superseded ADR
- Open
old_adr. - Find
**Status:**. Replace value withSuperseded by ADR-<next_num_padded>. - If
->path (new_adr already existed): add**Superseded by:**metadata after**Date:**if not present. - Save file.
Step 8 — Update the index
- Open
<target_dir>/README.md. - Find row for old ADR. Update
StatustoSuperseded by ADR-<next_num_padded>. - New ADR just created by adr-create → index row already added, skip. New ADR already existed and not in index → add now.
- Save
README.md.
Step 9 — Confirm
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.
Step 10 — Post-write validation
Invoke adr-check scoped against superseded ADR (file modified in Step 7):
/adr-check <old_adr_path>
Display all output to user.
- Structural FAIL: Block completion, prompt user to resolve:
The superseded ADR has a structural validation failure. Please fix the issue above before confirming this supersession is complete.
- Style warnings only: Display and continue. Not blocking.
Note: new ADR (created via adr-create in Step 6) already validated by adr-create's post-write step — don't run adr-check again.