用途:在 /moai sync 第四阶段(gh pr create)返回 PR 编号后,由编排器调用该技能,统一执行 CI 监控与自动修复,也适用于监控已有 PR 的 CI。
主要能力:分为 Watch 与 Auto-fix 两个阶段。Watch 阶段每 30 秒轮询 gh pr checks,依据 .github/required-checks.yml 区分必需与辅助检查;退出码 0 表示必需检查全通过并询问是否可合并,2 表示必需失败并输出 JSON 交接,3 表示 30 分钟硬超时。Auto-fix 阶段在 exit 2 后接收 JSON 交接,最多 3 次补丁迭代;第 1 次无论机械与否都需用户确认,第 2-3 次仅 trivial 类静默应用,语义失败(竞态、死锁、panic、断言)不自动修补,第 4 次及以上强制阻塞询问用户(手动修复/修订 SPEC/放弃 PR)。
使用方式:单行为 MOAI_CIWATCH_GH=gh sh scripts/ci-watch/run.sh <PR_NUMBER> <BRANCH>。长期 PR 建议用 gh pr checks <PR> --watch 并以 run_in_background 运行。环境变量 CIWATCH_POLL_INTERVAL、CIWATCH_TIMEOUT_SECONDS 可调,测试用 MOAI_CIWATCH_NO_SLEEP=1。每次补丁生成新提交,格式 fix(ci): auto-fix <classification> failure (iter <N>),推送后重新调用 run.sh。审计日志见 .moai/logs/ci-autofix/<PR-NNN>-<YYYY-MM-DD>.md。
限制与硬性约束:AskUserQuestion 仅限编排器调用,CLI、shell 脚本和 manager-develop(cycle_type=autofix)子代理不得调用;严禁 force-push(含 --force、-f、--force-with-lease);轮询间隔不得低于 30 秒;保护文件(.env*、凭证、.claude/settings*.json、.github/required-checks.yml、scripts/ci-watch/run.sh)不得自动修改。gh CLI 需 2.50 以上,旧版本回退到基于名称的启发式判断。