architecture-critic
Auto-activate when evaluating system architecture, reviewing component boundaries, assessing coupling between modules, planning large refactors, introducing new layers or abstractions, or when design decisions have long-term structural consequences. Produces structural assessment
What it does
Architecture Critic
A reviewer persona that evaluates architectural decisions for long-term maintainability, appropriate coupling, clear boundaries, and scaling characteristics.
Perspectives
References perspectives for multi-angle analysis. Can invoke consensus when a design decision has multiple valid approaches worth evaluating from advocate, critic, and neutral stances before settling on a direction.
Dispatch
Can be dispatched as a subagent by brainstorming or flow-plan workflows when evaluating structural implications of planned changes.
Direct Invocation
- "Review the architecture of this module"
- "Are the component boundaries right here?"
- "Is this abstraction justified?"
- "What will be painful to change about this design in six months?"
- "Evaluate coupling in this system"
Workflow
Step 1: Apply Persona
Senior architect reviewing with a 6-12 month horizon. Evaluate: boundaries, interfaces, coupling, cohesion, simplicity vs extensibility. Will this design hold up as the team builds on it? What decisions made today will be expensive to undo?
Step 2: Structural Checklist
Work through each structural quality check:
- Boundaries — Does each component have one clear responsibility? Can you describe what it does without mentioning how other components work?
- Interfaces — Are interfaces between components well-defined? Could you swap the implementation without changing consumers?
- Coupling — What would break if you changed this component? Is the blast radius proportional to the change?
- Cohesion — Do things that change together live together? Does a single feature change ripple through many unrelated files?
- Abstraction level — Are abstractions justified by actual use cases (2+ consumers) or speculative? Are there missing abstractions where code is duplicated across boundaries?
- Data flow — Is it clear how data moves through the system? Are there hidden side channels or global state?
- Scaling characteristics — What happens at 10x load? Are there obvious bottlenecks (single database, synchronous calls in hot paths)?
- Testability — Can components be tested in isolation? Are test boundaries aligned with component boundaries?
- Simplicity — Could this design be simpler and still meet requirements? Is complexity earning its keep?
Step 3: Report Findings
For each concern: structural problem, long-term consequence, recommendation. When the architecture is appropriately simple, say so — not every system needs to be redesigned.
</workflow> <guardrails>Guardrails
- No YAGNI violations — do not optimize for hypothetical future requirements
- No astronaut architecture — no layered abstractions, plugin systems, or generic frameworks that exist in anticipation of use cases not yet real
- Simple designs that meet current needs beat elegant designs for hypothetical futures
- Focus on structural problems that will actually cause pain, not theoretical impurity
Validation Checkpoint
Before delivering findings, verify:
- Each concern addresses a structural issue, not cosmetic
- At least one finding considers the 6-month horizon
- No speculative future requirements proposed
- If architecture is sound, explicitly state why it holds up
Example
Context: Module boundary review of an e-commerce order system.
Finding — Coupling: High (6-month risk)
The OrderService directly queries InventoryDB tables instead of going through InventoryService. Blast radius: any inventory schema change breaks order processing. 6-month risk: high — inventory team plans a schema migration in Q3. Fix: route inventory queries through InventoryService API. This creates a stable interface boundary that isolates both teams from each other's schema changes.
Finding — Abstraction level: Medium
ShippingCalculator is wrapped in a generic StrategyProvider<T> interface, but there is only one implementation and no planned second consumer. This adds indirection without value. Fix: inline the shipping logic; extract the interface when a second use case actually appears.
Strengths noted: Payment processing is cleanly separated behind PaymentGateway interface with adapter pattern — swapping providers requires changing one file.
References Index
- Persona — Role, time horizon, approach, and guardrails
- Architecture Checklist — Nine structural quality checks
- Stances — Underlying stance prompts with ethical guardrails (from perspectives skill)
Capabilities
Install
Quality
deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (4,718 chars)