New to Claude Skills? Learn how to install them →

davila7 on GitHub

Finishing a Development Branch

Free

Streamline your branch completion process with structured options.

Get this skill

Free · Opens the source repo

What Finishing a Development Branch does

The Finishing a Development Branch skill is designed to assist developers in efficiently completing their development work. It provides a structured process that begins with verifying that all tests pass, ensuring that only stable code is merged or pushed. By following a clear sequence of steps, the skill helps developers make informed decisions about their branches, whether they want to merge locally, create a pull request, keep the branch for later, or discard the work altogether.

The skill operates in a straightforward manner: it first runs the project's test suite to confirm that there are no failures. If tests pass, it then presents the user with four concise options for how to proceed with the development branch. This eliminates ambiguity and helps maintain a clear workflow. Each option is executed with specific commands that ensure best practices are followed, such as verifying tests on the merged result before finalizing any changes.

This skill is particularly useful for teams working in collaborative environments where multiple branches are common. It helps maintain code quality by enforcing test verification and reducing the risk of merging broken code. Additionally, the skill's cleanup process ensures that worktrees are managed appropriately, preventing clutter in the repository.

Overall, the Finishing a Development Branch skill is an essential tool for developers looking to streamline their branch completion process while adhering to best practices in version control and code quality management.

When to use it

Use this skill when your implementation is complete, all tests have passed, and you need to decide how to integrate your work into the main codebase.

When not to use it

Avoid this skill if your tests are failing or if you are not ready to finalize your development branch, as it requires a stable codebase to function effectively.

What you can build with it

Completing a Feature Branch

After implementing a new feature and ensuring all tests pass, use this skill to merge your changes back into the main branch.

Creating a Pull Request

Once your development work is finished, utilize this skill to push your branch and create a pull request with a structured summary.

Discarding Unwanted Changes

If you decide not to proceed with a branch, this skill allows you to safely discard your work with confirmation to prevent accidental deletions.

How to install Finishing a Development Branch

View source

1. Install with the skills CLI

npx skills add davila7/claude-code-templates/finishing-a-development-branch --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by davila7

Finishing a Development Branch

Overview

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

The Process

Step 1: Verify Tests

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.

Step 2: Determine Base Branch

# 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?"

Step 3: Present Options

Present exactly these 4 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?

Don't add explanation - keep options concise.

Step 4: Execute Choice

Option 1: Merge Locally

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

Option 2: Push and Create PR

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

Option 3: Keep As-Is

Report: "Keeping branch <name>. Worktree preserved at <path>."

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.

Wait for exact confirmation.

If confirmed:

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

Then: Cleanup worktree (Step 5)

Step 5: 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.

Quick Reference

OptionMergePushKeep WorktreeCleanup Branch
1. Merge locally--
2. Create PR--
3. Keep as-is---
4. Discard---✓ (force)

Common Mistakes

Skipping test verification

  • Problem: Merge broken code, create failing PR
  • Fix: Always verify tests before offering options

Open-ended questions

  • Problem: "What should I do next?" → ambiguous
  • Fix: Present exactly 4 structured options

Automatic worktree cleanup

  • Problem: Remove worktree when might need it (Option 2, 3)
  • Fix: Only cleanup for Options 1 and 4

No confirmation for discard

  • Problem: Accidentally delete work
  • Fix: Require typed "discard" confirmation

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

Integration

Called by:

  • subagent-driven-development (Step 7) - After all tasks complete
  • executing-plans (Step 5) - After all batches complete

Pairs with:

  • using-git-worktrees - Cleans up worktree created by that skill

Frequently asked questions about Finishing a Development Branch

Similar skills