pr-merge

star 9

Merge GitHub pull requests with strict CI validation. Never bypasses failed checks. Use when merging PRs or when user says /pr-merge.

genlayerlabs By genlayerlabs schedule Updated 2/13/2026

name: pr-merge description: Merge GitHub pull requests with strict CI validation. Never bypasses failed checks. Use when merging PRs or when user says /pr-merge. user-invocable: true allowed-tools: [Bash, Read] hooks: Stop: - type: command command: "task claude:validate-skill -- --skill pr-merge"


PR Merge

Purpose

Merge GitHub pull requests with strict CI validation and merge state checking. Enforces the rule: NEVER bypass failed CI checks. Only offers bypass for missing reviews when all checks pass.

Quick Reference

  • Merges: GitHub PR via gh pr merge --squash
  • Requires: GitHub CLI installed and authenticated, PR exists for branch
  • Stop hook: task claude:validate-skill -- --skill pr-merge

Critical Rule

NEVER offer to bypass failed CI checks.

Failed checks mean broken code. The only acceptable bypass is for missing review when ALL checks pass.

┌─────────────────────────────────────────────────────────────────────────────┐
│   All checks pass + CLEAN        → Auto-merge                               │
│   All checks pass + BEHIND       → Update branch, re-check                  │
│   All checks pass + BLOCKED      → Ask: "Bypass review?"                    │
│   Any check FAILED               → STOP. Investigate failure.               │
│   Conflicts (DIRTY)              → Cannot auto-merge                        │
│   Checks still running           → Wait and re-check                        │
└─────────────────────────────────────────────────────────────────────────────┘

Merge Flow

Step 1: Get PR

# If PR number provided, use it
gh pr view 123 --json state,mergeable,mergeStateStatus,statusCheckRollup

# Otherwise, find PR for current branch
gh pr list --head $(git branch --show-current) --json number,state

Step 2: Check PR State

State Action
MERGED "PR already merged" - done
CLOSED "PR is closed" - stop
OPEN Continue to CI check

Step 3: Check CI Status

For each check in statusCheckRollup:

Status Action
IN_PROGRESS Wait 30s, retry (max 5 retries)
FAILURE STOP. Display failed check name. Investigate.
SUCCESS Continue

CRITICAL: On FAILURE, do NOT offer to bypass. Say:

"CI check '' failed. Please investigate before merging."

Step 4: Check Merge State

mergeStateStatus Action
CLEAN Proceed to merge
BEHIND Update branch, re-check CI
BLOCKED If all checks pass → ask "Bypass review?"
DIRTY "Conflicts detected. Resolve before merging."

Step 5: Execute Merge

gh pr merge <number> --squash

Update Behind Branch

When mergeStateStatus is BEHIND:

git fetch origin main
git merge origin/main --no-edit
git push
# Then re-check from Step 3

Automation

See skill.yaml for the full procedure and patterns. See sharp-edges.yaml for common failure modes.

Install via CLI
npx skills add https://github.com/genlayerlabs/skills --skill pr-merge
Repository Details
star Stars 9
call_split Forks 6
navigation Branch main
article Path SKILL.md
More from Creator
genlayerlabs
genlayerlabs Explore all skills →