| name | architecture |
| description | Evaluate and improve software architecture decisions to ensure scalability, maintainability, and correctness. |
Skill: Architecture Review
Category: Core Engineering
Priority: Critical
Description
Evaluate and improve software architecture decisions to ensure scalability, maintainability, and correctness.
Purpose
Catch architectural flaws early, before they become expensive to fix.
Trigger
Use this skill when:
- Designing a new system or service
- Proposing a significant refactor
- Adding a new dependency
- Changing data flow or state management
- Introducing a new pattern
Context
- Current system architecture
- Non-functional requirements (scale, latency, availability)
- Team expertise
- Existing technical debt
Workflow
- Gather Requirements - Functional and non-functional.
- Identify Constraints - Time, budget, team, legacy systems.
- Propose Options - At least two approaches.
- Evaluate Trade-offs - For each option, list pros, cons, risks.
- Apply SOLID - Check each principle against the proposal.
- Check Coupling - Are components loosely coupled?
- Verify Testability - Can key components be unit tested?
- Document Decision - Why was this approach chosen?
- Plan Migration - If replacing existing architecture, define the path.
Examples
Good
Option A: Monolith with modular packages
Pros: Simpler deployment, shared codebase
Cons: Tight coupling risk, harder to scale teams
Option B: Microservices
Pros: Independent scaling, team autonomy
Cons: Operational complexity, network latency
Decision: Option A for now, with clear module boundaries
Reason: Team size is 3 engineers. Operational overhead of microservices
outweighs benefits at this scale.
Bad
Let us use microservices because they are modern.
Anti-patterns
- Choosing technology because it is trendy
- Ignoring team size and operational capacity
- No documented trade-off analysis
- Architecture without migration plan
Verification
References