name: writing-plans description: 创建按子系统分组任务的实施计划。相关任务共享代理上下文;组在子系统间并行化。
编写计划
为代理执行编写逐步实施计划。每个任务应是一个完整的工作单元,由一个代理完全处理。
提前澄清模糊点: 如果计划有不清楚的要求或有意义的权衡,在编写计划前使用AskUserQuestion。提供选项描述解释权衡。对于可以组合的独立功能使用multiSelect: true;对于互斥选择使用单选。不要猜测,当用户可以在10秒内澄清时。
保存到: **/plans/YYYY-MM-DD-<功能名称>.md
计划模板
# [功能名称] 实施计划
> **状态:** 草稿 | 已批准 | 进行中 | 已完成
## 规范
**问题:** [什么是损坏的、缺失的或需要的。描述当前状态及为什么不足。足够具体,让不熟悉代码库的人理解问题。]
**目标:** [工作完成后最终状态看起来如何。描述用户/开发者体验,而非实施。]
**范围:** [什么包含在内,什么排除在外。明确边界防止范围蔓延。]
**成功标准:**
- [ ] 标准1(可测量/可验证)
- [ ] 标准2
## 上下文加载
_开始前运行:_
```bash
read src/relevant/file.ts
glob src/feature/**/*.ts
```
## 任务
### 任务1: [完整功能单元]
**上下文:** `src/auth/`, `tests/auth/`
**步骤:**
1. [ ] 创建`src/auth/login.ts`包含认证逻辑
2. [ ] 在`tests/auth/login.test.ts`中添加测试
3. [ ] 从`src/auth/index.ts`导出
**验证:** `npm test -- tests/auth/`
---
### 任务2: [另一个完整单元]
**上下文:** `src/billing/`
**步骤:**
1. [ ] ...
**验证:** `npm test -- tests/billing/`
任务大小
一个任务包括所有完成一个逻辑单元的内容:
- 实施 + 测试 + 类型 + 导出
- 一个代理应一起处理的所有步骤
大小适中: “添加用户认证” - 一个代理做模型、服务、测试、类型 错误: 为模型、服务、测试分开任务 - 这些应为一个任务
捆绑琐碎项: 将小的相关更改(添加导出、更新配置、重命名)分组到一个任务中。
并行化与分组
执行期间,任务按子系统分组以共享代理上下文。构建您的计划使分组清晰:
## 认证任务 ← 这些将在一个代理中运行
### 任务1: 添加登录
### 任务2: 添加登出
## 计费任务 ← 这些将在另一个代理中运行(并行)
### 任务3: 添加计费API
### 任务4: 添加Webhooks
## 集成任务 ← 顺序(依赖于上述)
### 任务5: 连接认证 + 计费
执行模型:
- 相同
##标题下的任务 → 分组到一个代理中 - 涉及不同子系统的组 → 并行运行
- 每组最多3-4个任务(拆分较大的部分)
同一子系统中的任务应是顺序的或组合成一个任务。
规则
- 显式路径: 说“创建
src/utils/helpers.ts”而非“创建一个实用工具” - 每个任务的上下文: 列出代理应先读取的文件
- 验证每个任务: 以一个命令结束以证明其工作
- 每个任务一个代理: 一个任务中的所有步骤由同一个代理处理
呈现前
向用户呈现计划前,通过任务工具派遣ce:devils-advocate代理审查它:
- 将完整的计划草案文本传递给代理
- 基于计划涉及的内容加载相关领域技能。评估哪些适用并包含在代理提示中:
Skill(ce:architecting-systems)- 系统设计、模块边界、依赖关系Skill(ce:managing-databases)- 数据库模式、查询、迁移Skill(ce:handling-errors)- 错误处理模式Skill(ce:writing-tests)- 测试策略和质量Skill(ce:migrating-code)- 代码迁移、API版本控制Skill(ce:optimizing-performance)- 性能敏感工作Skill(ce:refactoring-code)- 结构重构
- 代理将寻找:未陈述的假设、缺失的边缘案例、任务太模糊、任务间缺失的依赖关系、验证空白
- 将有效反馈纳入计划
- 在计划底部以简短“审查笔记”注释记录审查捕获的内容
仅当计划是微不足道的(< 3个任务、单子系统、无架构决策)时跳过此步骤。
大型计划
对于超过约500行的计划,拆分为文件夹中的阶段:
**/plans/YYYY-MM-DD-feature/
├── README.md # 概述 + 阶段跟踪
├── phase-1-setup.md
└── phase-2-feature.md