Feature Branch Closeout
Internal shared skill. Single source of truth for post-verify branch closeout decisions. Hosts declare it in
dependenciesand abort if missing — no silent fallback.Name note: intentionally not named
finishing-a-development-branch(external skills repo). Use this name only.
Prerequisite
On load, verify merge-discipline and delivery-discipline are available; if missing, abort with install hint. No silent degrade.
When this applies
After verification is green, or every incomplete check is labeled Pending with an exact action — and after OpenSpec archive when the host requires archive before closeout — and after optional delivery-discipline when the host runs delivery before the menu. Do not claim the branch work is finished without presenting the menu (unless the user already gave an explicit closeout choice this turn).
Closeout menu (minimum)
Present intent clearly; agent picks native structured-question capability or prose:
- Open / update PR — load
delivery-discipline(need-delivery gate + commit if needed + create/refresh PR); stop (no merge) - Merge — merge into the protected target (then run
merge-discipline) - Keep branch — leave branch as-is; no merge
- Continue development — stay on branch for more work; no merge
Optional (when applicable): detect worktree / detached HEAD / isolation created via git-worktree-discipline and offer cleanup; discard only with explicit strong confirmation (user must clearly affirm discard). Do not create new isolation here — create/detect lives in git-worktree-discipline. Post-merge local workspace sync is owned by merge-discipline Part D, not this menu.
Merge path
If the choice is merge (or the user later says merge):
- Load
merge-discipline - Run Parts A → B → C → R → D
- Only then execute the platform merge
Do not copy rebase / coverage / tip-pin prose into this skill.
Non-merge paths
Keep / continue: do not start merge-discipline coverage or tip pinning for a merge.
PR-only (option 1): load delivery-discipline; do not start merge-discipline.
Forbidden
- Silently merging without the menu (unless user already ordered merge explicitly — then still run
merge-discipline) - Embedding merge-discipline Parts A→B→C→R→D inline
- Inlining commit/push/PR-create steps that belong in
delivery-discipline - Renaming this skill to
finishing-a-development-branchinside this repository
Integration guide
- Hosts: after archive/verify, optionally load
delivery-disciplinewhen delivery is expected, then one-line — loadfeature-branch-closeoutfor the menu; on merge, it loadsmerge-discipline. - Prefer
user-invocable: false; reach via PDCA hosts. - Order: archive (if any) + diff check → optional
delivery-discipline→ this menu → merge-discipline only if merge selected.