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