Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/aiskillstore-github-pr-merge/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 162% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 156% | 0% |
Merges Pull Requests after validating pre-merge checklist and handling post-merge cleanup.
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>
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 |
bashPR=$(gh pr view --json number -q '.number') REPO=$(gh repo view --json nameWithOwner -q '.nameWithOwner') echo "PR #$PR in $REPO"
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:
bash# Run tests make test # Run linting make lint # Check CI status gh pr checks $PR
All checks MUST pass before proceeding.
bashgh pr view $PR --json title,body,commits,changedFiles --jq ' "Title: \(.title)\nCommits: \(.commits | length)\nFiles: \(.changedFiles)" '
ALWAYS ask before merging:
Pre-merge checklist verified:
- Tests: passing
- Lint: passing
- CI: green
- Comments: all replied
Ready to merge PR #X. Proceed?bashgh 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.
bashgit checkout develop git pull origin develop git branch -d feature/<branch-name> # local cleanup
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 8Guidelines:
| 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 |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 16,518 | 10,594 | -36% | 1 | 1 | 0% | 379 | 1,381 | +264% | 0 | 0 | — |
case-02 | fail→fail | 9,850 | 10,261 | +4% | 1 | 1 | 0% | 1,539 | 1,849 | +20% | 0 | 0 | — |
case-03 | fail→fail | 11,292 | 20,973 | +86% | 1 | 1 | 0% | 1,838 | 1,445 | -21% | 0 | 0 | — |
case-04 | fail→pass | 14,736 | 6,777 | -54% | 1 | 1 | 0% | 1,974 | 2,307 | +17% | 0 | 0 | — |
case-05 | fail→pass | 16,768 | 4,021 | -76% | 1 | 1 | 0% | 1,769 | 1,892 | +7% | 0 | 0 | — |
case-06 | pass→pass | 15,134 | 9,556 | -37% | 1 | 1 | 0% | 1,664 | 1,893 | +14% | 0 | 0 | — |
case-07 | fail→pass | 3,954 | 4,422 | +12% | 1 | 1 | 0% | 664 | 1,739 | +162% | 0 | 0 | — |
case-08 | pass→pass | 14,441 | 16,284 | +13% | 1 | 1 | 0% | 2,737 | 2,861 | +5% | 0 | 0 | — |
case-09 | fail→pass | 10,259 | 2,567 | -75% | 1 | 1 | 0% | 960 | 1,595 | +66% | 0 | 0 | — |
case-10 | pass→pass | 15,046 | 4,222 | -72% | 1 | 1 | 0% | 1,802 | 1,922 | +7% | 0 | 0 | — |
case-11 | pass→pass | 7,134 | 2,838 | -60% | 1 | 1 | 0% | 1,098 | 1,634 | +49% | 0 | 0 | — |
case-12 | pass→pass | 6,219 | 3,075 | -51% | 1 | 1 | 0% | 892 | 1,627 | +82% | 0 | 0 | — |
case-13 | pass→pass | 7,316 | 2,462 | -66% | 1 | 1 | 0% | 1,105 | 1,640 | +48% | 0 | 0 | — |
case-14 | fail→fail | 16,479 | 10,535 | -36% | 1 | 1 | 0% | 1,729 | 2,062 | +19% | 0 | 0 | — |
case-15 | pass→pass | 9,216 | 7,207 | -22% | 1 | 1 | 0% | 737 | 1,499 | +103% | 0 | 0 | — |
case-20 | fail→pass | 9,073 | 7,755 | -15% | 1 | 1 | 0% | 640 | 1,641 | +156% | 0 | 0 | — |
case-16 | fail→pass | 13,792 | 3,895 | -72% | 1 | 1 | 0% | 1,478 | 1,922 | +30% | 0 | 0 | — |
case-17 | pass→pass | 26,556 | 5,580 | -79% | 1 | 1 | 0% | 4,452 | 2,242 | -50% | 0 | 0 | — |
case-18 | pass→pass | 13,214 | 6,322 | -52% | 1 | 1 | 0% | 1,538 | 2,284 | +49% | 0 | 0 | — |
case-19 | pass→pass | 8,933 | 7,324 | -18% | 1 | 1 | 0% | 1,577 | 1,563 | -1% | 0 | 0 | — |
case-21 | pass→pass | 7,933 | 3,922 | -51% | 1 | 1 | 0% | 1,321 | 1,726 | +31% | 0 | 0 | — |
case-22 | pass→pass | 9,483 | 10,219 | +8% | 1 | 1 | 0% | 1,610 | 2,039 | +27% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +27 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.