SuperAPI AI 工具集

babysit

编程与开发

查看项目

更新于 10-15 15:00

技能介绍

用途

babysit 用于照看一个已打开的 PR,目标是修复失败的 CI、处理直截了当的评审意见,并推动该 PR 进入可合并状态。它是 Cursor 内置 /babysit 的 Claude Code 对应实现,并非移植版本(Cursor 的实现是闭源的)。该技能独立编写,拥有自己的文字与结构,工作流参考了 Cursor 公开的 /babysit 行为。与其他 PR 工具唯一的重叠是它运行的 gh CLI 命令,这些属于功能性调用而非复制文本。

何时使用

  • 存在一个已打开的 PR,用户明确希望保持其绿色,且你当前不在 poteto-mode 运行中(该场景由 playbook 负责)。
  • 用户直接调用 /babysit。
  • 注意:打开 PR 的子代理不负责 babysit——应返回父级,由父级决定。

主要能力与步骤

  1. 获取 PR 状态: gh pr view <number> --json number,title,state,mergeable,reviewDecision,statusCheckRollup,mergeStateStatus,comments,reviews

  2. 按优先级分类处理:

    • 合并冲突(mergeStateStatus == DIRTY):运行 fix-merge-conflicts 技能。仅当分支属于你且未被共享时才强制推送。
    • 检查失败(statusCheckRollup 中 conclusion: FAILURE 的条目):运行 fix-ci 技能。定位失败根因;修复底层代码或测试;提交;推送。
    • 评审意见:运行 get-pr-comments 技能获取摘要,然后只对你真正认同的反馈采取行动。当评论有单一机械式答案(重命名、守卫子句、格式小问题)时,进行修改并在提交信息中引用该评论。当评论涉及判断取舍,或你无法确定对方要求什么时,不要猜测:保留原状,并回复你本会怎么做。
    • 评审机器人评论(Bugbot 及类似自动化):在行动前按 bugbot-triage.md 分类为 fix/dismiss/ask。对安全、数据和高严重性问题默认选择 ask。
  3. 循环:使用 Claude Code 的 loop 技能控制重新检查的节奏。根据所观察对象选择间隔:

    • 活跃的 CI 运行:轮询 gh pr checks --watch(它会阻塞直到检查完成,因此无需单独的循环间隔)。
    • 等待评审者:20–30 分钟心跳。
    • 空闲但想捕捉新评论:每小时。
  4. 何时停止:

    • 构建绿色、所有评论已解决、分支可干净合并 → 判定为就绪。
    • 已运行三轮 fix → push → recheck 仍未完全绿色 → 停止,总结仍损坏的部分,交回控制权。
    • 下一个修复将强制做出设计选择 → 暂停,用 AskUserQuestion 提交给用户。
  5. 报告:总结已应用的修复、已处理的评论、已推迟的评论(附原因)、当前 PR 状态。按 SHA 引用每个提交。

使用方式与平台说明

在 Codex 上,遵循本技能前先阅读平台映射,包括其按技能说明。在 GitHub Copilot 上,同样先阅读平台映射,包括其按技能说明。

在 poteto-mode 内,Babysit playbook(../poteto-mode/playbooks/babysit.md)取代本技能:它负责模式声明、合并前沿、栈安全和 watch-pr 监视器。本技能在 poteto-mode 运行之外,仍是单个 PR 的独立 /babysit 入口点。

硬性规则

  • 不要重写他人可能已拉取的分支历史。如果看起来需要 rebase 或强制推送,先与用户确认。
  • 不要为了让测试通过而调整测试的期望值。仅当行为确实改变且断言固定于旧行为时,才更改断言。
  • 绝不跳过钩子(--no-verify)。
  • 绝不通过将失败检查标记为不需要来绕过它。
  • 仅当所有检查绿色且没有未解决的评审评论时,才执行 gh pr ready。

交叉引用

  • 打开 PR 不会启动 babysit;在 poteto-mode 内,Babysit playbook 负责该请求,且仅在要求时启动。
  • 如果 diff 有争议,在打开前使用 interrogate;一旦打开,babysit 接管。
  • 对在此处写的任何文字(PR 评论、提交信息、状态报告)使用 unslop。

限制

资料未提供该技能的收费、价格、平台支持范围、效果保证或具体安装命令等信息。