--- name: executing-plans description: 当你有一份书面实现计划需要在单独的会话中执行,并设有审查检查点时使用 --- # 执行计划 ## 概述 加载计划,批判性审查,执行所有任务,完成后报告。 **开始时宣布:** "我正在使用 executing-plans 技能来实现此计划。" **注意:** 告诉你的人类伙伴,Superpowers 在有子代理支持时效果好得多。如果在支持子代理的平台上运行(如 Claude Code 或 Codex),其工作质量会显著提高。如果子代理可用,请使用 superpowers:subagent-driven-development 而非此技能。 ## 流程 ### 步骤 1:加载并审查计划 1. 读取计划文件 2. 批判性审查——识别计划中的任何问题或疑虑 3. 如果有疑虑:在开始之前向你的人类伙伴提出 4. 如果没有疑虑:创建 TodoWrite 并继续 **审查时重点检查:** - 步骤之间是否有依赖遗漏?(A 依赖 B,但 B 排在 A 之后) - 验证条件是否明确?("确认可用"不算,"运行 `npm test` 全部通过"才算) - 是否有隐含的环境假设?(Node 版本、数据库连接、API Key) **审查示例:** ``` 计划文件:docs/plan.md 任务清单:5 个任务 审查发现: - 任务 3(添加数据库迁移)应在任务 2(编写数据模型)之后,顺序正确 ✓ - 任务 4 的验证条件写的是"确认功能正常"→ 需澄清:具体跑什么测试? - 计划未提及 Python 版本要求 → 需确认 向伙伴提出: "计划整体可执行。有两个问题:(1) 任务 4 的验证条件不够具体,建议改为 '运行 pytest tests/test_api.py 全部通过';(2) 需要确认 Python 版本要求。" ``` ### 步骤 2:执行任务 对于每个任务: 1. **标记为进行中** — 更新 TodoWrite 2. **理解目标** — 重读任务描述,明确完成标准 3. **执行实现** — 严格按照计划步骤执行(计划已有小步骤) 4. **运行验证** — 按要求运行测试或检查 5. **提交变更** — 每完成一个任务提交一次,commit message 引用任务编号 6. **标记为已完成** — 更新 TodoWrite **每个任务的节奏:** ``` --- 任务 2/5:添加用户验证 --- [标记进行中] 目标:为 /api/users 添加输入验证 完成标准:所有验证测试通过,无效输入返回 400 [实现] - 添加 validateUser() 中间件 - 编写 3 个验证规则(email 格式、密码强度、用户名长度) [验证] $ npm test -- --grep "validation" ✓ 拒绝无效 email (12ms) ✓ 拒绝弱密码 (8ms) ✓ 拒绝过长用户名 (5ms) 3 passing [提交] $ git add src/middleware/validate.js tests/validation.test.js $ git commit -m "feat: 添加用户输入验证(任务 2/5)" [标记完成] --- 任务 2/5 完成 --- ``` **批量审查检查点:** - 每完成 3 个任务后,暂停回顾:整体方向还对吗?有没有偏离计划? - 如果发现前面的实现有问题,先修复再继续,不要带着问题往下走 ### 步骤 3:处理常见异常 **测试失败:** 1. 读错误信息,定位失败原因 2. 区分:是实现 bug?还是测试本身有问题?还是计划描述有误? 3. 实现 bug → 修复并重跑 4. 测试有问题 → 修复测试,向伙伴说明 5. 计划有误 → 停下来,向伙伴报告并建议修正 **依赖缺失:** ``` 任务 3 需要 Redis 连接,但计划中没有提及 Redis 配置。 → 停止执行 → 向伙伴报告:"任务 3 需要 Redis,计划中未包含配置步骤。 建议:在任务 3 前插入 '配置 Redis 连接' 步骤。" ``` **指令不清:** - 不要猜测意图,不要"合理推断" - 列出你的理解和困惑,让伙伴澄清 - 等待回复后再继续 ### 步骤 4:完成开发 所有任务完成并验证后: - 宣布:"我正在使用 finishing-a-development-branch 技能来完成此工作。" - **必需子技能:** 使用 superpowers:finishing-a-development-branch - 按照该技能的指引验证测试、展示选项、执行选择 **完成报告模板:** ``` ## 执行报告 **计划:** docs/plan.md **分支:** feature/user-validation **任务:** 5/5 已完成 ### 完成的任务 1. ✅ 初始化项目结构 2. ✅ 添加用户验证 3. ✅ 添加数据库迁移 4. ✅ 实现 API 端点 5. ✅ 添加集成测试 ### 验证结果 - 单元测试:23/23 通过 - 集成测试:8/8 通过 - lint 检查:0 个警告 ### 偏离计划的地方 - 任务 3:Redis 配置从 env 改为 config.yaml(经伙伴同意) ### 下一步 按 finishing-a-development-branch 技能处理合并/PR ``` ## 何时停下来求助 **在以下情况立即停止执行:** - 遇到阻塞(缺少依赖、测试失败、指令不清) - 计划有严重缺陷导致无法开始 - 你不理解某条指令 - 验证反复失败(同一测试失败 2 次以上) **不确定时就问,不要猜测。** ## 何时回到之前的步骤 **回到审查(步骤 1)当:** - 伙伴根据你的反馈更新了计划 - 根本性的方案需要重新考虑 **不要硬闯阻塞** — 停下来问。 ## 注意事项 - 先批判性审查计划 - 严格按照计划步骤执行 - 不要跳过验证 - 每个任务单独提交,commit message 引用任务编号 - 计划要求时引用相应技能 - 遇到阻塞时停下来,不要猜测 - 未经用户明确同意,绝不在 main/master 分支上开始实现 ## 集成 **必需的工作流技能:** - **superpowers:using-git-worktrees** - 必需:开始前建立隔离的工作空间 - **superpowers:writing-plans** - 创建此技能要执行的计划 - **superpowers:finishing-a-development-branch** - 所有任务完成后收尾开发