用途:单元测试用假的 agent CLI,而 tests/*-smoke.eval.yaml 中的冒烟评测运行真实 CLI,是证明 harness 改动端到端可用的证据。因调用付费模型,CI 跳过,只应运行改动涉及的后端。
用法:在仓库根目录、开发环境激活后先规划:python .agents/skills/smoke-harness/scripts/smoke.py --dry-run。不带参数时脚本自动选择本分支触及的后端(后端自身 harness 文件只影响该后端,共享 caliper/ 代码影响全部),并跳过找不到 CLI 的后端(依次查 *_CLI_PATH 覆盖、安装位置、PATH)。可指定后端覆盖,如 smoke.py codex pi,或用 claude-code:claude-haiku-4-5-20251001 固定模型。计划需覆盖改动触及的每个后端;因缺 CLI 被跳过的后端属未验证,须在报告和 PR 中说明,不能算通过。
去掉 --dry-run 运行同一命令。每个 spec 只跑一次(--k 1),脚本检查保存的结果 JSON:每任务一次尝试、每次尝试通过、有 transcript、无 hook 失败、记录了请求的后端、用户自定义关闭。退出码 0 表示全部检查通过,1 会在对应 spec 下列出失败检查,2 表示无法运行。
失败处理:先读失败再改代码。每行给出任务、结果及 judge 或 assert 证据,完整结果 JSON 在最后一行打印的目录中。将失败归类:自身改动(修复后从第 2 步重跑)、偶发(infra_error/timeout 或 judge 误读正确 transcript,重跑该后端一次,二次失败不算偶发)、环境问题(CLI 未登录、mcp-remote-smoke 网络不通、mcp-header-smoke 端口 8765 被占),环境问题报告为未验证。
报告:给出计划、每个 spec 的结果行及所有未验证项,作为 PR 中 harness 改动的证据。新增冒烟 spec 时,需在 scripts/smoke.py 的 SPECS 中登记其运行后端,并与 spec 顶部 "Run it" 注释一致。