版本: 1.0.0 创建时间: 2026-02-04 类型: 棕地项目开发 状态: 官方文档 源文件:
.aiox-core/development/workflows/brownfield-fullstack.yaml
棕地项目全栈增强工作流设计用于通过新功能、现代化或重大变更来增强现有的全栈应用程序。此工作流处理现有系统的分析和安全集成,确保修改不会破坏已建立的功能。
在以下情况下使用此工作流:
- 增强需要协调的故事
- 需要架构更改
- 需要大量集成工作
- 需要评估和风险缓解
- 多个团队成员将从事相关更改
支持的项目类型:
feature-addition- 添加新功能refactoring- 重构现有代码modernization- 现代化技术integration-enhancement- 增强集成
flowchart TB
subgraph CLASSIFICATION["1. 增强分类"]
START[("启动:棕地项目增强")] --> ANALYST_CLASSIFY
ANALYST_CLASSIFY["@analyst<br/>分类增强范围"]
end
ANALYST_CLASSIFY --> DECISION_SIZE{{"增强规模?"}}
subgraph ROUTING["2. 按大小路由"]
DECISION_SIZE -->|"单个故事<br/>(< 4小时)"| PM_STORY
DECISION_SIZE -->|"小功能<br/>(1-3个故事)"| PM_EPIC
DECISION_SIZE -->|"主要增强<br/>(多个史诗)"| ANALYST_DOCS
PM_STORY["@pm<br/>brownfield-create-story"]
PM_EPIC["@pm<br/>brownfield-create-epic"]
end
PM_STORY --> EXIT_STORY[/"输出:开发实现"/]
PM_EPIC --> EXIT_EPIC[/"输出:故事创建"/]
subgraph DOCUMENTATION["3. 文档验证"]
ANALYST_DOCS["@analyst<br/>验证现有文档"]
ANALYST_DOCS --> DECISION_DOCS{{"文档充分?"}}
DECISION_DOCS -->|否| ARCHITECT_DOCPROJ["@architect<br/>document-project"]
DECISION_DOCS -->|是| PM_PRD["@pm<br/>创建brownfield-prd.md"]
ARCHITECT_DOCPROJ --> PM_PRD
end
subgraph PLANNING["4. 规划"]
PM_PRD --> DECISION_ARCH{{"架构<br/>变更?"}}
DECISION_ARCH -->|是| ARCHITECT_ARCH["@architect<br/>创建architecture.md"]
DECISION_ARCH -->|否| PO_VALIDATE
ARCHITECT_ARCH --> PO_VALIDATE["@po<br/>验证工件<br/>(po-master-checklist)"]
end
subgraph VALIDATION["5. 验证和修正"]
PO_VALIDATE --> DECISION_ISSUES{{"PO发现<br/>问题?"}}
DECISION_ISSUES -->|是| FIX_ISSUES["修复问题<br/>(相关代理)"]
FIX_ISSUES --> PO_VALIDATE
DECISION_ISSUES -->|否| PO_SHARD["@po<br/>分片文档"]
end
subgraph DEVELOPMENT["6. 开发周期"]
PO_SHARD --> SM_STORY["@sm<br/>创建故事"]
SM_STORY --> DECISION_STORY_TYPE{{"文档<br/>类型?"}}
DECISION_STORY_TYPE -->|"PRD分片"| SM_NEXT["create-next-story"]
DECISION_STORY_TYPE -->|"棕地文档"| SM_BROWNFIELD["create-brownfield-story"]
SM_NEXT --> DECISION_REVIEW{{"审查草稿?"}}
SM_BROWNFIELD --> DECISION_REVIEW
DECISION_REVIEW -->|是| REVIEW_APPROVE["审查和批准"]
DECISION_REVIEW -->|否| DEV_IMPLEMENT
REVIEW_APPROVE --> DEV_IMPLEMENT["@dev<br/>实现故事"]
end
subgraph QA_CYCLE["7. QA周期"]
DEV_IMPLEMENT --> DECISION_QA{{"QA审查?"}}
DECISION_QA -->|是| QA_REVIEW["@qa<br/>审查实现"]
DECISION_QA -->|否| DECISION_MORE_STORIES
QA_REVIEW --> DECISION_QA_ISSUES{{"问题?"}}
DECISION_QA_ISSUES -->|是| DEV_FIX["@dev<br/>修复反馈"]
DECISION_QA_ISSUES -->|否| DECISION_MORE_STORIES
DEV_FIX --> QA_REVIEW
end
subgraph COMPLETION["8. 完成"]
DECISION_MORE_STORIES{{"更多故事?"}}
DECISION_MORE_STORIES -->|是| SM_STORY
DECISION_MORE_STORIES -->|否| DECISION_RETRO
DECISION_RETRO{{"回顾?"}}
DECISION_RETRO -->|是| PO_RETRO["@po<br/>史诗回顾"]
DECISION_RETRO -->|否| COMPLETE
PO_RETRO --> COMPLETE[("项目完成")]
end
style START fill:#87CEEB
style COMPLETE fill:#90EE90
style EXIT_STORY fill:#90EE90
style EXIT_EPIC fill:#90EE90
style PM_STORY fill:#87CEEB
style PM_EPIC fill:#87CEEB
style PM_PRD fill:#FFE4B5
style ARCHITECT_ARCH fill:#FFE4B5
style PO_SHARD fill:#ADD8E6
style SM_STORY fill:#ADD8E6
style DEV_IMPLEMENT fill:#ADD8E6
style REVIEW_APPROVE fill:#F0E68C
style QA_REVIEW fill:#F0E68C
style PO_RETRO fill:#F0E68C
flowchart LR
subgraph INPUT["输入"]
A["增强请求"]
end
subgraph CLASSIFICATION["分类"]
B["@analyst<br/>分类范围"]
end
subgraph ROUTES["路由"]
C1["单个故事<br/>(< 4小时)"]
C2["小功能<br/>(1-3个故事)"]
C3["主要增强<br/>(多个史诗)"]
end
subgraph OUTPUT["输出"]
D1["brownfield-create-story<br/>@pm"]
D2["brownfield-create-epic<br/>@pm"]
D3["完整工作流<br/>(继续下面)"]
end
A --> B
B --> C1 --> D1
B --> C2 --> D2
B --> C3 --> D3
style A fill:#e1f5fe
style D1 fill:#c8e6c9
style D2 fill:#c8e6c9
style D3 fill:#fff3e0
| 属性 | 值 |
|---|---|
| 代理 | @analyst (Atlas) |
| 操作 | 分类增强范围 |
| 输入 | 用户的增强描述 |
| 输出 | 分类:single_story / small_feature / major_enhancement |
流程:
分析师确定增强的复杂性以路由到适当的路径。向用户提出的关键问题是:
"你能描述增强的范围吗?这是一个小修复、功能添加还是需要架构更改的较大增强?"
分类标准:
- 单个故事 (< 4小时):使用任务
brownfield-create-story - 小功能 (1-3个故事):使用任务
brownfield-create-epic - 主要增强 (多个史诗):继续完整工作流
| 路由 | 代理 | 任务 | 下一步操作 |
|---|---|---|---|
single_story |
@pm | brownfield-create-story |
创建故事后退出工作流 |
small_feature |
@pm | brownfield-create-epic |
创建史诗后退出工作流 |
major_enhancement |
- | - | 继续下一步 |
| 属性 | 值 |
|---|---|
| 代理 | @analyst (Atlas) |
| 操作 | 验证现有文档 |
| 条件 | 仅适用于 major_enhancement |
| 输入 | 代码库和现有文档 |
| 输出 | 评估:documentation_adequate / documentation_inadequate |
验证清单:
- 架构文档存在吗?
- API规范是否最新?
- 代码编码标准是否已记录?
- 文档是否最新且全面?
决策:
- 如果充分:跳过
document-project,继续创建PRD - 如果不充分:先执行
document-project
| 属性 | 值 |
|---|---|
| 代理 | @architect (Aria) |
| 任务 | document-project |
| 条件 | 如果文档不充分,则执行 |
| 输入 | 现有代码库 |
| 输出 | brownfield-architecture.md (或多个文档) |
目的:
捕获系统的当前状态、技术债务和限制。发现结果将传递给PRD创建。
任务文件: .aiox-core/development/tasks/document-project.md
| 属性 | 值 |
|---|---|
| 代理 | @pm (Morgan) |
| 模板 | brownfield-prd-tmpl |
| 要求 | 现有文档或步骤4的分析 |
| 输出 | docs/prd.md |
说明:
- 如果执行了
document-project,请参考其输出以避免重新分析 - 如果跳过,请使用项目的现有文档
- 重要:将最终
prd.md复制到项目的docs/文件夹
| 属性 | 值 |
|---|---|
| 代理 | @pm (Morgan) / @architect (Aria) |
| 操作 | 确定是否需要架构文档 |
| 条件 | 创建PRD后 |
创建架构文档的标准:
- 需要新的架构模式
- 需要采用新的库/框架
- 平台/基础设施变更
- 遵循现有模式? -> 跳过创建故事
| 属性 | 值 |
|---|---|
| 代理 | @architect (Aria) |
| 模板 | brownfield-architecture-tmpl |
| 要求 | prd.md |
| 条件 | 需要架构变更 |
| 输出 | docs/architecture.md |
说明:
仅为重大架构更改创建架构文档。
重要:将最终 architecture.md 复制到项目的 docs/ 文件夹
| 属性 | 值 |
|---|---|
| 代理 | @po (Pax) |
| 清单 | po-master-checklist |
| 输入 | 所有创建的工件 |
| 输出 | 验证或问题列表 |
清单文件: .aiox-core/development/checklists/po-master-checklist.md
流程:
验证所有文档的:
- 集成安全性
- 完整性
- 需求对齐
- 特定的棕地项目风险
| 属性 | 值 |
|---|---|
| 代理 | 可变(取决于问题) |
| 条件 | PO发现问题 |
| 操作 | 修复并重新导出更新的文档 |
流程:
- PO识别问题
- 相关代理修复
- 更新的文档保存在
docs/中 - 返回进行PO验证
| 属性 | 值 |
|---|---|
| 代理 | @po (Pax) |
| 任务 | shard-doc |
| 输入 | 项目中验证的文档 |
| 输出 | docs/prd/ 和 docs/architecture/ 中的分片内容 |
执行选项:
- 选项A:使用PO代理进行分片:
@po并要求分片docs/prd.md - 选项B:手动:将任务
shard-doc+docs/prd.md拖到聊天中
任务文件: .aiox-core/development/tasks/shard-doc.md
| 属性 | 值 |
|---|---|
| 代理 | @sm (River) |
| 重复 | 对于每个史诗或增强 |
| 输入 | 分片的文档或棕地文档 |
| 输出 | story.md 处于"草稿"状态 |
任务决策:
| 文档类型 | 任务 |
|---|---|
| PRD分片 | create-next-story |
| 棕地文档 | create-brownfield-story |
任务文件:
.aiox-core/development/tasks/create-next-story.md.aiox-core/development/tasks/create-brownfield-story.md
| 属性 | 值 |
|---|---|
| 代理 | @analyst / @pm |
| 条件 | 用户希望审查故事 |
| 输入 | story.md 处于草稿状态 |
| 输出 | 更新的故事:草稿 -> 已批准 |
注意:任务 story-review 正在开发中。
| 属性 | 值 |
|---|---|
| 代理 | @dev (Dex) |
| 要求 | 已批准的故事 |
| 输出 | 实现文件 |
说明:
- 开发代理(新聊天会话):
@dev - 实现已批准的故事
- 使用所有更改更新文件列表
- 完成时将故事标记为"审查"
| 属性 | 值 |
|---|---|
| 代理 | @qa (Quinn) |
| 任务 | review-story |
| 要求 | 实现的文件 |
| 输出 | 审查的实现 |
流程:
- QA代理(新聊天会话):
@qa->review-story - 具有重构能力的高级开发人员审查
- 直接修复小问题
- 为剩余项目留下清单
- 更新故事状态(审查 -> 完成或保持审查)
| 属性 | 值 |
|---|---|
| 代理 | @dev (Dex) |
| 条件 | QA留下未检查的项目 |
| 操作 | 处理剩余项目 |
流程:
- 开发代理(新聊天会话):处理剩余项目
- 返回QA进行最终批准
重复: SM -> Dev -> QA 周期用于史诗中的所有故事
继续进行,直到PRD中的所有故事都完成。
| 属性 | 值 |
|---|---|
| 代理 | @po (Pax) |
| 条件 | 史诗完成 |
| 输出 | epic-retrospective.md |
流程:
- 验证史诗是否正确完成
- 记录学习和改进
注意:任务 epic-retrospective 正在开发中。
状态: 所有故事已实现和审查
参考: .aiox-core/data/aiox-kb.md#IDE Development Workflow
| 代理 | 名称 | 工作流中的角色 | 步骤 |
|---|---|---|---|
| @analyst | Atlas | 范围分类、文档验证 | 1, 3 |
| @architect | Aria | 项目文档、架构设计 | 4, 6, 7 |
| @pm | Morgan | PRD创建、史诗和简单故事 | 2, 5, 6 |
| @po | Pax | 工件验证、分片、回顾 | 8, 10, 17 |
| @sm | River | 详细故事创建 | 11 |
| @dev | Dex | 故事实现 | 13, 15 |
| @qa | Quinn | 实现审查 | 14 |
| 任务 | 步骤 | 代理 | 目的 |
|---|---|---|---|
brownfield-create-story |
2 | @pm | 为简单增强创建单个故事 |
brownfield-create-epic |
2 | @pm | 创建聚焦的史诗(1-3个故事) |
document-project |
4 | @architect | 记录棕地项目的当前状态 |
brownfield-prd-tmpl |
5 | @pm | 棕地项目PRD的模板 |
brownfield-architecture-tmpl |
7 | @architect | 棕地架构的模板 |
po-master-checklist |
8 | @po | 工件的全面验证 |
shard-doc |
10 | @po | 将文档分割成较小的文件 |
create-next-story |
11 | @sm | 从分片PRD创建故事 |
create-brownfield-story |
11 | @sm | 从棕地文档创建故事 |
review-story |
14 | @qa | 实现审查 |
在开始此工作流之前,请确保:
- 访问现有项目存储库
- 开发环境已配置
- 依赖关系已安装
- 对现有系统的基本理解
- 访问现有文档(如果有)
- 增强需求清楚
- GitHub CLI已配置 (
gh auth status) - 如适用,可访问PM工具 (ClickUp/GitHub/Jira)
- AIOX核心配置已配置 (
.aiox-core/core-config.yaml)
| 输入 | 来源 | 格式 | 必需 |
|---|---|---|---|
| 增强请求 | 用户 | 文本描述 | 是 |
| 现有代码库 | 存储库 | 源代码 | 是 |
| 现有文档 | docs/ |
Markdown | 否 |
| 利益相关者需求 | 用户/PM工具 | 文本/工单 | 否 |
| 输出 | 目标 | 格式 | 条件 |
|---|---|---|---|
brownfield-architecture.md |
docs/ |
Markdown | 如果文档不充分 |
prd.md |
docs/ |
Markdown | 主要增强 |
architecture.md |
docs/ |
Markdown | 如果架构变更 |
| 分片故事 | docs/stories/ |
Markdown | 总是 |
| 实现的代码 | src/ |
各种 | 总是 |
epic-retrospective.md |
docs/ |
Markdown | 可选 |
flowchart LR
A[增强请求] --> B{大小?}
B -->|"< 4小时"| C[单个故事]
B -->|"1-3个故事"| D[小功能]
B -->|"多个史诗"| E[主要增强]
C --> F[退出:开发实现]
D --> G[退出:故事创建]
E --> H[继续工作流]
flowchart LR
A[验证文档] --> B{充分?}
B -->|是| C[跳过document-project]
B -->|否| D[执行document-project]
C --> E[创建PRD]
D --> E
flowchart LR
A[审查PRD] --> B{架构变更?}
B -->|新模式| C[创建architecture.md]
B -->|新库| C
B -->|基础设施变更| C
B -->|遵循现有| D[跳过验证]
C --> D
flowchart LR
A[PO验证] --> B{问题?}
B -->|是| C[修复问题]
C --> A
B -->|否| D[继续]
flowchart LR
A[实现] --> B{QA审查?}
B -->|是| C[执行审查]
C --> D{问题?}
D -->|是| E[开发修复]
E --> C
D -->|否| F[下一个故事]
B -->|否| F
症状: 简单工作流用于复杂增强或反之亦然
解决方案:
- 暂停当前工作流
- 使用 @analyst 重新执行分类
- 提供关于集成和复杂性的更多背景
症状: 未对系统有充分背景的情况下创建PRD
解决方案:
- 使用 @architect 手动执行
document-project - 使用新发现更新PRD
- 使用 @po 重新验证
症状: 更正后问题仍然出现
解决方案:
- 与利益相关者安排同步会议
- 记录更清晰的验收标准
- 如有必要,考虑减少增强范围
症状: 故事无法在一个会话中完成
解决方案:
- 将故事分成多个子故事
- 重新评估增强分类
- 考虑使用
brownfield-create-epic而不是单个故事
症状: 回归测试失败
解决方案:
- 审查PRD中的影响分析
- 添加更多集成测试
- 考虑使用功能标志进行渐进式推出
症状: 问题在开发和QA之间来回
解决方案:
- 记录更清晰的验收标准
- 为复杂问题安排结对编程
- 考虑添加自动化测试
stateDiagram-v2
[*] --> Draft: 创建故事
Draft --> Approved: 审查通过
Draft --> Draft: 审查调整
Approved --> InProgress: 开发启动
InProgress --> Review: 开发完成
Review --> InProgress: QA问题
Review --> Done: QA批准
Done --> [*]
note right of Draft: SM创建的故事
note right of Approved: 准备开发
note right of Review: 等待QA
note right of Done: 完成并验证
stateDiagram-v2
[*] --> Planning: 增强分类
Planning --> Documented: 创建文档
Documented --> Validated: PO批准
Validated --> InDevelopment: 创建故事
InDevelopment --> InDevelopment: 更多故事
InDevelopment --> Retrospective: 所有故事完成
Retrospective --> Complete: 回顾完成
Complete --> [*]
| 指标 | 描述 | 目标 |
|---|---|---|
| 分类准确度 | 正确分类的增强百分比 | > 90% |
| 到PRD的时间 | 从请求到批准PRD的天数 | < 3天 |
| 每次验证的问题 | PO发现的平均问题数 | < 3 |
| QA周期 | 开发/QA往返的平均数 | < 2 |
| 零回归 | 发布中没有回归错误的百分比 | 100% |
| 文件 | 目的 |
|---|---|
.aiox-core/development/workflows/brownfield-fullstack.yaml |
工作流定义 |
.aiox-core/development/tasks/brownfield-create-story.md |
创建简单故事的任务 |
.aiox-core/development/tasks/brownfield-create-epic.md |
创建史诗的任务 |
.aiox-core/development/tasks/document-project.md |
记录现有项目的任务 |
.aiox-core/development/tasks/shard-doc.md |
分割文档的任务 |
.aiox-core/development/tasks/create-brownfield-story.md |
创建棕地故事的任务 |
.aiox-core/development/tasks/create-next-story.md |
从PRD创建故事的任务 |
.aiox-core/product/checklists/po-master-checklist.md |
PO验证清单 |
| 文件 | 代理 |
|---|---|
.aiox-core/development/agents/analyst.md |
@analyst (Atlas) |
.aiox-core/development/agents/architect.md |
@architect (Aria) |
.aiox-core/development/agents/pm.md |
@pm (Morgan) |
.aiox-core/development/agents/po.md |
@po (Pax) |
.aiox-core/development/agents/sm.md |
@sm (River) |
.aiox-core/development/agents/dev.md |
@dev (Dex) |
.aiox-core/development/agents/qa.md |
@qa (Quinn) |
| 文档 | 目的 |
|---|---|
docs/guides/BACKLOG-MANAGEMENT-SYSTEM.md |
待办事项管理系统 |
docs/guides/workflows/GREENFIELD-SERVICE-WORKFLOW.md |
绿地项目工作流 |
.aiox-core/working-in-the-brownfield.md |
棕地工作指南 |
| 日期 | 作者 | 描述 |
|---|---|---|
| 2026-02-04 | @analyst | 初始文档创建 |
-- Atlas,将复杂性解码为清晰度