Use when implementation is complete, all tests pass, and you need to integrate the work. Guides completion by presenting structured options for merge, PR, or cleanup.
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 finish-branch skill to complete this work."
/superspec:verify passessuperspec verify [change-id] passesāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Finish Branch Flow ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā ā
ā 1. Verify Tests ā
ā āāā All tests must pass ā
ā āāā superspec verify must pass ā
ā ā
ā 2. Determine Base Branch ā
ā āāā Usually main or master ā
ā ā
ā 3. Present Options ā
ā āāā 4 structured choices ā
ā ā
ā 4. Execute Choice ā
ā āāā Merge / PR / Keep / Discard ā
ā ā
ā 5. Cleanup Worktree (if applicable) ā
ā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Before presenting options:
# Run project's test suite
npm test / cargo test / pytest / go test ./...
# Run SuperSpec verification
superspec verify [change-id]
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.
# Try common base branches
git 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?"
Present exactly these 4 options:
Implementation complete. Verification passed. 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?
Don't add explanation - keep options concise.
# Switch to base branch
git checkout <base-branch>
# Pull latest
git pull
# Merge feature branch
git merge feature/<change-id>
# Verify tests on merged result
<test command>
# If tests pass
git branch -d feature/<change-id>
Then: Cleanup worktree (Step 5) ā Archive change
# Push branch
git push -u origin feature/<change-id>
# Create PR with SuperSpec reference
gh pr create --title "feat(<capability>): <description>" --body "$(cat <<'EOF'
## Summary
<2-3 bullets of what changed>
## SuperSpec Reference
- Change: `superspec/changes/<change-id>/`
- Specs: `superspec/changes/<change-id>/specs/`
## Test Plan
- [ ] All tests pass
- [ ] `superspec verify <change-id>` passes
- [ ] Code review approved
## Verification
- Requirements: X/X implemented
- Scenarios: Y/Y tested
EOF
)"
Then: Cleanup worktree (Step 5) - branch stays for PR
Report: "Keeping branch feature/
Don't cleanup worktree.
Confirm first:
This will permanently delete:
- Branch feature/<change-id>
- All commits: <commit-list>
- Worktree at <path>
Type 'discard' to confirm.
Wait for exact confirmation.
If confirmed:
git checkout <base-branch>
git branch -D feature/<change-id>
Then: Cleanup worktree (Step 5)
For Options 1, 2, 4:
Check if in worktree:
git worktree list | grep feature/<change-id>
If yes:
# Navigate out of worktree first
cd <project-root>
# Remove worktree
git worktree remove .worktrees/<change-id>
For Option 3: Keep worktree.
| Option | Merge | Push | Keep Worktree | Cleanup Branch |
|---|---|---|---|---|
| 1. Merge locally | ā | - | - | ā |
| 2. Create PR | - | ā | - | Keep for PR |
| 3. Keep as-is | - | - | ā | - |
| 4. Discard | - | - | - | ā (force) |
Next steps:
For Options 1 & 2 (code integrated):
Branch finished. Next: /superspec:archive to complete the change.
For Option 3:
Branch preserved. Run /superspec:finish-branch again when ready.
For Option 4:
Work discarded. Consider deleting superspec/changes/<change-id>/ if not needed.
Never:
Always:
superspec verify passesCalled by:
subagent-development - After final review passesverify passesPairs with:
git-worktree - Cleans up worktree created by that skillarchive - Archive change after branch finishedverification-before-completion - Evidence before claimsMust use:
verification-before-completion - Before presenting completion options, verify fresh test results exist