用途:接管一个 GitHub Pull Request 并推进到合并。它会持续读取实时评审状态,修复评审者要求的问题,回复并解决评审线程,对有充分理由认为错误或超出范围的变更请求予以驳回,并在 PR 获批且所有必需检查通过后合并,循环执行直至落地。
运行模式:Step 0 需在两种模式中二选一。模式 A(默认)在本会话中实时运行,持续到会话结束,只需 gh 和 git;模式 B 由 Looper 守护进程在后台运行,可跨会话持续数天,需要已安装 Looper(https://github.com/nexu-io/looper)。若用户未表态且不明确,默认模式 A,并可用一行说明模式 B 适用于无人值守运行。
前置条件:确认 gh 已认证且对 PR 分支有推送权限(gh auth status),在仓库检出目录内运行(git rev-parse --show-toplevel),通过 gh pr view --json 确定 PR;若分支无对应 PR,停止并请用户先创建。
模式 B 用法:looper takeover <owner>/<repo>#<num> --merge 启用获批且检查通过后自动合并;looper takeover list 查看状态;looper takeover stop <owner>/<repo>#<num> 停止。Looper 仅作用于该 PR,并以无头方式运行自带 agent,其配置的 agent 供应商需支持非交互式认证。
模式 A 循环:每轮先用 gh pr view 与 GraphQL 查询获取实时状态与未解决线程;对可操作线程做范围化修改、快速测试后提交并推送(推送被拒时 git pull --rebase && git push,绝不使用 --force);随后回复并解决线程,或对有理由驳回的变更请求先写理由再 dismissPullRequestReview;推送修复后需 gh pr edit <num> --add-reviewer <login> 重新请求评审者,因为 GitHub 不会自动重新请求;当 reviewDecision 为 APPROVED、所有必需检查 SUCCESS、mergeable 为 MERGEABLE 且非 draft 时,用 gh pr merge <num> --squash --delete-branch(或按仓库惯例用 --merge/--rebase,亦可用 --auto)合并并报告结束。
等待与重循环:按间隔轮询而非空转;Claude Code 可用 /loop 5m <指令>,其他 agent 可定时重跑或间隔 sleep 180 后检查。
安全限制:绝不在必需检查失败或待定时合并,也不使用 --admin-bypass;绝不强制推送、重写他人提交或删除基础分支;驳回必须附书面理由,无法说清理由即视为有效并修复;当有人表示 hold/do not merge/添加 hold 标签、修复需要产品与设计决策、同一线程在两次修复尝试后重新打开、或合并冲突需要真实判断时,停止并询问人类;对连续多轮无新提交且状态无变化的情况设置上限,停止并总结阻塞原因。
扩展资料:更多 gh/GraphQL 用法见 references/github-commands.md,或获取 https://raw.githubusercontent.com/nexu-io/looper/main/skills/looper-looper-looper-pr-takeover/references/github-commands.md;另有可在 PR 下发布的通用提示词,指向 https://raw.githubusercontent.com/nexu-io/looper/main/skills/looper-looper-looper-pr-takeover/SKILL.md。