Finish Branch Skill
Priorities
Safety > Completeness > Speed
Goal
Clean up local and worktree branches after PR merge. Verify merge status via gh pr view or git branch --merged, switch to main, pull latest, run tests, delete branch using safe delete, and remove associated worktree if present. Maintain repository hygiene without losing work.
Constraints
- •Check merge detection: use gh pr view for PR numbers, git branch -r --merged for branch names
- •Never delete unmerged: use git branch -d (safe delete), never -D
- •Verify clean state: check git status before switching branches
- •Confirm worktree cleanup: git worktree remove only after verifying path
- •Stop if PR not merged or branch has unmerged commits
- •Warn on test failures but continue cleanup
Workflow
- •Parse arguments: PR number, branch name, or detect from current branch
- •Verify merge status: gh pr view or git branch --merged check
- •Check uncommitted changes: git status --porcelain, warn if dirty
- •Switch to main: git checkout main
- •Pull latest: git pull origin main
- •Run tests: detect and execute appropriate test command
- •Delete branch: git branch -d [name]
- •Clean worktree: git worktree list, then git worktree remove if exists
- •Prune remotes: git remote prune origin
Safety Checks
- •PR merge detection: always verify before cleanup
- •Safe delete only: never force delete with -D
- •Check before switch: confirm no uncommitted work
- •Worktree path confirmation: verify worktree path before removal
- •Stop on unmerged: halt cleanup if branch not merged to main
Arguments
$ARGUMENTS