Use when creating a new git worktree. Handles gitignore setup, worktree creation, and provides guidance. Invoke with "/worktrees:new <name>" or when user mentions "create worktree", "new worktree", "start feature in worktree", or "isolated workspace".
From worktreesnpx claudepluginhub aaronbassett/agent-foundry --plugin worktreesThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
Create an isolated worktree for parallel development.
<name> - Worktree and branch name (required)--base <branch> - Base branch (default: main)--lock - Lock worktree after creationFirst, check if .worktrees/ is in .gitignore:
grep -q "^\.worktrees" .gitignore 2>/dev/null && echo "OK: .worktrees already gitignored" || echo "MISSING: Need to add .worktrees to gitignore"
If missing, add and commit:
echo ".worktrees/" >> .gitignore
git add .gitignore
git commit -m "chore: add .worktrees to gitignore"
Why gitignore? Each worktree contains a complete checkout. Without gitignoring, you'd accidentally commit nested copies of your entire codebase.
Standard creation (new branch from base):
# Replace <name> with the provided name, <base> with --base value or "main"
git worktree add -b feature/<name> .worktrees/<name> <base>
With lock flag:
git worktree add --lock -b feature/<name> .worktrees/<name> <base>
git worktree list
Expected output shows new worktree:
/path/to/project abc1234 [main]
/path/to/project/.worktrees/<name> abc1234 [feature/<name>]
cd .worktrees/<name>
After creating the worktree:
git push -u origin feature/<name>/worktrees:finish to clean up| Scenario | Command |
|---|---|
| Basic feature | git worktree add -b feature/my-feature .worktrees/my-feature main |
| From release branch | git worktree add -b hotfix/urgent .worktrees/urgent release/v2 |
| Locked worktree | git worktree add --lock -b feature/critical .worktrees/critical main |
| With existing branch | git worktree add .worktrees/existing-branch existing-branch |
Error: fatal: 'branch-name' is already checked out at '/path'
Solution: Each branch can only exist in one worktree. Either:
git worktree listError: fatal: destination path already exists
Solution: The .worktrees/<name> directory exists. Either:
rm -rf .worktrees/<name> && git worktree prune# Create worktree with new branch
git worktree add -b <branch> .worktrees/<name> [base]
# Create worktree with existing branch
git worktree add .worktrees/<name> <branch>
# List worktrees
git worktree list
# Lock/unlock
git worktree lock .worktrees/<name>
git worktree unlock .worktrees/<name>