bmad 工作流概述

bmad(Business-driven Multi-Agent Development)是 PinableAgents 为企业级项目设计的敏捷开发工作流。它模拟了一个完整的 Scrum 团队,由六个专业角色的智能体组成,覆盖从产品需求定义到代码交付审查的全流程。

bmad 的核心理念是"用流程保证质量"。在企业环境中,代码质量不仅取决于开发者的个人能力,更取决于团队协作流程的完善程度。bmad 通过标准化的角色分工、量化的评审机制和严格的门禁制度,确保每个交付物都经过充分的需求分析、架构评估、编码实现、质量验证和代码审查。

do 工作流相比,bmad 更适合涉及多个模块、需要跨团队协作、对质量要求极高的大型任务。它的流程更重,执行时间更长,但产出的可靠性和完整性也显著更高。

bmad 不是为了让流程变慢,而是为了在复杂项目中避免返工。一个经过完整 bmad 流程的功能,其上线后的缺陷率通常比快速开发低 60% 以上。

六角色智能体团队

bmad 工作流的核心是六个角色分明的智能体,每个角色对应传统 Scrum 团队中的一个关键职位。

1. Product Owner(产品负责人)

负责需求的定义、优先级排序和验收标准制定。该智能体分析用户的业务需求描述,产出结构化的 PRD(Product Requirements Document),包含用户故事、验收标准和优先级矩阵。

职责输出物
需求分析与结构化PRD 文档(含用户故事和验收标准)
优先级排序优先级矩阵(MoSCoW 分类)
范围控制MVP 范围定义和后续迭代规划

2. Architect(架构师)

负责技术方案的设计和架构决策。基于 PRD 和现有代码库的分析,产出技术设计文档,包括系统架构图、API 设计、数据模型和技术选型论证。

3. Scrum Master(流程管理者)

负责协调各角色之间的信息流转和流程推进。监控各阶段的质量门禁状态,在门禁失败时协调回溯和修复。Scrum Master 不直接产出代码或文档,但确保整个流程的效率和质量。

4. Developer(开发者)

负责根据技术设计文档编写实现代码。遵循架构师制定的技术方案和编码规范,在隔离的 Git worktree 中完成开发,确保代码变更可追溯和可回滚。

5. QA Engineer(质量工程师)

负责测试策略制定和测试执行。产出测试计划、编写自动化测试、执行回归测试,并生成测试报告。测试覆盖率要求不低于 85%。

6. Reviewer(代码审查员)

负责最终的代码质量审查。使用五维评估框架(可维护性、性能、安全性、风格一致性、向后兼容性)对整个交付物进行全面审查,产出审查报告和改进建议。

PRD 百分制评分机制

bmad 的一个核心创新是对 PRD 文档实施百分制量化评分。PRD 必须达到 80 分以上才能通过门禁进入架构设计阶段。评分维度如下:

评分维度分值评分标准
需求完整性20 分所有功能点是否有明确描述,无遗漏
验收标准明确性20 分每个用户故事是否有可验证的验收条件
边界条件覆盖15 分异常场景、边界值、权限控制是否考虑周全
优先级合理性10 分MoSCoW 分类是否合理,MVP 范围是否恰当
技术可行性15 分需求是否在现有技术栈和时间约束内可实现
非功能性要求10 分性能、安全、可用性要求是否明确
文档规范性10 分格式标准、术语一致、无歧义表述
# PRD 评分输出示例
[bmad:po] PRD 评分结果:
  需求完整性:     18/20  ✓ (缺少错误码定义,扣 2 分)
  验收标准明确性: 20/20  ✓
  边界条件覆盖:   12/15  ✓ (未覆盖并发注册场景,扣 3 分)
  优先级合理性:   10/10  ✓
  技术可行性:     13/15  ✓ (第三方支付 SDK 兼容性待验证,扣 2 分)
  非功能性要求:    8/10  ✓ (未指定响应时间 SLA,扣 2 分)
  文档规范性:      9/10  ✓
  总分: 90/100 -> 通过门禁

架构评审门禁

架构设计完成后,需要通过架构评审门禁才能进入开发阶段。评审由 Architect 智能体自评和 Reviewer 智能体交叉评审两轮组成。

评审检查清单

  • 一致性:技术方案是否与项目现有架构模式一致
  • 可扩展性:设计是否预留了合理的扩展点,但不过度设计
  • 依赖管理:新引入的依赖是否必要,是否有已知的安全漏洞
  • 数据模型:数据库 schema 变更是否向后兼容,迁移脚本是否可逆
  • API 设计:接口是否遵循 RESTful 规范,版本策略是否合理
  • 错误处理:异常路径是否有明确的处理策略

Sprint 规划流程

bmad 的 Sprint 规划由 Scrum Master 智能体主导,流程包括三个步骤:

  1. Backlog 梳理:Product Owner 整理和排序待办事项,确定 Sprint 目标
  2. 容量评估:根据任务复杂度估算 Story Points,确定 Sprint 容量
  3. 任务拆解:将用户故事拆解为可独立完成的开发任务,分配给 Developer 智能体
# 启动 Sprint 规划
pinable-agents run bmad --phase sprint-planning \
  --backlog ./backlog.md \
  --sprint-capacity 40  # Story Points 上限

# Sprint 规划输出
[bmad:sm] Sprint #12 规划完成
  Sprint 目标: 完成商品搜索和购物车核心功能
  总 Story Points: 38/40
  用户故事数: 5
  预计开发任务数: 14

实战:电商功能 Sprint 周期

以下演示使用 bmad 工作流完成一个电商项目中"商品搜索与筛选"功能的完整 Sprint 周期。

Phase 1:需求定义

pinable-agents run bmad \
  --task "实现商品搜索与筛选功能,支持关键词搜索、分类筛选、价格区间、排序" \
  --context "项目使用 Go + Gin + PostgreSQL,已有商品表 products"

Product Owner 智能体产出 PRD,包含 4 个用户故事:关键词搜索、分类筛选、价格区间过滤、结果排序。每个故事附带 3-5 条验收标准。PRD 评分 92 分,通过门禁。

Phase 2:架构设计

Architect 智能体分析现有代码后,设计了搜索服务的技术方案:使用 PostgreSQL 全文搜索而非引入 Elasticsearch(遵循 KISS 原则),新增 handlers/search.goservices/search.go,复用现有的分页中间件和响应格式。

Phase 3:开发实现

Developer 智能体在 Git worktree 中依次完成搜索服务层、HTTP 处理器、路由注册和数据库索引迁移。每完成一个文件,Scrum Master 检查是否符合架构设计的规定。

Phase 4:质量验证

QA Engineer 产出 22 个测试用例,覆盖所有验收标准和边界条件。测试覆盖率 91%,所有测试通过。

Phase 5:代码审查

Reviewer 使用五维评估框架审查全部变更,提出两个改进建议(增加搜索关键词的 XSS 过滤、优化分页查询的索引策略),Developer 修复后二次审查通过。

角色交互与信息流

bmad 的六个角色之间存在严格定义的信息流转规则。每个角色只接收来自其上游角色的产出,并将自己的产出传递给下游角色。Scrum Master 作为中枢,可以与所有角色交互。

Product Owner -> Architect -> Developer -> QA Engineer -> Reviewer
      |               |            |             |             |
      +----------- Scrum Master(全局协调)-----------+

信息流向:
  PO 产出 PRD -> Architect 接收 PRD,产出技术设计
  Architect 产出设计 -> Developer 接收设计,产出代码
  Developer 产出代码 -> QA 接收代码,产出测试报告
  QA 产出报告 -> Reviewer 接收全部产出,进行最终审查

Jira / Linear 集成

bmad 支持与主流项目管理工具的双向集成,将 Sprint 规划和任务状态同步到团队的 Jira 或 Linear 看板。

配置集成

# 在 config.json 中配置 Jira 集成
{
  "integrations": {
    "jira": {
      "url": "https://your-team.atlassian.net",
      "project": "PROJ",
      "api_token": "${JIRA_API_TOKEN}",
      "sync_mode": "bidirectional"
    }
  }
}

# 或配置 Linear 集成
{
  "integrations": {
    "linear": {
      "api_key": "${LINEAR_API_KEY}",
      "team_id": "TEAM-001",
      "sync_mode": "push"
    }
  }
}

同步内容

  • Sprint 创建:bmad 启动新 Sprint 时,自动在 Jira/Linear 中创建对应的 Sprint
  • 任务创建:每个拆解的开发任务自动创建为 Issue/Task
  • 状态同步:任务在 bmad 中的状态变更实时同步到看板
  • 验收报告:Sprint 完成后的报告自动附加到对应的 Epic

CLI 命令参考

# 完整 Sprint 流程
pinable-agents run bmad --task "任务描述"

# 仅执行特定阶段
pinable-agents run bmad --phase prd --task "任务描述"
pinable-agents run bmad --phase architecture --prd ./prd.md
pinable-agents run bmad --phase development --design ./design.md

# 配置 Sprint 参数
pinable-agents run bmad --task "任务描述" \
  --sprint-capacity 40 \
  --sprint-duration 2w \
  --quality-threshold 80

# 启用集成
pinable-agents run bmad --task "任务描述" --sync jira

最佳实践

  • 在 PRD 中尽可能详细地描述验收标准,这直接影响后续所有阶段的质量
  • 对于 MVP 版本,主动使用 MoSCoW 分类将非核心需求标记为 "Won't have"
  • 架构设计阶段不要引入不必要的复杂性,优先复用项目中已有的模式
  • 利用 Jira/Linear 集成保持团队对 AI 辅助开发进度的可见性
  • Sprint 容量不要设置过满,预留 15-20% 的缓冲应对返工和意外情况

bmad 工作流最大的价值不是速度,而是可预测性。当你的项目需要向利益相关者保证交付质量和时间线时,bmad 提供的结构化流程和量化评估是最有力的支撑。