Core Principle
Verify tests → Present options → Execute choice → Clean up Never merge untested code. Always give clear options. Always clean up when appropriate.Always announce at start: “I’m using the finishing-a-development-branch skill to complete this work.”
The Process
Step 1: Verify Tests
Step 2: Determine Base Branch
Step 3: Present Options
Present exactly these 4 options:Step 4: Execute Choice
Option 1: Merge Locally
Option 1: Merge Locally
Option 2: Push and Create PR
Option 2: Push and Create PR
Option 3: Keep As-Is
Option 3: Keep As-Is
Report: “Keeping branch <name>. Worktree preserved at <path>.”Don’t cleanup worktree.
Option 4: Discard
Option 4: Discard
Confirm first:Wait for exact confirmation.If confirmed:Then: Cleanup worktree (Step 5)
Step 5: Cleanup Worktree
For Options 1, 2, 4: Check if in worktree:Quick Reference
| Option | Merge | Push | Keep Worktree | Cleanup Branch |
|---|---|---|---|---|
| 1. Merge locally | ✓ | - | - | ✓ |
| 2. Create PR | - | ✓ | ✓ | - |
| 3. Keep as-is | - | - | ✓ | - |
| 4. Discard | - | - | - | ✓ (force) |
Common Pitfalls
Skipping test verification
Skipping test verification
Problem: Merge broken code, create failing PRFix: Always verify tests before offering options
Open-ended questions
Open-ended questions
Problem: “What should I do next?” → ambiguousFix: Present exactly 4 structured options
Automatic worktree cleanup
Automatic worktree cleanup
Problem: Remove worktree when might need it (Option 2, 3)Fix: Only cleanup for Options 1 and 4
No confirmation for discard
No confirmation for discard
Problem: Accidentally delete workFix: Require typed “discard” confirmation
Decision Tree
Red Flags
Integration with Other Skills
Called by
- subagent-driven-development (Step 7) - After all tasks complete
- executing-plans (Step 5) - After all batches complete
Pairs with
- using-git-worktrees - Cleans up worktree created by that skill
Related Skills
- Using Git Worktrees - Create isolated workspaces
- Verification Before Completion - Verify work before claiming complete