Skip to content

Latest commit

 

History

History
812 lines (631 loc) · 21.4 KB

File metadata and controls

812 lines (631 loc) · 21.4 KB

工作流:棕地项目服务/API增强

标识符: brownfield-service 类型: 棕地项目(现有系统) 版本: 1.0 最后更新: 2026-02-04


概述

棕地项目服务/API增强工作流设计用于增强现有后端服务和API,通过新资源、现代化或性能改进。它管理现有系统的分析和安全集成,确保在不中断关键功能的情况下实施更改。

用例

项目类型 描述
服务现代化 将遗留服务升级到现代技术
API增强 添加新端点或改进现有API
微服务提取 从单体中提取模块以创建微服务
性能优化 优化现有服务中的性能
集成增强 改进系统之间的集成

何时使用

  • 服务增强需要协调的故事
  • 需要API版本控制或重大变更
  • 需要数据库schema变更
  • 需要性能或可扩展性改进
  • 受影响的多个集成点

工作流图

graph TD
    subgraph "阶段1:规划"
        A[启动:服务增强] --> B["@architect:分析现有服务<br/>(document-project)"]
        B --> C["@pm:创建PRD<br/>(brownfield-prd-tmpl)"]
        C --> D["@architect:创建架构<br/>(brownfield-architecture-tmpl)"]
    end

    subgraph "阶段2:验证"
        D --> E["@po:验证工件<br/>(po-master-checklist)"]
        E --> F{PO发现<br/>问题?}
        F -->|是| G[返回相关代理<br/>进行修正]
        G --> E
        F -->|否| H["@po:分片文档<br/>(shard-doc)"]
    end

    subgraph "阶段3:开发周期"
        H --> I["@sm:创建故事<br/>(create-next-story)"]
        I --> J{审查故事<br/>草稿?}
        J -->|是| K["@analyst/@pm:审查和<br/>批准故事"]
        J -->|否| L["@dev:实现故事<br/>(develop-story)"]
        K --> L
        L --> M{QA审查?}
        M -->|是| N["@qa:审查实现<br/>(review-story)"]
        M -->|否| O{更多故事?}
        N --> P{QA发现<br/>问题?}
        P -->|是| Q["@dev:修复QA反馈"]
        P -->|否| O
        Q --> N
        O -->|是| I
        O -->|否| R{史诗<br/>回顾?}
    end

    subgraph "阶段4:完成"
        R -->|是| S["@po:史诗回顾<br/>(epic-retrospective)"]
        R -->|否| T[项目完成]
        S --> T
    end

    style A fill:#E8F5E9,stroke:#4CAF50
    style T fill:#90EE90,stroke:#2E7D32
    style H fill:#ADD8E6,stroke:#1976D2
    style I fill:#ADD8E6,stroke:#1976D2
    style L fill:#ADD8E6,stroke:#1976D2
    style C fill:#FFE4B5,stroke:#F57C00
    style D fill:#FFE4B5,stroke:#F57C00
    style K fill:#F0E68C,stroke:#FBC02D
    style N fill:#F0E68C,stroke:#FBC02D
    style S fill:#F0E68C,stroke:#FBC02D
    style F fill:#FFCDD2,stroke:#E53935
    style P fill:#FFCDD2,stroke:#E53935
Loading

序列图

sequenceDiagram
    autonumber
    participant User
    participant Architect as @architect (Aria)
    participant PM as @pm (Morgan)
    participant PO as @po (Pax)
    participant SM as @sm (River)
    participant Analyst as @analyst (Atlas)
    participant Dev as @dev (Dex)
    participant QA as @qa (Quinn)

    rect rgb(232, 245, 233)
        Note over User,QA: 阶段1:规划
        User->>Architect: 启动增强
        Architect->>Architect: 分析现有服务
        Architect-->>PM: 项目文档
        PM->>PM: 创建PRD (brownfield-prd-tmpl)
        PM-->>Architect: PRD准备完成
        Architect->>Architect: 创建架构 (brownfield-architecture-tmpl)
        Architect-->>PO: 架构准备完成
    end

    rect rgb(255, 243, 224)
        Note over User,QA: 阶段2:验证
        PO->>PO: 使用po-master-checklist验证
        alt PO发现问题
            PO-->>PM: 请求PRD修正
            PM->>PM: 修正PRD
            PM-->>PO: PRD已更新
        end
        PO->>PO: 分片文档 (shard-doc)
        PO-->>SM: 分片文档已准备完成
    end

    rect rgb(227, 242, 253)
        Note over User,QA: 阶段3:开发周期
        loop 对于每个史诗/故事
            SM->>SM: 创建故事 (create-next-story)
            opt 可选审查
                SM-->>Analyst: 草稿故事
                Analyst->>Analyst: 审查完整性
                Analyst-->>SM: 故事已批准
            end
            SM-->>Dev: 故事准备开发
            Dev->>Dev: 实现故事 (develop-story)
            Dev-->>QA: 准备审查
            opt 可选QA审查
                QA->>QA: 审查实现
                alt QA发现问题
                    QA-->>Dev: 反馈和待处理项
                    Dev->>Dev: 修复问题
                    Dev-->>QA: 应用修正
                end
            end
        end
    end

    rect rgb(243, 229, 245)
        Note over User,QA: 阶段4:完成
        opt 可选史诗回顾
            PO->>PO: 进行回顾
            PO-->>User: 记录学习
        end
        PO-->>User: 项目完成!
    end
Loading

详细步骤

步骤1:服务分析

属性
代理 @architect (Aria)
任务 document-project
输入 现有服务/API、性能指标、当前文档
输出 根据document-project模板的多个文档
注意 审查现有文档、代码库、性能指标并识别集成依赖关系

激活:

@architect
*document-project

步骤2:创建PRD

属性
代理 @pm (Morgan)
任务 create-doc 使用 brownfield-prd-tmpl
输入 现有服务分析
输出 docs/prd.md
要求 现有服务分析已完成
注意 创建全面的PRD,重点关注服务增强,包括对现有系统的分析

激活:

@pm
*create-brownfield-prd

重要: 将最终文件 prd.md 保存到项目的 docs/ 文件夹。


步骤3:创建架构

属性
代理 @architect (Aria)
任务 create-doc 使用 brownfield-architecture-tmpl
输入 PRD (docs/prd.md)
输出 docs/architecture.md
要求 已批准的PRD
注意 创建包含服务集成策略和API演进规划的架构

激活:

@architect
*create-brownfield-architecture

重要: 将最终文件 architecture.md 保存到项目的 docs/ 文件夹。


步骤4:验证工件

属性
代理 @po (Pax)
任务 execute-checklist 使用 po-master-checklist
输入 所有工件(PRD、架构)
输出 验证报告
注意 验证所有文档以确保服务集成安全和API兼容性。可能需要更新任何文档。

激活:

@po
*execute-checklist-po

步骤5:修复问题(条件性)

属性
代理 根据出现问题的文档而变化
任务 文档特定修正
输入 PO的反馈
输出 更新的文档
条件 PO在清单中发现问题
注意 如果PO发现问题,返回相关代理进行修正并重新导出更新的文档到 docs/ 文件夹

步骤6:分片文档

属性
代理 @po (Pax)
任务 shard-doc
输入 所有在 docs/ 中验证的工件
输出 docs/prd/docs/architecture/ 文件夹,包含分片内容
要求 所有工件在项目文件夹中
注意 为IDE开发分片文档

激活选项:

选项A - 通过PO代理:

@po
shard docs/prd.md

选项B - 手动: 将任务 shard-doc + docs/prd.md 拖到聊天中。


步骤7:创建故事

属性
代理 @sm (River)
任务 create-next-story
输入 分片的文档
输出 story.md
要求 分片的文档
重复 对于每个史诗
注意 故事以"草稿"状态开始

激活(新聊天会话):

@sm
*draft

步骤8:审查故事草稿(可选)

属性
代理 @analyst (Atlas) 或 @pm (Morgan)
任务 review-draft-story (正在开发)
输入 草稿故事
输出 更新的故事
要求 创建的故事
可选 是 - 当用户希望审查故事时
条件 用户请求审查
注意 审查故事的完整性和对齐。更新状态:草稿 -> 已批准

步骤9:实现故事

属性
代理 @dev (Dex)
任务 develop-story
输入 已批准的故事
输出 实现文件
要求 已批准的故事(不是草稿)
注意 实现已批准的故事,使用所有更改更新文件列表,完成时将故事标记为"审查"

激活(新聊天会话):

@dev
*develop {story-id}

步骤10:QA审查(可选)

属性
代理 @qa (Quinn)
任务 review-story
输入 实现文件
输出 更新的实现 + QA清单
可选
注意 具有重构能力的高级开发人员审查。直接修复小问题。为待处理项目留下清单。更新故事状态(审查 -> 完成或保持审查)

激活(新聊天会话):

@qa
*review {story-id}

步骤11:修复QA反馈(条件性)

属性
代理 @dev (Dex)
任务 apply-qa-fixes
输入 QA的反馈和待处理项
输出 修正的实现
条件 QA留下未标记的项
注意 如果QA留下待处理项:开发人员(新会话)修复剩余项并返回QA进行最终批准

激活(新聊天会话):

@dev
*apply-qa-fixes

步骤12:重复开发周期

属性
操作 重复步骤7-11
注意 重复故事周期(SM -> 开发 -> QA),用于史诗的所有故事。继续进行,直到PRD中的所有故事都完成。

步骤13:史诗回顾(可选)

属性
代理 @po (Pax)
任务 epic-retrospective (正在开发)
输入 完成的史诗
输出 epic-retrospective.md
条件 史诗完成
可选
注意 验证史诗已正确完成。记录学习和改进。

步骤14:工作流结束

属性
操作 项目完成
注意 所有故事已实现和审查!项目的开发阶段完成。

参考: .aiox-core/data/aiox-kb.md#IDE Development Workflow


参与的代理

graph LR
    subgraph "规划代理"
        Architect["@architect<br/>Aria<br/>整体系统架构师"]
        PM["@pm<br/>Morgan<br/>产品经理"]
        Analyst["@analyst<br/>Atlas<br/>业务分析师"]
    end

    subgraph "管理代理"
        PO["@po<br/>Pax<br/>产品所有者"]
        SM["@sm<br/>River<br/>敏捷主管"]
    end

    subgraph "执行代理"
        Dev["@dev<br/>Dex<br/>全栈开发人员"]
        QA["@qa<br/>Quinn<br/>测试架构师"]
    end

    Architect -->|"PRD"| PM
    PM -->|"架构"| Architect
    Architect -->|"验证"| PO
    PO -->|"故事"| SM
    SM -->|"实现"| Dev
    Dev -->|"审查"| QA
    QA -->|"反馈"| Dev
    Analyst -.->|"可选审查"| SM

    style Architect fill:#E1BEE7,stroke:#7B1FA2
    style PM fill:#BBDEFB,stroke:#1976D2
    style Analyst fill:#C8E6C9,stroke:#388E3C
    style PO fill:#FFE0B2,stroke:#F57C00
    style SM fill:#B2DFDB,stroke:#00796B
    style Dev fill:#FFECB3,stroke:#FFA000
    style QA fill:#F8BBD9,stroke:#C2185B
Loading

代理表

代理 名称 角色 工作流中的职责
@architect Aria 整体系统架构师 现有服务分析、架构创建
@pm Morgan 产品经理 为棕地项目创建PRD
@po Pax 产品所有者 工件验证、文档分片、回顾
@sm River 敏捷主管 故事创建
@analyst Atlas 业务分析师 故事草稿的可选审查
@dev Dex 全栈开发人员 故事实现、修复反馈
@qa Quinn 测试架构师 实现审查、质量关卡

执行的任务

主要任务

任务 模板/清单 代理 阶段
document-project document-project模板 @architect 规划
create-doc brownfield-prd-tmpl.yaml @pm 规划
create-doc brownfield-architecture-tmpl.yaml @architect 规划
execute-checklist po-master-checklist.md @po 验证
shard-doc - @po 验证
create-next-story story-tmpl.yaml @sm 开发
develop-story - @dev 开发
review-story - @qa 开发
apply-qa-fixes - @dev 开发

未来任务(正在开发)

任务 代理 状态
story-review @analyst/@pm 正在开发
epic-retrospective @po 正在开发

前置条件

开始工作流之前

  1. 现有服务/API

    • 访问服务源代码
    • 当前文档(如果存在)
    • 可用的性能指标
  2. 环境配置

    • Git配置且正常运行
    • 访问AIOX模板
    • 已安装开发工具
  3. 项目背景

    • 增强目标清晰
    • 已知的约束和限制
    • 已识别的利益相关者
  4. 可用的模板

    • .aiox-core/development/templates/brownfield-prd-tmpl.yaml
    • .aiox-core/development/templates/brownfield-architecture-tmpl.yaml
    • .aiox-core/development/templates/story-tmpl.yaml
  5. 可用的清单

    • .aiox-core/development/checklists/po-master-checklist.md
    • .aiox-core/development/checklists/story-draft-checklist.md
    • .aiox-core/development/checklists/story-dod-checklist.md

输入和输出

工作流输入

graph LR
    subgraph "输入"
        E1[现有服务]
        E2[当前文档]
        E3[性能指标]
        E4[集成依赖关系]
        E5[增强需求]
    end

    subgraph "工作流"
        W[棕地服务<br/>增强]
    end

    E1 --> W
    E2 --> W
    E3 --> W
    E4 --> W
    E5 --> W
Loading
输入 描述 来源
现有服务 源代码和当前基础设施 Git存储库
当前文档 现有服务文档 项目中的 docs/
性能指标 性能和使用数据 监控工具
集成依赖关系 连接到服务的系统 当前架构
增强需求 需要改进的内容 利益相关者

工作流输出

graph LR
    subgraph "工作流"
        W[棕地服务<br/>增强]
    end

    subgraph "输出"
        S1[docs/prd.md]
        S2[docs/architecture.md]
        S3[docs/prd/]
        S4[docs/architecture/]
        S5[docs/stories/story-X.Y.md]
        S6[实现的代码]
        S7[测试]
        S8[epic-retrospective.md]
    end

    W --> S1
    W --> S2
    W --> S3
    W --> S4
    W --> S5
    W --> S6
    W --> S7
    W --> S8
Loading
输出 描述 位置
PRD 产品需求文档 docs/prd.md
架构 架构文档 docs/architecture.md
PRD分片 分割为部分的PRD docs/prd/
架构分片 分割的架构 docs/architecture/
故事 开发用的用户故事 docs/stories/
实现的代码 功能源代码 项目文件夹
测试 单元和集成测试 tests/ 或类似位置
回顾 史诗的学习 epic-retrospective.md

决策点

graph TD
    D1{PO在工件中<br/>发现问题?}
    D2{审查故事<br/>草稿?}
    D3{QA审查<br/>必要?}
    D4{QA发现<br/>问题?}
    D5{更多故事<br/>待实现?}
    D6{进行史诗<br/>回顾?}

    D1 -->|是| A1[返回代理进行修正]
    D1 -->|否| A2[继续分片]

    D2 -->|是| B1[分析师/PM审查故事]
    D2 -->|否| B2[开发人员直接实现]

    D3 -->|是| C1[QA审查实现]
    D3 -->|否| C2[检查更多故事]

    D4 -->|是| D4A[开发人员修复反馈]
    D4 -->|否| D4B[故事已批准]

    D5 -->|是| E1[创建下一个故事]
    D5 -->|否| E2[检查回顾]

    D6 -->|是| F1[PO进行回顾]
    D6 -->|否| F2[项目完成]

    style D1 fill:#FFCDD2,stroke:#E53935
    style D2 fill:#FFF9C4,stroke:#F9A825
    style D3 fill:#FFF9C4,stroke:#F9A825
    style D4 fill:#FFCDD2,stroke:#E53935
    style D5 fill:#C8E6C9,stroke:#43A047
    style D6 fill:#FFF9C4,stroke:#F9A825
Loading

决策点详细说明

问题
D1 PO在工件中发现问题? 返回相关代理进行修正 继续分片文档
D2 用户希望审查故事草稿? 分析师/PM审查完整性和对齐 开发人员直接实现故事
D3 QA审查必要? QA审查实现 检查是否有更多故事
D4 QA发现问题? 开发人员修复反馈并返回QA 故事已批准,检查更多故事
D5 更多故事待实现? 创建下一个故事(返回步骤7) 检查是否需要回顾
D6 进行史诗回顾? PO进行回顾并记录 项目完成

故障排除

常见问题和解决方案

1. 服务分析不完整

症状: 架构不反映所有现有依赖关系。

原因: 缺少文档或代码访问。

解决方案:

  1. 验证Git存储库访问权限
  2. 再次执行 *document-project
  3. 咨询当前团队关于未记录的依赖关系
  4. 分析集成日志以发现连接

2. PO拒绝PRD

症状: PO清单反复失败。

原因: PRD不完整或与架构不一致。

解决方案:

  1. 审查PO的具体反馈
  2. 验证PRD <-> 架构对齐
  3. 验证验收标准是否可测试
  4. 确认NFR已记录
@pm
*correct-course

3. 故事草稿未批准

症状: 审查后故事保持草稿状态。

原因: 缺少详情或歧义。

解决方案:

  1. 验证所有验收标准是否清晰
  2. 确认任务是否可执行
  3. 验证依赖关系已识别
  4. 执行story-draft-checklist
@sm
*story-checklist

4. 实现在QA中失败

症状: QA重复拒绝实现。

原因: 代码不符合标准或缺少测试。

解决方案:

  1. 审查QA的详细反馈
  2. 验证测试覆盖率
  3. 在发送到QA前执行CodeRabbit
  4. 确保文件列表完整
@dev
*run-tests
*apply-qa-fixes

5. 反馈无限循环

症状: 开发和QA在修正中陷入循环。

原因: 需求模糊或范围蔓延。

解决方案:

  1. 暂停并审查原始故事
  2. 与PO澄清验收标准
  3. 定义迭代限制(最多3次)
  4. 如有必要,升级到PO

6. 文档分片失败

症状: shard-doc 命令未生成预期的文件夹。

原因: 文档格式错误或路径错误。

解决方案:

  1. 验证 prd.mddocs/
  2. 确认文档格式
  3. 通过选项A执行(PO代理)
  4. 检查错误日志

升级矩阵

问题 首次联系 升级到
PRD不完整 @pm (Morgan) @po (Pax)
架构不一致 @architect (Aria) @pm (Morgan)
故事模糊 @sm (River) @po (Pax)
实现有错误 @dev (Dex) @qa (Quinn)
质量关卡失败 @qa (Quinn) @po (Pax)
集成中断 @architect (Aria) @devops (Gage)

切换提示

代理之间的切换通过以下提示进行便于:

转换 提示
分析 -> PM "服务分析完成。使用服务集成策略创建全面的PRD。"
PM -> 架构师 "PRD准备完成。保存为 docs/prd.md,然后创建服务架构。"
架构师 -> PO "架构完成。保存为 docs/architecture.md。请验证所有工件以确保服务集成安全。"
PO(问题) "PO在[文档]中发现问题。请返回到[代理]进行修正并重新保存更新的文档。"
PO(完成) "所有规划工件已验证并保存在 docs/ 文件夹中。移动到IDE环境以开始开发。"

参考

配置文件

文件 描述 路径
工作流定义 工作流的YAML定义 .aiox-core/development/workflows/brownfield-service.yaml
PRD模板 棕地PRD的模板 .aiox-core/development/templates/brownfield-prd-tmpl.yaml
架构模板 架构的模板 .aiox-core/development/templates/brownfield-architecture-tmpl.yaml
故事模板 故事的模板 .aiox-core/development/templates/story-tmpl.yaml
PO主清单 验证清单 .aiox-core/development/checklists/po-master-checklist.md
故事草稿清单 故事清单 .aiox-core/development/checklists/story-draft-checklist.md
故事DoD清单 完成定义 .aiox-core/development/checklists/story-dod-checklist.md

代理

代理 文件 路径
@architect Aria .aiox-core/development/agents/architect.md
@pm Morgan .aiox-core/development/agents/pm.md
@po Pax .aiox-core/development/agents/po.md
@sm River .aiox-core/development/agents/sm.md
@analyst Atlas .aiox-core/development/agents/analyst.md
@dev Dex .aiox-core/development/agents/dev.md
@qa Quinn .aiox-core/development/agents/qa.md

相关文档


历史记录

日期 版本 变更 作者
2026-02-04 1.0 初始文档创建 技术文档专家

从workflow brownfield-service.yaml 生成 - AIOX框架 v2.2