用途
babysit-pr 是一个自主 PR 监控技能,用于持续跟踪拉取请求(PR)的健康状况。它从当前分支自动检测 PR,并每 2 分钟轮询一次,检查合并冲突、CI/CD 失败、评审评论以及合并就绪状态。该技能无需设置问答,自动检测一切并应用合理默认值。
主要能力
- 持续 PR 健康监控:合并冲突、CI 检查、评审评论、合并就绪状态。
- 评论分类:在监控周期内自主运行,无需计划批准。
- 跳过范围:已关闭或已合并的 PR、草稿 PR(除非明确要求)。
- 多平台 CI/CD 检查:支持 GitHub Actions、Buildkite、Vercel、Fly.io。
- 冲突检测与解决:自动检测合并冲突,尝试变基,安全文件自动解决,复杂冲突通知用户。
- CI 失败诊断与修复:识别平台、获取日志、分类失败(不稳定测试、代码错误、基础设施、依赖问题),修复并推送。
- 评论分类与修复:获取未解决线程、分类作者类型与严重性、去重、分类处置(修复或忽略),修复真实问题并推送。
- 合并就绪评估:检查可合并状态、必需检查通过、评审批准、无未解决阻塞线程。
- 状态变化通知:仅在状态转换时通知用户,如构建变绿、构建失败、新评审、冲突检测、全部就绪。
使用方式
该技能通过监控工作流运行,包含五个阶段:
- 初始化:自动检测 PR,快照当前状态,检测 CI 平台,创建每 2 分钟运行的 cron 任务。
- 冲突检查:检查可合并状态,尝试变基,安全文件自动解决,复杂冲突中止并通知。
- CI/CD 检查:轮询检查状态,分类通过、待定或失败,诊断失败并修复推送。
- 评论检查:统计未解决线程,检测新评论,自主运行评论分类。
- 就绪检查:评估合并就绪,通知用户阻塞项或就绪状态。
评论分类工作流在检测到新评论时内联运行,包括获取、分类、修复、验证步骤。
停止监控:用户说“停止 babysitting”或“取消 PR 监控”时删除 cron 任务;会话退出时任务自动清理;PR 合并或关闭时下次轮询自动检测并自行取消。停止时报告最终摘要。
适用场景
- 需要持续监控 PR 状态、CI 检查和评审评论的开发工作流。
- 希望自动解决噪声机器人评论、修复简单问题、减少手动干预的团队。
- 使用 GitHub Actions、Buildkite、Vercel、Fly.io 等 CI/CD 平台的项目。
限制
- 不自动合并,除非用户明确选择加入。
- 绝不自动解决人类评论或关键/主要发现。
- 轮询频率最低为 2 分钟。
- 仅在状态变化时通知,避免无变化轮询通知。
- 不使用
--force-with-lease绝不强制推送。 - 不在本地验证 lint/测试通过前推送。
- 不在检查仍在运行时重新诊断失败。
- 不将
github-actions[bot]一律分类为噪声,需按内容分类。 - 使用
bkCLI 前需检查认证,回退到 REST API 或gh pr checks。
相关技能
review-pr:在推送修复前进行本地自审。