pact-plugin/skills/worktree-cleanup/SKILL.md
Remove a git worktree and its branch after PACT workflow completes. Use when: PR is merged, sub-scope work is consolidated, or manual cleanup is needed. Triggers on: worktree cleanup, remove worktree, delete worktree, branch cleanup.
npx skillsauth add synaptic-labs-ai/pact-plugin worktree-cleanupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Remove a git worktree and its associated branch after work is complete. Typically invoked after a PR is merged, after CONSOLIDATE merges sub-scope branches, or manually by the user.
peer-review merges a PR (automatic cleanup)/PACT:worktree-cleanup)Follow these steps in order. Surface all git errors clearly — the user resolves them.
Determine which worktree to remove.
If a worktree path or branch name was provided: Use that directly.
If no target was specified: List all worktrees and ask the user which to clean up.
git worktree list
Present the list and ask: "Which worktree should I remove?"
Before removal, the shell's working directory must NOT be inside the worktree being removed. Compute the repo root, cd to it, and remove the worktree — all in a single bash call. This is critical because if the shell CWD is inside the deleted worktree, all subsequent commands will fail.
# Compute repo root, cd there, then remove the worktree — must be ONE bash call
MAIN_GIT_DIR=$(git rev-parse --git-common-dir)
REPO_ROOT=$(cd "$(dirname "$MAIN_GIT_DIR")" && pwd)
cd "$REPO_ROOT" && git worktree remove "$REPO_ROOT/.worktrees/{branch}"
Note: Claude Code's Bash tool persists the working directory between calls. After this command, subsequent calls will run from $REPO_ROOT.
If removal fails (uncommitted changes):
Git will refuse with an error like: fatal: cannot remove: '.worktrees/{branch}' has changes.
Surface this to the user:
Cannot remove worktree — uncommitted changes exist in .worktrees/{branch}.
Options:
1. Commit or stash changes first, then retry cleanup
2. Force removal: git worktree remove --force "$REPO_ROOT/.worktrees/{branch}"
(This discards uncommitted changes permanently)
Do NOT force-remove automatically. The user must choose.
After the worktree is removed, delete the local branch.
git branch -d {branch}
If deletion fails (branch not fully merged):
Git will refuse with an error like: error: branch '{branch}' is not fully merged.
Surface this to the user:
Cannot delete branch — '{branch}' is not fully merged.
Options:
1. Merge the branch first, then retry cleanup
2. Force delete: git branch -D {branch}
(This deletes the branch even if unmerged — changes may be lost)
Do NOT force-delete automatically. The user must choose.
Cleaned up worktree for {branch}
Worktree removed: .worktrees/{branch}
Branch deleted: {branch}
| Case | Handling |
|------|---------|
| Worktree has uncommitted changes | Surface git error, offer commit/stash or force options |
| Branch not fully merged | Surface git error, offer merge or force-delete options |
| Worktree directory already gone | Run git worktree prune to clean up stale refs, then delete branch |
| Currently inside the target worktree | Navigate to main repo root before removal |
| No worktrees exist | Report "No worktrees found" |
| Multiple worktrees for related branches | List all, let user choose which to remove |
data-ai
Record your teammate identity (name@team) at session start so later hooks can recover your friendly name. Invoke as your first action when your spawn prompt directs it.
testing
Testing strategies, test pyramid guidance, and quality assurance patterns for PACT Test phase. Use when: designing test suites, implementing unit tests, integration tests, E2E tests, performance testing, security testing, or determining test coverage priorities. Triggers on: test design, unit testing, integration testing, E2E testing, test coverage, test pyramid, mocking, fixtures, performance testing, test phase.
data-ai
Command-style teachback protocol for PACT teammates. Invoking this skill directly instructs you to store your teachback in task metadata and idle on awaiting_lead_completion before any implementation work.
data-ai
HANDOFF discovery, review, save, and cleanup workflow for the PACT secretary. Use when: processing agent HANDOFFs after workflow phases, running session consolidation, or recovering orphaned completed handoffs from prior sessions. Triggers: harvest HANDOFFs, process HANDOFFs, incremental, consolidation, handoff recovery.