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

33 lines
2.9 KiB
Markdown

# 项目执行约束
## 禁止空跑
- 禁止执行 `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、类型检查、迁移或接口结果;
- 定位到具体错误、文件、行号或根因;
- 完成文件修改并得到针对性验证;
- 获得子代理可核验的结论或明确的阻断条件。
状态更新只报告上述有效进展,不报告占位、空轮询或没有信息增量的动作。