Using Git Worktrees
Overview
Git worktrees create isolated workspaces sharing the same repository, allowing work on multiple branches simultaneously without switching.
Announce at start: "I'm using the using-git-worktrees skill to set up an isolated workspace."
Directory Selection Process
Follow this priority order:
- Check existing directories -- Use or if present ( wins if both exist)
- Check CLAUDE.md -- Use any worktree directory preference specified there
- Ask user -- Offer (project-local) or
~/.config/superpowers/worktrees/<project>/
(global)
See
references/directory-selection.md
for full bash commands and ask-user flow.
Safety Verification
For project-local directories only (not needed for global):
- Check gitignore --
git check-ignore -q .worktrees
to verify directory is ignored
- Add if needed -- Add to if not ignored
- Commit -- Commit the change before proceeding
See
references/safety-verification.md
for full verification protocol.
Creation Steps (Task-Tracked)
Create 6 native tasks, each blocked by the previous (non-skippable sequence):
- Select worktree directory location -- Check existing dirs, CLAUDE.md, or ask user
- Verify gitignore for project-local directory -- Run , add to if needed
- Create worktree --
git worktree add <path> -b <branch>
- Install dependencies -- Auto-detect project type, run appropriate install command
- Run baseline tests -- Capture output showing pass/fail; ask user if tests fail
- Worktree ready -- Report location and test status; only complete if tests passed
See
references/creation-steps.md
for full TaskCreate blocks, bash commands, and setup detection.
Quick Reference
| Situation | Action |
|---|
| exists | Use it (verify ignored) |
| exists | Use it (verify ignored) |
| Both exist | Use |
| Neither exists | Check CLAUDE.md -> Ask user |
| Directory not ignored | Add to .gitignore + commit |
| Tests fail during baseline | Report failures + ask |
| No package.json/Cargo.toml | Skip dependency install |
Common Mistakes
- Skipping ignore verification -- worktree contents pollute git status. Always first.
- Assuming directory location -- follow priority: existing > CLAUDE.md > ask.
- Proceeding with failing tests -- report failures, get permission first.
- Hardcoding setup commands -- auto-detect from project files instead.
Integration
Called by: brainstorming (after design), any skill needing isolated workspace
Pairs with: finishing-a-development-branch (cleanup), executing-plans / subagent-driven-development (work happens here)
Reference Files
references/directory-selection.md
: full priority order with bash commands and ask-user flow
references/safety-verification.md
: full gitignore verification protocol with commands
references/creation-steps.md
: full TaskCreate blocks, bash commands, and setup detection
references/example-workflow.md
: annotated example of complete worktree setup workflow
- : Never/Always lists for quick self-check
<!-- compressed: 2026-02-11, original: 541 words, compressed: 481 words -->