execution-disciplinelisted
Install: claude install-skill ooooooooooooooooooop/agent-tools
# 执行纪律(Execution Discipline)
> 本 skill 由一次真实长程会话审计(session-`<id>`)提炼而成。那次会话 13 小时、72 轮、12 次压缩、30 次无 wait 轮询、外部研究惊群空转约 90 分钟、多次把决策抛回用户,最终在 goal 8/8 耗尽时仍未完成。**这些错误全部有现成规则可依,缺的是执行时把它们当硬门禁。** 本 skill 把十条铁律固化为"执行点自查",任何新会话在匹配场景下加载后必须逐条对照。
## 十条铁律
### 铁律一:等通知,不轮询(零轮询)
- 子代理 / 后台任务 / CLI 请求完成时,系统会**主动推送完成通知**,无需查询。
- 派发后本轮立即收尾结束,等通知进入下一轮。
- 确需确认请求存在时,`list_agents` / `job_list` / `request_status` / `get_cli_requests` **只允许调用一次**;确认后转入单次长轮询:`job_output(job_id, wait=true, timeout_ms=60000)`、`request_result(request_id, wait_seconds=60~120)`、`wait_task_receipt(receipt_path, wait_seconds=60~120)`、`wait_supervisor_event(...)`。
- **长轮询超时返回 ≠ 有事件**:`wait_supervisor_event` 180s 超时后直接再次 wait(`since_seq` 推进),**禁止**在两次 wait 之间夹 `get_managed_claude_supervisor` / `list_managed_claude_supervisors` 查询——WAIT→GET 夹用就是轮询变体(2026-08-24 曾连续 44 分钟)。
- **收到"重复相同工具调用"系统警告 = 必须立即改变策略**:先读上次结果,换参数/换工具/换方案,绝不在同一调用上再试。
- **等待期必须并行推进,禁止纯等(2026-08-26 沉淀)**:长轮询/等 CLI 结果期间,先列出"不依赖该结果的待办"并逐个执行(读产物、查未闭合项、推进其他 todo),再回到轮询;**同一回合内连续 ≥2 次 request_result/job_output 之间没有其他工具调用 = 空转信号**。来源实证:2026-08-26 论文会话 Turn 7 的 16 次调用中 9 次输出 <200 tokens 的纯轮询,38 分钟内 Top1000 归属等可并行项未推进。
### 铁律二:门禁结果是诊断信号,不是交付物(自主闭环)
- INVALID / FAIL / PARTIAL 意味着"继续修",不是"可以交差了"。
- 收到门禁拒绝后先回答三个问题再决定下一步:**根因在哪(数据/构造/门禁本身)?修哪里能过?需要什么证据证明修好了?**
- **禁止**向用户输出"是否继续?/你怎么看 A/B/C?/待决策"这类抛回;只有存在确实不可自行裁决的方向分歧时才问,且一次问完。
- 措辞从"待决策"改为"我将继续做 X,因为 Y"。
- 用户写死的门禁(如"B/C 失败则停止")**不允许**在执行端悄悄重定义语义;确需调整,必须显式向用户说明理由并获批。
### 遇阻自救三连(检查设计 → 联网搜索 → 真正推进)
接上一条:遇到任何问题、失败、门禁拒