npx skills add https://github.com/obra/superpowers --skill finishing-a-development-branchHow Finishing A Development Branch fits into a Paperclip company.
Finishing A Development Branch drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.
Pre-configured AI company — 18 agents, 18 skills, one-time purchase.
SKILL.md200 linesExpandCollapse
---name: finishing-a-development-branchdescription: Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup--- # Finishing a Development Branch ## Overview 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 finishing-a-development-branch skill to complete this work." ## The Process ### Step 1: Verify Tests **Before presenting options, verify tests pass:** ```bash# Run project's test suitenpm 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: Determine Base Branch ```bash# Try common base branchesgit merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null``` Or ask: "This branch split from main - is that correct?" ### Step 3: Present Options Present exactly these 4 options: ```Implementation complete. What would you like to do? 1. Merge back to <base-branch> locally2. Push and create a Pull Request3. Keep the branch as-is (I'll handle it later)4. Discard this work Which option?``` **Don't add explanation** - keep options concise. ### Step 4: Execute Choice #### Option 1: Merge Locally ```bash# Switch to base branchgit checkout <base-branch> # Pull latestgit pull # Merge feature branchgit merge <feature-branch> # Verify tests on merged result<test command> # If tests passgit branch -d <feature-branch>``` Then: Cleanup worktree (Step 5) #### Option 2: Push and Create PR ```bash# Push branchgit push -u origin <feature-branch> # Create PRgh pr create --title "<title>" --body "$(cat <<'EOF'## Summary<2-3 bullets of what changed> ## Test Plan- [ ] <verification steps>EOF)"``` Then: Cleanup worktree (Step 5) #### Option 3: Keep As-Is Report: "Keeping branch <name>. Worktree preserved at <path>." **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.``` Wait for exact confirmation. If confirmed:```bashgit checkout <base-branch>git branch -D <feature-branch>``` Then: Cleanup worktree (Step 5) ### Step 5: Cleanup Worktree **For Options 1, 2, 4:** Check if in worktree:```bashgit worktree list | grep $(git branch --show-current)``` If yes:```bashgit worktree remove <worktree-path>``` **For Option 3:** Keep worktree. ## Quick Reference | Option | Merge | Push | Keep Worktree | Cleanup Branch ||--------|-------|------|---------------|----------------|| 1. Merge locally | ✓ | - | - | ✓ || 2. Create PR | - | ✓ | ✓ | - || 3. Keep as-is | - | - | ✓ | - || 4. Discard | - | - | - | ✓ (force) | ## Common Mistakes **Skipping test verification**- **Problem:** Merge broken code, create failing PR- **Fix:** Always verify tests before offering options **Open-ended questions**- **Problem:** "What should I do next?" → ambiguous- **Fix:** Present exactly 4 structured options **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**- **Problem:** Accidentally delete work- **Fix:** Require typed "discard" confirmation ## 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 ## Integration **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 skillBrainstorming
Forces Claude to actually think before coding, which frankly should be the default but isn't. Blocks all implementation until you've walked through context expl
Dispatching Parallel Agents
When you've got multiple independent failures across different test files or subsystems, this cuts debugging time by running separate agents in parallel instead
Executing Plans
Takes a written implementation plan and executes it step by step with proper checkpoints. Loads the plan file, reviews it critically for gaps or unclear instruc