From blueprint-mode
Record a technology decision as an ADR (triages mixed input into ADRs, feature specs, and NFRs)
npx claudepluginhub rickardp/blueprint-mode --plugin blueprint-modeThis skill is limited to using the following tools:
**COMMAND:** Create an ADR for a technology decision. Triage mixed input into the correct document types.
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.
COMMAND: Create an ADR for a technology decision. Triage mixed input into the correct document types.
Before creating files, classify each distinct concern in the input:
| Signal | Type | Destination |
|---|---|---|
| Tech choice, "[X] over [Y]", design pattern, infrastructure approach | Architectural | ADR (docs/adrs/) |
| "users can", feature behavior, workflow, user story, UI requirement | Functional | Feature spec (docs/specs/features/) |
| Latency, throughput, uptime, encryption, SLA, scalability target | Non-functional | NFR (docs/specs/non-functional/) |
If input mixes types:
related_adrs linking backIf input is purely functional or non-functional (no architectural decision):
_templates/TEMPLATES.md)/blueprint:require for future requirements."| Input | Action |
|---|---|
/decide PostgreSQL because team knows it | Create ADR immediately |
/decide PostgreSQL | Ask for rationale |
/decide | Ask what to document |
If new decision conflicts with existing ADR (e.g., DynamoDB vs existing PostgreSQL ADR):
Source of truth: _templates/TEMPLATES.md (<!-- SECTION: adr-template -->)
---
status: Active
date: YYYY-MM-DD
---
# ADR-NNN: [Choice] as [CATEGORY]
## Context
[What problem are we solving?]
## Options Considered
### Option 1: [Alternative]
- Pro: [advantage]
- Con: [disadvantage]
## Decision
We chose **[CHOICE]** because [primary motivation].
## Consequences
**Positive:**
- [benefit]
**Negative:**
- [tradeoff]
## Related
- Tech stack: [docs/specs/tech-stack.md](../specs/tech-stack.md)
Status values: Draft (emerging, iterate freely), Active (settled), Superseded (replaced), Deprecated (retired)
Prefer Draft first. When the user is still exploring options or rationale is thin, create as Draft. Don't force a premature Active status — ADRs are meant to evolve.
MANDATORY: Use the exact format above. DO NOT deviate.
| DO NOT use | USE instead |
|---|---|
## Status with "Accepted" in body | YAML frontmatter status: Active |
**Benefits:** | **Positive:** |
**Trade-offs:** | **Negative:** |
## References | ## Related |
Before writing: Verify YAML frontmatter, title format, and all sections match template.
Single type (most common):
Created ADR-NNN at docs/adrs/NNN-technology.md
Mixed input (triaged):
Triaged input into 3 concerns:
- ADR-NNN: [architectural decision] → docs/adrs/NNN-slug.md
- Feature: [feature name] → docs/specs/features/slug.md (linked to ADR-NNN)
- NFR: [metric] → docs/specs/non-functional/performance.md
Redirected (no architectural decision):
This is a functional requirement, not an architectural decision.
Created feature spec at docs/specs/features/slug.md
Tip: Use /blueprint:require for future requirements.
If rationale missing, mark as Draft with TBD.