---
name: merge-main-cleanup
description: This skill should be used when the user requests merging work into main and then deleting all other local and remote branches, keeping only main.
---
# Merge Main Cleanup
## Overview
Perform a full merge into main and then delete all other branches locally and on the default remote. Remove any worktrees tied to deleted branches.
## When to Use
- User says to merge into main and keep only main.
- User wants a one-step cleanup of branches after merge.
## Workflow
### 1) Validate repository state
- Run `git status --porcelain` and stop if there are uncommitted changes.
- Run `git rev-parse --show-toplevel` and work from that root.
- Run `git fetch --all --prune` to sync branch state.
### 2) Determine base branch
- Prefer `main`; if missing, use `master`.
- Command: `git branch --list main master`
### 3) Merge current branch into base
- Get current branch: `git branch --show-current`.
- If already on base, skip merge.
- Otherwise:
- `git checkout `
- `git pull --ff-only`
- `git merge `
- Resolve conflicts if any, then complete the merge.
### 4) Push base to remote
- Push base: `git push origin `
### 5) Remove worktrees for non-base branches
- List worktrees: `git worktree list`.
- For each worktree whose branch is not ``, remove it:
- `git worktree remove `
### 6) Delete all non-base branches (local + remote)
- Local branches (force delete, as requested):
- List: `git branch --format='%(refname:short)'`
- For each branch not ``, run: `git branch -D `
- Remote branches (origin):
- List: `git branch -r --format='%(refname:short)' | rg '^origin/'`
- For each remote branch not `origin/`, run: `git push origin --delete `
### 7) Verify only base remains
- `git branch -vv` should show only ``.
- `git branch -r` should show only `origin/`.
## Notes
- This skill is intentionally destructive: it deletes all branches except base.
- If the remote is not named `origin`, replace it accordingly.
- If deletion of worktree files is blocked by policy, report and ask the user to remove them manually.