agentsclimarketplace

Merge

Skill kborovik/pilot-skills/pilot-plan/skills/merge

Claude Code plugin marketplace — sdd (spec-driven dev) and gh (GitHub workflow) plugins

Install
npx -y skills add kborovik/pilot-skills --skill merge

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

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 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

Merge GitHub PR into main w/ release-ready commit message. Triggers when user mentions merging PR, landing branch, shipping GitHub PR. Phrasings: "merge this", "land the PR", "merge PR #N".

SKILL.md

6.3 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

Merge current branch's PR → main w/ release-note-ready commit message.

Process

  1. Identify PR:

    • $ARGUMENTS provided → use as PR number
    • Else current branch's PR: gh pr view --json number,title,body,url
    • not PR → inform user and exit
  2. Verify ready to merge:

    • Remote status:
      • gh pr checks — CI status
      • gh pr view --json mergeable — merge conflicts
      • gh pr view --json reviewDecision — review approval
      • gh pr view --json isDraft — draft status
    • not ready (failing checks, conflicts, missing reviews) → inform user of blockers and exit

2.5. Push gate (decision-gate per decision-gate invariant — worked example: mid-flow consequence-bearing prompt before squash-merge so unpushed local commits not merged):

  • Compute unpushed commit count: git rev-list --count "origin/<branch>..HEAD" (<branch> is current branch).
  • N == 0 → skip gate, proceed to §3.
  • N > 0 → emit AskUserQuestion call:
    • question: Push N unpushed commits before merge?
    • options (3 — mutually exclusive, label is action description):
      • Push and continuegit push origin <branch> then §3
      • Force-push and continuegit push --force-with-lease origin <branch> then §3
      • Cancel → exit w/ no merge
    • header: Push gate
  • prose reply ok/cancel form not allowed — selection drives remote-branch state change per decision-gate invariant.
  1. Analyze changes:

    • All commits: gh pr view --json commits
    • Files changed: gh pr diff --name-only or git diff main..HEAD --stat
    • Actual diff: gh pr diff
    • Identify scope: bug fix, feature, enhancement, refactor, etc.
  2. Sync PR description → reflect completed work:

    • Diff current body (§1) vs actual diff and commit history
    • PR description often outdated → reflects original plan, differs impl
    • Sync → accurately reflect final state:
      gh pr edit <number> --body "$(cat <<'EOF'
      <updated description>
      EOF
      )"
      
    • Keep general structure but ensure:
      • Completed items accurate (differs aspirational)
      • Removed / abandoned changes not listed
      • Additional work beyond original scope included
    • Skip if description already matches actual changes
  3. Render release-note-ready commit message:

    • Title: Conventional Commits from PR title w/ PR number → type(area): concise imperative description (#42)
      • type: fix, feat, refactor, chore, docs, test
      • area: affected module (e.g. <area>)
      • Derive from PR title; reuse if already in format
    • Body sections:
      • Summary: 2-3 sentence description of what changed
      • Changes: bulleted list of key changes
      • Breaking Changes: if applicable
    • Format for squash merge
  4. Post insights as PR comment:

    • Before merge → comment w/ notable insights
    • gh pr comment <number> --body "$(cat <<'EOF'...EOF)"
    • Include any of:
      • Code quality / pattern observations in diff
      • Tech debt or risks noticed
      • Follow-up suggestions
      • Edge cases or release considerations
    • Concise and actionable. Skip if not meaningful insights.
  5. Merge:

    • Squash + --delete-branch:
      gh pr merge <number> --squash --delete-branch --subject "<title>" --body "$(cat <<'EOF'
      <body>
      EOF
      )"
      
    • Alternatives:
      • Merge commit: gh pr merge <number> --merge --delete-branch
      • Rebase: gh pr merge <number> --rebase --delete-branch
    • Repos w/ merge queues → --auto queues when checks pass: gh pr merge <number> --squash --auto --delete-branch
    • Always pass --delete-branch explicitly. not short form -d. not omit.
  6. Clean up branches:

    • --delete-branch deletes local and remote branches for merged PR
    • Switch to main: git checkout main
    • Pull latest: git pull origin main
    • Prune stale refs: git fetch --prune
  7. Confirm completion:

    • Show merge commit: git log -1
    • Output merged PR URL
    • Display commit message for release notes

Commit message format

feat(server): add user authentication system (#42)

## Summary
Implements JWT-based authentication replacing the session-based system.
Users can now log in and receive tokens that expire after 24 hours.

## Changes
- Add JWT token generation and validation
- Create login and registration endpoints
- Add middleware for protected routes
- Add token refresh endpoint

## Breaking Changes
- Session cookies are no longer supported
- API clients must include Authorization header

Write-time glyph gate

Pre-publish: rg --pcre2 '[∀∃∴⊥∈∉∧∨≤≥≠≡¬]' <body> on synced PR description (§4) before gh pr edit, squash commit body (§5) before §7 gh pr merge --body, insights comment (§6) before gh pr comment; match → bail and rewrite per core:steno register before mutation.

Style

Apply core:steno to PR description (§4), squash commit body (§5), insights comment (§6). Conventional Commits prefix (type(area):) and (#number) suffix and identifiers / paths / #refs / SHAs preserved verbatim.

Requirements

  • Squash merge for clean history (unless repo prefers merge commits)
  • Conventional Commits w/ PR number: type(area): description (#number)
  • Commit message ! release-note suitable
  • Steno style for body sections (→ core:steno skill)
  • --delete-branch for branch cleanup
  • Audit all checks pass before merge
  • not force merge if checks failing
  • Draft PRs → confirm w/ user before marking ready

OUTPUT — "Next" block

Heading ## Next; 1–5 atomic items (one sentence each, no Reply prefix); positional dispatch (run <int> or run /<plugin>:<cmd> [args]). Merge landed → follow-up usually /gh:release (cut SemVer tag) or resume work on next branch or verify auto-deploy.

Canonical example after merge lands:

## Next

1. /gh:release — cut a SemVer tag for the new main
2. /sdd:build — start the next §T row
3. gh pr list --state open — review remaining open PRs

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.