BMAD-METHOD/bmad-core/workflows/greenfield-service.yaml

208 lines
7.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# <!-- 由 BMAD™ 核心驱动 -->
workflow:
id: greenfield-service
name: 绿地服务/API 开发
description: >-
用于从概念到开发构建后端服务的代理工作流程。
支持复杂服务的全面规划和简单 API 的快速原型设计。
type: greenfield
project_types:
- rest-api
- graphql-api
- microservice
- backend-service
- api-prototype
- simple-service
sequence:
- agent: analyst
creates: project-brief.md
optional_steps:
- brainstorming_session
- market_research_prompt
notes: "可以先进行头脑风暴,然后在创建项目简报之前进行可选的深入研究。保存输出:将最终的 project-brief.md 复制到您项目的 docs/ 文件夹中。"
- agent: pm
creates: prd.md
requires: project-brief.md
notes: "根据项目简报使用 prd-tmpl 创建 PRD专注于 API/服务需求。保存输出:将最终的 prd.md 复制到您项目的 docs/ 文件夹中。"
- agent: architect
creates: architecture.md
requires: prd.md
optional_steps:
- technical_research_prompt
notes: "使用 architecture-tmpl 创建后端/服务架构。可能会建议更改 PRD 故事或添加新故事。保存输出:将最终的 architecture.md 复制到您项目的 docs/ 文件夹中。"
- agent: pm
updates: prd.md (if needed)
requires: architecture.md
condition: architecture_suggests_prd_changes
notes: "如果架构师建议更改故事,请更新 PRD 并将完整的、未经删节的 prd.md 重新导出到 docs/ 文件夹。"
- agent: po
validates: all_artifacts
uses: po-master-checklist
notes: "验证所有文档的一致性和完整性。可能需要更新任何文档。"
- agent: various
updates: any_flagged_documents
condition: po_checklist_issues
notes: "如果 PO 发现问题,请返回相关代理进行修复,并将更新后的文档重新导出到 docs/ 文件夹。"
- agent: po
action: shard_documents
creates: sharded_docs
requires: all_artifacts_in_project
notes: |
为 IDE 开发分片文档:
- 选项 A使用 PO 代理分片:@po 然后要求分片 docs/prd.md
- 选项 B手动将 shard-doc 任务 + docs/prd.md 拖到聊天中
- 创建包含分片内容的 docs/prd/ 和 docs/architecture/ 文件夹
- agent: sm
action: create_story
creates: story.md
requires: sharded_docs
repeats: for_each_epic
notes: |
故事创建周期:
- SM 代理(新聊天):@sm → *create
- 从分片文档创建下一个故事
- 故事以“草稿”状态开始
- agent: analyst/pm
action: review_draft_story
updates: story.md
requires: story.md
optional: true
condition: user_wants_story_review
notes: |
可选:审查并批准故事草稿
- 注意story-review 任务即将推出
- 审查故事的完整性和一致性
- 更新故事状态:草稿 → 已批准
- agent: dev
action: implement_story
creates: implementation_files
requires: story.md
notes: |
开发代理(新聊天):@dev
- 实施已批准的故事
- 使用所有更改更新文件列表
- 完成后将故事标记为“审查”
- agent: qa
action: review_implementation
updates: implementation_files
requires: implementation_files
optional: true
notes: |
可选QA 代理(新聊天):@qa → review-story
- 具有重构能力的高级开发人员审查
- 直接修复小问题
- 为剩余项目留下清单
- 更新故事状态(审查 → 完成或保持审查)
- agent: dev
action: address_qa_feedback
updates: implementation_files
condition: qa_left_unchecked_items
notes: |
如果 QA 留下未检查的项目:
- 开发代理(新聊天):处理剩余项目
- 返回 QA 进行最终批准
- repeat_development_cycle:
action: continue_for_all_stories
notes: |
对所有史诗故事重复故事周期SM → 开发 → QA
继续直到 PRD 中的所有故事都完成
- agent: po
action: epic_retrospective
creates: epic-retrospective.md
condition: epic_complete
optional: true
notes: |
可选:史诗完成后
- 注意epic-retrospective 任务即将推出
- 验证史诗是否正确完成
- 记录经验教训和改进
- workflow_end:
action: project_complete
notes: |
所有故事都已实施和审查!
服务开发阶段完成。
参考:{root}/data/bmad-kb.md#IDE Development Workflow
flow_diagram: |
```mermaid
graph TD
A[开始:服务开发] --> B[分析师project-brief.md]
B --> C[项目经理prd.md]
C --> D[架构师architecture.md]
D --> E{架构师建议更改 PRD}
E -->|是| F[项目经理:更新 prd.md]
E -->|否| G[产品负责人:验证所有工件]
F --> G
G --> H{产品负责人发现问题?}
H -->|是| I[返回相关代理进行修复]
H -->|否| J[产品负责人:分片文档]
I --> G
J --> K[Scrum Master创建故事]
K --> L{审查故事草稿?}
L -->|是| M[分析师/项目经理:审查并批准故事]
L -->|否| N[开发人员:实施故事]
M --> N
N --> O{QA 审查?}
O -->|是| P[QA审查实施]
O -->|否| Q{更多故事?}
P --> R{QA 发现问题?}
R -->|是| S[开发人员:处理 QA 反馈]
R -->|否| Q
S --> P
Q -->|是| K
Q -->|否| T{史诗回顾?}
T -->|是| U[产品负责人:史诗回顾]
T -->|否| V[项目完成]
U --> V
B -.-> B1[可选:头脑风暴]
B -.-> B2[可选:市场研究]
D -.-> D1[可选:技术研究]
style V fill:#90EE90
style J fill:#ADD8E6
style K fill:#ADD8E6
style N fill:#ADD8E6
style B fill:#FFE4B5
style C fill:#FFE4B5
style D fill:#FFE4B5
style M fill:#F0E68C
style P fill:#F0E68C
style U fill:#F0E68C
```
decision_guidance:
when_to_use:
- 构建生产 API 或微服务
- 多个端点和复杂的业务逻辑
- 需要全面的文档和测试
- 将有多个团队成员参与
- 预计需要长期维护
- 企业或面向外部的 API
handoff_prompts:
analyst_to_pm: "项目简报已完成。将其另存为您项目中的 docs/project-brief.md然后创建 PRD。"
pm_to_architect: "PRD 已准备就绪。将其另存为您项目中的 docs/prd.md然后创建服务架构。"
architect_review: "架构已完成。将其另存为 docs/architecture.md。您是否建议对 PRD 故事进行任何更改或需要添加新故事?"
architect_to_pm: "请使用建议的故事更改更新 PRD然后将完整的 prd.md 重新导出到 docs/。"
updated_to_po: "所有文档都已在 docs/ 文件夹中准备就绪。请验证所有工件的一致性。"
po_issues: "PO 发现 [文档] 有问题。请返回 [代理] 进行修复并重新保存更新后的文档。"
complete: "所有规划工件都已验证并保存在 docs/ 文件夹中。移动到 IDE 环境以开始开发。"