Skip to content
Back to skills

Worktree Merge

ASecurity

Cleans up a worktree after its branch has been merged: removes the worktree directory and deletes the local branch. Use when the user says '/worktree-merge' or asks to clean up a merged worktree.

  • 17 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added August 31, 2026
ai-agentsgobashgit

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add domengabrovsek/claude --skill worktree-merge --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Worktree Merge?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Worktree Merge
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/domengabrovsek-worktree-merge/badge)](https://www.skillsdirectory.com/skills/domengabrovsek-worktree-merge)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: worktree-merge
description: "Cleans up a worktree after its branch has been merged: removes the worktree directory and deletes the local branch. Use when the user says '/worktree-merge' or asks to clean up a merged worktree."
---

Clean up the current worktree: $ARGUMENTS

## Preconditions

- Current `$PWD` must be inside a worktree (not the main checkout). Verify with `git rev-parse --git-dir != --git-common-dir`.
- The worktree's branch must be safely removable: either merged into the default branch upstream, or its upstream is `gone` (PR was merged and remote branch deleted), or the user explicitly passes `--force`.

If the branch is not safe to remove, stop and explain what's still pending (unpushed commits, open PR, etc.). Never auto-delete unmerged work.

## Steps

1. Capture worktree path and branch name:

   ```bash
   WORKTREE=$(git rev-parse --show-toplevel)
   BRANCH=$(git rev-parse --abbrev-ref HEAD)
   ```

2. Move out of the worktree to the main checkout (`cd "$(git rev-parse --git-common-dir)/.."`).
3. Remove the worktree: `git worktree remove "$WORKTREE"`. If it has uncommitted changes and `--force` was passed, use `git worktree remove --force "$WORKTREE"`.
4. Delete the local branch: `git branch -d "$BRANCH"` (or `-D` with `--force`).
5. Report what was cleaned up.

## After cleanup

If the user has more work, suggest `/worktree <new-slug>` for the next task rather than mutating the main checkout.

## Merging parallel lanes

When several lane-mode teammates finish, merge their branches into the integration branch one at a time:

1. Review each teammate's diff for correctness.
2. Merge one branch. Resolve any conflict with `/resolve-conflicts` before merging the next.
3. After the last merge, run the full test suite, typecheck, and lint.
4. Prune the worktrees: `~/.agents/scripts/worktree-prune.sh --apply`. It removes only worktrees whose branch is upstream-gone or merged into the default, which is the post-merge state. Anything still active survives.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.