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 typedevelopment
This skill should be used when need prioritize what changed code in repository human must review.
documentation
Review an existing GitHub pull request and post inline review comments on its diff. Use when the changes are on an opened PR rather than your local working tree.
tools
Review your local uncommitted working-tree changes (git diff plus untracked files) and return actionable improvement suggestions. Use before committing, when nothing has been pushed yet.
development
Add missing test coverage for your local code changes by generating new test files (covers uncommitted and untracked changes, or the latest commit if everything is committed). Use when you want write tests for new logic or increase test coverage.