docs(skills): 优化 Monisuo 开发流程,拆分测试与功能验证阶段
重构 Monisuo 项目开发流程文档,将原有的 Phase 3-4 拆分为两个独立的 Agent 阶段: - Phase 3 (Agent A):专注于代码精简、自动化测试和构建验证 - Phase 4 (Agent B):专注于基于测试用例的功能验证 明确两个 Agent 的职责分工和 Bug 修复循环机制,提升开发流程的清晰度和质量保证能力。
This commit is contained in:
@@ -8,12 +8,18 @@ description: Monisuo 项目结构化开发流程。需求分析 → 架构设计
|
||||
## 流程概览
|
||||
|
||||
```
|
||||
Phase 1: 需求定义 → Phase 1.5: 架构设计 → Phase 2: 模块化开发 → [启动 Agent] → Phase 3-4: 测试+构建
|
||||
↑ │
|
||||
└──────────────────────── Bug 修复 ←─────────────────────────────────────────┘
|
||||
Phase 1: 需求定义 → Phase 1.5: 架构设计 → Phase 2: 模块化开发
|
||||
↑ │
|
||||
│ ↓
|
||||
│ [Agent A] Phase 3: 精简 + 测试 + 构建
|
||||
│ │
|
||||
│ ↓ (通过)
|
||||
│ [Agent B] Phase 4: 功能验证(用例驱动)
|
||||
│ │
|
||||
└──────────────── Bug 修复 ←──────────────────┘
|
||||
```
|
||||
|
||||
**Phase 1-1.5-2 在主对话完成,Phase 3-4 启动独立 Agent。**
|
||||
**Phase 1-1.5-2 在主对话完成,Phase 3 和 Phase 4 分别启动独立 Agent。**
|
||||
|
||||
---
|
||||
|
||||
@@ -93,17 +99,17 @@ Phase 1: 需求定义 → Phase 1.5: 架构设计 → Phase 2: 模块化开发
|
||||
|
||||
---
|
||||
|
||||
## Phase 3-4: 测试与构建(独立 Agent)
|
||||
## Phase 3: 精简 + 测试 + 构建(Agent A)
|
||||
|
||||
Phase 2 完成后,启动独立 Agent 执行测试和构建。
|
||||
Phase 2 完成后,启动独立 Agent 执行代码精简、自动化测试和构建。
|
||||
|
||||
### 启动 Agent
|
||||
### 启动 Agent A
|
||||
|
||||
```
|
||||
Agent(
|
||||
description: "测试验证与构建",
|
||||
description: "精简+测试验证与构建",
|
||||
prompt: |
|
||||
你是 Monisuo 项目测试 Agent,独立完成以下任务,不要询问用户。
|
||||
你是 Monisuo 项目质量 Agent,独立完成以下任务,不要询问用户。
|
||||
|
||||
## 1. 读取 Spec
|
||||
- 路径: docs/features/[feature-name].md
|
||||
@@ -114,19 +120,24 @@ Agent(
|
||||
- Flutter: flutter analyze, AppSpacing/AppRadius/AppColorScheme 规范
|
||||
- Java: @Transactional 资金方法, 统一异常处理, RESTful 设计
|
||||
|
||||
## 3. 测试
|
||||
## 3. 代码精简(simplify)
|
||||
- 对变更代码执行 /simplify:审查复用性、质量和效率,修复发现的问题
|
||||
- 精简完成后重新运行 git diff 确认变更合理
|
||||
|
||||
## 4. 测试
|
||||
- 后端: mvn test
|
||||
- Flutter: cd flutter_monisuo && flutter test
|
||||
- API: ./tests/api/test-[feature].sh(如存在)
|
||||
|
||||
## 4. 构建
|
||||
## 5. 构建
|
||||
- 后端: mvn clean package -DskipTests → target/monisuo-*.jar
|
||||
- Flutter: cd flutter_monisuo && flutter build web --release --dart-define=ENV=prod → build/web/
|
||||
|
||||
## 5. 输出报告
|
||||
## 6. 输出报告
|
||||
| 项目 | 状态 | 备注 |
|
||||
|------|------|------|
|
||||
| 代码审查 | ✅/❌ | |
|
||||
| 代码精简 | ✅/❌ | 改动摘要 |
|
||||
| 后端测试 | ✅/❌ | |
|
||||
| Flutter 测试 | ✅/❌ | |
|
||||
| 后端构建 | ✅/❌ | |
|
||||
@@ -136,5 +147,60 @@ Agent(
|
||||
)
|
||||
```
|
||||
|
||||
### Bug 修复循环
|
||||
Agent 发现 Bug → 主对话修复 → 重新启动 Agent 验证 → 全部通过
|
||||
---
|
||||
|
||||
## Phase 4: 功能验证(Agent B)
|
||||
|
||||
**Agent A 全部通过后**,启动第二个独立 Agent,基于 Spec 中的测试用例验证功能正确性。
|
||||
|
||||
### 启动 Agent B
|
||||
|
||||
```
|
||||
Agent(
|
||||
description: "功能验证(用例驱动)",
|
||||
prompt: |
|
||||
你是 Monisuo 项目功能验证 Agent。基于 Feature Spec 中的测试用例,验证功能实现是否正确。不要询问用户。
|
||||
|
||||
## 1. 读取 Spec
|
||||
- 路径: docs/features/[feature-name].md
|
||||
- 提取「测试用例」和「验收标准」
|
||||
|
||||
## 2. 读取变更代码
|
||||
- git diff 查看本次变更的文件列表
|
||||
- 阅读变更的 Controller、Service、Provider、UI 代码
|
||||
- 对照 Spec 中的 API 设计,确认实现与契约一致
|
||||
|
||||
## 3. 逐条验证测试用例
|
||||
对 Spec 中的每条测试用例:
|
||||
- **正常流程**:追踪代码路径,确认主流程逻辑正确(参数传递、返回值、状态变更)
|
||||
- **异常流程**:确认错误处理覆盖(参数校验、权限检查、边界条件)
|
||||
- **边界条件**:空值、零值、溢出、并发等极端场景是否有防护
|
||||
|
||||
### 验证方法
|
||||
- **后端 API**:阅读 Controller → Service → Mapper 代码路径,确认请求参数、业务逻辑、数据库操作与 Spec 一致
|
||||
- **前端页面**:阅读 UI → Provider/State → Service 代码路径,确认交互流程、状态管理、错误展示正确
|
||||
- **数据一致性**:确认资金变动相关的操作有事务注解、余额校验、流水记录
|
||||
|
||||
## 4. 输出验证报告
|
||||
| 用例编号 | 用例描述 | 验证结果 | 备注 |
|
||||
|----------|----------|----------|------|
|
||||
| TC-01 | 正常:xxx | ✅ 通过 / ❌ 失败 | 具体原因 |
|
||||
| TC-02 | 异常:xxx | ✅ 通过 / ❌ 失败 | 具体原因 |
|
||||
| ... | ... | ... | ... |
|
||||
|
||||
### 总结
|
||||
- 通过率:X/Y
|
||||
- 未通过用例:列出失败原因和修复建议
|
||||
- 风险点:潜在问题或遗漏
|
||||
|
||||
如有未通过用例,返回主对话修复后重新启动验证。
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Bug 修复循环
|
||||
|
||||
- **Agent A 失败**(测试/构建不通过)→ 主对话修复 Bug → 重新启动 Agent A
|
||||
- **Agent B 失败**(功能验证不通过)→ 主对话修复逻辑 → 重新启动 Agent B
|
||||
- **全部通过** → 开发完成
|
||||
|
||||
Reference in New Issue
Block a user