Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete)....
npx skills add miles-knowbl/orchestrator --skill "architect"
Install specific skill from multi-skill repository
# Description
Design system and feature architecture from requirements. Produces high-level technical designs with component decomposition, data flow, integration patterns, and technology choices. Documents decisions via ADRs. Creates the architectural foundation that feeds into spec compilation.
# SKILL.md
name: architect
description: "Design system and feature architecture from requirements. Produces high-level technical designs with component decomposition, data flow, integration patterns, and technology choices. Documents decisions via ADRs. Creates the architectural foundation that feeds into spec compilation."
phase: INIT
category: core
version: "1.0.0"
depends_on: []
tags: [planning, design, architecture, decisions]
Architect
Design system and feature architecture from requirements.
When to Use
- New feature with architectural decisions β Multiple valid approaches, need to choose
- System-level design β New service, major refactor, platform decision
- Integration design β Connecting systems, API design, data flow
- Technical evaluation β Build vs buy, technology selection
- When you say: "design this system", "how should we architect this?", "what's the best approach?"
Reference Requirements
MUST read before applying this skill:
| Reference | Why Required |
|---|---|
architecture-patterns.md |
Catalog of patterns to select from |
adr-template.md |
Format for documenting decisions |
Read if applicable:
| Reference | When Needed |
|---|---|
architectural-drivers.md |
When identifying what to optimize for |
architecture-diagrams.md |
When creating system diagrams |
option-exploration.md |
When comparing multiple approaches |
Verification: Ensure at least one ADR is created for the key architectural decision.
Required Deliverables
| Deliverable | Location | Condition |
|---|---|---|
ARCHITECTURE.md |
Project root | Always |
adr/ADR-NNN-*.md |
docs/adr/ |
One per major decision |
Core Concept
Architect answers: "How should we structure this at a high level?"
Architecture decisions are:
- Strategic β Affect multiple components, hard to change later
- Reasoned β Trade-offs are documented, alternatives considered
- Enabling β Create a foundation for implementation
- Communicable β Teams can understand and follow
Architecture is NOT:
- Detailed implementation (that's spec and implement)
- Requirements gathering (that's requirements)
- Code review (that's code-review)
The Architecture Process
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ARCHITECTURE PROCESS β
β β
β 1. UNDERSTAND REQUIREMENTS β
β βββ What are we building? What are the constraints? β
β β
β 2. IDENTIFY ARCHITECTURAL DRIVERS β
β βββ What forces shape the architecture? β
β β
β 3. EXPLORE OPTIONS β
β βββ What approaches could work? β
β β
β 4. EVALUATE TRADE-OFFS β
β βββ What are the pros/cons of each? β
β β
β 5. MAKE DECISIONS β
β βββ Which approach and why? β
β β
β 6. DOCUMENT ARCHITECTURE β
β βββ Diagrams, ADRs, component specs β
β β
β 7. VALIDATE β
β βββ Does this meet the requirements? β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Step 1: Understand Requirements
Before architecting, ensure you understand:
| Aspect | Questions |
|---|---|
| Functionality | What does it need to do? |
| Users | Who uses it? How many? How often? |
| Data | What data? How much? How fast does it change? |
| Integration | What does it connect to? |
| Constraints | Budget? Timeline? Team skills? Existing systems? |
Requirements Checklist
- [ ] Functional requirements clear
- [ ] Non-functional requirements quantified
- [ ] User personas and volumes understood
- [ ] Data volumes and patterns understood
- [ ] Integration points identified
- [ ] Constraints documented
Step 2: Identify Architectural Drivers
Architectural drivers are the forces that shape decisions:
Quality Attributes
| Attribute | Questions | Affects |
|---|---|---|
| Performance | Response time? Throughput? | Caching, async, data structures |
| Scalability | Users? Data? Requests? | Statelessness, sharding, queuing |
| Availability | Uptime requirements? | Redundancy, failover, monitoring |
| Security | Threats? Compliance? | Auth, encryption, isolation |
| Maintainability | Team size? Churn? | Modularity, documentation, testing |
| Extensibility | Future features? | Plugin architecture, abstractions |
Constraints
| Type | Examples |
|---|---|
| Technical | Must use existing database, must integrate with legacy API |
| Organizational | Team knows Python, budget is $X/month |
| Regulatory | GDPR, HIPAA, SOC2 |
| Timeline | Must ship by Q2, MVP in 4 weeks |
Prioritize Drivers
Not all drivers are equal. Rank them:
### Architecture Drivers (Prioritized)
1. **Security** (P0) β Handles sensitive customer data
2. **Availability** (P0) β 99.9% uptime SLA
3. **Scalability** (P1) β Must handle 10x growth
4. **Performance** (P1) β <200ms response time
5. **Maintainability** (P2) β Small team, need simplicity
β See references/architectural-drivers.md
Step 3: Explore Options
Generate multiple approaches. Don't commit to the first idea.
Option Generation Techniques
| Technique | Description |
|---|---|
| Pattern matching | What patterns fit this problem? |
| Analogy | How have similar systems been built? |
| Decomposition | Can we break this into smaller decisions? |
| Extremes | What's the simplest? Most scalable? Most flexible? |
| Constraints | What if we had no [X]? What would we do? |
Document Options
For each option:
### Option A: [Name]
**Description:** [How it works]
**Diagram:**
[ASCII or reference to diagram]
**Pros:**
- [Advantage 1]
- [Advantage 2]
**Cons:**
- [Disadvantage 1]
- [Disadvantage 2]
**Fits Drivers:**
- β
Security β [Why]
- β οΈ Scalability β [Partial fit]
- β Simplicity β [Why not]
**Effort:** [T-shirt size]
**Risk:** [High/Medium/Low] β [Why]
β See references/option-exploration.md
Step 4: Evaluate Trade-offs
Trade-off Matrix
| Criterion | Weight | Option A | Option B | Option C |
|---|---|---|---|---|
| Security | 5 | 4 (20) | 5 (25) | 3 (15) |
| Scalability | 4 | 5 (20) | 3 (12) | 4 (16) |
| Simplicity | 3 | 2 (6) | 4 (12) | 5 (15) |
| Time to build | 3 | 2 (6) | 4 (12) | 5 (15) |
| Total | 52 | 61 | 61 |
Common Trade-offs
| Trade-off | Tension |
|---|---|
| Consistency vs Availability | Strong consistency requires coordination |
| Performance vs Simplicity | Optimization adds complexity |
| Flexibility vs Focus | Generic solutions are harder to optimize |
| Build vs Buy | Control vs time-to-market |
| Monolith vs Microservices | Simplicity vs scalability |
| SQL vs NoSQL | ACID vs scale/flexibility |
β See references/trade-off-analysis.md
Step 5: Make Decisions
Decision Criteria
| Factor | Consider |
|---|---|
| Driver fit | Does it address the top priorities? |
| Risk | What could go wrong? Can we mitigate? |
| Reversibility | How hard to change later? |
| Team fit | Does the team have the skills? |
| Cost | Build cost? Run cost? Opportunity cost? |
Decision Record (ADR)
Document every significant decision:
# ADR-001: [Decision Title]
## Status
Accepted | Proposed | Deprecated | Superseded
## Context
[What is the issue? What forces are at play?]
## Decision
[What is the decision? Be specific.]
## Consequences
### Positive
- [Good outcome]
### Negative
- [Trade-off accepted]
### Neutral
- [Side effect]
## Alternatives Considered
- [Option B]: Rejected because [reason]
- [Option C]: Rejected because [reason]
β See references/adr-template.md
Step 6: Document Architecture
Architecture Document Structure
# [System/Feature] Architecture
## Overview
[One paragraph summary]
## Context
[Business context, problem being solved]
## Architectural Drivers
[Prioritized list from Step 2]
## Architecture
### System Diagram
[High-level view]
### Component Diagram
[Detailed component breakdown]
### Data Flow
[How data moves through the system]
### Data Model
[Key entities and relationships]
## Key Decisions
[Summary of ADRs or link to them]
## Technology Choices
| Component | Technology | Rationale |
|-----------|------------|-----------|
| [Component] | [Tech] | [Why] |
## Integration Points
| System | Protocol | Purpose |
|--------|----------|---------|
| [System] | [Protocol] | [Purpose] |
## Security Architecture
[Authentication, authorization, data protection]
## Deployment Architecture
[Infrastructure, scaling, monitoring]
## Open Questions
[Unresolved decisions]
Diagram Types
| Diagram | Purpose | When to Use |
|---|---|---|
| Context | System and its environment | Always |
| Container | High-level components | Multi-component systems |
| Component | Internal structure | Complex components |
| Sequence | Interaction flow | Complex workflows |
| Data Flow | Data movement | Data-intensive systems |
| Deployment | Infrastructure | Production systems |
β See references/architecture-diagrams.md
Step 7: Validate
Validation Questions
- [ ] Does this address all architectural drivers?
- [ ] Are the top priorities (P0) fully addressed?
- [ ] Can this scale to expected load?
- [ ] Is security adequate for the threat model?
- [ ] Can the team build and maintain this?
- [ ] Does it fit the budget and timeline?
- [ ] Are there any single points of failure?
- [ ] Is the failure mode acceptable?
- [ ] Can this evolve with future requirements?
Architecture Review
Before finalizing, review with:
- Stakeholders β Does it meet their needs?
- Implementers β Can they build it?
- Operators β Can they run it?
- Security β Is it secure?
Output Formats
Quick Architecture (Small Features)
## Architecture: [Feature Name]
### Approach
[One paragraph description]
### Diagram
[ASCII diagram]
### Key Decisions
1. [Decision 1]: [Rationale]
2. [Decision 2]: [Rationale]
### Components
| Component | Responsibility |
|-----------|---------------|
| [Component] | [What it does] |
### Data Flow
[Step-by-step flow]
Full Architecture (Major Systems)
Use the full document structure from Step 6, with:
- All diagram types relevant to the system
- Complete ADRs for all significant decisions
- Technology rationale for all choices
- Security and deployment architecture
Common Patterns
Layered Architecture
βββββββββββββββββββββββββββββββββββββββ
β Presentation Layer β
βββββββββββββββββββββββββββββββββββββββ€
β Application Layer β
βββββββββββββββββββββββββββββββββββββββ€
β Domain Layer β
βββββββββββββββββββββββββββββββββββββββ€
β Infrastructure Layer β
βββββββββββββββββββββββββββββββββββββββ
Use when: Clear separation of concerns, traditional applications.
Event-Driven Architecture
ββββββββββββ βββββββββββ ββββββββββββ
β Producer ββββββΆβ Queue ββββββΆβ Consumer β
ββββββββββββ βββββββββββ ββββββββββββ
Use when: Async processing, decoupled systems, high scalability.
Microservices
βββββββββββ βββββββββββ βββββββββββ
βService Aβ βService Bβ βService Cβ
ββββββ¬βββββ ββββββ¬βββββ ββββββ¬βββββ
β β β
ββββββββββββββΌβββββββββββββ
β
ββββββββ΄βββββββ
β Gateway β
βββββββββββββββ
Use when: Independent scaling, team autonomy, complex domains.
CQRS
βββββββββββββββ βββββββββββββββ
β Command β β Query β
β Service β β Service β
ββββββββ¬βββββββ ββββββββ¬βββββββ
β β
βΌ βΌ
βββββββββββββββ βββββββββββββββ
βWrite DatabaseβββββββββΆβRead Databaseβ
βββββββββββββββ sync βββββββββββββββ
Use when: Read/write patterns differ significantly.
β See references/architecture-patterns.md
Relationship to Other Skills
| Skill | Relationship |
|---|---|
requirements |
Requirements drive architecture decisions |
spec |
Architecture feeds into spec's Architecture Overview section |
architecture-review |
Reviews validate architectural decisions |
frontend-design |
(Frontend systems) ARCHITECTURE.md informs UI component hierarchy |
implement |
Implementation follows architectural decisions |
code-validation |
Validates implementation matches architecture |
Key Principles
Decisions, not diagrams. Architecture is about making and documenting decisions, not drawing boxes.
Trade-offs, not best practices. Every decision has trade-offs. Document why you chose this trade-off.
Drivers, not preferences. Decisions should trace to architectural drivers, not personal preferences.
Reversibility matters. Prefer decisions that are easy to change. Be extra careful with irreversible ones.
Simple until proven otherwise. Start simple. Add complexity only when drivers demand it.
Document for the future. Future you (or someone else) needs to understand why.
References
references/architectural-drivers.md: Identifying and prioritizing driversreferences/option-exploration.md: Generating and documenting optionsreferences/trade-off-analysis.md: Evaluating trade-offs systematicallyreferences/adr-template.md: Architecture Decision Record templatereferences/architecture-diagrams.md: Diagram types and when to use themreferences/architecture-patterns.md: Common patterns and when to apply them
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.