astro:exec — 执行完整计划(第2阶段,批量)
编排 所有 astro:plan 计划(当前会话的任务列表)中的任务,按顺序逐项执行。遵守 astro:setup 的契约(记录在 CLAUDE.md 中)和强制架构。
执行流程
- 选择计划: 使用当前会话中
astro:plan提供的计划。如果没有,请先执行astro:plan。如果用户只想执行部分计划,请先确认要执行的范围。 - 安排任务顺序: 基于
Depende de(依赖关系)构建拓扑顺序:在依赖任务完成之前,绝不开始任何任务。 - 对每个待办任务,按顺序执行如下:标记为进行中 → 说明上下文 → 仅实现任务范围内的工作 → 运行测试 → 验证验收标准和完成定义 → 标记为已完成。
- 每完成一个任务后,调用
astro:commit记录该任务的变更(每个任务一个提交)。astro:exec不会自行创建或执行提交;这是astro:commit的工作。不要执行push。提交中 只包含代码;计划本身不会被写入文件。 - 显示进度: 每完成一个任务后展示进度(例如:
2/5 已完成 — 下一项 03),并保持会话列表更新。所有任务完成后,声明计划已结束。
何时暂停(不要自动继续)
- 出现了 需要用户决定的事项(计划中未包含的) → 提问(AskUserQuestion)并等待。
- 测试失败 且无法在任务范围内解决 → 暂停并展示真实证据。
- 任务涉及 破坏性操作、机密信息或依赖变更 → 契约屏障:暂停并确认。
- 某个任务暴露了 超出计划范围的工作 → 将其作为新任务记录到列表中然后继续;如果是阻塞性的,暂停并与用户对齐。
结束之后
- 总结已完成的工作(已完成的任务、测试输出证据)。
- 如果由于暂停而有未完成的任务,说明还剩哪些以及原因。
- 建议执行
astro:pr/astro:answer以完结整个工作。
逐个任务执行,按顺序 — 绝不并行,以保证原子性提交和可审查性。