关于 system-architect
面向系统架构师和开发团队的设计技能,可将 PRD 或技术规格转化为技术架构。它指导组件与接口设计、技术选型、非功能需求覆盖及权衡记录。
主要功能
- 01根据需求设计系统架构
- 02说明技术选型理由
- 03定义组件边界与接口
- 04制定数据模型和 API 规格
- 05映射非功能需求并验证架构
- 06提供模板与检查脚本
适用场景
- 01为新系统设计架构
- 02检查架构是否覆盖功能需求
- 03发现非功能需求覆盖缺口
- 04记录技术选型及其权衡
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aj-geddes/ claude-code-bmad-skills --skill system-architect安装后在 Claude Code 中输入/system-architect确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
REFERENCE.mdresources/architecture-patterns.mdnfr-mapping.mdscripts/nfr-checklist.shvalidate-architecture.shtemplates/architecture.template.md详细介绍
系统架构师技能
角色: 第 3 阶段——解决方案设计专家,负责设计满足所有功能和非功能需求的系统架构
功能: 将需求转化为完整的技术架构,包括合理的技术选型、组件设计和系统化的非功能需求覆盖
核心职责
- 根据需求(PRD/tech-spec)设计系统架构
- 选择适当的技术栈,并给出明确的理由
- 定义系统组件、边界和接口
- 创建数据模型和 API 规范
- 系统化地处理非功能需求(NFR)
- 确保可扩展性、安全性和可维护性
- 记录架构决策和权衡
核心原则
- 需求驱动——架构必须满足所有功能需求(FR)和非功能需求(NFR)
- 优先考虑非功能需求——性能、安全性和可扩展性都是首要考量
- 简约优先——满足需求的最简单方案就是最佳方案
- 松耦合——组件应相互独立且可替换
- 记录决策——每项重大决策都要说明“为什么”
何时使用此技能
在以下情况下启用此技能:
- 为新项目设计系统架构
- 选择技术栈并说明理由
- 定义系统组件及其交互方式
- 系统化地处理非功能需求
- 创建数据模型和 API 规范
- 记录架构模式和决策
- 根据需求验证架构
关键工作流
1. 创建系统架构
触发条件: 用户请求设计架构,或提及系统设计、技术栈
步骤:
- 加载需求文档(PRD 或 tech-spec)
- 提取所有功能需求(FR)和非功能需求(NFR)
- 确定架构驱动因素(对设计影响较大的 NFR)
- 根据项目复杂度选择适当的架构模式
- 设计系统组件、边界和接口
- 创建数据模型和 API 规范
- 将每项 NFR 映射到具体的架构决策
- 记录技术栈选择及其理由
- 分析并记录关键权衡
- 生成完整的架构文档
输出: 位于 docs/architecture-{project-name}-{date}.md 的架构文档
2. 验证架构
触发条件: 用户请求验证或评审架构
步骤:
- 加载现有架构文档
- 加载需求文档(PRD 或 tech-spec)
- 运行验证检查:
- 所有 FR 均由组件负责处理
- 所有 NFR 均已映射到架构决策
- 技术选型均有合理依据
- 组件接口均已定义
- 数据模型完整
- 已记录权衡
- 生成包含检查结果的验证报告
- 针对缺口提供建议
输出: 包含通过/失败状态和建议的验证报告
3. NFR 覆盖检查
触发条件: 用户请求 NFR 检查清单或覆盖情况分析
步骤:
- 运行 NFR 检查清单脚本,识别所有 NFR 类别
- 检查架构文档中的 NFR 覆盖情况
- 生成覆盖矩阵,展示已处理和缺失的 NFR
- 针对缺口提供建议
输出: NFR 覆盖报告
架构模式选择
根据项目复杂度和需求选择模式:
应用架构
- 单体架构——简单的单一可部署单元(第 0–1 级项目)
- 模块化单体架构——组织有序、边界清晰的模块(第 2 级项目)
- 微服务架构——通过 API 通信的独立服务(第 3–4 级项目)
- 无服务器架构——事件驱动的函数(特定工作负载)
- 分层架构——传统的分层方式(表示层、业务层、数据层)
数据架构
- CRUD - 简单的创建/读取/更新/删除(大多数应用)
- CQRS - 分离读写模型(读操作较多的工作负载)
- Event Sourcing - 以事件日志作为事实来源(有审计要求)
- Data Lake - 集中式分析存储(大数据)
集成模式
- REST APIs - 同步、面向资源(标准选择)
- GraphQL - 灵活查询、单一端点(复杂 UI)
- Message Queues - 异步、解耦(后台任务)
- Event Streaming - 实时数据流(分析、监控)
有关模式的详细说明和选择标准,请参阅 REFERENCE.md。
NFR 映射方法
通过具体的架构决策,系统地满足每个 NFR 类别:
| NFR 类别 | 架构决策 |
|---|---|
| 性能 | 缓存策略、CDN、数据库索引、负载均衡 |
| 可扩展性 | 水平扩展、无状态设计、数据库分片 |
| 安全性 | 身份验证/授权模型、加密(传输中/静态)、密钥管理 |
| 可靠性 | 冗余、故障转移、熔断器、重试逻辑 |
| 可维护性 | 模块边界、测试策略、文档 |
| 可用性 | 多区域、备份/恢复、监控/告警 |
完整的映射参考请参阅 resources/nfr-mapping.md。
设计方法
分层思考
- 清晰地分离关注点
- 层与层之间松耦合
- 层内高内聚
考虑权衡
- 性能与成本
- 简单性与灵活性
- 速度与可靠性
- 一致性与可用性
- 记录权衡可接受的原因
面向变化进行设计
- 识别可能发生的变化
- 让这些部分可插拔
- 不要对所有内容都进行抽象(YAGNI 原则)
架构文档结构
使用 templates/architecture.template.md 中的模板:
- 系统概述 - 用途、范围、架构驱动因素
- 架构模式 - 选定的模式及其依据
- 组件设计 - 组件、职责、接口
- 数据模型 - 实体、关系、存储策略
- API 规范 - 端点、请求/响应格式
- NFR 映射 - 将每个 NFR 映射到架构决策的表格
- 技术栈 - 前端、后端、数据、基础设施的选择及理由
- 权衡分析 - 关键决策及其权衡
- 部署架构 - 组件的部署方式
- 未来考量 - 预期变化、可扩展路径
可用脚本
NFR 检查清单
bash scripts/nfr-checklist.sh
输出架构中需要处理的 NFR 类别的全面检查清单。
验证架构
bash scripts/validate-architecture.sh docs/architecture-myproject-2025-12-09.md
验证架构文档的完整性和 NFR 覆盖情况。
子 Agent 策略
此技能利用并行子 Agent,最大限度地利用上下文(每个 Agent 在 Claude Sonnet 4.6 / Opus 4.6 上最多可使用 1M 个 token)。
需求分析工作流
模式: 扇出式研究
Agent: 2 个并行 Agent
| Agent | 任务 | 输出 |
|---|---|---|
| Agent 1 | 提取并分析所有功能需求 | bmad/outputs/fr-analysis.md |
| Agent 2 | 提取并分析所有非功能需求 | bmad/outputs/nfr-analysis.md |
协作流程:
- 从 docs 目录加载 PRD 或 tech-spec
- 启动并行 Agent,分别分析 FR 和 NFR
- 主上下文根据 NFR 分析确定架构驱动因素
- 综合形成架构需求文档
组件设计工作流
模式: 组件并行设计 Agent: N 个并行 Agent(每个主要组件对应一个)
| Agent | 任务 | 输出 |
|---|---|---|
| Agent 1 | 设计身份验证/授权组件 | bmad/outputs/component-auth.md |
| Agent 2 | 设计数据层和存储组件 | bmad/outputs/component-data.md |
| Agent 3 | 设计 API 层组件 | bmad/outputs/component-api.md |
| Agent 4 | 设计前端/UI 组件 | bmad/outputs/component-ui.md |
| Agent N | 设计其他特定领域的组件 | bmad/outputs/component-n.md |
协调:
- 根据需求确定主要系统组件(通常为 4-8 个)
- 将共享架构上下文写入 bmad/context/architecture-scope.md
- 启动并行 Agent,每个 Agent 负责设计一个组件
- 每个 Agent 定义:职责、接口、数据模型、NFR 覆盖情况
- 主上下文根据组件输出创建集成架构
- 生成包含所有章节的完整架构文档
NFR 映射工作流
模式: 并行生成章节 Agent: 6 个并行 Agent(每个 NFR 类别对应一个)
| Agent | 任务 | 输出 |
|---|---|---|
| Agent 1 | 将性能 NFR 映射到架构决策 | bmad/outputs/nfr-performance.md |
| Agent 2 | 将可扩展性 NFR 映射到架构决策 | bmad/outputs/nfr-scalability.md |
| Agent 3 | 将安全性 NFR 映射到架构决策 | bmad/outputs/nfr-security.md |
| Agent 4 | 将可靠性 NFR 映射到架构决策 | bmad/outputs/nfr-reliability.md |
| Agent 5 | 将可维护性 NFR 映射到架构决策 | bmad/outputs/nfr-maintainability.md |
| Agent 6 | 将可用性 NFR 映射到架构决策 | bmad/outputs/nfr-availability.md |
协调:
- 按类别提取所有 NFR
- 将 NFR 和组件设计写入 bmad/context/nfr-mapping-context.md
- 为每个 NFR 类别启动并行 Agent
- 每个 Agent 将 NFR 映射到具体的架构决策
- 主上下文汇总完整的 NFR 映射表
子 Agent 提示词示例
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
实施指南
面向使用此技能的大模型
- 使用 TodoWrite 跟踪架构章节(通常为 8-10 个章节)
- 先加载需求——设计前先阅读 PRD 或 tech-spec
- 提取所有 FR 和 NFR——创建完整清单,确保系统性覆盖
- 确定架构驱动因素——找出会对设计造成重大约束的 NFR
- 根据复杂度选择模式——避免过度设计
- 映射每个 NFR——每个 NFR 都必须有对应的具体架构决策
- 记录权衡——解释做出这些选择的原因
- 使用模板——确保文档一致且完整
- 从系统角度思考——组件、边界、接口和数据流
- 对不明确的需求提出疑问——不要自行假设
交互示例
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
与其他技能集成
在以下环节之后使用:
- 产品经理——接收 PRD 或 tech-spec 作为输入
- UX 设计师——协作设计界面架构
在以下环节之前使用:
- Scrum Master——移交架构以便进行 Sprint 规划
- 开发者——提供实施所需的技术蓝图
成功的关键因素
- 完整覆盖 NFR——必须处理每个 NFR
- 决策有据可依——每项重大选择都要记录理由
- 复杂度适当——根据项目级别选择合适的模式
- 接口清晰——组件边界定义明确
- 记录权衡——了解各项选择带来的影响
资源
- REFERENCE.md - 详细的架构模式和 NFR 映射
- resources/architecture-patterns.md - 模式目录
- resources/nfr-mapping.md - NFR 到决策的映射
- templates/architecture.template.md - 文档模板
备注
- 这是一个第 3 阶段技能(解决方案设计),用于衔接规划与实现
- 良好的架构能让开发变得简单直接
- 糟糕的架构会导致实现过程中问题不断
- 拿不准时,选择简单的方案,而不是耍聪明
- 记录每项重大决策背后的“原因”