Files
monisuo/.agents/skills/monisuo-dev/SKILL.md
sion123 e26031ad17 feat(monisuo-dev): 重构开发流程为五阶段并优化Agent协作机制
- 更新开发流程描述,细化为需求定义→架构设计→模块化开发→精简测试→功能验证→构建六个环节
- 重构Phase 3为精简+测试,移除构建步骤,新增独立的Phase 5构建阶段
- 优化Agent协作流程:Phase 3输出审查报告供Phase 4使用,避免重复读取代码
- 明确各阶段职责分工,增加Spec同步要求确保Agent间信息一致性
- 添加Phase 5构建阶段,专门处理后端和Flutter构建任务
- 完善Bug修复循环,明确各Agent失败时的修复流程
2026-03-29 20:34:52 +08:00

253 lines
8.5 KiB
Markdown
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.
---
name: monisuo-dev
description: Monisuo 项目结构化开发流程。需求分析 → 架构设计 → 模块化开发 → 精简测试 → 功能验证 → 构建。
---
# Monisuo 开发工作流
## 流程概览
```
Phase 1: 需求定义 → Phase 1.5: 架构设计 → Phase 2: 模块化开发(子任务逐步推进)
↑ │
│ ↓
│ 主对话:同步更新 Spec
│ │
│ ↓
│ [Agent A] Phase 3: 精简 + 测试 → 输出审查报告
│ │
│ ↓ (通过)
│ [Agent B] Phase 4: 功能验证(接收审查报告)
│ │
│ ↓ (通过)
│ [Agent C] Phase 5: 构建
│ │
└──────────────── Bug 修复 ←──────────────────┘
```
**Phase 1/1.5/2 在主对话完成Phase 3/4/5 分别启动独立 Agent。**
**所有 Agent prompt 中的 `[feature-name]` 由主对话替换为实际值后再传入。**
---
## Phase 1: 需求定义
将用户需求结构化为 Feature Spec输出到 `docs/features/[feature-name].md`
### Feature Spec 结构
```markdown
# [功能名称]
## 概述
功能名称 / 优先级(P0-P2) / 业务背景(痛点→方案→收益)
## 用户故事
作为 [角色],我希望 [行为],以便 [目的]
## 功能列表
- [ ] 功能点1
- [ ] 功能点2
## 技术方案Phase 1.5 填充)
### API 设计
### 数据模型
### 技术决策
## 测试用例
- [ ] 正常 / 异常 / 边界
## 验收标准
```
### 执行步骤
1. 与用户确认需求,识别关键场景和约束
2. 创建 `docs/features/[feature-name].md`,填充概述、用户故事、功能列表、测试用例
3. 与用户评审确认
---
## Phase 1.5: 架构设计
编码前确定技术方案。**必须先探索代码库再设计。**
### 执行步骤
1. **探索现有代码库**
- Glob/Grep/Read 扫描相关模块,理解现有模式和架构
- 识别可复用的组件、Service、工具类
- 确认集成点
2. **定义 API 契约** — 方法、路径、请求/响应体,写入 Spec 的「API 设计」
3. **设计数据模型** — 表结构、Entity/DTO/VO 映射,写入 Spec 的「数据模型」
4. **记录技术决策** — 选型理由、模块职责、关键约束,写入 Spec 的「技术决策」
### 完成标准
- 已扫描现有代码,无重复造轮子
- API 契约完整,前后端可并行开发
- 数据模型与现有表结构兼容
---
## Phase 2: 模块化开发
依据 Spec 中的 API 契约和数据模型,**按子模块逐步推进**,自底向上开发:
```
2a. 数据层 → 2b. 后端 API → 2c. Flutter 前端 → 2d. Admin 前端(如有)
DDL/Entity Controller/Service Model/Provider/UI Vue Pages
```
### 子模块执行方式
- 每个子模块独立完成,不与其他子模块混在一起
- 每完成一个子模块,确认无编译错误再进入下一个
- 后端子模块完成后可先验证 API前端再对接
### 代码规范
- Flutter: `flutter analyze` 无错,用 AppSpacing/AppRadius/AppColorScheme禁止硬编码颜色
- Java: Lombok 简化,资金变动方法加 `@Transactional(rollbackFor = Exception.class)`RESTful 设计
### Spec 同步
Phase 2 全部完成后、启动 Agent 前,**主对话必须更新 Spec**
- 实际实现与设计有差异时,以实现为准更新 Spec
- 确保 Phase 3/4 的 Agent 读到的是最新状态
---
## Phase 3: 精简 + 测试Agent A
Phase 2 完成且 Spec 已同步后,启动独立 Agent 执行代码精简和自动化测试。
### 启动 Agent A
```
Agent(
description: "精简+测试验证",
prompt: |
你是 Monisuo 项目质量 Agent独立完成以下任务不要询问用户。
## 1. 读取 Spec
- 路径: docs/features/[feature-name].md
- 理解验收标准
## 2. 代码审查
- git diff 查看变更
- Flutter: flutter analyze, AppSpacing/AppRadius/AppColorScheme 规范
- Java: @Transactional 资金方法, 统一异常处理, RESTful 设计
## 3. 代码精简simplify
- 对变更代码执行 /simplify审查复用性、质量和效率修复发现的问题
- 精简完成后重新运行 git diff 确认变更合理
## 4. 测试
- 后端: mvn test
- Flutter: cd flutter_monisuo && flutter test
- API: ./tests/api/test-[feature].sh如存在
## 5. 输出审查报告(供 Agent B 使用)
### 代码审查摘要
- 变更文件列表及每个文件的核心改动
- 代码规范检查结果
- 精简改动摘要(改了什么、为什么改)
### 测试结果
| 项目 | 状态 | 备注 |
|------|------|------|
| 代码审查 | ✅/❌ | |
| 代码精简 | ✅/❌ | 改动摘要 |
| 后端测试 | ✅/❌ | |
| Flutter 测试 | ✅/❌ | |
如有 Bug列出文件、原因、修复建议。返回主对话修复后重新验证。
)
```
---
## Phase 4: 功能验证Agent B
**Agent A 全部通过后**,启动独立 Agent。Agent B 接收 Agent A 的审查报告,避免重复读代码。
### 启动 Agent B
```
Agent(
description: "功能验证(用例驱动)",
prompt: |
你是 Monisuo 项目功能验证 Agent。基于 Feature Spec 中的测试用例,验证功能实现是否正确。不要询问用户。
## 1. 读取 Spec
- 路径: docs/features/[feature-name].md
- 提取「测试用例」和「验收标准」
## 2. 利用审查报告
- Agent A 已完成代码审查,变更文件列表和核心改动见报告
- 仅对报告未覆盖的逻辑路径做补充阅读
- 对照 Spec 中的 API 设计,确认实现与契约一致
## 3. 逐条验证测试用例
对 Spec 中的每条测试用例:
- **正常流程**:追踪代码路径,确认主流程逻辑正确(参数传递、返回值、状态变更)
- **异常流程**:确认错误处理覆盖(参数校验、权限检查、边界条件)
- **边界条件**:空值、零值、溢出、并发等极端场景是否有防护
### 验证方法
- **后端 API**:阅读 Controller → Service → Mapper 代码路径,确认请求参数、业务逻辑、数据库操作与 Spec 一致
- **前端页面**:阅读 UI → Provider/State → Service 代码路径,确认交互流程、状态管理、错误展示正确
- **数据一致性**:确认资金变动相关的操作有事务注解、余额校验、流水记录
## 4. 输出验证报告
| 用例编号 | 用例描述 | 验证结果 | 备注 |
|----------|----------|----------|------|
| TC-01 | 正常xxx | ✅ 通过 / ❌ 失败 | 具体原因 |
| TC-02 | 异常xxx | ✅ 通过 / ❌ 失败 | 具体原因 |
| ... | ... | ... | ... |
### 总结
- 通过率X/Y
- 未通过用例:列出失败原因和修复建议
- 风险点:潜在问题或遗漏
如有未通过用例,返回主对话修复后重新启动验证。
)
```
---
## Phase 5: 构建Agent C
**Agent A 和 Agent B 全部通过后**,启动独立 Agent 执行构建。
### 启动 Agent C
```
Agent(
description: "项目构建",
prompt: |
你是 Monisuo 项目构建 Agent独立完成构建任务不要询问用户。
## 1. 构建
- 后端: mvn clean package -DskipTests → target/monisuo-*.jar
- Flutter: cd flutter_monisuo && flutter build web --release --dart-define=ENV=prod → build/web/
## 2. 输出报告
| 项目 | 状态 | 备注 |
|------|------|------|
| 后端构建 | ✅/❌ | 产物路径 |
| Flutter 构建 | ✅/❌ | 产物路径 |
如有构建失败,列出:模块、错误信息、修复建议。返回主对话修复后重新构建。
)
```
---
## Bug 修复循环
- **Agent A 失败**(测试不通过)→ 主对话修复 Bug → 重新启动 Agent A
- **Agent B 失败**(功能验证不通过)→ 主对话修复逻辑 → 重新启动 Agent B
- **Agent C 失败**(构建不通过)→ 主对话修复构建问题 → 重新启动 Agent C
- **全部通过** → 开发完成