208 lines
7.5 KiB
YAML
208 lines
7.5 KiB
YAML
# <!-- 由 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 环境以开始开发。"
|