bmad-skills/system-architect/SKILL.md
Designs system architecture, selects tech stacks, defines components and interfaces, addresses non-functional requirements. Trigger words - architecture, system design, tech stack, components, scalability, security, API design, data model, NFR, patterns, microservices, monolith
npx skillsauth add aj-geddes/claude-code-bmad-skills system-architectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Role: Phase 3 - Solutioning specialist who designs system architecture that meets all functional and non-functional requirements
Function: Transform requirements into a complete technical architecture with justified technology choices, component design, and systematic NFR coverage
Activate this skill when you need to:
Trigger: User requests architecture design or mentions system design, tech stack
Steps:
Output: Architecture document at docs/architecture-{project-name}-{date}.md
Trigger: User requests architecture validation or review
Steps:
Output: Validation report with pass/fail status and recommendations
Trigger: User requests NFR checklist or coverage analysis
Steps:
Output: NFR coverage report
Choose patterns based on project complexity and requirements:
See REFERENCE.md for detailed pattern descriptions and selection criteria.
Systematically address each NFR category with specific architectural decisions:
| NFR Category | Architecture Decisions | |--------------|----------------------| | Performance | Caching strategy, CDN, database indexing, load balancing | | Scalability | Horizontal scaling, stateless design, database sharding | | Security | Auth/authz model, encryption (transit/rest), secret management | | Reliability | Redundancy, failover, circuit breakers, retry logic | | Maintainability | Module boundaries, testing strategy, documentation | | Availability | Multi-region, backup/restore, monitoring/alerting |
See resources/nfr-mapping.md for complete mapping reference.
Use the template at templates/architecture.template.md:
bash scripts/nfr-checklist.sh
Outputs comprehensive checklist of NFR categories to address in architecture.
bash scripts/validate-architecture.sh docs/architecture-myproject-2025-12-09.md
Validates architecture document for completeness and NFR coverage.
This skill leverages parallel subagents to maximize context utilization (each agent has up to 1M tokens on Claude Sonnet 4.6 / Opus 4.6).
Pattern: Fan-Out Research Agents: 2 parallel agents
| Agent | Task | Output | |-------|------|--------| | Agent 1 | Extract and analyze all Functional Requirements | bmad/outputs/fr-analysis.md | | Agent 2 | Extract and analyze all Non-Functional Requirements | bmad/outputs/nfr-analysis.md |
Coordination:
Pattern: Component Parallel Design Agents: N parallel agents (one per major component)
| Agent | Task | Output | |-------|------|--------| | Agent 1 | Design Authentication/Authorization component | bmad/outputs/component-auth.md | | Agent 2 | Design Data Layer and storage component | bmad/outputs/component-data.md | | Agent 3 | Design API Layer component | bmad/outputs/component-api.md | | Agent 4 | Design Frontend/UI component | bmad/outputs/component-ui.md | | Agent N | Design additional domain-specific components | bmad/outputs/component-n.md |
Coordination:
Pattern: Parallel Section Generation Agents: 6 parallel agents (one per NFR category)
| Agent | Task | Output | |-------|------|--------| | Agent 1 | Map Performance NFRs to architectural decisions | bmad/outputs/nfr-performance.md | | Agent 2 | Map Scalability NFRs to architectural decisions | bmad/outputs/nfr-scalability.md | | Agent 3 | Map Security NFRs to architectural decisions | bmad/outputs/nfr-security.md | | Agent 4 | Map Reliability NFRs to architectural decisions | bmad/outputs/nfr-reliability.md | | Agent 5 | Map Maintainability NFRs to architectural decisions | bmad/outputs/nfr-maintainability.md | | Agent 6 | Map Availability NFRs to architectural decisions | bmad/outputs/nfr-availability.md |
Coordination:
Task: Design API Layer component for e-commerce system
Context: Read bmad/context/architecture-scope.md for requirements and scope
Objective: Design comprehensive API layer with endpoints, patterns, and NFR coverage
Output: Write to bmad/outputs/component-api.md
Deliverables:
1. Component responsibilities and boundaries
2. API endpoint specifications (REST/GraphQL)
3. Authentication and authorization approach
4. Request/response formats and validation
5. Error handling strategy
6. Rate limiting and caching approach
7. How this component addresses relevant NFRs (performance, security, scalability)
Constraints:
- Must satisfy all API-related functional requirements
- Must address NFR-002 (200ms response time), NFR-005 (10K concurrent users)
- Follow RESTful design principles
- Include versioning strategy
User: Design the system architecture for our e-commerce platform
System Architect:
I'll design a system architecture for your e-commerce platform. Let me start by
loading the requirements document.
[Loads PRD from docs/prd-ecommerce-*.md]
I've found your requirements:
- 18 Functional Requirements (10 critical)
- 8 Non-Functional Requirements
Key architectural drivers identified:
- NFR-001: 99.9% availability (requires redundancy and failover)
- NFR-002: <200ms API response time (requires caching strategy)
- NFR-003: Support 50,000 concurrent users (requires horizontal scaling)
- NFR-005: PCI DSS compliance (affects payment processing architecture)
[Creates todo list for architecture sections]
Based on Level 2 complexity and requirements, I'm recommending a Modular Monolith
pattern with clear module boundaries that can later evolve to microservices if needed.
[Proceeds with systematic architecture design...]
[After completion]
Architecture Complete!
Summary:
- Pattern: Modular Monolith with service layer
- Components: 7 core modules (User, Product, Cart, Order, Payment, Inventory, Notification)
- Tech Stack: React + Node.js/Express + PostgreSQL + Redis + AWS
- FRs Addressed: 18/18 (100%)
- NFRs Addressed: 8/8 (100%)
Document: docs/architecture-ecommerce-2025-12-09.md
Key decisions:
1. Modular monolith allows team independence while keeping deployment simple
2. PostgreSQL for transactions, Redis for caching (addresses NFR-002)
3. Horizontal scaling with load balancer (addresses NFR-003)
4. Payment gateway integration (PCI compliance without storing card data - NFR-005)
Recommended next step: Review architecture document and validate with stakeholders
Works After:
Works Before:
testing
Solutioning-phase UX planning skill (optional; activate when the project has a UI). Produces TWO planning documents: DESIGN.md (the visual system — design tokens, color palette, typography, spacing, component specs, WCAG 2.1 AA contract) and EXPERIENCE.md (user journeys, flow diagrams, screen states, error/empty/loading handling). Use when the user says "design the UX", "create UX planning docs", "define the design system", "map the user flows", "UX for this feature", "wireframe the flows", "what are the user journeys", "accessibility design", "WCAG compliance", "design tokens", "responsive design plan", "mobile-first design", or "create DESIGN.md / EXPERIENCE.md". Runs after architecture is drafted and before stories are created. Supports Create / Update / Validate intents.
testing
Quick Flow lightweight technical specification for small-scope work (1-15 stories). Replaces the full PRD + architecture pair when scope is small and requirements are clear. Produces bmad-output/tech-spec.md as the single planning artifact before story creation. Use when the user says: "write a tech spec", "create a technical specification", "I need a tech spec for this feature", "quick spec", "small project spec", "we don't need a full PRD", "just a tech spec", "spec out this change", "document this feature". QUICK FLOW TRACK ONLY (1-15 stories). If scope grows beyond ~15 stories or involves multiple teams / external integrations at scale, stop and redirect to bmad-prd + bmad-architecture instead — those skills are built for that complexity. Supports three intents: Create (new spec), Update (revise an existing tech-spec.md), Validate (review a draft for completeness against BMAD criteria).
tools
Orchestration handoff bridge: emits and maintains sprint-status.yaml as the project's sequencing system-of-record. Orders stories by epic then dependency, assigns parallel-set (wave) membership, and drives the status lifecycle (backlog → ready-for-dev → in-progress → review → done) as a view — never as a metric. Use when the user says "sequence the stories", "build the sprint status", "plan the waves", "create sprint-status.yaml", "assign parallel sets", "order stories by dependency", "what can run in parallel", "set up story sequencing", "initialize sprint tracking", "ready the backlog", or "prepare for dev handoff". Also triggers on "sprint planning" when the project already has epics defined. SCOPE: SEQUENCING AND ORCHESTRATION ONLY. No velocity, no burndown, no committed points, no coverage metrics. Capacity is expressed as wave width (concurrent story count), not points. The final artifact is a ready-for-dev handoff manifest; implementation is delegated to external dev tools.
development
Distills ANY messy input — brain dump, transcript, long PRD, stakeholder notes, feature request, voice memo — into a tight five-field SPEC.md kernel that any downstream planning skill can consume. The five fields are: Problem, Capabilities, Constraints, Non-Goals, Success Metrics. Use when the user says "create a spec", "write a spec for", "distill this into a spec", "I have a brain dump", "turn this into something structured", "clean up these notes", "make a SPEC from", "I want to define the problem", "help me scope this", "summarize what we're building", "I have a PRD but need a kernel", "what are we actually solving?", or drops raw text/transcript and asks for structure. Also use when starting any new initiative and a clean shared definition is missing.