adr-deprecate
Marks existing ADR deprecated, records reason, updates dir's README.md 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 → ask user or auto-suggest based on recent file context (same as adr-create Step 2). Wait for confirmation.
Step 3 — Identify the ADR to deprecate
- List files in
target_dirmatchingNNNN-*.md. - If invoked with ADR number (e.g.,
/adr-deprecate 3): find file matching0003-*.md. - Otherwise, display list and ask:
Which ADR do you want to deprecate? (enter number or filename)
- Confirm:
Deprecating: ADR-NNNN — <title>. Proceed? (y/n) - Status already
Deprecated→ warn and stop:ADR-NNNN is already deprecated.
Step 4 — Understand and draft the deprecation
Gather context from:
- Read ADR in full — understand what it records and current consequences.
- Conversation context — user may have discussed why decision is obsolete.
- Arg — text after ADR number used as deprecation rationale.
Draft:
deprecation_reason: one-line summary for**Deprecated:**field (e.g., "No longer applicable after migration to microservices architecture").deprecation_note: 2–4 sentences covering: what changed → decision no longer relevant, replacement ADR if any (reference by number), cleanup/migration done.
If reason not confidently inferable, ask via AskUserQuestion:
I'm deprecating ADR-NNNN (). To write proper deprecation record:
- Why is this decision no longer relevant? (What changed?)
- Replaced by another decision, or simply obsolete?
- Any cleanup or migration done?
Batch all questions in single call. Proceed only after reason and note are clear.
Step 5 — Update the ADR file
- Open ADR file.
- Find
**Status:**. Replace value withDeprecated. - Add after
**Status:**(or after**Date:**if Status precedes Date):**Deprecated:** <deprecation_reason> - Append
## Deprecation Notesection at file end withdeprecation_note. - Save file.
Step 6 — Update the index
- Open
<target_dir>/README.md. - Find row for this ADR.
- Update
Statuscolumn toDeprecated. - Save file.
Step 7 — Confirm
Deprecated ADR-NNNN: Reason: Updated:
<target_dir>/<NNNN>-<slug>.mdUpdated index:<target_dir>/README.md
Step 8 — Post-write validation
Invoke adr-check scoped against deprecated ADR:
/adr-check <deprecated_adr_path>
Display all output to user.
- Structural FAIL: Block completion, prompt user to resolve before proceeding:
The deprecated ADR has a structural validation failure. Please fix the issue above before confirming this deprecation is complete.
- Style warnings only: Display and continue. Not blocking.