skills/architecture-exploration/SKILL.md
Explore and compare architectural options before committing to a large technical direction. Use when the user wants to evaluate different architectures, compare approaches, choose between competing designs, rethink a subsystem, or understand tradeoffs before a major refactor or migration. Also use for prompts like "explore the architecture", "what are our options", "compare approaches", "what design should we choose", "audit and recommend an improved architecture", or "help me think through a large architectural change" even if the user does not mention a formal architecture review.
npx skillsauth add petekp/claude-code-setup architecture-explorationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reason deeply about a system, generate real architectural options, and help the user choose the best direction before any migration begins.
This skill is intentionally pre-commit. Its job is to help pick the right architecture, not to execute the migration. Once a direction is chosen, hand the work off to audit-and-migrate.
Large engineering efforts fail long before code is written:
This skill exists to force disciplined exploration before implementation.
This skill does not:
This skill does:
audit-and-migratePerform all of this work directly. Do not rely on other skills to do the shaping, stress-testing, or architecture comparison for you.
If the user has already chosen a direction and wants to land it safely, stop using this skill and use audit-and-migrate.
First excavate reality, then compare options, then recommend.
Do not start with architecture taste. Start with the actual system, the actual constraints, and the actual problem.
Before you recommend an architecture, you must earn the recommendation.
For the relevant system, actively inspect:
Do not recommend major boundary changes based only on the user's summary if the local codebase can answer the question.
When a claim is uncertain, mark it as uncertain. A high-integrity architectural recommendation is one that is well-calibrated, not one that sounds maximally confident.
Before exploring options, pin down the decision you are actually making.
Capture:
If the user already has a candidate solution in mind, treat it as Option A, not as the conclusion.
Understand the current system before proposing alternatives.
For the affected system or systems, map:
Produce a concise current-state map:
## Current System
| Area | Current Owner | Inputs | Outputs | Dependencies | Pain |
|------|---------------|--------|---------|--------------|------|
| ... | ... | ... | ... | ... | ... |
Do not skip this because the user "already knows the system." A rigorous option comparison depends on a shared map of reality.
Generate 2-4 serious architectural options.
Do not generate fake alternatives. Every option must be plausible enough that a strong team could reasonably choose it.
When feasible, include:
Each option must describe:
For every option, run the same analysis.
How well does the option satisfy:
List the must-be-true assumptions:
## Must-Be-True Assumptions
| Assumption | Why It Matters | How to Verify | Fastest Disproof |
|------------|----------------|---------------|------------------|
| ... | ... | ... | ... |
Imagine the option failed one year later. Work backward.
## Pre-Mortem
| Failure Mode | Warning Signal | Prevention |
|--------------|----------------|------------|
| ... | ... | ... |
Evaluate each option on:
Use relative ratings with justification. Avoid fake precision.
## Tradeoff Matrix
| Dimension | Option A | Option B | Option C |
|-----------|----------|----------|----------|
| Simplicity | Medium — ... | High — ... | Low — ... |
| Migration Difficulty | ... | ... | ... |
| Cleanup Burden | ... | ... | ... |
| Operability | ... | ... | ... |
| Testability | ... | ... | ... |
| Long-Term Flexibility | ... | ... | ... |
For each option, state what would make it the wrong choice.
Examples:
What remains uncertain? Distinguish:
Do not stop at listing options. Make a recommendation.
The recommendation must include:
If the recommendation is genuinely unclear, say so and explain exactly which uncertainty blocks a good decision.
Before committing, propose the cheapest high-value spikes to kill uncertainty.
Good spikes are:
Examples:
For each spike:
## Validation Spikes
| Spike | Question Answered | Cost | Success Signal | Failure Signal |
|-------|-------------------|------|----------------|----------------|
| ... | ... | ... | ... | ... |
audit-and-migrateOnce the user chooses a direction, hand off the decision package cleanly.
The handoff section must include:
This section should make it easy to start audit-and-migrate without reopening the architecture debate.
For non-trivial explorations, produce a decision-grade artifact at .claude/architecture/ARCHITECTURE_OPTIONS.md or the project’s equivalent docs location.
Use this structure:
# Architecture Exploration: [System Name]
## Goal
## Problem
## Invariants
## Non-Goals
## Constraints
## External Surfaces
## Current System
| Area | Current Owner | Inputs | Outputs | Dependencies | Pain |
## Option 1: [Name]
### Architecture Shape
### Why It Might Work
### Tradeoffs
### Failure Modes
### Disqualifiers
### Cleanup / Migration Implications
### Unknowns
## Option 2: [Name]
...
## Tradeoff Matrix
| Dimension | Option 1 | Option 2 | Option 3 |
## Assumptions
| Assumption | Why It Matters | How to Verify | Fastest Disproof |
## Risk Register
| Risk | Option(s) Affected | Likelihood | Impact | Mitigation |
## Validation Spikes
| Spike | Question Answered | Cost | Success Signal | Failure Signal |
## Recommendation
## Runner-Up
## Why The Other Options Lose
## Decision Needed
## Handoff to audit-and-migrate
For smaller requests, present the same structure inline in the conversation.
Do not invent numerical scoring that implies rigor you do not actually have. Relative ratings with explanations are better than fake weighted totals.
Architecture preferences are not evidence. Ground recommendations in:
If every option increases conceptual complexity, you probably missed a better path.
A full rewrite or major structural reset must earn its place. It is rarely the default winner.
Every option gets the same scrutiny. Do not stress-test the user's preferred option less just because it sounds elegant.
Exploration is complete when:
audit-and-migrateIf you reach that point, stop exploring and recommend the decision.
audit-and-migrateUse this skill to answer:
Use audit-and-migrate after the answer becomes:
development
Draft short, plainspoken notes in the author's voice that help reviewers understand non-obvious choices, boundaries, and preserved behavior in the author's own pull request or local diff. Use when the user asks to self-review, annotate, or add reviewer context to their PR or changes. Draft locally when no PR exists, and post approved notes as one GitHub review when a PR does exist. Do not use for reviewing someone else's PR, writing code comments, explaining code generally, or drafting a PR description. Never post without explicit approval.
tools
Design and build pure-CSS (zero-JavaScript) Tailwind CSS v4 plugins of unusual depth and craft. Use when the user wants to create, architect, or refine a Tailwind utility plugin or CSS effect — e.g. "make a tailwind plugin", "build a tw-* plugin", "a CSS-only shimmer/fade/glow/grain/noise utility", "tailwind v4 @utility", "package this effect as a plugin", or wants an effect with surprising visual depth (gradients, masks, filters, SVG filter tricks, scroll-driven animation). Pairs deep CSS/SVG technique research with a bespoke tuning workbench for dialing the effect in. Inspired by tw-fade and tw-shimmer.
content-media
Create clear, polished before-and-after screenshots for a GitHub pull request. Use when a UI change needs visual proof: capture matching states, crop to the relevant UI, stitch and caption one comparison image, attach it natively to the PR, and keep the image out of the repository.
testing
--- name: latent-potential description: First-principles, team-of-experts assessment of a software project that surfaces latent potential; underexploited assets, a sharper north star, missing high-leverage capabilities, better framing and messaging. Produces a prioritized, evidence-grounded report with cheap probes, a reframe candidate, a stop-doing list, and an honest skeptic's case. Use whenever the user wants fresh eyes on a project they have built: "what am I sitting on", "what could this be