What problem does it solve? After a squash or rebase merge, git tooling cannot tell whether a worktree's branch still holds unlanded work, so removal tools refuse and merged worktrees pile up alongside unreachable objects in the shared object store. ## Core Features & Use Cases - Content-based merge verification: Compare git merge-tree --write-tree output against master's tree SHA to prove a branch's work landed, instead of trusting commit counts. - Safe pruning workflow: Run prune_worktrees.py in report, --prune, or --gc modes to remove only merged, clean, unlocked worktrees and repair the object store. - Lock and stash safety rules: Respect session-held locks, ignore stale locks, and avoid the shared stash stack by using WIP commits or SHA-pinned stash entries. - Use Case: A session's PR just squash-merged and ExitWorktree refuses to remove the worktree; verify the merge by tree SHA, then let the pruner collect the worktree and delete the branch with git branch -d before the tracking ref is pruned. ## Quick Start Ask the assistant to verify whether the current worktree's branch has landed on master and, if so, prune the merged worktree and delete its branch.