Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
Merge a pull request with status checks, squash merge, and branch cleanup.
$ npx skills add joshukraine/dotfiles --skill merge-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install joshukraine/dotfiles merge-pr --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/joshukraine/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude/.claude/skills/merge-pr .claude/skills/merge-pr && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "merge-pr" agent skill from https://github.com/joshukraine/dotfiles/tree/master/claude/.claude/skills/merge-pr into .claude/skills/merge-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "merge-pr", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/joshukraine/dotfiles/tree/master/claude/.claude/skills/merge-prType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add joshukraine/dotfiles --skill merge-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install joshukraine/dotfiles merge-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joshukraine/dotfiles.git skills-src && mkdir -p .agents/skills && cp -r skills-src/claude/.claude/skills/merge-pr .agents/skills/merge-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "merge-pr" agent skill from https://github.com/joshukraine/dotfiles/tree/master/claude/.claude/skills/merge-pr into .agents/skills/merge-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "merge-pr", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add joshukraine/dotfiles --skill merge-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install joshukraine/dotfiles merge-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joshukraine/dotfiles.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/claude/.claude/skills/merge-pr .cursor/skills/merge-pr && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "merge-pr" agent skill from https://github.com/joshukraine/dotfiles/tree/master/claude/.claude/skills/merge-pr into .cursor/skills/merge-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "merge-pr", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/joshukraine/dotfiles.git --path claude/.claude/skills/merge-pr--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add joshukraine/dotfiles --skill merge-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install joshukraine/dotfiles merge-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joshukraine/dotfiles.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/claude/.claude/skills/merge-pr .gemini/skills/merge-pr && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "merge-pr" agent skill from https://github.com/joshukraine/dotfiles/tree/master/claude/.claude/skills/merge-pr into .gemini/skills/merge-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "merge-pr", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install joshukraine/dotfiles merge-prInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add joshukraine/dotfiles --skill merge-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/joshukraine/dotfiles.git skills-src && mkdir -p .github/skills && cp -r skills-src/claude/.claude/skills/merge-pr .github/skills/merge-pr && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "merge-pr" agent skill from https://github.com/joshukraine/dotfiles/tree/master/claude/.claude/skills/merge-pr into .github/skills/merge-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "merge-pr", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add joshukraine/dotfiles --skill merge-pr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install joshukraine/dotfiles merge-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joshukraine/dotfiles.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/claude/.claude/skills/merge-pr .opencode/skills/merge-pr && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "merge-pr" agent skill from https://github.com/joshukraine/dotfiles/tree/master/claude/.claude/skills/merge-pr into .opencode/skills/merge-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "merge-pr", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
merge-prMerge a pull request with status checks, squash merge, and branch cleanup.
Merge PR is an agent skill from joshukraine/dotfiles. Merge a pull request with status checks, squash merge, and branch cleanup. Handles worktree contexts.
Its SKILL.md is about 1000 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git worktrees and Pull requests. It works with Git. The repository describes itself as: :roundpushpin: My dotfiles for macOS using Neovim, Zsh, and Ghostty + Tmux. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b59ad5b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Merge PR loads about 997 tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 486 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from joshukraine/dotfiles at commit b59ad5b, republished under its MIT licence (© joshukraine). 486 words, ~997 tokens.
.claude/skills/merge-pr/SKILL.md (or your agent's skills folder).Merge a pull request with consistent practices: verify checks, squash merge, clean up the branch, and pull the latest base branch.
$ARGUMENTS: PR number (optional — defaults to the PR for the current branch)gh pr view --json number,title,state,headRefName,baseRefNameCheck each of the following and report status:
gh pr checks to verify all required checks have passedgh pr view --json mergeable to verify no conflictsgh pr view --json reviewDecision,reviews to surface any unresolved review threads or a pending "changes requested" — advisory, not a hard gate. (Carries over the review-thread awareness from the retired /review-pr.)If CI has not passed, stop and report. Do not proceed with the merge.
gh pr merge --squash--delete-branch — GitHub is configured to auto-delete remote branches on merge. Local branch cleanup is handled in Step 4.Before updating local state, determine whether you are inside a git worktree:
git rev-parse --git-dir
git rev-parse --git-common-dirAfter gh pr merge completes:
main, master, or whatever baseRefName was detected in Step 1) and pull: git switch <base-branch> && git pullgit branch -D <branch-name> (force-delete is required because squash merges produce a different SHA, so -d cannot detect the branch as merged)Then skip to Step 6.
When inside a worktree, git switch to the base branch will fail because it is checked out in another worktree. Handle this differently:
Find the primary worktree on the base branch:
git worktree list --porcelainParse the output to find the worktree entry whose branch matches refs/heads/<base-branch>. Extract its path.
Pull the base branch from the primary worktree:
git -C <primary-worktree-path> pullDo not delete the branch or remove the worktree automatically. The branch cannot be deleted while it is checked out in a worktree, and removing the worktree would destroy the user's current working directory. Instead, provide the cleanup commands in the completion report.
Normal repo — report:
## Merge Complete
- PR: #N — [title]
- Remote branch: deleted
- Local branch: deleted (or kept — reason)
- Local <base-branch>: up to dateWorktree — report:
## Merge Complete
- PR: #N — [title]
- Remote branch: deleted
- Local <base-branch>: up to date (pulled in primary worktree)
## Worktree cleanup (run from outside this directory)
git worktree remove <this-worktree-path>
git branch -D <branch-name>git branch -d cannot detect squash-merged branches, so -D is the correct flag for cleanup after a confirmed merge.© joshukraine, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in claude/.claude/skills/merge-pr of joshukraine/dotfiles.
Open the folder on GitHubat commit b59ad5b
Merge PR next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Merge PR this skilljoshukraine/dotfiles | 429 | — | ~997 | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Pre-Release PR Triagejamiepine/voicebox | 57k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Cap Feature Building WorkflowCapSoftware/Cap | 23k | — | ~2.5k | Automated safety check: Warn | Custom licence | |
| Clean Complete Branchesjtenniswood/espcontrol | 1.1k | — | ~820 | Automated safety check: Pass | Custom licence | |
| BackportDependencyTrack/frontend | 172 | — | ~1.9k | Automated safety check: Notes | Apache-2.0 |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
jamiepine/voicebox
Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.
CapSoftware/Cap
Builds a Cap feature in an isolated Git worktree with disposable dev resources, verification, a recorded demo and a neutral pull request, started with /building.
jtenniswood/espcontrol
Clean up completed Git branches and worktrees for this repository both locally and on GitHub.
DependencyTrack/frontend
Backports a merged pull request from main onto a patch-release branch, e.g.
swamp-club/swamp
Swamp CLI — create and run models, build and validate workflows, query and manage data, store and retrieve vault secrets, develop and publish extensions, initialize repos, run reports, file issues…
joshukraine/dotfiles
Manage Todoist tasks, projects, labels, filters, sections, comments, reminders, and workspaces via the td CLI.
joshukraine/dotfiles
Vet open issues for autonomous resolution and queue the qualifying ones with the autopilot-queued label — the start-of-day "fill the queue" half of the triage → run split.
joshukraine/dotfiles
Quick 2-minute status update on current phase, completed work, blockers, and health check.
joshukraine/dotfiles
Create a pull request with auto-generated description, issue linking, ROADMAP updates, and PR-metadata validation.
joshukraine/dotfiles
Detailed technical walkthrough covering architecture, test coverage, product tour, and key design decisions.
joshukraine/dotfiles
Pre-PR advisory check for deviations from the project spec. An agent skill from joshukraine/dotfiles.
Works with
Categories
Merge a pull request with status checks, squash merge, and branch cleanup. Merge PR is an agent skill from joshukraine/dotfiles. Merge a pull request with status checks, squash merge, and branch cleanup.
Merge PR fits situations like: tasks that involve Git worktrees; tasks that involve Pull requests.
Run `npx skills add joshukraine/dotfiles --skill merge-pr -a claude-code`. Or copy the skill folder (claude/.claude/skills/merge-pr in joshukraine/dotfiles) into .claude/skills/merge-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add joshukraine/dotfiles --skill merge-pr -a codex`. Or copy the skill folder (claude/.claude/skills/merge-pr in joshukraine/dotfiles) into .agents/skills/merge-pr in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add joshukraine/dotfiles --skill merge-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/merge-pr, .gemini/skills/merge-pr, .github/skills/merge-pr and .opencode/skills/merge-pr in your project.
Going by SKILL.md and its folder, Merge PR needs the command-line tools its instructions call (git and gh).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Merge PR is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 997 tokens (SKILL.md is roughly 4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Merge PR: Finishing a Development Branch (obra/superpowers, 297k stars), Pre-Release PR Triage (jamiepine/voicebox, 57k stars), Cap Feature Building Workflow (CapSoftware/Cap, 23k stars) and Clean Complete Branches (jtenniswood/espcontrol, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
joshukraine (a GitHub user) maintains it in joshukraine/dotfiles, which has 429 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 6, 2026.
Source: joshukraine/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.