plugins/coordinator/skills/finishing-a-development-branch/SKILL.md
Use when implementation is complete and tests pass — presents structured options for merge, PR, or cleanup to integrate the work.
npx skillsauth add oduffy-delphi/coordinator-claude finishing-a-development-branchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 coordinator:finishing-a-development-branch skill to complete this work."
Run the acceptance oracle as early advisory feedback before presenting options.
Plan-path threading: This skill is invoked standalone (by the PM, or by the executor-dispatch workflow) — it is not chained from coordinator:execute-plan. When the invoker provides a plan path, use it directly. When no plan path is available, emit a skip-with-offer and continue.
Plan path known (passed from execute-plan or provided by invoker):
bash check-acceptance-oracle.sh <plan-path>
No plan path available (standalone invocation):
Emit skip-with-offer: "Acceptance oracle can be validated with bash check-acceptance-oracle.sh <plan-path> — provide a plan path if this branch has one." Continue to Step 1b. Never scan the working directory for plan files (concurrent EMs would pick the wrong one).
Before presenting options, verify tests pass:
# Run project's test suite
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.
# 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 3 options:
Implementation complete. What would you like to do?
1. Merge to main via PR (recommended)
2. Create a Pull Request (manual merge later)
3. Keep the branch as-is (I'll handle it later)
Which option?
Don't add explanation - keep options concise.
Why no "discard" option: when this skill fires, work is reviewed, tested, and committed. Offering discard as a peer of "merge" treats the choice as ambivalent when it isn't. If the PM genuinely wants to throw the work away, they'll say so explicitly — and that path goes through deliberate destructive-action confirmation, not a numbered menu.
Invoke the merging-to-main skill. This creates a PR, waits for CI checks, and merges
on success. Branch is deleted after merge.
If on a worktree: worktree is removed after merge (Step 5).
Push the feature branch and create a PR, but do NOT merge. Use this when:
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
)"
If on a worktree: keep the worktree active.
Don't merge, don't create PR. Branch stays. Use this when:
Report: "Keeping branch <name>. Worktree preserved at <path>."
If on a worktree: keep the worktree active.
For Option 1:
Check if in worktree:
git worktree list | grep $(git branch --show-current)
If yes:
git worktree remove <worktree-path>
For Options 2 and 3: Keep worktree.
| Option | PR | Merge | Keep Worktree | Cleanup Branch | |--------|-----|-------|---------------|----------------| | 1. Merge via PR | ✓ | ✓ (CI-gated) | - | ✓ | | 2. PR only | ✓ | - | ✓ | - | | 3. Keep as-is | - | - | ✓ | - |
Skipping test verification
Open-ended questions
Automatic worktree cleanup
Offering discard as a numbered option
Never:
Always:
Called by:
docs/wiki/delegate-execution.md) — After all tasks completeNot called by:
/workstream-complete; it deliberately does not chain into branch disposition, since that reaches the keyword-gated /merge-to-main. Branch disposition is a separate, PM-invoked decision.Pairs with:
tools
Orient session — preflight, load context, choose work
documentation
Wrap up finished work — capture lessons, update docs
testing
Use before commit, /merge-to-main, /workday-complete, or to validate repo state. Resolves and runs the project's configured fast-test command.
development
Root-cause discipline for ONE identified bug, test failure, or unexpected behavior — pin the premise, reproduce, trace to source, fix at source, verify. For a single known issue, not a codebase sweep.