forge-guard 是一个面向拉取请求(PR)的无人值守守卫流程,用于将处于“已推送”状态的开放 PR 推进到“人类可以查看”的 review-ready 状态,过程中不向用户提问。
用途
- 自动推进 PR 到可供人工审阅的阶段,减少人工盯守。
- 在等待 CI 和同行评审期间,自动执行质量检查并处理反馈。
- 将无法自动决策的问题保留给人类。
主要能力
- 定位 PR:接受 PR 编号或 URL($ARGUMENTS),省略时从当前分支自动检测;支持附加上下文(如 -- skip the security pass)和 --max-rounds <n> 覆盖项目设置。
- 读取配置:读取项目 ## Unattended Shipping 部分中的同行评审人、安全敏感路径、最大轮数。
- 简化检查:若运行时提供简化技能(如 Claude Code 的 /simplify),则对分支差异调用;否则按 review-delegation 使用限定清单。
- 安全检查:当 PR 带安全标签或差异涉及安全敏感路径时触发;若运行时提供安全审查技能(如 /security-review)则调用,否则执行 Security & Correctness 深度检查。
- 质量门禁与推送:按无人值守规则分类处理检查发现,运行一次项目质量门禁,提交并推送,使 CI 与同行评审看到同一版本。
- 等待信号:先请求同行评审以与 CI 等待重叠;用 gh pr checks --watch 阻塞等待 CI,总等待上限 60 分钟;用有界 shell 循环等待推送后的同行评审(约 15 分钟)。
- 决策与反应:每轮先检查终止条件(review-ready 或 needs-human),否则处理 CI 失败(读取失败日志、修复、跑门禁、提交推送)或未处理评论(调用 forge-address-pr-feedback --unattended)。
使用方式
- 调用形式包括:/forge-guard、/forge-guard 123、/forge-guard 123 --max-rounds 2 -- treat performance comments as deferrable。
- 依赖 gh CLI 与 git;每一步 git 命令均假定处于 PR 分支(必要时 gh pr checkout)。
- 通过状态上报机制报告当前状态(reviewing、waiting、addressing 等)。
适用场景
- 希望 PR 在无人值守下完成质量检查、CI 修复和评审反馈回应的开发流程。
- 已配置同行评审人和无人值守发布规则的项目。
限制与边界
- 不会合并、强推或关闭 PR。
- 轮数、等待时间、轮询间隔均有上限;卡住时以 needs-human 结束而非无限循环。
- 需要人类决策的评论线程不再阻塞等待,但会使结果为 needs-human。
- 同行评审信号在未配置评审人、等待超时但已有推送前他人评审等情况下可视为满足,并在总结中注明回退。
- 具体运行环境支持哪些内置技能(如 /simplify、/security-review)取决于运行时,未提供时使用替代流程。