一键导入
git-merge-pr
After owner accept: guard-checked squash-merge of the current branch's PR, base sync and branch cleanup
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
After owner accept: guard-checked squash-merge of the current branch's PR, base sync and branch cleanup
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Verify, review, and push pending work as one milestone commit
Drive the current branch's PR to merge-ready: CI green and every review comment handled, ending with an outcome label
Open a pull request for the current branch against its target, using the repo template
Triage PR review comments: fix, discuss, or decline with reason - every thread answered
Cut a release: version, changelog, tag, and release object — policy-driven across trunk/gitflow and tag-only/full
Audit documentation claims against the code; report drift vs violation
| name | git-merge-pr |
| description | After owner accept: guard-checked squash-merge of the current branch's PR, base sync and branch cleanup |
| argument-hint | [pr number] |
Take an accepted, merge-ready PR across the finish line. Deliberately non-diagnostic: it fixes nothing - if any guard fails it STOPS and names the companion skill. Fail-fast applies to every step: an error, an unexpected state, or gh opening an interactive prompt means stop, surface the exact output, act no further.
git branch --show-current - never a protected branch.git status --short prints nothing - never merge with uncommitted local work.git rev-parse HEAD equals git rev-parse @{u} - the reviewed commit must equal local HEAD; unpushed work goes through git-commit-push first.gh pr list --head <branch> --state open --json number,headRefName --jq '.[0]'. An explicit pr-number argument must have headRefName == <current branch> - otherwise refuse: never merge a PR that is not the current branch's.git-finalize-pr) - red or pending: hand off to git-finalize-pr.reviewThreads.isResolved) - unresolved: hand off to git-review-pr-comments.gh pr view <pr> --json mergeable,mergeStateStatus,reviewDecision - CONFLICTING: git-resolve-conflicts; BLOCKED / BEHIND: report and stop.merge_method (default squash): gh pr merge <pr> --squash (or --merge / --rebase). Delete the remote branch per profile delete_remote_branch (default: keep - do not pass --delete-branch).gh pr view <pr> --json state,mergedAt,mergeCommit - state != "MERGED" means STOP. Record the merge commit SHA.git switch <base> && git pull --ff-only && git fetch --prune. Confirm the merge commit is on the base before any local deletion.delete_local_branch (default: true), only after steps 2-3 confirmed the merge. The authoritative "merged" signal is the confirmed PR state == MERGED, not git ancestry: a squash or rebase merge rewrites the commits, so the feature branch is NOT an ancestor of the base and git branch -d refuses with "not fully merged". Use -d after a merge-method merge; use -D after squash / rebase - safe precisely because the merge was confirmed first.post_merge is set, run it now (e.g. regenerate committed generated outputs so the base is not left stale) - on failure STOP and report; never leave the base half-updated.spec-close. Projects without the spec pack skip this step.MERGED; the base contains the merge commit; local branch gone; clean tree on the base.git-finalize-pr; conflicts - git-resolve-conflicts; cutting a release - git-create-release.gh result.