worktree

[IMPORTANT] Use TaskCreate to 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.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "worktree" with this command: npx skills add duc01226/easyplatform/duc01226-easyplatform-worktree

[IMPORTANT] Use TaskCreate to 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 info to 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 create with 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 branch

  • projects : array of {name, path} for monorepo

  • envFiles : array of .env* files found

  • dirtyState : 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

IMPORTANT Task Planning Notes (MUST FOLLOW)

  • Always plan and break work into many small todo tasks

  • Always add a final review todo task to verify work quality and identify fixes/enhancements

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

pdf-to-markdown

No summary provided by upstream source.

Repository SourceNeeds Review
General

markdown-to-docx

No summary provided by upstream source.

Repository SourceNeeds Review
General

docx-to-markdown

No summary provided by upstream source.

Repository SourceNeeds Review