Dotclaude worktree-clean

Use when removing a git worktree and cleaning up its associated local branch from the main repository.

install
source · Clone the upstream repo
git clone https://github.com/JHostalek/dotclaude
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/JHostalek/dotclaude "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/worktree-clean" ~/.claude/skills/jhostalek-dotclaude-worktree-clean && rm -rf "$T"
manifest: skills/worktree-clean/SKILL.md
source content

worktree_path = $ARGUMENTS

Remove a local worktree and delete its associated local branch. If no argument is provided, list worktrees and ask which to remove.

Local Only

Remote branches carry invisible state — open MRs, CI pipelines, review comments, deployment triggers — and deleting one can auto-close an MR silently. The user owns remote-branch deletions.

Submodules

Submodule git state under

.git/worktrees/{name}/modules/{submodule}
is cleaned up with the parent worktree — no separate step.

When Removal Resists

git worktree remove
fails on unclean state;
git branch -d
fails on unmerged branches. Trivial leftovers (build artifacts, debug logs, already-pushed-or-merged work) justify forcing autonomously. Substantive uncommitted or unmerged work — describe what you found and let the user decide.

Run

git worktree prune
after removal to clear stale internal references.