merge-pr

Installation
SKILL.md

默认场景是 piw 创建的 worktree:分支 checkout 在独立 worktree 中,主仓库停留在 base 分支。合并在 worktree 内完成,清理阶段需要回到主仓库操作。按顺序执行。在阻塞问题、失败 CI 和合并前停下。PR 在 GitHub 栈里时走异步合并接口,自底向上逐层合并。

1. 确认 PR 与场景

  1. 用参数解析分支名或 PR 编号。没有参数则运行 git rev-parse --abbrev-ref HEAD。用 gh pr list --head <branch> --json number,url --jq '.[0]'(已有 PR 编号则 gh pr view <number>)定位 PR。找不到 PR 或当前分支是默认分支时,停止并说明原因。
  2. 识别 base(默认分支):git remote show origin 取 HEAD 分支。查询失败时用仓库中存在的 main / master。
  3. 判断 PR 是否在栈里。在栈里就取出全栈,顺序自底向上:
gh api /repos/<owner>/<repo>/pulls/<PR号> --jq '.stack.number // empty'
gh api /repos/<owner>/<repo>/stacks/<栈号> --jq '.base.ref, ([.pull_requests[] | "\(.number) \(.head.ref) \(.state) \(.draft)"] | join("\n"))'

<owner>/<repo> 由 gh repo view --json nameWithOwner --jq .nameWithOwner 取。第一行空即普通 PR,走下面各步中标注“普通 PR”的路径。非空时第二行给出栈底分支与每层的 PR 号、分支名、状态和是否 draft。栈内时本次要落地的层 = 从最低未合并层到目标 PR(含)。 4. 用 git worktree list 识别场景:

  • 当前目录不是主仓库(属于某个列出的 worktree),判为 worktree 场景(默认)。
  • 否则判为普通场景。
  1. 分支有未推送提交(git rev-list origin/<branch>..<branch> 非空)时先 git push origin <branch>。
Installs
18
GitHub Stars
5
First Seen
Sep 26, 2026