name: executing-plans description: 当你要在当前会话里亲自担任实现者执行一份实现计划时使用——你的人类伙伴选择了内联执行,或者没有可用的子智能体工具 version: "1.0.0" license: MIT metadata: hermes: tags: [execution, planning]
执行计划
在本会话里亲自执行计划,一个任务接一个任务:不为每个任务派实现子智能体,也不为每个任务派审查者。只在最后对整个分支做一次全新上下文的审查。
为什么内联: 子智能体驱动开发为每个任务付一个全新实现者和一个全新审查者的钱,每一个都要从零重读代码库。内联执行只付一个上下文(你自己的)外加最后一个审查者。它放弃的是每个任务一份全新上下文、每个任务第二双眼睛。本技能用别的办法保住那两样东西换来的好处:简报就是规格,账本就是你的记忆,TDD 是每个任务的关卡,最终审查者就是第二双眼睛。
核心原则: 计划已经把该想的都想过了。严格照它执行,每一步都用一个你亲眼看着失败、又亲眼看着通过的测试来证明,并留下一份在你自己遗忘之后依然存在的记录。
旁白: 工具调用之间最多说一句简短的旁白——账本和工具结果本身就是记录。
持续执行: 不要在任务之间停下来向你的人类伙伴确认。他们选内联执行是为了少花钱,不是为了每做完一个任务就回答一次"我该继续吗?"。不间断地执行计划里的所有任务。
做裁决,不要停摆。 冲突、歧义、计划缺陷——你自己定。规格是有约束力的权威,计划是它的论证,两者都答不上来的部分由你的判断来定。每个决定都以 Ruling: <你决定了什么> — <为什么> — <如果错了代价是什么> 记进账本,然后继续。没有记进账本的裁决就偏离计划,等于一个暗中做出的决定。
只有四件事会让你停下,也只有这四件:不可逆或破坏性的操作;涉及安全的动作;这个工作树之外、按惯例应当先问一声的副作用(合并、推送到共享分支、发布);以及一个坏到每条前进路径都只能靠猜的计划。遇到这四类,停下来问。
何时使用
- 你有一份来自 writing-plans 的计划,而你的人类伙伴在交接时选择了内联执行。
- 你的运行环境没有子智能体工具(见
../using-superpowers/references/下的各平台参考)。绝不编造一次分派;就在这里执行计划。 - 任务基本相互独立——与 subagent-driven-development 的前提相同。
一份写得完整的计划,会让内联执行变成"照抄 + 测试":它在中档的会话模型上就能跑得很好,而最强模型唯一值回票价的地方是最终审查——本技能会单独分派它。你的人类伙伴选择内联时,把这一点告诉他们。
当你的人类伙伴希望每个任务都有一道审查关卡,或者计划长到后面的任务会在压缩过的上下文上运行时,优先选 subagent-driven-development。在长计划上内联执行依然可行——账本让它可以恢复——但最后那几个任务分到的是最少的你。
流程
digraph process {
rankdir=TB;
subgraph cluster_per_task {
label="每个任务";
"task-start: 简报 + BASE; 读简报" [shape=box];
"按顺序做各步: TDD, 跑每个验证, 读每份输出" [shape=box];
"步骤输出与计划的 Expected 一致?" [shape=diamond];
"计划错了? 裁决并记账。代码错了? systematic-debugging" [shape=box];
"按计划的提交步骤提交" [shape=box];
"完成契约满足?" [shape=diamond];
"task-done: 跑测试, 结果记进账本; 标记待办完成" [shape=box];
}
"准备: 工作树、工作区 + 账本、读计划 + 规格、起飞前扫描" [shape=box];
"还有任务?" [shape=diamond];
"最终整分支审查 (有条件就用全新审查者)" [shape=box];
"重新定级, 然后: Critical/Important → 一轮修复, 每个修复 RED→GREEN + 全套件绿; Minor → 账本" [shape=box];
"最终审查干净: 删除本计划的工作区" [shape=box];
"使用 finishing-a-development-branch" [shape=box style=filled fillcolor=lightgreen];
"准备: 工作树、工作区 + 账本、读计划 + 规格、起飞前扫描" -> "task-start: 简报 + BASE; 读简报";
"task-start: 简报 + BASE; 读简报" -> "按顺序做各步: TDD, 跑每个验证, 读每份输出";
"按顺序做各步: TDD, 跑每个验证, 读每份输出" -> "步骤输出与计划的 Expected 一致?";
"步骤输出与计划的 Expected 一致?" -> "计划错了? 裁决并记账。代码错了? systematic-debugging" [label="否"];
"计划错了? 裁决并记账。代码错了? systematic-debugging" -> "按顺序做各步: TDD, 跑每个验证, 读每份输出";
"步骤输出与计划的 Expected 一致?" -> "按计划的提交步骤提交" [label="是, 最后一步"];
"按计划的提交步骤提交" -> "完成契约满足?";
"完成契约满足?" -> "按顺序做各步: TDD, 跑每个验证, 读每份输出" [label="否 - 把任务做完"];
"完成契约满足?" -> "task-done: 跑测试, 结果记进账本; 标记待办完成" [label="是"];
"task-done: 跑测试, 结果记进账本; 标记待办完成" -> "还有任务?";
"还有任务?" -> "task-start: 简报 + BASE; 读简报" [label="是"];
"还有任务?" -> "最终整分支审查 (有条件就用全新审查者)" [label="否"];
"最终整分支审查 (有条件就用全新审查者)" -> "重新定级, 然后: Critical/Important → 一轮修复, 每个修复 RED→GREEN + 全套件绿; Minor → 账本";
"重新定级, 然后: Critical/Important → 一轮修复, 每个修复 RED→GREEN + 全套件绿; Minor → 账本" -> "最终审查干净: 删除本计划的工作区";
"最终审查干净: 删除本计划的工作区" -> "使用 finishing-a-development-branch";
}