From blueprint-mode
Replace or deprecate a previous architectural decision. Use when the user wants to change a tech choice, retire a decision, or remove functionality without replacement.
npx claudepluginhub rickardp/blueprint-mode --plugin blueprint-modeThis skill is limited to using the following tools:
Replace a previous architectural decision with a new one, or deprecate it entirely.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Replace a previous architectural decision with a new one, or deprecate it entirely.
Invoked by: /blueprint:supersede [ADR] or when user discusses changing/removing a previous decision.
TOOL USAGE: You MUST invoke the AskUserQuestion tool for all structured questions.
When you see JSON examples in this skill, they are parameters for the AskUserQuestion tool - invoke it, don't output the JSON as text or rephrase as plain text questions.
FIRST ACTION: Enter plan mode by calling the EnterPlanMode tool. This enables proper interactive questioning.
Use Claude's built-in tools:
docs/adrs/*.mdIf no ADRs exist: "No ADRs found. Use /blueprint:decide to create your first decision."
First, try to detect intent from user input:
| User says | Intent detected |
|---|---|
| "replace with [X]" / "switching to [X]" | Replace → extract new choice |
| "removing" / "deprecated" / "gone" / "no longer needed" | Deprecate |
If intent unclear, use AskUserQuestion:
{
"questions": [{
"question": "What's happening with ADR-[NNN] ([title])?",
"header": "Action",
"options": [
{"label": "Replace", "description": "Switching to a new technology"},
{"label": "Deprecate", "description": "Removing entirely, no replacement"}
],
"multiSelect": false
}]
}
Response handling:
Understand the context and current decision.
Get next number by counting docs/adrs/*.md files.
Include:
---
status: Superseded
date: [original date]
superseded_by: NNN-new-decision
---
See _templates/TEMPLATES.md (section: <!-- SECTION: adr-template -->) for the base ADR template.
---
status: Active
date: [TODAY]
---
# ADR-[NNN]: [New Decision Title]
## Context
Previously, we used [old approach] (see ADR-[OLD]).
[Why we're changing - or TODO marker if skipped]
## Decision
We will use **[new choice]** because [reason].
## Migration
[How to migrate - or TODO marker if skipped]
## Consequences
**Positive:**
- [benefit]
**Negative:**
- [tradeoff]
## Related
- Supersedes: [ADR-OLD](./OLD-title.md)
Use when retiring a decision without replacement (removing the capability entirely).
"Why is this being deprecated?"
If skipped → Use "No longer needed"
---
status: Deprecated
date: [original date]
deprecated_date: [TODAY]
deprecated_reason: [reason]
---
> **Deprecated on [TODAY]:** [Reason]
>
> This decision is no longer active. [Cleanup notes if any]
Replace:
User: /blueprint:supersede ADR-002
Assistant: "Replace or deprecate?"
User: Replace with GraphQL
Assistant: "Why the change from REST?"
User: Better client flexibility
Assistant: [Creates new ADR, updates old one, checks for code references, suggests deletion if none]
Deprecate:
User: /blueprint:supersede ADR-005
Assistant: "Replace or deprecate?"
User: Deprecate - we removed caching entirely
Assistant: [Marks as Deprecated, offers to help find code to remove]
For Replacement:
For Deprecation:
Cleanup principle: ADRs should reflect current state. Superseded/Deprecated ADRs with no code references should be deleted. Git history preserves the record.
Remind: "PR merge = approved"
If user indicates a mistake after completion: