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

188 lines
6.6 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: brownfield-service
name: 棕地服务/API 增强
description: >-
用于通过新功能、现代化或性能改进来增强现有后端服务和 API 的代理工作流程。处理现有系统分析和安全集成。
type: brownfield
project_types:
- service-modernization
- api-enhancement
- microservice-extraction
- performance-optimization
- integration-enhancement
sequence:
- step: service_analysis
agent: architect
action: 分析现有项目并使用任务 document-project
creates: 每个 document-project 模板的多个文档
notes: "审查现有服务文档、代码库、性能指标,并识别集成依赖项。"
- agent: pm
creates: prd.md
uses: brownfield-prd-tmpl
requires: existing_service_analysis
notes: "创建专注于服务增强和现有系统分析的综合 PRD。保存输出将最终的 prd.md 复制到您项目的 docs/ 文件夹中。"
- agent: architect
creates: architecture.md
uses: brownfield-architecture-tmpl
requires: prd.md
notes: "创建包含服务集成策略和 API 演进规划的架构。保存输出:将最终的 architecture.md 复制到您项目的 docs/ 文件夹中。"
- agent: po
validates: all_artifacts
uses: po-master-checklist
notes: "验证所有文档的服务集成安全性和 API 兼容性。可能需要更新任何文档。"
- 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[分析师:分析现有服务]
B --> C[项目经理prd.md]
C --> D[架构师architecture.md]
D --> E[产品负责人:使用 po-master-checklist 验证]
E --> F{产品负责人发现问题?}
F -->|是| G[返回相关代理进行修复]
F -->|否| H[产品负责人:分片文档]
G --> E
H --> I[Scrum Master创建故事]
I --> J{审查故事草稿?}
J -->|是| K[分析师/项目经理:审查并批准故事]
J -->|否| L[开发人员:实施故事]
K --> L
L --> M{QA 审查?}
M -->|是| N[QA审查实施]
M -->|否| O{更多故事?}
N --> P{QA 发现问题?}
P -->|是| Q[开发人员:处理 QA 反馈]
P -->|否| O
Q --> N
O -->|是| I
O -->|否| R{史诗回顾?}
R -->|是| S[产品负责人:史诗回顾]
R -->|否| T[项目完成]
S --> T
style T fill:#90EE90
style H fill:#ADD8E6
style I fill:#ADD8E6
style L fill:#ADD8E6
style C fill:#FFE4B5
style D fill:#FFE4B5
style K fill:#F0E68C
style N fill:#F0E68C
style S fill:#F0E68C
```
decision_guidance:
when_to_use:
- 服务增强需要协调的故事
- 需要 API 版本控制或重大更改
- 需要数据库架构更改
- 需要性能或可伸缩性改进
- 影响多个集成点
handoff_prompts:
analyst_to_pm: "服务分析完成。创建包含服务集成策略的综合 PRD。"
pm_to_architect: "PRD 已准备就绪。将其另存为您项目中的 docs/prd.md然后创建服务架构。"
architect_to_po: "架构已完成。将其另存为 docs/architecture.md。请验证所有工件的服务集成安全性。"
po_issues: "PO 发现 [文档] 有问题。请返回 [代理] 进行修复并重新保存更新后的文档。"
complete: "所有规划工件都已验证并保存在 docs/ 文件夹中。移动到 IDE 环境以开始开发。"