finishing-a-development-branch
Use when completing work on a feature branch, preparing to merge, or cleaning up after development is done. Triggers: branch work is complete, user says "merge", "create PR", "finish branch", "done with this branch", ready for code review.
- Installs
- 78
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/pixel-process-ug/superkit-agents --skill finishing-a-development-branch- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads finishing-a-development-branch automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Finishing a Development Branch
Overview
Provide a structured, safe process for completing work on a development branch, including verification, merge strategy selection, and cleanup. This skill ensures no branch is merged without passing tests, and every destructive operation requires explicit user confirmation.
When to Use
- All planned work on a feature branch is complete
- A branch is ready for code review or merge
- Cleaning up after development work is finished
- Preparing a pull request for team review
Phase 1: Verify All Tests Pass
[HARD-GATE] Do NOT proceed to any merge or PR activity without passing verification.
Before any merge or PR activity, invoke verification-before-completion to confirm:
- All tests pass (unit, integration, e2e as applicable)
- No lint errors or warnings
- Build succeeds
- No untracked files that should be committed
# Run the project's full verification suite
# Do NOT skip this step even if "tests were passing earlier"
If verification fails, STOP. Fix the failures before proceeding. Do NOT create PRs or merge branches with failing tests.
STOP — Verification must pass before continuing to Phase 2.
Phase 2: Determine Base Branch
Identify the branch to merge into, using this detection logic:
Auto-Detection
# Check for common base branch names
git branch -a | grep -E 'remotes/origin/(main|master|develop)$'
# Check what branch was the fork point
git log --oneline --decorate --graph HEAD...main --first-parent 2>/dev/null
git log --oneline --decorate --graph HEAD...master --first-parent 2>/dev/null
Base Branch Selection Decision Table
| Condition | Base Branch | Confidence |
|---|---|---|
main exists | main | High |
Only master exists | master | High |
develop exists and project uses GitFlow | develop | Medium |
| Multiple candidates found | Ask user | Required |
| None of the above exist | Ask user | Required |
Verify Base Branch is Up to Date
git fetch origin
git log HEAD..<base-branch> --oneline
If the base branch has advanced since the feature branch was created, inform the user. They may want to rebase or merge base into the feature branch first.
Base Branch Divergence Decision Table
| Divergence | Action |
|---|---|
| Base has 0 new commits | Proceed normally |
| Base has 1-5 new commits | Inform user, suggest rebase |
| Base has 6+ new commits | Warn user, recommend merge or rebase before proceeding |
| Merge conflicts detected | STOP — resolve conflicts first |
STOP — Confirm the base branch with the user before proceeding.
Phase 3: Present Merge Options
Present exactly these four options to the user. Do NOT add or remove options.
How would you like to finish this branch?
A) Create PR -- push and open a pull request for review
B) Merge -- merge into <base> with a merge commit
C) Squash merge -- squash into one commit, merge into <base>
D) Leave as-is -- keep the branch, decide later
Option Selection Decision Table
| Context | Recommended Option | Why |
|---|---|---|
| Team project with code review | A) Create PR | Enables review workflow |
| Solo project, clean history | B) Merge | Preserves full branch history |
| Many WIP commits, messy history | C) Squash merge | Clean single commit on base |
| Work incomplete or uncertain | D) Leave as-is | No risk, decide later |
STOP — Wait for user to select an option. Do NOT assume a default.
Phase 4: Execute Chosen Option
Option A: Create Pull Request
# Push the branch
git push -u origin <branch-name>
# Generate PR title from branch name or recent commits
# Generate PR body from commit messages and diff summary
gh pr create --title "<title>" --body "<body>"
PR Title Generation:
- Derive from branch name:
feature/add-authbecomesAdd authentication - Keep under 70 characters
- Use imperative mood
PR Body Generation:
- Summarize the changes (what and why)
- List key modifications
- Note any breaking changes
- Include test plan
Option B: Merge Locally
# Switch to base branch
git checkout <base-branch>
# Merge feature branch
git merge <feature-branch>
# Delete the feature branch
git branch -d <feature-branch>
Confirmation required before executing the merge.
Option C: Squash Merge
# Switch to base branch
git checkout <base-branch>
# Squash merge
git merge --squash <feature-branch>
# Commit with a comprehensive message
git commit -m "<squash commit message>"
# Delete the feature branch
git branch -d <feature-branch>
Squash commit message should summarize all changes from the branch, not just the last commit.
Confirmation required before executing the squash merge.
Option D: Leave Branch As-Is
No action needed. Inform the user:
Branch <branch-name> left as-is.
You can return to it later with: git checkout <branch-name>
Phase 5: Cleanup
After executing options A, B, or C, perform cleanup:
Remove Worktree (if applicable)
If the branch was developed in a git worktree:
# Navigate out of the worktree first
git worktree remove <worktree-path>
git worktree prune
Clean Up Remote Tracking (Option B and C only)
If the branch was previously pushed:
# Delete remote branch after local merge
git push origin --delete <branch-name>
Confirmation required before deleting remote branches.
Verify Final State
git status
git log --oneline -5
Confirm the base branch is in the expected state.
Confirmation Requirements
[HARD-GATE] The following operations require explicit user confirmation before execution. Do NOT proceed on assumption. Always ask.
| Operation | Why Confirmation Is Required |
|---|---|
| Merge into base branch | Changes base branch history |
| Squash merge | Loses individual commit history |
| Delete local branch | Cannot be undone if not pushed |
| Delete remote branch | Affects other collaborators |
| Force remove worktree | May discard uncommitted changes |
| Rebase onto updated base | Rewrites commit history |
Anti-Patterns / Common Mistakes
| Anti-Pattern | Why It Is Wrong | What to Do Instead |
|---|---|---|
| Merging without running tests | Broken code reaches base branch | Always run full verification first |
| Skipping base branch freshness check | Merge conflicts discovered late | git fetch and check divergence |
| Auto-selecting merge strategy | User may prefer different approach | Always present all four options |
| Deleting branch without confirmation | Data loss risk | Ask before every deletion |
| Creating PR with failing CI | Wastes reviewer time | Fix CI before creating PR |
| Squash message from last commit only | Loses context of full branch work | Summarize all changes in squash msg |
| Leaving stale remote branches | Cluttered repository | Clean up remote after merge |
| Force-pushing after PR creation | Destroys review comments | Avoid force-push on PR branches |
Error Handling
| Error | Action |
|---|---|
| Merge conflicts | Report conflicts, ask user to resolve, do NOT auto-resolve |
| Push rejected | Fetch and check if rebase/merge is needed |
| PR creation fails | Check gh auth status, report error details |
| Branch already deleted | Skip deletion, continue with remaining cleanup |
| Tests fail | STOP immediately, do NOT merge or create PR |
| Base branch does not exist on remote | Ask user to confirm the correct base |
Integration Points
| Skill | Integration |
|---|---|
verification-before-completion | Must invoke in Phase 1 before any merge activity |
using-git-worktrees | Cleanup includes worktree removal if applicable |
git-commit-helper | Squash commit message follows conventional commit format |
code-review | PR creation (Option A) feeds into code review workflow |
planning | Branch completion is the final step of plan execution |
deployment | Merge to main/release may trigger deployment pipeline |
Skill Type
RIGID — Follow this process exactly. Every phase must be completed in order. Do NOT skip verification. Do NOT merge without user confirmation. Do NOT assume a merge strategy. Do NOT delete branches without asking.
FAQ
What does the finishing-a-development-branch skill do?
Use when completing work on a feature branch, preparing to merge, or cleaning up after development is done. Triggers: branch work is complete, user says "merge", "create PR", "finish branch", "done with this branch", ready for code review.
How do I install finishing-a-development-branch?
Run npx skills add https://github.com/pixel-process-ug/superkit-agents --skill finishing-a-development-branch in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/finishing-a-development-branch/ (personal) or .claude/skills/finishing-a-development-branch/ (project).
Which AI agents can use finishing-a-development-branch?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is finishing-a-development-branch safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains finishing-a-development-branch?
It is published by pixel-process-ug in pixel-process-ug/superkit-agents. It has 78 recorded installs.
More from pixel-process-ug/superkit-agents
ui-ux-pro-max
pixel-process-ug/superkit-agents
Use when the user needs full UI/UX design intelligence — styles, palettes, fonts, UX guidelines, chart selection, and accessible, performant implementation across any supported stack. Triggers: user says "design", "UI", "UX", "color palette", "typography", "accessibility", "responsive design", "chart type", "style guide", building any user-facing interface.
frontend-ui-design
pixel-process-ug/superkit-agents
Use when designing UI components, creating component architectures, implementing responsive layouts, setting up design systems, or selecting state management solutions for frontend applications
reverse-engineering-specs
pixel-process-ug/superkit-agents
Open the skill to read its SKILL.md instructions.
canvas-design
pixel-process-ug/superkit-agents
Use when the user needs HTML Canvas, SVG graphics, data visualization, generative art, or interactive visual elements with D3.js or similar libraries. Triggers: user says "canvas", "SVG", "chart", "data visualization", "D3", "generative art", "animation", "interactive graphics", drawing on screen.
autonomous-loop
pixel-process-ug/superkit-agents
Open the skill to read its SKILL.md instructions.
mobile-design
pixel-process-ug/superkit-agents
Open the skill to read its SKILL.md instructions.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.