name: executing-plans description: 通过智能任务分组执行实现计划。分组相关任务以共享上下文,在独立子系统间并行化。
执行计划
你是一个编排者。 生成并协调子代理以执行实际实现。按子系统分组相关任务(例如,一个代理负责API路由,另一个负责测试),而不是每个任务都生成代理。每个代理重新调查代码库,因此更少的代理和更广泛的范围 = 更快的执行。
1. 设置
创建工作分支,除非是琐碎工作。考虑使用git工作树进行隔离环境。
提前澄清歧义: 如果计划有不清楚的需求或有意义的权衡,在开始前使用 AskUserQuestion。提供选项并附上描述解释权衡。对于可以组合的独立功能,使用 multiSelect: true;对于互斥的选择,使用单选。当用户可以在10秒内澄清时,不要猜测。
用任务跟踪进度: 使用 TaskCreate 为计划中的每个主要工作项创建任务。随着工作进展,使用 TaskUpdate 更新状态(开始时为 in_progress,完成时为 completed)。这使得执行对用户可见,并在上下文压缩中持久化。
2. 按子系统分组任务
分组相关任务以共享代理上下文。每个子系统一个代理,组并行运行。
为什么分组重要:
无分组:任务1 (auth/login) → 代理1 [探索auth/]
任务2 (auth/logout) → 代理2 [再次探索auth/]
有分组:任务1-2 (auth/*) → 代理1 [探索一次,执行两个]
| 信号 | 分组在一起 |
|---|---|
| 相同目录前缀 | src/auth/* 任务 |
| 相同域/功能 | 认证任务、计费任务 |
| 计划章节 | 相同 ## 标题下的任务 |
限制: 每组最多3-4个任务。如果更大则拆分。
并行: 组涉及不同子系统
组A: src/auth/* ─┬─ 并行
组B: src/billing/* ─┘
顺序: 组有依赖关系
组A: 创建共享类型 → 组B: 使用这些类型
3. 执行
派遣子代理完成任务组。监控进度并处理问题。
任务工具(通用):
description: "认证任务:登录、注销"
prompt: |
按顺序从[计划文件]执行这些任务:
- 任务1:添加登录端点
- 任务2:添加注销端点
使用技能:<相关技能>
每个任务后提交。报告:文件更改、测试结果
架构适应: 更改应与现有模式无缝集成。如果更改感觉与架构冲突,那是先重构而不是硬塞的信号。不要重新发明轮子,当有经过战斗测试的库存在时,但也不要为琐碎事情依赖库(不要只为了 _.map 使用lodash)。目标是零技术债务,而不是“先发布,后修复”。
自动恢复:
- 代理尝试修复失败(有上下文)
- 如果无法修复,报告失败并附上错误输出
- 派遣修复代理,带上下文
- 同一错误两次 → 停止并询问用户
4. 验证
在标记完成前,所有四项检查必须通过:
-
自动化测试: 运行完整测试套件。所有测试必须通过。
-
手动验证: 自动化测试不足够。实际演练更改:
- API更改: 使用真实负载curl端点
- 外部集成: 测试真实服务以捕获限速、格式漂移、机器人检测
- CLI更改: 运行实际命令,验证输出
- 解析器更改: 输入真实数据,不仅仅是fixtures
-
开发者体验质量: 在手动测试期间,注意摩擦:
- 令人困惑的错误消息
- 嘈杂输出(遥测垃圾、详细日志)
- 相似端点间不一致的行为
- 技术上可行但感觉不佳的粗糙边缘
内联修复DX问题或记录后续处理。不要发布摩擦。
-
代码审查(强制): 测试通过和手动验证完成后,通过任务工具派遣
ce:code-reviewer代理审查与基础分支的完整差异。此步骤不是可选的。根据实施内容,加载相关领域技能到代理中。评估哪些适用并包含在代理提示中:
Skill(ce:architecting-systems)- 系统设计、模块边界Skill(ce:managing-databases)- 数据库工作Skill(ce:handling-errors)- 错误处理Skill(ce:writing-tests)- 测试质量Skill(ce:migrating-code)- 迁移Skill(ce:optimizing-performance)- 性能工作Skill(ce:refactoring-code)- 重构
处理审查裁决:
- 必须修复: 在标记完成前修复所有关键和重要问题
- 建议: 也修复这些,除非有明确理由不修复
计划执行在审查发现解决前未完成。
5. 提交
验证通过后,仅提交与此计划相关的更改:
- 运行
git status查看所有更改 - 按名称暂存文件,而不是使用
git add -A或git add .- 只暂存您作为此计划一部分修改的文件 - 不处理无关更改 - 如果有与此工作无关的预暂存或未暂存更改,不要碰它们
- 编写提交消息,总结实施内容,引用计划
6. 清理
提交后:
- 合并分支到主分支(如果使用分支)
- 移除工作树(如果使用工作树)
- 标记计划文件为完成
- 如果适用,移动到
./plans/done/