mcpField
S
system-architect

system-architect

github.com/aj-geddes开发493802 次安装19 周前更新
代码仓库

关于 system-architect

面向系统架构师和开发团队的设计技能,可将 PRD 或技术规格转化为技术架构。它指导组件与接口设计、技术选型、非功能需求覆盖及权衡记录。

主要功能

  1. 01根据需求设计系统架构
  2. 02说明技术选型理由
  3. 03定义组件边界与接口
  4. 04制定数据模型和 API 规格
  5. 05映射非功能需求并验证架构
  6. 06提供模板与检查脚本

适用场景

  1. 01为新系统设计架构
  2. 02检查架构是否覆盖功能需求
  3. 03发现非功能需求覆盖缺口
  4. 04记录技术选型及其权衡

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill system-architect

安装后在 Claude Code 中输入/system-architect确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

REFERENCE.md
resources/
architecture-patterns.md
nfr-mapping.md
scripts/
nfr-checklist.sh
validate-architecture.sh
templates/
architecture.template.md

详细介绍

系统架构师技能

角色: 第 3 阶段——解决方案设计专家,负责设计满足所有功能和非功能需求的系统架构

功能: 将需求转化为完整的技术架构,包括合理的技术选型、组件设计和系统化的非功能需求覆盖

核心职责

  1. 根据需求(PRD/tech-spec)设计系统架构
  2. 选择适当的技术栈,并给出明确的理由
  3. 定义系统组件、边界和接口
  4. 创建数据模型和 API 规范
  5. 系统化地处理非功能需求(NFR)
  6. 确保可扩展性、安全性和可维护性
  7. 记录架构决策和权衡

核心原则

  1. 需求驱动——架构必须满足所有功能需求(FR)和非功能需求(NFR)
  2. 优先考虑非功能需求——性能、安全性和可扩展性都是首要考量
  3. 简约优先——满足需求的最简单方案就是最佳方案
  4. 松耦合——组件应相互独立且可替换
  5. 记录决策——每项重大决策都要说明“为什么”

何时使用此技能

在以下情况下启用此技能:

  • 为新项目设计系统架构
  • 选择技术栈并说明理由
  • 定义系统组件及其交互方式
  • 系统化地处理非功能需求
  • 创建数据模型和 API 规范
  • 记录架构模式和决策
  • 根据需求验证架构

关键工作流

1. 创建系统架构

触发条件: 用户请求设计架构,或提及系统设计、技术栈

步骤:

  1. 加载需求文档(PRD 或 tech-spec)
  2. 提取所有功能需求(FR)和非功能需求(NFR)
  3. 确定架构驱动因素(对设计影响较大的 NFR)
  4. 根据项目复杂度选择适当的架构模式
  5. 设计系统组件、边界和接口
  6. 创建数据模型和 API 规范
  7. 将每项 NFR 映射到具体的架构决策
  8. 记录技术栈选择及其理由
  9. 分析并记录关键权衡
  10. 生成完整的架构文档

输出: 位于 docs/architecture-{project-name}-{date}.md 的架构文档

2. 验证架构

触发条件: 用户请求验证或评审架构

步骤:

  1. 加载现有架构文档
  2. 加载需求文档(PRD 或 tech-spec)
  3. 运行验证检查:
    • 所有 FR 均由组件负责处理
    • 所有 NFR 均已映射到架构决策
    • 技术选型均有合理依据
    • 组件接口均已定义
    • 数据模型完整
    • 已记录权衡
  4. 生成包含检查结果的验证报告
  5. 针对缺口提供建议

输出: 包含通过/失败状态和建议的验证报告

3. NFR 覆盖检查

触发条件: 用户请求 NFR 检查清单或覆盖情况分析

步骤:

  1. 运行 NFR 检查清单脚本,识别所有 NFR 类别
  2. 检查架构文档中的 NFR 覆盖情况
  3. 生成覆盖矩阵,展示已处理和缺失的 NFR
  4. 针对缺口提供建议

输出: 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 中的模板:

  1. 系统概述 - 用途、范围、架构驱动因素
  2. 架构模式 - 选定的模式及其依据
  3. 组件设计 - 组件、职责、接口
  4. 数据模型 - 实体、关系、存储策略
  5. API 规范 - 端点、请求/响应格式
  6. NFR 映射 - 将每个 NFR 映射到架构决策的表格
  7. 技术栈 - 前端、后端、数据、基础设施的选择及理由
  8. 权衡分析 - 关键决策及其权衡
  9. 部署架构 - 组件的部署方式
  10. 未来考量 - 预期变化、可扩展路径

可用脚本

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

协作流程:

  1. 从 docs 目录加载 PRD 或 tech-spec
  2. 启动并行 Agent,分别分析 FR 和 NFR
  3. 主上下文根据 NFR 分析确定架构驱动因素
  4. 综合形成架构需求文档
组件设计工作流

模式: 组件并行设计 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

协调:

  1. 根据需求确定主要系统组件(通常为 4-8 个)
  2. 将共享架构上下文写入 bmad/context/architecture-scope.md
  3. 启动并行 Agent,每个 Agent 负责设计一个组件
  4. 每个 Agent 定义:职责、接口、数据模型、NFR 覆盖情况
  5. 主上下文根据组件输出创建集成架构
  6. 生成包含所有章节的完整架构文档
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

协调:

  1. 按类别提取所有 NFR
  2. 将 NFR 和组件设计写入 bmad/context/nfr-mapping-context.md
  3. 为每个 NFR 类别启动并行 Agent
  4. 每个 Agent 将 NFR 映射到具体的架构决策
  5. 主上下文汇总完整的 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

实施指南

面向使用此技能的大模型
  1. 使用 TodoWrite 跟踪架构章节(通常为 8-10 个章节)
  2. 先加载需求——设计前先阅读 PRD 或 tech-spec
  3. 提取所有 FR 和 NFR——创建完整清单,确保系统性覆盖
  4. 确定架构驱动因素——找出会对设计造成重大约束的 NFR
  5. 根据复杂度选择模式——避免过度设计
  6. 映射每个 NFR——每个 NFR 都必须有对应的具体架构决策
  7. 记录权衡——解释做出这些选择的原因
  8. 使用模板——确保文档一致且完整
  9. 从系统角度思考——组件、边界、接口和数据流
  10. 对不明确的需求提出疑问——不要自行假设
交互示例
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 规划
  • 开发者——提供实施所需的技术蓝图

成功的关键因素

  1. 完整覆盖 NFR——必须处理每个 NFR
  2. 决策有据可依——每项重大选择都要记录理由
  3. 复杂度适当——根据项目级别选择合适的模式
  4. 接口清晰——组件边界定义明确
  5. 记录权衡——了解各项选择带来的影响

资源

备注

  • 这是一个第 3 阶段技能(解决方案设计),用于衔接规划与实现
  • 良好的架构能让开发变得简单直接
  • 糟糕的架构会导致实现过程中问题不断
  • 拿不准时,选择简单的方案,而不是耍聪明
  • 记录每项重大决策背后的“原因”

评论

支持 Markdown