/architect
System architect for scalable technical designs and ADRs. Use for system architecture, microservices, database design, trade-off analysis, component diagrams, tech selection.
$ npx -y skills add anton-abyzov/specweave --skill architect --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/architect
Context preview
The summary Claude sees to decide when to auto-load this skill.
System architect for scalable technical designs and ADRs. Use for system architecture, microservices, database design, trade-off analysis, component diagrams, tech selection.
SKILL.md
architect.SKILL.mddescription: System architect for scalable technical designs and ADRs. Use for system architecture, microservices, database design, trade-off analysis, component diagrams, tech selection.
version: 1.0.0
context: fork
model: opus
Architect
Tool-Use Rationale
- **Read**: Load the increment's `spec.md`, existing ADRs under `.specweave/docs/internal/architecture/adr/`, and any living-docs referenced by the spec.
- **Glob**: Discover repo layout, existing services, and interface files that inform component boundaries.
- **Grep**: Locate existing types, APIs, and data models so the plan builds on reality instead of reinventing.
- **Write**: Produce `plan.md` and new ADR files where design decisions warrant a record.
Project Overrides
**Skill Memories**: If `.specweave/skill-memories/architect.md` exists, read and apply its learnings.
Design Approach
Design system architecture with focus on:
1. **ADRs** — Write Architecture Decision Records in `.specweave/docs/internal/architecture/adr/` 2. **Component design** — Define boundaries, APIs, data flow 3. **Trade-off analysis** — Evaluate options with clear pros/cons 4. **Technology selection** — Choose stack based on project constraints
Key Architectural Patterns
Code Mode for API-Heavy Services (ADR-0140)
When a service exposes 50+ API endpoints to AI agents, avoid exposing each as a separate MCP tool. Instead, use the **Code Mode pattern**: expose a typed schema (OpenAPI/JSON Schema) and let the agent write code to discover and call endpoints. This follows Cloudflare's proven approach (2,500+ endpoints → 2 tools, 99.9% token reduction) and SpecWeave's own "Code First, Tools Second" architecture.
**Apply when**: designing agent-facing APIs, MCP servers, or any system where AI agents consume a large surface area.
**Reference**: ADR-0140 (Code Execution Over Direct MCP Tool Calls) in `.specweave/docs/internal/architecture/adr/`
Markdown Preview Guidelines
When presenting **2+ architectural approaches** for the user to choose between, use `AskUserQuestion` with the `markdown` preview field to show ASCII diagrams. This lets the user visually compare structural trade-offs in a side-by-side panel.
**When to use**: Any decision point with 2+ options that have structural differences (service layout, schema design, component boundaries, data flow).
**When NOT to use**: Simple yes/no questions, single-option confirmations, or text-only trade-offs without structural implications.
Example 1: Service Architecture Decision (Box Diagrams)
AskUserQuestion({
questions: [{
question: "Which service architecture should we use for the payment system?",
header: "Architecture",
multiSelect: false,
options: [
{
label: "Gateway Pattern (Recommended)",
description: "Single API gateway routes to microservices. Centralized auth, rate limiting.",
markdown: "┌─────────────┐ ┌─────────────┐\n│ Frontend │────►│ API Gateway │\n│ (Next.js) │ │ (Workers) │\n└─────────────┘ └──────┬──────┘\n ┌────┴────┐\n ┌─────▼───┐ ┌───▼───────┐\n │ Payment │ │ Billing │\n │ Service │ │ Service │\n └─────────┘ └───────────┘"
},
{
label: "Direct Service Mesh",
description: "Services communicate directly via mesh. More resilient but complex.",
markdown: "┌─────────────┐ ┌───────────┐\n│ Frontend │────►│ Payment │\n│ (Next.js) │ ┌─►│ Service │\n└──────┬──────┘ │ └─────┬─────┘\n │ │ │\n │ ┌────┴────┐ │\n └───►│ Billing │◄──┘\n │ Service │\n └─────────┘"
}
]
}]
})Example 2: Database Schema Decision (ASCII Tables)
AskUserQuestion({
questions: [{
question: "Which schema design should we use for user sessions?",
header: "Schema",
multiSelect: false,
options: [
{
label: "Normalized (Recommended)",
description: "Separate tables with foreign keys. Strict integrity, standard JOINs.",
markdown: "users sessions\n──────────────── ────────────────────\nid UUID PK id UUID PK\nemail TEXT UNIQUE user_id UUID FK ──► users.id\nname TEXT token TEXT UNIQUE\n expires TIMESTAMP\n\nIndexes: users(email), sessions(token, user_id)"
},
{
label: "Denormalized",
description: "Single table with embedded session data. Faster reads, no JOINs.",
markdown: "user_sessions\n──────────────────────────────\nid UUID PK\nemail TEXT UNIQUE\nname TEXT\nsession_token TEXT UNIQUE\nsession_exp TIMESTAMP\nmetadata JSONB\n\nIndexes: user_sessions(email, session_token)"
}
]
}]
})Project Field (Mandatory on Every Component)
Every component/module block in plan.md MUST include `**Project**: <repo-id>`. This is unconditionally required — no conditional guards based on workspace size or flags.
- **Multi-repo**: Each component specifies which repo owns it via `**Project**:`
- **Single-repo**: All components get `**Project**: <workspace.name>`
Delegation
After architecture is ready, delegate to domain skills:
- Frontend: `sw:architect` (implement UI directly)
- Backend: `sw:architect` (implement API/services directly)
Output: `plan.md` with architecture decisions and component breakdown.
Resources
- [Official Documentation](https://verified-skill.com/docs/reference/skills#architect)
Read more
description: System architect for scalable technical designs and ADRs. Use for system architecture, microservices, database design, trade-off analysis, component diagrams, tech selection. version: 1.0.0 context: fork model: opus
Architect
Tool-Use Rationale
- **Read**: Load the increment's `spec.md`, existing ADRs under `.specweave/docs/internal/architecture/adr/`, and any living-docs referenced by the spec.
- **Glob**: Discover repo layout, existing services, and interface files that inform component boundaries.
- **Grep**: Locate existing types, APIs, and data models so the plan builds on reality instead of reinventing.
- **Write**: Produce `plan.md` and new ADR files where design decisions warrant a record.
Project Overrides
**Skill Memories**: If `.specweave/skill-memories/architect.md` exists, read and apply its learnings.
Design Approach
Design system architecture with focus on:
1. **ADRs** — Write Architecture Decision Records in `.specweave/docs/internal/architecture/adr/` 2. **Component design** — Define boundaries, APIs, data flow 3. **Trade-off analysis** — Evaluate options with clear pros/cons 4. **Technology selection** — Choose stack based on project constraints
Key Architectural Patterns
Code Mode for API-Heavy Services (ADR-0140)
When a service exposes 50+ API endpoints to AI agents, avoid exposing each as a separate MCP tool. Instead, use the **Code Mode pattern**: expose a typed schema (OpenAPI/JSON Schema) and let the agent write code to discover and call endpoints. This follows Cloudflare's proven approach (2,500+ endpoints → 2 tools, 99.9% token reduction) and SpecWeave's own "Code First, Tools Second" architecture.
**Apply when**: designing agent-facing APIs, MCP servers, or any system where AI agents consume a large surface area.
**Reference**: ADR-0140 (Code Execution Over Direct MCP Tool Calls) in `.specweave/docs/internal/architecture/adr/`
Markdown Preview Guidelines
When presenting **2+ architectural approaches** for the user to choose between, use `AskUserQuestion` with the `markdown` preview field to show ASCII diagrams. This lets the user visually compare structural trade-offs in a side-by-side panel.
**When to use**: Any decision point with 2+ options that have structural differences (service layout, schema design, component boundaries, data flow).
**When NOT to use**: Simple yes/no questions, single-option confirmations, or text-only trade-offs without structural implications.
Example 1: Service Architecture Decision (Box Diagrams)
AskUserQuestion({
questions: [{
question: "Which service architecture should we use for the payment system?",
header: "Architecture",
multiSelect: false,
options: [
{
label: "Gateway Pattern (Recommended)",
description: "Single API gateway routes to microservices. Centralized auth, rate limiting.",
markdown: "┌─────────────┐ ┌─────────────┐\n│ Frontend │────►│ API Gateway │\n│ (Next.js) │ │ (Workers) │\n└─────────────┘ └──────┬──────┘\n ┌────┴────┐\n ┌─────▼───┐ ┌───▼───────┐\n │ Payment │ │ Billing │\n │ Service │ │ Service │\n └─────────┘ └───────────┘"
},
{
label: "Direct Service Mesh",
description: "Services communicate directly via mesh. More resilient but complex.",
markdown: "┌─────────────┐ ┌───────────┐\n│ Frontend │────►│ Payment │\n│ (Next.js) │ ┌─►│ Service │\n└──────┬──────┘ │ └─────┬─────┘\n │ │ │\n │ ┌────┴────┐ │\n └───►│ Billing │◄──┘\n │ Service │\n └─────────┘"
}
]
}]
})Example 2: Database Schema Decision (ASCII Tables)
AskUserQuestion({
questions: [{
question: "Which schema design should we use for user sessions?",
header: "Schema",
multiSelect: false,
options: [
{
label: "Normalized (Recommended)",
description: "Separate tables with foreign keys. Strict integrity, standard JOINs.",
markdown: "users sessions\n──────────────── ────────────────────\nid UUID PK id UUID PK\nemail TEXT UNIQUE user_id UUID FK ──► users.id\nname TEXT token TEXT UNIQUE\n expires TIMESTAMP\n\nIndexes: users(email), sessions(token, user_id)"
},
{
label: "Denormalized",
description: "Single table with embedded session data. Faster reads, no JOINs.",
markdown: "user_sessions\n──────────────────────────────\nid UUID PK\nemail TEXT UNIQUE\nname TEXT\nsession_token TEXT UNIQUE\nsession_exp TIMESTAMP\nmetadata JSONB\n\nIndexes: user_sessions(email, session_token)"
}
]
}]
})Project Field (Mandatory on Every Component)
Every component/module block in plan.md MUST include `**Project**: <repo-id>`. This is unconditionally required — no conditional guards based on workspace size or flags.
- **Multi-repo**: Each component specifies which repo owns it via `**Project**:`
- **Single-repo**: All components get `**Project**: <workspace.name>`
Delegation
After architecture is ready, delegate to domain skills:
- Frontend: `sw:architect` (implement UI directly)
- Backend: `sw:architect` (implement API/services directly)
Output: `plan.md` with architecture decisions and component breakdown.
Resources
- [Official Documentation](https://verified-skill.com/docs/reference/skills#architect)
Spec-first AI development: describe a feature → AI creates spec + plan + tasks, builds autonomously, syncs to GitHub/JIRA. Domain-expert skills for PM, Architect, Frontend, QA learn your patterns permanently. Claude Code, Codex, Cursor, Copilot & more.
Repo: anton-abyzov/specweave
Other skills on specweave.
- /ado-mapper
Bidirectional conversion between SpecWeave increments and Azure DevOps work items. Use when exporting increments to ADO epics, importing ADO epics as increments, or resolving sync conflicts. Handles Epic/Feature/User Story/Task hierarchy mapping.
Open skill - /ado-multi-project
[DEPRECATED] Use `sw:multi-project --tool ado` instead. Organizes specs and tasks across multiple Azure DevOps projects. This skill will be removed in SpecWeave v1.3.0.
Open skill - /ado-resource-validator
Validates Azure DevOps projects, area paths, and teams exist with auto-creation of missing resources. Use when setting up ADO integration, configuring .env variables, or troubleshooting missing project errors. Supports project-per-team, area-path-based, and team-based strategies.
Open skill - /ado-sync
[DEPRECATED] Help and guidance for Azure DevOps synchronization with SpecWeave increments. Use when asking how to set up ADO sync, configure credentials, or troubleshoot integration issues. For actual syncing, use sw-ado:push or sw-ado:pull command.
Open skill - /analytics
Analytics and metrics for SpecWeave usage — token consumption, cache efficiency, agent spawn counts.
Open skill - /auto
Start autonomous execution with stop hook feedback loop. Works until all tasks complete or max iterations reached. Use when you want continuous unattended execution.
Open skill

