| name | cto-architecture-decision |
| description | Expert methodology for making and documenting critical architectural decisions using ADRs, trade-off analysis, migration planning, and technical debt management. |
CTO Architecture Decision Skill
Purpose
This skill provides a systematic approach to making critical architectural and technology decisions. Use it to evaluate options, document decisions through Architecture Decision Records (ADRs), plan migrations, and manage technical debt strategically.
When to Use
Trigger this skill when you need to:
- Make major technology decisions (database selection, framework choice, cloud provider)
- Document architectural decisions for team alignment
- Evaluate build vs buy options
- Plan technical migrations or refactoring
- Assess and prioritize technical debt
- Compare architecture patterns (monolith vs microservices, event-driven, etc.)
- Evaluate vendor or open-source solutions
Core Methodology
Follow this systematic decision-making process:
Phase 1: Frame the Decision
Define the Problem
- What are we trying to achieve?
- What constraints do we have? (timeline, budget, team skills, existing systems)
- What's the cost of not deciding or deciding wrong?
- Who are the stakeholders?
Identify Options
- Brainstorm 3-5 potential solutions
- Include "do nothing" as an option when appropriate
- Consider hybrid approaches
- Don't prematurely eliminate options
Define Evaluation Criteria
- Use
references/frameworks/decision-criteria-framework.mdto select criteria - Common criteria: performance, scalability, cost, team expertise, time to implement, maintainability, security, vendor lock-in
- Weight criteria by importance (not all criteria are equal)
- Use
Phase 2: Evaluate Options
Research Each Option
- Technical capabilities and limitations
- Cost structure (initial + ongoing)
- Learning curve and team fit
- Community support and ecosystem
- Long-term viability and roadmap
Score Against Criteria
- Use quantitative scoring when possible (1-10 scale)
- Document assumptions for each score
- Consider risk factors and uncertainties
- Use templates from
references/templates/trade-off-matrix.md
Identify Trade-offs
- What do you gain with each option?
- What do you give up?
- Are trade-offs acceptable given context?
Phase 3: Make and Document Decision
Make the Decision
- Review scores and trade-offs
- Consider "reversibility" - can we change our mind later?
- Validate with key stakeholders
- Choose the option that best fits context
Create Architecture Decision Record (ADR)
- Use template from
references/templates/adr-template.md - Document: context, decision, consequences, alternatives considered
- Include date, status (proposed/accepted/deprecated/superseded)
- Store in version control for team access
- Use template from
Create Implementation Plan
- Break decision into actionable steps
- Identify risks and mitigation strategies
- Define success criteria and rollback plan
- Assign owners and timeline
Key Principles
- Context is King: The right decision depends on your specific situation (team size, stage, constraints)
- Document Why, Not Just What: Future teams need to understand the reasoning
- Embrace Reversibility: Favor decisions that can be changed if needed
- Quantify When Possible: Use data and scoring over gut feelings
- Consider Total Cost of Ownership: Look beyond initial cost to maintenance, scaling, team time
- Value Team Alignment: A good decision with team buy-in beats a perfect decision with resistance
Bundled Resources
Frameworks (references/frameworks/):
decision-criteria-framework.md- Comprehensive evaluation criteria for different decision typesarchitecture-patterns.md- Common patterns with pros/cons (microservices, event-driven, serverless, etc.)technical-debt-assessment.md- Framework for quantifying and prioritizing technical debtmigration-strategies.md- Approaches for major migrations (strangler fig, big bang, phased)
Templates (references/templates/):
adr-template.md- Standard Architecture Decision Record formattrade-off-matrix.md- Structured comparison of optionsmigration-plan-template.md- Step-by-step migration planningbuild-vs-buy-analysis.md- Framework for build vs buy decisionsrfc-template.md- Request for Comments format for collaborative decision-making
Examples (references/examples/):
- Real-world ADRs for common decisions (database selection, microservices adoption, cloud provider)
- Migration plans from successful transformations
- Technical debt assessments with ROI calculations
Usage Patterns
Example 1: User says "Should we move from PostgreSQL to MongoDB?"
→ Frame decision: What problem are we solving? Current pain points? → Define criteria: Query patterns, scalability needs, team expertise, migration cost → Score both options + alternatives (keep PostgreSQL but optimize, use both) → Create ADR documenting decision and trade-offs → If migrating, generate migration plan with risk mitigation
Example 2: User says "We need to evaluate our technical debt"
→ Load references/frameworks/technical-debt-assessment.md
→ Categorize debt: performance, security, maintainability, scalability
→ Score by impact (business risk) and effort (time/cost to fix)
→ Prioritize using impact/effort matrix
→ Create remediation roadmap with phased approach
Example 3: User says "Help us decide between building or buying a feature"
→ Use references/templates/build-vs-buy-analysis.md
→ Evaluate: development cost, time to market, ongoing maintenance, flexibility, vendor risk
→ Calculate Total Cost of Ownership for both options
→ Consider strategic fit and competitive advantage
→ Document decision in ADR format
Example 4: User says "We're considering microservices. Is it right for us?"
→ Load references/frameworks/architecture-patterns.md
→ Assess current context: team size, complexity, deployment frequency, organizational structure
→ Compare monolith vs microservices vs modular monolith
→ Identify trade-offs specific to the situation
→ Create ADR with recommendation and implementation roadmap if appropriate
Decision Types Coverage
Technology Selection:
- Databases (SQL vs NoSQL, specific products)
- Programming languages and frameworks
- Cloud providers (AWS, GCP, Azure)
- Infrastructure tools (Kubernetes, serverless, VMs)
- Monitoring and observability tools
Architecture Patterns:
- Monolith vs microservices vs modular monolith
- Event-driven architecture
- Serverless architecture
- API design (REST, GraphQL, gRPC)
- Data architecture (centralized vs distributed)
Migration Decisions:
- Database migrations
- Cloud migrations (on-prem to cloud, cloud to cloud)
- Framework upgrades
- Architecture transformations
Build vs Buy:
- Feature development vs third-party solution
- Open source vs commercial tools
- In-house platform vs managed service
Writing Style
All outputs should be:
- Data-driven: Use concrete scoring and comparisons
- Balanced: Present options fairly without bias
- Actionable: Provide clear recommendations with next steps
- Contextual: Adapt advice to company stage, team size, constraints
- Future-aware: Consider long-term implications and reversibility
Version: 1.0.0 Author: Rinaldo Festa Philosophy: Make better technical decisions through systematic evaluation and clear documentation