plugins/git/skills/create-worktree/SKILL.md
Create and setup git worktrees for parallel development with automatic dependency installation
npx skillsauth add NeoLabHQ/context-engineering-kit git:create-worktreeInstall 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.
Your job is to create and setup git worktrees for parallel development, with automatic detection and installation of project dependencies.
CRITICAL: Perform the following steps exactly as described:
Current state check: Run git worktree list to show existing worktrees and git status to verify the repository state is clean (no uncommitted changes that might cause issues)
Fetch latest remote branches: Run git fetch --all to ensure local has knowledge of all remote branches
Parse user input: Determine what the user wants to create:
<name>: Create worktree with auto-detected type prefix--list: Just show existing worktrees and exitAuto-detect branch type from name: Check if the first word is a known branch type. If yes, use it as the prefix and the rest as the name. If no, default to feature/.
Known types: feature, feat, fix, bug, bugfix, hotfix, release, docs, test, refactor, chore, spike, experiment, review
Examples:
refactor auth system → refactor/auth-systemfix login bug → fix/login-bugauth system → feature/auth-system (default)hotfix critical error → hotfix/critical-errorName normalization: Convert spaces to dashes, lowercase, remove special characters except dashes/underscores
For each worktree to create: a. Branch name construction: Build full branch name from detected type and normalized name:
<prefix>/<normalized-name> (e.g., feature/auth-system)b. Branch resolution: Determine if the branch exists locally, remotely, or needs to be created:
git worktree add ../<project>-<name> <branch>git worktree add --track -b <branch> ../<project>-<name> origin/<branch>git worktree add -b <branch> ../<project>-<name> <base>c. Path convention: Use sibling directory with pattern ../<project-name>-<name>
feature/auth-system → ../myproject-auth-systemd. Create the worktree: Execute the appropriate git worktree add command
e. Dependency detection: Check the new worktree for dependency files and determine if setup is needed:
package.json -> Node.js project (npm/yarn/pnpm/bun)requirements.txt or pyproject.toml or setup.py -> Python projectCargo.toml -> Rust projectgo.mod -> Go projectGemfile -> Ruby projectcomposer.json -> PHP projectf. Package manager detection (for Node.js projects):
bun.lockb -> Use bun installpnpm-lock.yaml -> Use pnpm installyarn.lock -> Use yarn installpackage-lock.json or default -> Use npm installg. Automatic setup: Automatically run dependency installation:
Summary: Display summary of created worktrees:
cd <worktree-path>Worktrees are created as sibling directories to maintain organization:
~/projects/
myproject/ # Main worktree (current directory)
myproject-add-auth/ # Feature branch worktree (feature/add-auth)
myproject-critical-bug/ # Hotfix worktree (hotfix/critical-bug)
myproject-pr-456/ # PR review worktree (review/pr-456)
Naming rules:
<project-name>-<name> (uses the name part, NOT the full branch)<type-prefix>/<name> (e.g., feature/add-auth)<name> portion for brevityFeature worktree (default):
> /git:create-worktree auth system
# Branch: feature/auth-system
# Creates: ../myproject-auth-system
Fix worktree:
> /git:create-worktree fix login error
# Branch: fix/login-error
# Creates: ../myproject-login-error
Refactor worktree:
> /git:create-worktree refactor api layer
# Branch: refactor/api-layer
# Creates: ../myproject-api-layer
Hotfix worktree:
> /git:create-worktree hotfix critical bug
# Branch: hotfix/critical-bug
# Creates: ../myproject-critical-bug
List existing worktrees:
> /git:create-worktree --list
# Shows: git worktree list output
Node.js project with pnpm:
Detected Node.js project with pnpm-lock.yaml
Installing dependencies with pnpm...
✓ Dependencies installed successfully
Python project:
Detected Python project with requirements.txt
Installing dependencies with pip...
✓ Dependencies installed successfully
Rust project:
Detected Rust project with Cargo.toml
Building project with cargo...
✓ Project built successfully
> /git:create-worktree new dashboard
# Branch: feature/new-dashboard
# Creates worktree, installs dependencies, ready to code
# In main worktree, working on feature
> /git:create-worktree hotfix critical bug
# Branch: hotfix/critical-bug
# Creates separate worktree from main/master
# Fix bug in hotfix worktree
# Return to feature work when done
> /git:create-worktree review pr 123
# Branch: review/pr-123
# Creates worktree for reviewing PR
# Can run tests, inspect code
# Delete when review complete
> /git:create-worktree spike new architecture
# Branch: spike/new-architecture
# Creates isolated worktree for experimentation
# Discard or merge based on results
Branch lock: Each branch can only be checked out in one worktree at a time. If a branch is already checked out, the command will inform you which worktree has it.
Shared .git: All worktrees share the same Git object database. Changes committed in any worktree are visible to all others.
Clean working directory: The command checks for uncommitted changes and warns if present, as creating worktrees is safest with a clean state.
Sibling directories: Worktrees are always created as sibling directories (using ../) to keep the workspace organized. Never create worktrees inside the main repository.
Automatic dependency installation: The command automatically detects the project type and package manager, then runs the appropriate install command without prompting.
Remote tracking: For remote branches, worktrees are created with proper tracking setup (--track flag) so pulls/pushes work correctly.
When done with a worktree, use the proper removal command:
git worktree remove ../myproject-add-auth
Or for a worktree with uncommitted changes:
git worktree remove --force ../myproject-add-auth
Never use rm -rf to delete worktrees - always use git worktree remove.
"Branch is already checked out"
git worktree list to see where the branch is checked out"Cannot create worktree - path already exists"
"Dependency installation failed"
cd ../myproject-<name>"Wrong type detected"
fix, hotfix, docs, test, refactor, chore, spike, reviewfeature/ when first word isn't a known typetesting
Refine, parallelize, and verify a draft task specification into a fully planned implementation-ready task
data-ai
Implement a task with automated LLM-as-Judge verification for critical steps
testing
Comprehensive pull request review using specialized agents
development
Comprehensive review of local uncommitted changes using specialized agents with code improvement suggestions