← ClaudeAtlas

execution-disciplinelisted

在 DSH 长程/多工具会话中强制九条执行纪律,防止高频反模式重演:禁止无 wait 轮询、禁止把门禁拒绝当交付物抛回决策、外部研究先探测通道再极窄探针、探查派子代理不肉身 Read、子代理派发带进度回报协议、回合结束零悬挂收尾、上下文预算(回合合并+结果落盘)。用于接手长任务、等待子代理/后台任务、发起外部研究、收到 INVALID/FAIL/PARTIAL 门禁结果、收到"重复工具调用"系统警告、需要读取多个源码文件或大文件,以及任何需要"执行层不空转、不惊群、不绕门禁"的执行场景。不用于单轮小修改或无需持久化的临时问答。
ooooooooooooooooooop/agent-tools · ★ 3 · DevOps & Infrastructure · score 75
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 失败则停止")**不允许**在执行端悄悄重定义语义;确需调整,必须显式向用户说明理由并获批。 ### 遇阻自救三连(检查设计 → 联网搜索 → 真正推进) 接上一条:遇到任何问题、失败、门禁拒