use-branch-complete

mtthsnc's avatarfrom mtthsnc

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

0stars🔀0forks📁View on GitHub🕐Updated Jan 9, 2026

When & Why to Use This Skill

This Claude skill automates the final stages of the software development lifecycle by ensuring code quality through mandatory test verification before integration. It streamlines the transition from local development to version control by providing structured workflows for merging code, creating Pull Requests via GitHub CLI, and maintaining repository hygiene through automated worktree cleanup.

Use Cases

  • Automated Integration Gatekeeping: Use this skill to ensure that no code is merged or pushed until the project's test suite passes, preventing broken builds in the main branch.
  • Streamlined Pull Request Creation: Automatically push feature branches and generate standardized GitHub Pull Requests with pre-filled summaries and test plans, reducing manual administrative overhead for developers.
  • Development Environment Cleanup: Efficiently manage local resources by automatically deleting temporary branches and removing git worktrees after a task is completed or discarded, keeping the workspace organized.
nameuse-branch-complete
descriptionUse when implementation is complete, all tests pass, and you need to decide how to integrate the work

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 use-branch-complete skill to complete this work."

The Process

Step 1: Verify Tests

Run project's test suite before presenting options:

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.

Step 2: Present Options

Implementation complete. 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?

Step 3: Execute Choice

Option 1: Merge Locally

git checkout <base-branch>
git pull
git merge <feature-branch>
<test command>  # Verify tests on merged result
git branch -d <feature-branch>  # If tests pass

Then: Cleanup worktree (Step 4)

Option 2: Push and Create PR

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
)"

Then: Cleanup worktree (Step 4)

Option 3: Keep As-Is

Report: "Keeping branch . Worktree preserved at ."

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.

If confirmed:

git checkout <base-branch>
git branch -D <feature-branch>

Then: Cleanup worktree (Step 4)

Step 4: Cleanup Worktree

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.

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