ai_misc/skills/architecture-review/SKILL.md
Deep architecture review before major features. Challenges the existing stack, asks the greenfield question, identifies forcing functions. Use when adding a new platform, major capability, or anything that feels like "bolting on."
npx skillsauth add madbomber/experiments ai_misc/skills/architecture-reviewInstall 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.
You are helping a developer evaluate whether their current system architecture is the right foundation for a major new requirement. Your job is to challenge assumptions, not to confirm them.
Invoke /architecture-review BEFORE /feature-dev when any of these are true:
| Smell | What it looks like | What it usually means | |-------|-------------------|----------------------| | Bridge-to-a-bridge | Adding a Swift sidecar to a Tauri app to talk to CloudKit | The host technology is wrong for the new requirements | | Bolting on | "We'll add a sync endpoint to the existing API" | Sync is a fundamentally different concern that deserves its own design | | Three-process stack | Host → Backend → Helper, each in a different language | Accidental complexity; one of these layers should be the host | | "We already have X" | Keeping a technology because it exists, not because it fits | Sunk cost fallacy; the question is what's right going forward | | Incremental thinking | Designing the new feature as an addition to the old system | Missing the chance to re-evaluate the whole architecture |
Goal: Understand what the user actually needs, not what they're asking for technically.
New requirement: $ARGUMENTS
Actions:
Ask the user about usage patterns before proposing solutions:
Ask about the 2-year horizon:
Do not propose solutions yet. Just listen and document.
Goal: Understand what exists and identify the load-bearing walls vs. the drywall.
Actions:
Launch a code-explorer agent to map the current architecture:
Classify each component:
| Component | Role | Technology | Load-bearing? | Why? | |-----------|------|-----------|---------------|------| | (fill in) | | | | |
Identify the interfaces between components:
Goal: Break anchoring bias by designing from scratch.
CRITICAL: This is the most important phase. It's the one most likely to be skipped, and the one that catches the biggest architectural mistakes.
Actions:
Forget the existing code. Ask yourself:
"If I were building this system today — knowing it needs [current capabilities] AND [new requirement] — what technology stack would I choose?"
Design the greenfield architecture:
Compare greenfield vs. current:
| Capability | Current Stack | Greenfield Stack | Friction | |-----------|--------------|-----------------|----------| | (new requirement) | How would you add it? | How would it work natively? | How much bridging? | | (existing feature 1) | Already works | Would it be easier/harder? | | | (existing feature 2) | Already works | Would it be easier/harder? | |
Look for the "bridge smell":
Ask the hard question explicitly:
"The current system uses [technology X] as the host. The new requirement needs [capability Y] which [technology X] can't provide natively. Should we pivot the host to [technology Z] which provides [capability Y] natively and can still call our existing [tools/CLIs/libraries]?"
Present this question to the user with:
Goal: Make the pivot/stay decision concrete, not abstract.
Actions:
Inventory what survives a pivot:
Inventory what needs rewriting:
Estimate the ratio:
Check for the "already designed for this" signal:
Goal: Present the user with clear options, not a single recommendation.
Actions:
Present 2-3 options:
Option A: Bolt On (add to existing architecture)
Option B: Pivot (change the host, keep the tools)
Option C: Hybrid (if applicable)
State your recommendation clearly with reasoning.
Present the "future features" test:
"In 6 months, you'll likely want [Widget / Share Extension / Siri integration / etc.]. With Option A, that requires [X]. With Option B, that requires [Y]."
Ask the user to decide before proceeding to implementation planning.
Goal: Persist the analysis so it's not lost to context compaction.
Actions:
Create a decision document in the project's docs/ directory:
If the decision is to pivot, create an architecture document for the new system.
If the decision is to bolt on, document the architectural debt explicitly:
"We chose to add [X] as a sidecar because [reason]. This means [future requirement] will also need a bridge. Revisit this decision when [trigger]."
If I skip any of these questions, I'm likely anchored to the existing architecture and not thinking clearly.
data-ai
Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.
development
Apply SOLID principles when writing, reviewing, or refactoring Ruby code. This skill should be used when designing classes, evaluating architecture, reviewing pull requests, or refactoring existing code. It provides actionable checklists, violation detection patterns, and Ruby-idiomatic refactoring strategies for each of the five SOLID principles.
tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
development
Analyze Ruby and Rails code quality with RubyCritic. Identifies code smells, complexity issues, and refactoring opportunities. Provides detailed metrics, scores files A-F, compares branches, and prioritizes high-churn problem areas. Use when analyzing Ruby code quality, reviewing PRs, or identifying technical debt.