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. Presents exactly 4 options: merge locally, create PR, keep as-is, or discard. Do NOT use when tests are failing or work is incomplete - fix issues first before finishing the branch.
/plugin marketplace add jrc1883/popkit-claude/plugin install popkit@popkit-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
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."
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?"
ALWAYS use AskUserQuestion - never present plain text numbered options:
Use AskUserQuestion tool with:
- question: "Implementation complete. What would you like to do?"
- header: "Complete"
- options:
- label: "Merge locally"
description: "Merge back to <base-branch> and clean up"
- label: "Create PR"
description: "Push and create a Pull Request for review"
- label: "Keep as-is"
description: "Keep the branch, I'll handle it later"
- label: "Discard"
description: "Delete this work permanently"
- multiSelect: false
NEVER present as plain text like "1. Merge, 2. PR... type 1 or 2".
# Switch to base branch
git checkout <base-branch>
# Pull latest
git pull
# Merge feature branch
git merge <feature-branch>
# Verify tests on merged result
<test command>
# If tests pass
git branch -d <feature-branch>
Then: Cleanup worktree (Step 5)
# Push branch
git push -u origin <feature-branch>
# Create PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## Summary
<2-3 bullets of what changed>
## Test Plan
- [ ] <verification steps>
EOF
)"
Then: Cleanup worktree (Step 5)
Report: "Keeping branch <name>. Worktree preserved at <path>."
Don't cleanup worktree.
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:
git checkout <base-branch>
git branch -D <feature-branch>
Then: Cleanup worktree (Step 5)
For Options 1, 2, 4:
Check if in worktree:
git worktree list | grep $(git branch --show-current)
If yes:
git worktree remove <worktree-path>
For Option 3: Keep worktree.
Only applies when invoked via /popkit:dev work #N - skip for standalone use.
After successful merge (Option 1) or PR creation (Option 2):
Use AskUserQuestion tool with:
- question: "Work on issue #N complete. Close the issue?"
- header: "Close Issue"
- options:
- label: "Yes, close it"
description: "Mark issue as completed"
- label: "No, keep open"
description: "Issue needs more work or follow-up"
- multiSelect: false
If "Yes, close it":
gh issue close <number> --comment "Completed via /popkit:dev work #<number>"
Check if issue references a parent epic (look for "Part of #N" or "Parent: #N" in body):
gh issue view <number> --json body --jq '.body' | grep -oE '(Part of|Parent:?) #[0-9]+'
If parent found:
Present dynamic next actions based on project state:
Use AskUserQuestion tool with:
- question: "What would you like to do next?"
- header: "Next Action"
- options: [dynamically generated]
- multiSelect: false
Generate options by:
Fetch prioritized issues:
gh issue list --state open --milestone v1.0.0 --json number,title,labels --limit 5
Sort by: P1 > P2 > P3, then phase:now > phase:next
Build 4 options:
Example:
What would you like to do next?
1. Work on #108: Power Mode Metrics (P1-high)
→ Continue v1.0.0 milestone work
2. Work on #109: QStash Pub/Sub (P2-medium)
→ Add inter-agent messaging
3. Work on #93: Multi-Project Dashboard (P2-medium)
→ Build project visibility
4. Session capture and exit
→ Save state for later
If user selects an issue, immediately invoke /popkit:dev work #N - keeping them in the loop.
| Option | Merge | Push | Keep Worktree | Cleanup Branch | Close Prompt |
|---|---|---|---|---|---|
| 1. Merge locally | Yes | - | - | Yes | Yes (if issue) |
| 2. Create PR | - | Yes | Yes | - | Yes (if issue) |
| 3. Keep as-is | - | - | Yes | - | No |
| 4. Discard | - | - | - | Yes (force) | No |
Skipping test verification
Open-ended questions
Automatic worktree cleanup
No confirmation for discard
Never:
Always:
Called by:
Pairs with:
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.