← ClaudeAtlas

squash-merge-prlisted

Squash-merge a PR into main. Invoke only when the user explicitly requests a squash merge. Single PR by number or current branch.
JacobPEvans/claude-code-plugins · ★ 3 · AI & Automation · score 72
Install: claude install-skill JacobPEvans/claude-code-plugins
# Squash Merge PR Validates readiness, invokes `/finalize-pr` for soft blocks, then squash-merges. Hard stops abort immediately. Some cases require human action: closed/merged PR, draft, unresolvable conflicts, unrecoverable CI, or more than 100 review threads. > **State warning**: Branch state, remote tracking, and PR status change between > invocations. Re-run all git/gh commands from Step 1. ## Critical Rules - Run the GraphQL readiness gate on every invocation before merging - PR metadata updates are `/finalize-pr`'s responsibility - Invoke `/finalize-pr` for soft blocks; abort on hard stops with reason ## Step 1: Validate PR Ready Run the **canonical PR-readiness gate** and **canonical code-scanning alert count** from /gh-cli-patterns. Replace `<OWNER>`, `<REPO>`, `<PR_NUMBER>` per the placeholder convention. CodeQL is separate from CI — check both. ### 1.1 Hard stops (abort immediately, no finalize) | Condition | Message | |-----------|---------| | `state != OPEN` | "PR is closed or merged — nothing to do" | | `isDraft == true` | "PR is a draft — mark it ready for review first" | | `reviewThreads.pageInfo.hasNextPage == true` | ">100 review threads — paginate manually and re-verify before merging" | ### 1.2 Soft blocks (invoke /finalize-pr, then re-verify) If any of the following fail, proceed to Step 1.3 (auto-finalize), then re-run the full gate. If the gate still fails after finalization, abort with the specific reason. | Check | Must be | Abort message (i