| name | git-worktree |
| description | Manage git worktrees for isolated parallel development. Use when running multiple sessions concurrently or working on parallel features. |
| metadata | {"category":"user-invoked","version":"1.0.0"} |
| disable-model-invocation | true |
Default output: return only the result, blockers, and required evidence. Omit preambles, process narration, repeated context, confidence scores, and follow-up offers. Use at most five bullets unless a required artifact or schema needs more.
Git Worktree Skill
Systematic Approach
Core Commands
Create a Worktree
git worktree add ../project-feature -b feature/user-auth
git worktree add ../project-bugfix hotfix/critical-fix
git worktree add ../project-v1 release/v1.0
List Worktrees
git worktree list
Remove Worktrees
git worktree remove ../project-feature
git worktree remove --force ../project-feature
git worktree prune
Naming Conventions
Use consistent, descriptive names:
git worktree add ../myapp-feature-auth -b feature/auth
git worktree add ../myapp-bugfix-login -b hotfix/login-error
git worktree add ../myapp-experiment-v2 -b experiment/v2-redesign
git worktree add ../temp -b stuff
git worktree add ../test -b wip
Integration with ai-eng-system
Worktrees enable running multiple Claude sessions in parallel:
git worktree add ../project-auth -b feature/auth
cd ../project-auth
claude
git worktree add ../project-bugfix -b hotfix/critical-fix
cd ../project-bugfix
claude
cd ../project
claude
Best Practices
- Create one worktree per task — Keep worktrees focused
- Name descriptively — Include project prefix and purpose
- Clean up after merge — Remove worktrees when done
- Prune regularly — Run
git worktree prune to clean references
- Use sibling directories — Keep worktrees next to main repo, not nested
- Don't share worktrees — Each session gets its own worktree
Common Workflows
Feature Development with Review
git worktree add ../myapp-feature -b feature/new-api
cd ../myapp-feature
git push -u origin feature/new-api
gh pr create --title "Add new API" --body "..."
cd ../myapp
git worktree remove ../myapp-feature
git branch -d feature/new-api
Running Tests in Isolation
git worktree add ../myapp-tests -b test/run
cd ../myapp-tests
[run tests for your project]
cd ../myapp
git worktree remove ../myapp-tests
Troubleshooting
Stale Worktrees
git worktree list --verbose
git worktree prune
rm -rf ../path-to-stale-worktree
git worktree prune
Worktree Won't Remove
git worktree remove --force ../project-feature
rm -rf ../project-feature
git worktree prune
Anti-Rationalization Table
| Excuse | Counter |
|---|
| "I'll just switch branches instead of creating a worktree" | Switching branches loses uncommitted work and breaks running processes. Worktrees enable true parallelism. |
| "I don't need to clean up old worktrees" | Stale worktrees clutter the filesystem and confuse branch state. Prune regularly. |
| "Naming doesn't matter, I'll remember what it's for" | You won't. Descriptive names prevent confusion when juggling multiple worktrees. |
| "I can share this worktree with another session" | Shared worktrees cause git lock conflicts. Each session gets its own worktree. |
| "The worktree won't remove, I'll just leave it" | Force remove or manually delete. Stale worktrees cause git warnings and confusion. |