agentsclimarketplace

Merge pr

Skill harnessprotocol/harness-kit/plugins/merge-pr/skills/merge-pr

Your plugins, skills, MCP servers, hooks, conventions, and governance packaged into a single config

Install
npx -y skills add harnessprotocol/harness-kit --skill merge-pr

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when a pull request is ready to merge — verifies CI and review status, syncs with the base branch, confirms with the user, then squash merges and cleans up. Trigger when the user says "merge this", "merge this PR", "squash merge", or "merge it". Works on any open PR — does not require /open-pr to have created it. If no PR exists, redirects to /open-pr. Does NOT deploy to any environment.

SKILL.md

3.4 KB, as published. Nobody here has run it

Merge PR

Takes a ready PR and lands it: verify → sync → confirm → squash merge → cleanup.

Announce at start: "I'm using the merge-pr skill to merge this PR."


Step 1: Identify the PR

Check for an open PR on the current branch, or use a user-specified PR number:

# Current branch
gh pr view --json number,title,url,state,baseRefName,headRefName 2>/dev/null

# Or if user specified #N:
gh pr view <N> --json number,title,url,state,baseRefName,headRefName

No PR found: Stop and redirect:

"No open PR found on this branch. Use /open-pr to create one first."

PR found: Note the PR number, title, base branch, and URL. Continue.


Step 2: Verify Readiness

Check CI status and review state:

gh pr checks <N>
gh pr view <N> --json reviews --jq '.reviews[] | select(.state == "CHANGES_REQUESTED")'

CI failing: Stop and report which checks are failing. Do not merge.

"CI is failing on [check names]. Fix these before merging, or use /open-pr to address them."

CHANGES_REQUESTED review: Stop and report who requested changes.

"PR has CHANGES_REQUESTED from [reviewer]. Resolve this before merging."

All clear: Continue.


Step 3: Base Branch Sync

Check whether the base branch has moved since branching:

BASE=$(gh pr view <N> --json baseRefName --jq '.baseRefName')
git fetch origin $BASE
git log HEAD..origin/$BASE --oneline

New commits exist: Rebase and force-push:

git rebase origin/$BASE
git push --force-with-lease

If rebase has conflicts, resolve them, then git rebase --continue. After force-push, re-verify CI passes before continuing.

No new commits: Skip.


Step 4: Confirm with User

Before merging, confirm:

Ready to squash merge PR #<N> ("<title>") into <base>.
All checks passed. Proceed?

Wait for confirmation. If the user says to always proceed without asking (e.g. "auto-merge", "no need to confirm"), skip this prompt for the rest of the session.


Step 5: Squash Merge and Cleanup

Once confirmed:

gh pr merge <N> --squash --delete-branch

After merge, sync locally:

git checkout $BASE
git pull
git branch -d <feature-branch> 2>/dev/null || true

Report: "PR #<N> merged. Branch cleaned up. Done."


Quick Reference

StepActionBlock on failure?
1. Identify PRCurrent branch or #NYes — redirect to /open-pr
2. Verify readinessCI + review stateYes — fix first
3. Base syncRebase if behindYes — resolve conflicts
4. ConfirmWait for userYes — wait
5. Squash mergegh pr merge --squash + cleanup

Rules

Never:

  • Merge with failing CI
  • Merge with CHANGES_REQUESTED
  • Force-push to main/master directly
  • Skip user confirmation (unless user explicitly opted out for the session)

Always:

  • Squash merge
  • Delete the branch after merge
  • Sync locally after merge
  • If no PR exists, redirect to /open-pr

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.