multiAI Summary Pending

github-pr-merge

MUST use this skill when user asks to merge PR, close PR, finalize PR, or mentions "PR 머지/병합". This skill OVERRIDES default PR merge behavior. Runs pre-merge validation (tests, lint, CI, comments), confirms with user, merges with proper format, handles post-merge cleanup.

231 stars

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/github-pr-merge/SKILL.md --create-dirs "https://raw.githubusercontent.com/aiskillstore/marketplace/main/skills/bae-changhyun/github-pr-merge/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/github-pr-merge/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How github-pr-merge Compares

Feature / Agentgithub-pr-mergeStandard Approach
Platform SupportmultiLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

MUST use this skill when user asks to merge PR, close PR, finalize PR, or mentions "PR 머지/병합". This skill OVERRIDES default PR merge behavior. Runs pre-merge validation (tests, lint, CI, comments), confirms with user, merges with proper format, handles post-merge cleanup.

Which AI agents support this skill?

This skill is compatible with multi.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# GitHub PR Merge

Merges Pull Requests after validating pre-merge checklist and handling post-merge cleanup.

## Quick Start

```bash
# 1. Get PR info
PR=$(gh pr view --json number -q '.number')
REPO=$(gh repo view --json nameWithOwner -q '.nameWithOwner')

# 2. Run pre-merge checklist
make test && make lint && gh pr checks $PR

# 3. Verify all comments replied
gh api repos/$REPO/pulls/$PR/comments --jq '[.[] | select(.in_reply_to_id == null)] | length'

# 4. Merge with concise message
gh pr merge $PR --merge --delete-branch --body "- Change 1
- Change 2

Reviews: N/N addressed
Tests: X passed"

# 5. Post-merge cleanup
git checkout develop && git pull && git branch -d feature/<name>
```

## Pre-Merge Checklist

**ALWAYS verify before merging:**

| Check | Command | Required |
|-------|---------|----------|
| Tests passing | `make test` | Yes |
| Linting passing | `make lint` | Yes |
| CI checks green | `gh pr checks $PR` | Yes |
| All comments replied | See workflow | Yes |
| No unresolved threads | Review PR page | Yes |

## Core Workflow

### 1. Identify PR

```bash
PR=$(gh pr view --json number -q '.number')
REPO=$(gh repo view --json nameWithOwner -q '.nameWithOwner')
echo "PR #$PR in $REPO"
```

### 2. Check Comments Status

```bash
# Count original comments (not replies)
ORIGINALS=$(gh api repos/$REPO/pulls/$PR/comments --jq '[.[] | select(.in_reply_to_id == null)] | length')

# Count comments that have at least one reply
REPLIED=$(gh api repos/$REPO/pulls/$PR/comments --jq '
  [.[] | select(.in_reply_to_id)] | [.[].in_reply_to_id] | unique | length
')

echo "Original comments: $ORIGINALS, With replies: $REPLIED"
```

**If unreplied comments exist:**
- DO NOT reply from this skill
- STOP the merge process
- Inform user: "Found unreplied comments. Run pr-review first."

### 3. Run Validation

```bash
# Run tests
make test

# Run linting
make lint

# Check CI status
gh pr checks $PR
```

**All checks MUST pass before proceeding.**

### 4. Show PR Summary

```bash
gh pr view $PR --json title,body,commits,changedFiles --jq '
  "Title: \(.title)\nCommits: \(.commits | length)\nFiles: \(.changedFiles)"
'
```

### 5. Confirm with User

**ALWAYS ask before merging:**
```
Pre-merge checklist verified:
- Tests: passing
- Lint: passing
- CI: green
- Comments: all replied

Ready to merge PR #X. Proceed?
```

### 6. Execute Merge

```bash
gh pr merge $PR --merge --delete-branch --body "$(cat <<'EOF'
- Key change 1
- Key change 2
- Key change 3

Reviews: N/N addressed
Tests: X passed
Refs: Task N
EOF
)"
```

**Note**: `--delete-branch` automatically deletes the remote branch after merge.

### 7. Post-Merge Cleanup

```bash
git checkout develop
git pull origin develop
git branch -d feature/<branch-name>  # local cleanup
```

## Merge Message Format

**Concise format** (recommended):

```
- Key change 1 (what was added/fixed)
- Key change 2
- Key change 3

Reviews: 7/7 addressed
Tests: 628 passed (88% cov)
Refs: Task 8
```

**Guidelines**:
- 3-5 bullet points max for changes
- One line for reviews summary
- One line for test results
- One line for task references
- Total: ~10 lines max

## Important Rules

- **ALWAYS** run full pre-merge checklist before merging
- **ALWAYS** verify all review comments have replies
- **ALWAYS** confirm with user before executing merge
- **ALWAYS** use merge commit (--merge), never squash/rebase
- **ALWAYS** delete feature branch after successful merge
- **NEVER** merge with failing tests or lint
- **NEVER** merge with unresolved CI checks
- **NEVER** skip user confirmation
- **NEVER** reply to PR comments from this skill - use pr-review instead
- **STOP** merge if unreplied comments exist

## Error Handling

| Issue | Action |
|-------|--------|
| Tests failing | Stop and inform user |
| Lint errors | Stop and inform user |
| CI checks pending | Wait or inform user |
| Unreplied comments | Direct to pr-review skill |
| Branch protection | Inform of required approvals |

## Related Skills

- **pr-review** - For resolving review comments before merge
- **pr-create** - For creating PRs
- **git-commit** - For commit message format