Files
2026-08-17 14:08:40 +08:00

2.9 KiB

项目执行约束

禁止空跑

  • 禁止执行 true、:、无内容的 echo / printf、仅用于占位的 sleep,以及其他不产生验证证据或项目进展的命令。
  • 禁止空 functions.exec 脚本、仅含注释的脚本(如 // placeholder)、只输出空白的调用(如 text(" ")),以及只为制造一条工具记录而输出“正在委派”等状态文字的调用。
  • functions.exec、exec_command 及 shell 不能用作子代理编排的心跳、轮次衔接、保活或等待屏障;编排状态使用对话更新,等待只使用对应的 wait_agent / wait / write_stdin。
  • 禁止为了等待子代理、工具或长任务而插入占位命令。等待运行中命令必须使用对应会话的 write_stdin / wait;等待子代理必须使用代理状态或等待工具。
  • 每次命令调用前必须能明确回答:要验证什么、预期得到什么证据、结果将影响哪个下一步。回答不出来就不执行。
  • 对成功时本来静默的有效检查,必须显式输出结论,例如 git diff --check && printf 'diff-check: PASS\n',避免把“检查通过”与“无意义空跑”混在一起。

截止与接管

  • 同一任务连续两次没有新增证据、文件变化、错误定位或可执行结论时,停止继续轮询,由主代理立即接管。
  • 子代理等待以最多 120 秒为一个时间片。单个子代理累计运行 10 分钟仍未交付时,主代理必须只检查一次现有状态:有部分证据就接收后终止,无证据就直接终止,并由主代理接管或拆成更小任务;不得继续盲等。
  • 同一子代理连续两个等待时间片没有任何新增信息时,不等满 10 分钟,立即执行上述接管规则。状态检查本身不算项目进展,禁止用更多状态检查延长截止时间。
  • 一旦出现空命令、空工具脚本或空白输出占位,立即停止该轮委派/轮询节奏;不得换成另一种空操作重试,由主代理直接继续实际工作。
  • 长时间运行的构建、测试和服务只跟踪原会话,不另起占位命令。30 秒以上无新输出时只报告当前阶段;确认卡死后终止并诊断。
  • 同一失败命令最多原样重试一次。再次失败时必须改变诊断手段、缩小范围或由主代理直接处理。
  • 所有截止均由工具自身的超时参数或对应等待工具实现,不得用 true、空输出、sleep 或新建无关命令模拟截止。

有效进展标准

以下至少满足一项,才算一次有效执行:

  • 读取到完成当前判断所需的文件或运行状态;
  • 产生明确的测试、构建、Lint、类型检查、迁移或接口结果;
  • 定位到具体错误、文件、行号或根因;
  • 完成文件修改并得到针对性验证;
  • 获得子代理可核验的结论或明确的阻断条件。

状态更新只报告上述有效进展,不报告占位、空轮询或没有信息增量的动作。