# 任务分解规则

## 📋 规则说明

在接到新任务后，必须将主任务分解成合适的子任务，通过分步执行的方式来保障开发的稳定性和准确性。

---

## 🎯 核心原则

1. **先分解，后执行** - 不要直接开始编码，先进行任务分解
2. **小步快跑** - 每个子任务应该是独立、可测试的小单元
3. **逐步验证** - 完成一个子任务后，验证无误再进行下一个
4. **降低风险** - 避免一次性修改过多文件导致的连锁错误

---

## 📝 任务分解流程

### 第一步：理解需求
- 仔细阅读用户的需求描述
- 明确功能目标和验收标准
- 识别涉及的技术栈和文件

### 第二步：分解任务
将主任务分解为 3-8 个子任务，每个子任务应该：
- **独立性** - 可以独立完成和测试
- **原子性** - 只做一件事情
- **可验证** - 有明确的完成标准
- **有序性** - 按照依赖关系排序

### 第三步：列出任务清单
使用 TaskCreate 工具创建任务清单，包括：
- 任务标题（简短、动词开头）
- 详细描述（包含具体要做什么）
- 预期结果（如何验证完成）

### 第四步：逐个执行
- 使用 TaskUpdate 标记任务为 in_progress
- 完成后标记为 completed
- 遇到问题及时反馈，不要继续下一个任务

---

## ✅ 良好的任务分解示例

**主任务：** 添加用户管理功能

**子任务分解：**
1. 创建用户列表页面路由和模板
2. 创建用户详情页面路由和模板
3. 实现重置密码 API 接口
4. 实现修改用户名 API 接口
5. 在管理后台首页添加用户统计
6. 在管理后台导航添加用户管理入口

---

## ❌ 不良的任务分解示例

**错误示例1：任务过大**
- ❌ "完成用户管理功能" - 太笼统，无法独立验证

**错误示例2：任务过细**
- ❌ "创建 user_list.html 文件"
- ❌ "在 user_list.html 中添加表格"
- ❌ "在表格中添加用户名列"
- 这样分解过于琐碎，失去了任务管理的意义

**错误示例3：任务无序**
- ❌ 先做"添加导航入口"，后做"创建页面路由"
- 应该先有功能，再添加入口

---

## 🔍 任务粒度参考

### 合适的任务粒度：
- 创建一个完整的页面（路由 + 模板 + 样式）
- 实现一个 API 接口（路由 + 逻辑 + 错误处理）
- 添加一个数据库表（模型 + 迁移脚本）
- 实现一个完整的功能模块（前端 + 后端）

### 任务太大的信号：
- 需要修改超过 5 个文件
- 预计耗时超过 30 分钟
- 包含多个不相关的功能点
- 难以用一句话描述清楚

### 任务太小的信号：
- 只修改几行代码
- 无法独立测试
- 必须和其他任务一起才有意义

---

## 🛠️ 使用工具

### TaskCreate - 创建任务
```
subject: "创建用户列表页面"
description: "创建 /admin/users 路由，实现用户列表展示，包括搜索和分页功能"
activeForm: "创建用户列表页面"
```

### TaskUpdate - 更新任务状态
```
taskId: "1"
status: "in_progress"  # 开始工作时
```

```
taskId: "1"
status: "completed"  # 完成后
```

### TaskList - 查看任务列表
定期查看任务列表，了解整体进度

---

## 📊 任务分解模板

### 模板1：新增功能页面
1. 创建后端路由和数据查询逻辑
2. 创建前端页面模板
3. 添加页面样式和交互
4. 在导航菜单中添加入口
5. 测试功能完整性

### 模板2：API 接口开发
1. 设计 API 接口规范（URL、参数、返回值）
2. 实现后端路由和业务逻辑
3. 添加参数验证和错误处理
4. 实现前端调用逻辑
5. 测试接口功能

### 模板3：数据库变更
1. 设计数据库表结构
2. 创建数据库迁移脚本
3. 更新 ORM 模型定义
4. 运行迁移并验证
5. 更新相关业务逻辑

---

## ⚠️ 注意事项

1. **不要跳过分解步骤** - 即使任务看起来简单，也要先分解
2. **及时调整计划** - 如果发现任务分解不合理，及时调整
3. **记录遇到的问题** - 在任务描述中记录遇到的问题和解决方案
4. **保持沟通** - 遇到不确定的地方，及时向用户确认

---

## 🎯 预期效果

通过任务分解，可以达到：
- ✅ 降低开发风险，减少大规模返工
- ✅ 提高代码质量，每个子任务都经过验证
- ✅ 便于进度跟踪，用户可以看到实时进展
- ✅ 提升开发效率，问题可以及早发现和解决

---

**创建日期**: 2025-02-08
**最后更新**: 2025-02-08
**维护人**: Claude Sonnet 4.5
