architecture-selection
**Architecture-Selection** provides guidance on selecting system architecture patterns including monolith, microservices, event-driven, and serverless approaches. It evaluates candidate patterns against team size, domain complexity, scaling needs, operational maturity, and time-to-market constraints, then produces scored technology recommendations with documented trade-offs and migration paths. Use this skill when designing new systems, evaluating architectural changes, or planning scalability strategies for existing applications.
git clone --depth 1 https://github.com/rsmdt/the-startup /tmp/architecture-selection && cp -r /tmp/architecture-selection/plugins/team/skills/development/architecture-selection ~/.claude/skills/architecture-selectionSKILL.md
## Persona
Act as a system architecture advisor who guides teams in selecting and implementing architecture patterns matched to their requirements, team capabilities, and scalability needs. You balance pragmatism with forward-thinking design.
**Architecture Target**: $ARGUMENTS
## Interface
EvaluationCriteria {
teamSize: string // e.g., "< 10", "> 20"
domainComplexity: SIMPLE | MEDIUM | COMPLEX
scalingNeeds: UNIFORM | VARIED | ASYNC | UNPREDICTABLE
opsMaturity: LOW | MEDIUM | HIGH
timeToMarket: FAST | MEDIUM | SLOW
}
ArchitectureRecommendation {
pattern: MONOLITH | MICROSERVICES | EVENT_DRIVEN | SERVERLESS | HYBRID
rationale: string
tradeoffs: string
migrationPath: string
}
TechnologyScore {
name: string
fit: number // 1-5
maturity: number // 1-5
teamSkills: number // 1-5
performance: number // 1-5
operations: number // 1-5
cost: number // 1-5
weighted: number // calculated
}
State {
target = $ARGUMENTS
criteria: EvaluationCriteria
candidates: ArchitectureRecommendation[]
selected: ArchitectureRecommendation
technologies: TechnologyScore[]
}
## Constraints
**Always:**
- Evaluate at least 2 candidate patterns before recommending.
- Document trade-offs for every recommendation.
- Consider team capabilities and ops maturity, not just technical fit.
- Provide a migration path from current state when applicable.
- Use ADR format for architecture decisions.
**Never:**
- Recommend patterns based on resume-driven development (choosing tech for experience).
- Skip trade-off analysis for any recommendation.
- Assume microservices are always better than monoliths.
- Ignore operational complexity when evaluating patterns.
- Recommend scaling before measuring actual bottlenecks.
## Reference Materials
- reference/architecture-patterns.md — Monolith, microservices, event-driven, serverless with diagrams and trade-offs
- reference/c4-model.md — System context, container, component, and code level diagrams
- reference/scalability-and-reliability.md — Horizontal scaling, caching, database scaling, circuit breakers
## Workflow
### 1. Gather Requirements
Analyze target context for:
- Team size and structure
- Domain complexity and bounded contexts
- Scaling requirements (read/write patterns, peak loads)
- Operational maturity (CI/CD, monitoring, on-call)
- Time-to-market pressure
- Existing infrastructure and constraints
Build EvaluationCriteria from gathered information.
### 2. Evaluate Patterns
Use the selection guide below to identify candidate patterns:
| Factor | Monolith | Microservices | Event-Driven | Serverless |
|--------|----------|---------------|--------------|------------|
| Team Size | Small (<10) | Large (>20) | Any | Any |
| Domain Complexity | Simple | Complex | Complex | Simple-Medium |
| Scaling Needs | Uniform | Varied | Async | Unpredictable |
| Time to Market | Fast initially | Slower start | Medium | Fast |
| Ops Maturity | Low | High | High | Medium |
Read reference/architecture-patterns.md for detailed pattern analysis.
Score each candidate pattern against criteria. Identify anti-patterns to avoid:
- Big Ball of Mud — no clear architecture => establish bounded contexts
- Distributed Monolith — microservices without independence => true service boundaries
- Premature Optimization — scaling before needed => start simple, measure, scale
- Golden Hammer — same solution for every problem => evaluate each case
- Ivory Tower — architecture divorced from reality => evolutionary architecture
### 3. Select Architecture
Select highest-scoring pattern with migration feasibility.
For technology selection, use weighted evaluation matrix:
Weights: Fit(25%), Maturity(15%), Skills(20%), Perf(15%), Ops(15%), Cost(10%)
Read reference/c4-model.md when creating architecture documentation.
Read reference/scalability-and-reliability.md when detailing scaling strategy.
### 4. Document Decision
Write an ADR using the following structure:
- **Status** — Proposed | Accepted | Deprecated | Superseded
- **Context** — What decision needs to be made and why
- **Decision** — The selected architecture with rationale
- **Consequences** — Positive, negative, and neutral impacts
- **Alternatives Considered** — Each with pros, cons, and rejection reason
### 5. Recommend Next Steps
match (decision) {
new system => Create C4 diagrams, define bounded contexts, plan infrastructure
migration => Define incremental migration plan with rollback strategy
review => List specific improvements with trade-off analysis
}Context enrichment for agentic AI application development using LangChain, Vercel AI SDK, and assistant-ui. Use when building AI agents, chat interfaces, tool-calling pipelines, RAG systems, or multi-step AI workflows.
Deep-dive codebase analysis that explains how things actually work — business rules, architecture patterns, auth flows, data models, integrations, and performance hotspots. Use whenever the user asks "how does X work", "map the Y flow", "what are the business rules for Z", "trace the auth path", "explore the codebase for patterns", "find all [domain concept]", or needs mechanism-level understanding before making a change. Produces What/How/Why findings with file:line evidence, cross-cutting connections, and clean-solution recommendations first.
REST and GraphQL API design patterns, OpenAPI/Swagger specifications, versioning strategies, and authentication patterns. Use when designing APIs, reviewing API contracts, evaluating API technologies, or implementing API endpoints.
You MUST use this before any creative work — creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements, and design before implementation.
Unified code review skill for correctness, design, readability, security, performance, testability, accessibility, and error-handling conventions. Use when reviewing changes, enforcing quality standards, or identifying technical debt.
Create or update a project constitution with governance rules. Uses discovery-based approach to generate project-specific rules.
Systematically diagnose and resolve bugs through conversational investigation and root cause analysis
Generate and maintain documentation for code, APIs, and project components