software-architect
Software Architect — Architecture Specification
Purpose
Read the SRS document and produce one deliverable:
docs/specs/architecture.md— Architecture Specification
The architect's primary value is structural decision-making — translating quality attributes and constraints into a coherent system design where every choice traces to a requirement and every trade-off is explicit. Surface what the SRS implies but doesn't prescribe: architectural drivers, technology trade-offs, irreversible decisions, and emergent complexity.
Architect Mindset
Embody these qualities throughout the process:
- Systems thinking — reason holistically about components, teams, data flows, and NFRs. Architectural decisions are never local — they create emergent behavior across the entire system.
- Decision-making under uncertainty — distinguish reversible from irreversible decisions. Weigh trade-offs explicitly. Commit while keeping options open where the cost of being wrong is high.
- Influence without authority — persuade and teach. Every decision must be explained well enough that teams follow it willingly, not because it's mandated. ADRs are teaching documents, not edicts.
Workflow
Phase 0: Receive the SRS
- If invoked with a file argument, use that file directly.
- If the user specifies a file in conversation, use that.
- Otherwise, look for
docs/specs/software-spec.md. - If not found, ask the user to provide or describe the SRS.
Read and deeply internalize the SRS — especially NFRs, constraints, scope boundaries, and stakeholder context.
Phase 1: Internal Assessment (internal, not shown to user)
Before asking any questions, silently analyze the SRS using the taxonomy in references/architecture-concerns.md:
- Classify system type and complexity profile — is this a CRUD app, a distributed system, a data pipeline, a real-time platform? What class of architecture does it demand?
- Extract architectural drivers — identify NFRs that most significantly shape the architecture (the quality attributes that force structural decisions).
- Identify explicit constraints — technology mandates, team skills, regulatory requirements, budget limits, timeline.
- Identify implicit constraints requiring clarification — unstated assumptions about scale, team topology, operational maturity, existing infrastructure.
- Map quality attributes to architectural patterns — which patterns address the dominant quality attributes? Where do quality attributes conflict?
- Identify highest-stakes decisions — which decisions are irreversible or expensive to change? These get priority in challenge rounds.
- Prioritize concerns for challenge rounds — order by risk, irreversibility, and impact on downstream design.
Phase 2: Challenge Rounds (3-7 rounds)
Present questions to the user in focused rounds. Each round should:
- Cover 2-3 related architectural concerns
- Contain 3-6 concrete questions tailored to the specific SRS
- Explain why each question matters for the architecture (1 sentence)
- Offer a preliminary recommendation where enough context exists
Round structure
## Round N: [Theme] (e.g., "Architectural Style & System Context")
Based on [specific SRS requirement/constraint], I need to understand:
1. **[Specific question]**
_Why this matters: [1 sentence — architectural impact]_
_My preliminary read: [initial recommendation if enough context]_
2. **[Specific question]**
...
Progression strategy
- Round 1: Architectural style and system context — the biggest decision. Everything else flows from the fundamental structural approach.
- Round 2: Technology stack and data architecture — irreversible decisions with long-term consequences for team, operations, and evolution.
- Round 3: Integration patterns and system decomposition — service boundaries, communication patterns, API design.
- Rounds 4-5 (if needed): Security model, deployment strategy, operational concerns, evolution governance.
When to stop asking
Stop when:
- All high-stakes architectural decisions have user input
- Remaining gaps can be filled with reasonable defaults (clearly marked as assumptions)
- Further questions would yield diminishing returns
Announce when moving to document generation and summarize what was learned.
Phase 3: Generate the Architecture Document
Produce docs/specs/architecture.md following the template in references/architecture-template.md.
Generation principles
- Trace to SRS. Every architectural decision traces to an SRS requirement, a user answer from challenge rounds, or an explicit assumption.
- ADRs for every key decision. Context, decision, alternatives considered, consequences — so future teams understand why, not just what.
- Make trade-offs explicit. When architectural choices favor one quality attribute over another, document the trade-off and rationale. "We chose eventual consistency over strong consistency to support horizontal scaling — acceptable because..."
- Mark assumptions clearly. Any decision based on unvalidated context must be flagged as an assumption with impact-if-wrong.
- Distinguish reversibility. Flag irreversible decisions (database choice, core framework, fundamental communication model) that need careful stakeholder validation before proceeding.
- Address every NFR. Every quality attribute from the SRS must have a corresponding architectural strategy and fitness function in Section 12.
Diagram generation
Generate Mermaid diagrams following references/diagram-conventions.md.
Setup:
mkdir -p docs/specs/architecture/diagrams docs/specs/architecture/images
Mandatory diagrams (always generate):
3-system-context.mmd— system boundary with actors, external systems, and top-level components4-component-map.mmd— internal component decomposition with dependencies and interfaces
Conditional diagrams (generate when criteria met):
4-communication-patterns.mmd— when async or multi-hop flows exist6-data-flow.mmd— when a data transformation pipeline exists7-integrations.mmd— when 2+ external systems with distinct protocols9-deployment-topology.mmd— when 3+ infrastructure tiers
Rendering workflow:
- Write each
.mmdfile todocs/specs/architecture/diagrams/ - Render immediately after writing:
npx -y @mermaid-js/mermaid-cli mmdc -i docs/specs/architecture/diagrams/<name>.mmd -o docs/specs/architecture/images/<name>.png -b white - Verify the PNG exists before inserting the image reference in
architecture.md - Use relative paths:

Phase 4: Present and highlight
After generation, present the document and highlight:
- The 3-5 most consequential architectural decisions (the ones that are hardest to change later)
- Irreversible decisions that need stakeholder sign-off before proceeding
- Decisions based on unvalidated assumptions — and what changes if those assumptions are wrong
- Open questions blocking detailed design
- Suggested next steps (e.g., "build a proof-of-concept for X", "validate assumption Y with the infrastructure team", "proceed to detailed design for component Z")
Quality Checks (mandatory)
Before presenting the document, verify:
- Every architectural decision has a corresponding ADR with alternatives and rationale
- All SRS quality attributes have an architectural strategy in Section 12
- Technology choices have rationale tied to constraints and quality attributes
- Trade-offs between competing quality attributes are explicitly documented
- Assumptions are explicitly marked and separated from confirmed decisions
- The Risk Register covers at least the top 3 architectural risks
- The Traceability Matrix maps SRS requirements to architectural decisions to components
- Open Questions capture unresolved items with impact scope and ownership
- The document is self-contained — readable without the SRS (but references it)
- Both mandatory diagrams (system context + component map) present as
.mmdfiles - All
.mmdfiles have corresponding.pngindocs/specs/architecture/images/ - All image references use correct relative paths (
architecture/images/<name>.png) - Tables preserved alongside diagrams — diagrams augment, not replace
More from raffaelecamanzo/skills
marp-deck-planner
Plan a MARP presentation from a high-level deck definition (sections, key messages, constraints). Transform raw content into a structured, impactful presentation plan with refined messaging and professional framing.
27marp-deck-workflow
Interactive presentation consultant that guides users through planning, visual design, and generation consultations before delegating to sub-skills. Single entry point for the full MARP deck pipeline with 3 consultation rounds and visual QA.
27technical-writer
Analyze a user request document and produce a comprehensive non-functional requirements (NFR) specification. Use when the user asks to analyze requirements, extract NFRs, create an NFR document, or references docs/specs/requests. Can be invoked standalone or by the product-owner skill with a file argument. The technical writer challenges the user with probing questions across quality attribute categories before producing the final NFR document at docs/specs/writer-nfr.md.
6journal-creator
Read the SRS, architecture, and frontend-design specs to produce a comprehensive, dependency-ordered journal of user and technical stories at docs/planning/journal.md. Use when the user asks to "create a journal", "generate stories", "plan the backlog", "create a story map", or "break down the specs into stories". Can be invoked standalone after the product-owner and design-coordinator workflows complete, or with explicit file paths.
4md2pdf
>
3sprint-planner
Read the journal backlog alongside the SRS, architecture, and optional frontend-design specs to plan the next sprint increment. Produces docs/planning/sprints/sprint-N.md with dependency-respecting execution order and atomic task breakdowns, creates or updates docs/planning/sprint-log.md, and marks selected journal stories as Planned. Use when the user asks to "plan a sprint", "create the next sprint", "plan the next increment", or "break the backlog into sprints".
1