From core-skills
Run a structured architecture decision process using subagent personas that debate the decision, then produce a signed ADR (markdown + optional HTML) and update a decision registry. Triggers on "should I use X or Y", "architecture decision", "ADR", "help me decide between", "which approach", "debate this", "tech decision". Use whenever the user is making a technical or architectural choice and needs structured thinking, not just a list of tradeoffs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/core-skills:architecture-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Structured persona debate → synthesis → markdown ADR (+ optional HTML report) → registry index.
Structured persona debate → synthesis → markdown ADR (+ optional HTML report) → registry index.
Works with any coding agent that can run subagents. No external API calls required.
Supporting files (read when needed):
Ask the user (in one message, all at once):
Do not proceed until you have at least 1, 2, and 3.
Also resolve output settings (infer from request if stated, else use defaults). See ../OUTPUT.md for the shared convention across all skills.
| Setting | Resolution |
|---|---|
| Output directory | {SKILL_OUTPUT_DIR}/architecture-review/ — default root ./skill-outputs/ |
| Include SRE persona | Yes if user asks, or decision touches deployment/monitoring/on-call/scaling/data durability/managed-vs-self-hosted |
| HTML report | Yes by default; skip if user says "ADR only", "markdown only", or "no report" |
Create the output directory if it does not exist.
Construct a decision brief from the user's answers:
DECISION: [what is being decided]
CONSTRAINTS: [hard constraints]
CONTEXT: [product stage, scale, team, infra]
OPTIONS: [Option A] vs [Option B] (vs [Option C] if applicable)
SUCCESS CRITERIA: [what good looks like]
USER LEANING: [if stated, else "none stated"]
INCLUDE_SRE: [yes/no]
Read personas.md. Run subagents in parallel when supported.
Always run (3 subagents): Pragmatist, Architect, Contrarian
Optionally run (4th subagent): SRE — when INCLUDE_SRE: yes
Pass each subagent:
personas.mdKeep subagent contexts isolated — no persona sees another's response until synthesis.
| Persona | Icon | HTML color |
|---|---|---|
| Pragmatist | ⚙️ | #111111 |
| Architect | 🏛 | #4a5568 |
| Contrarian | ⚡ | #744210 |
| SRE | 🔧 | #2c5282 |
After all persona subagents return, synthesize using the Synthesis prompt in personas.md.
Preferred: Run a synthesis subagent with all persona responses as context.
Fallback: Synthesize yourself as the orchestrating agent using the same format.
Always save a markdown ADR. Fill in adr-template.md from synthesis output and persona responses.
Path: {output_dir}/ADR-NNNN-[decision-slug].md
ADR numbering: Scan {output_dir}/ for existing ADR-*.md files. Use the next
sequential number (ADR-0001, ADR-0002, …). Start at ADR-0001 if none exist.
The date lives inside the document, not the filename.
Skip if user chose ADR-only mode.
Path: {output_dir}/ADR-NNNN-[decision-slug].html (same NNNN and slug as the .md)
Link to the markdown ADR from the HTML header.
Page bg: #f8f7f5
Card bg: #ffffff
Border: 1px solid #e8e5de
Primary text: #111111
Muted: #6b6b6b
Hint: #a8a39a
Pragmatist: #111111
Architect: #4a5568
Contrarian: #744210
SRE: #2c5282
Synthesis: #1a3a2a
Font: Georgia/serif for debate sections + system-ui for chrome
NO gradients. NO purple. Light and premium.
HEADER — "Architecture Decision Record" · date · link to .md · "Export PDF" (print)
DECISION TITLE — large, prominent
CONTEXT STRIP — 3 pills: constraints, product stage, success criteria
THE DEBATE — columns per persona (3 or 4). Each column: icon, POSITION, ARGUMENT, risks/ops burden, CONFIDENCE badge, CAVEAT in italics.
TRADEOFF MATRIX — rows = evaluation dimensions; columns = options; cells = ✓ / ~ / ✗ + note
DECISION DIAGRAM — SVG/CSS comparison cards with CHOSEN highlight
SYNTHESIS — background #f0ede8: VERDICT, REASONING, agreed/decisive/dissent blocks, CONDITIONS
SIGNED ADR — monospace card with all ADR fields
FOOTER — Architecture Decision Record · generated [timestamp]
Maintain {output_dir}/index.md as a chronological registry of all ADRs.
If index does not exist, create:
# Architecture Decision Records
| ADR | Date | Status | Decision | Verdict |
|-----|------|--------|----------|---------|
After each new ADR, append a row (do not duplicate if re-running the same file):
| [ADR-NNNN: Title](ADR-NNNN-decision-slug.md) | YYYY-MM-DD | Accepted | [options compared] | [one-line verdict] |
Sort rows by date descending (newest first). If updating an existing ADR in place, update its row rather than appending a duplicate.
.md, .html if generated, index.md updated)"should I use FTS5 or pgvector for legal search"
"ADR: Electron vs web app for our desktop client"
"help me decide between Redis and BullMQ for job queuing"
"debate this: do we build our own auth or use Clerk"
"architecture decision — monorepo vs separate repos"
"include SRE — managed Postgres vs self-hosted"
"ADR only"
"save to skill-outputs/architecture-review"
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub hiteshbandhu/skills-i-use --plugin core-skills