use-branch-complete
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work
When & Why to Use This Skill
This Claude skill automates the final stages of the software development lifecycle by ensuring code quality through mandatory test verification before integration. It streamlines the transition from local development to version control by providing structured workflows for merging code, creating Pull Requests via GitHub CLI, and maintaining repository hygiene through automated worktree cleanup.
Use Cases
- Automated Integration Gatekeeping: Use this skill to ensure that no code is merged or pushed until the project's test suite passes, preventing broken builds in the main branch.
- Streamlined Pull Request Creation: Automatically push feature branches and generate standardized GitHub Pull Requests with pre-filled summaries and test plans, reducing manual administrative overhead for developers.
- Development Environment Cleanup: Efficiently manage local resources by automatically deleting temporary branches and removing git worktrees after a task is completed or discarded, keeping the workspace organized.
| name | use-branch-complete |
|---|---|
| description | Use when implementation is complete, all tests pass, and you need to decide how to integrate the work |
Guide completion of development work by presenting clear options and handling chosen workflow.
Core principle: Verify tests → Present options → Execute choice → Clean up.
Announce at start: "I'm using the use-branch-complete skill to complete this work."
The Process
Step 1: Verify Tests
Run project's test suite before presenting options:
npm test / cargo test / pytest / go test ./...
If tests fail:
Tests failing (<N> failures). Must fix before completing:
[Show failures]
Cannot proceed with merge/PR until tests pass.
Stop. Don't proceed to Step 2.
If tests pass: Continue to Step 2.
Step 2: Present Options
Implementation complete. What would you like to do?
1. Merge back to <base-branch> locally
2. Push and create a Pull Request
3. Keep the branch as-is (I'll handle it later)
4. Discard this work
Which option?
Step 3: Execute Choice
Option 1: Merge Locally
git checkout <base-branch>
git pull
git merge <feature-branch>
<test command> # Verify tests on merged result
git branch -d <feature-branch> # If tests pass
Then: Cleanup worktree (Step 4)
Option 2: Push and Create PR
git push -u origin <feature-branch>
gh pr create --title "<title>" --body "$(cat <<'EOF'
## Summary
<2-3 bullets of what changed>
## Test Plan
- [ ] <verification steps>
EOF
)"
Then: Cleanup worktree (Step 4)
Option 3: Keep As-Is
Report: "Keeping branch
Don't cleanup worktree.
Option 4: Discard
Confirm first:
This will permanently delete:
- Branch <name>
- All commits: <commit-list>
- Worktree at <path>
Type 'discard' to confirm.
If confirmed:
git checkout <base-branch>
git branch -D <feature-branch>
Then: Cleanup worktree (Step 4)
Step 4: Cleanup Worktree
For Options 1, 2, 4:
Check if in worktree:
git worktree list | grep $(git branch --show-current)
If yes:
git worktree remove <worktree-path>
For Option 3: Keep worktree.
Red Flags
Never:
- Proceed with failing tests
- Merge without verifying tests on result
- Delete work without confirmation
- Force-push without explicit request
Always:
- Verify tests before offering options
- Present exactly 4 options
- Get typed confirmation for Option 4
- Clean up worktree for Options 1 & 4 only