Agent skill
worktree
[Git] Create isolated git worktree for parallel development
Install this agent skill to your Project
npx add-skill https://github.com/duc01226/EasyPlatform/tree/main/.claude/skills/worktree
SKILL.md
[IMPORTANT] Use
TaskCreateto break ALL work into small tasks BEFORE starting — including tasks for each file read. This prevents context loss from long files. For simple tasks, AI MUST ask user whether to skip.
Quick Summary
Goal: Create isolated git worktrees for parallel feature development with automatic branch naming and env file setup.
Workflow:
- Get Repo Info — Run
worktree.cjs infoto detect repo type, base branch, env files - Detect Prefix — Infer branch prefix from keywords (fix, feat, refactor, docs, etc.)
- Convert Slug — Transform description to kebab-case slug (max 50 chars)
- Execute — Run
worktree.cjs createwith project, slug, prefix, and env files
Key Rules:
- For monorepos, ask user which project if not specified
- Always ask which env files to copy via AskUserQuestion
- Handle error codes (BRANCH_CHECKED_OUT, WORKTREE_EXISTS, etc.) gracefully
Be skeptical. Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence percentages (Idea should be more than 80%).
Create an isolated git worktree for parallel feature development.
Workflow
Step 1: Get Repository Info
node .claude/scripts/worktree.cjs info --json
Response fields:
repoType: "monorepo" or "standalone"baseBranch: detected base branchprojects: array of {name, path} for monorepoenvFiles: array of .env* files founddirtyState: boolean
Step 2: Gather Info via AskUserQuestion
Detect branch prefix from user's description:
- Keywords "fix", "bug", "error", "issue" → prefix =
fix - Keywords "refactor", "restructure", "rewrite" → prefix =
refactor - Keywords "docs", "documentation", "readme" → prefix =
docs - Keywords "test", "spec", "coverage" → prefix =
test - Keywords "chore", "cleanup", "deps" → prefix =
chore - Keywords "perf", "performance", "optimize" → prefix =
perf - Everything else → prefix =
feat
For MONOREPO: Use AskUserQuestion if project not specified:
// If user said "/worktree add auth" but multiple projects exist
AskUserQuestion({
questions: [
{
header: 'Project',
question: 'Which project should the worktree be created for?',
options: projects.map(p => ({ label: p.name, description: p.path })),
multiSelect: false
}
]
});
For env files: Always ask which to copy:
AskUserQuestion({
questions: [
{
header: 'Env files',
question: 'Which environment files should be copied to the worktree?',
options: envFiles.map(f => ({ label: f, description: 'Copy to worktree' })),
multiSelect: true
}
]
});
Step 3: Convert Description to Slug
- "add authentication system" →
add-auth - "fix login bug" →
login-bug - Remove filler words, kebab-case, max 50 chars
Step 4: Execute Command
Monorepo:
node .claude/scripts/worktree.cjs create "<PROJECT>" "<SLUG>" --prefix <TYPE> --env "<FILES>"
Standalone:
node .claude/scripts/worktree.cjs create "<SLUG>" --prefix <TYPE> --env "<FILES>"
Options:
--prefix- Branch type: feat|fix|refactor|docs|test|chore|perf--env- Comma-separated .env files to copy--json- Output JSON for parsing--dry-run- Preview without executing
Commands
| Command | Usage | Description |
|---|---|---|
create |
create [project] <feature> |
Create new worktree |
remove |
remove <name-or-path> |
Remove worktree and branch |
info |
info |
Get repo info |
list |
list |
List existing worktrees |
Error Codes
| Code | Meaning | Action |
|---|---|---|
MISSING_ARGS |
Missing project/feature for monorepo | Ask for both |
MISSING_FEATURE |
No feature name (standalone) | Ask for feature |
PROJECT_NOT_FOUND |
Project not in .gitmodules | Show available projects |
MULTIPLE_PROJECTS_MATCH |
Ambiguous project name | Use AskUserQuestion |
MULTIPLE_WORKTREES_MATCH |
Ambiguous worktree for remove | Use AskUserQuestion |
BRANCH_CHECKED_OUT |
Branch in use elsewhere | Suggest different name |
WORKTREE_EXISTS |
Path already exists | Suggest use or remove |
WORKTREE_CREATE_FAILED |
Git command failed | Show git error |
WORKTREE_REMOVE_FAILED |
Cannot remove worktree | Check uncommitted changes |
Example Session
User: /worktree fix the login validation bug
Claude: [Runs: node .claude/scripts/worktree.cjs info --json]
[Detects: standalone repo, envFiles: [".env.example"]]
[Detects prefix from "fix" keyword: fix]
[Converts slug: "login-validation-bug"]
Claude: [Uses AskUserQuestion for env files]
"Which environment files should be copied?"
Options: .env.example
User: .env.example
Claude: [Runs: node .claude/scripts/worktree.cjs create "login-validation-bug" --prefix fix --env ".env.example"]
Output: Worktree created at ../worktrees/myrepo-login-validation-bug
Branch: fix/login-validation-bug
Closing Reminders
- MUST break work into small todo tasks using
TaskCreateBEFORE starting - MUST search codebase for 3+ similar patterns before creating new code
- MUST cite
file:lineevidence for every claim (confidence >80% to act) - MUST add a final review todo task to verify work quality
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
fix-parallel
[Implementation] Analyze & fix issues with parallel fullstack-developer agents
ask
[Utilities] Answer technical and architectural questions.
claude-code
[Utilities] Claude Code CLI setup, configuration, troubleshooting, and feature guidance. Triggers on claude code setup, hook not firing, MCP connection, context limit, skill creation, slash command setup.
workflow-deployment
[Workflow] Trigger Deployment & Infrastructure workflow — CI/CD pipelines, Docker, Kubernetes setup and deployment.
workflow-idea-to-pbi
[Workflow] Trigger Idea to PBI workflow — po/ba workflow: capture idea, refine to pbi, create stories, prioritize.
easy-claude-help
[Utilities] Configuration guide for the easy-claude framework — explain settings, guide users through configuring .ck.json.
Didn't find tool you were looking for?