关于 babysit
babysit 是通过 `gh` 监控 GitHub 拉取请求检查的技能,要求先检查可合并状态和 PR 状态。它强调让单个监控进程运行至结束,并核实检查对应当前 PR 提交;不授权合并。
主要功能
- 01先检查 PR 状态和可合并性
- 02用 `gh pr checks` 监控检查
- 03用指定运行 ID 监控 Actions
- 04诊断缺失或停滞的检查
- 05事后核实提交和检查结果
适用场景
- 01监控开放拉取请求的检查
- 02等待前报告合并冲突
- 03排查缺失或停滞的 CI 检查
- 04确认当前 PR 提交对应的检查结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jssblck/ agents --skill babysit安装后在 Claude Code 中输入/babysit确认已加载。
详细介绍
看护 PR
先检查是否可合并,然后运行一个 gh 监视器,并等待其进程结束。成功意味着当前 PR 头提交对应的预期检查已完成,并且所有失败或缺失的检查都已处理。看护不会授权合并、绕过门禁或发布评审评论。
等待前检查冲突
始终使用明确的 PR 编号和仓库:
gh pr view <n> -R <owner/repo> --json state,url,headRefOid,baseRefName,baseRefOid,mergeable,mergeStateStatus,isDraft,reviewDecision
记录头 SHA、目标分支和目标 SHA。如果 PR 已关闭或已合并,则停止监视。启动监视器前处理 mergeable:
CONFLICTING:对于仅要求监视的请求,报告冲突。获得修复授权后,针对此 PR 当前的目标分支,使用 resolve-pr-conflicts 解决冲突,然后推送并重新检查。UNKNOWN:GitHub 尚未确定是否可合并。短暂等待后重新检查;如果仍然未知,请在本地检查已获取的头分支和目标分支,或报告尚未解决的状态。不要假定没有冲突,也不要无限循环。MERGEABLE:继续操作。其他合并门禁仍可能阻止 PR;仅凭mergeStateStatus: BLOCKED无法确定存在文本冲突。
存在合并冲突时,GitHub 不会运行由 pull_request 触发的工作流。先解决冲突,可以避免等待无法启动的检查。请参阅 GitHub 的工作流故障排查指南。
让 gh 监视检查
gh pr checks <n> -R <owner/repo> --watch --interval 10
PR checks 命令 默认每十秒刷新一次,并等待已报告的检查完成。如果出现失败时应立即返回以便修复,请使用 --fail-fast。仅当任务只涉及必需检查时才添加 --required;它可能会排除评审机器人的可选检查。
将该命令作为一个长时间运行的进程执行一次。使用执行工具的完成通知,或在同一会话中进行足够长时间的等待。不要反复调用新的 gh pr checks 并让模型驱动休眠,不要在每次工具让出控制权时重启监视器,也不要播报未发生变化的刷新结果。
这是由 CLI 管理的轮询,不是服务端事件订阅。实现代码 会在检查待处理时持续刷新,并在没有剩余检查时退出。它不会持续订阅之后创建的检查或未来的评审评论。
检查最终输出和退出状态。检查失败会返回非零状态;普通的非监视输出在存在待处理检查时使用退出码 8。认证、API 和缺少检查等错误也需要诊断。需要结构化详情时,请使用单独的快照:
gh pr checks <n> -R <owner/repo> --json name,bucket,state,workflow,link
不要将 --json 与 --watch 一起使用。JSON 是快照,成功导出并不能证明检查已通过。检查 bucket 值;已取消或已跳过的检查不能证明预期测试已运行。
处理无法完成的检查
如果没有报告任何检查项,监视器会报错退出,而不会等待检查项创建。如果缺少预期的检查项,或待处理的检查项超过正常运行时间仍无进展,请检查工作流和运行详情。根据现有证据,再次检查冲突、触发条件/路径筛选器、跳过注释、工作流审批,以及运行器是否不可用。对于无法运行的工作流,不要反复重启监视器。解决阻塞因素后再继续;否则请报告该阻塞因素。
对于已知的 GitHub Actions 运行,请使用其专属 ID:
gh run watch <run-id> -R <owner/repo> --exit-status --compact --interval 10
gh run view <run-id> -R <owner/repo> --log-failed
运行监视器仅监视一次 Actions 运行,而不是所有 PR 检查。--exit-status 会使运行失败时返回非零状态。它不支持细粒度 PAT 身份验证。必要时检查失败日志;在获授权的任务范围内修复并推送,然后重新从冲突检查开始。没有诊断原因时,不要反复重新运行失败项。
发布检查项的审查服务可通过 gh pr checks 监视。只发布评论或审查意见的服务不在这些监视器的监控范围内。如果有可用的完成机制,请使用该服务的完成机制;否则,请报告这一限制,不要把 CI 全绿当作审查已完成。
验证结果
监视器退出后,重新读取 PR 状态、head SHA、目标分支及其 SHA,以及是否可合并。最后再查看一次检查项快照,并确认预期的检查项均已出现。如果 head 已更改,请针对新的 head 重做预检并监视检查项。如果只有目标分支发生更改,请重新评估是否可合并以及仓库的新鲜度要求;不要仅因这一更改而重启已完成的检查。监视器退出本身并不能证明 PR 已具备合并条件或已获审查批准。
报告 PR、已验证的 head SHA、检查结果,以及任何审查或工作流阻塞因素。只有在用户的任务授权后,才继续合并。