Install
$ agentstack add skill-joaquimscosta-arkhe-claude-plugins-creating-worktree ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Git Worktree Creation Workflow
Create isolated git worktrees in .claude/worktrees/ with intelligent branch naming. Combines worktree isolation with the same naming convention as the creating-branch skill.
Usage
This skill is invoked when:
- User runs
/worktreeor/git:worktreecommand - User requests to create a worktree for isolated work
Two Operation Modes
Mode 1: With Description (Manual)
The command takes a description and automatically detects the commit type.
Format: /worktree
Examples:
/worktree add user authentication
# Worktree: .claude/worktrees/user-authentication
# Branch: feat/001-user-authentication
/worktree fix login bug
# Worktree: .claude/worktrees/login-bug
# Branch: fix/002-login-bug
/worktree refactor auth service
# Worktree: .claude/worktrees/auth-service
# Branch: refactor/003-auth-service
Mode 2: Auto-Generate from Changes (No Arguments)
When no arguments provided and no sdlc-develop specs exist, analyze uncommitted changes to generate names automatically.
Format: /worktree (no arguments)
Process:
- Check for sdlc-develop specs (see Mode 3)
- If no specs, check for uncommitted changes (both staged and unstaged)
- If no changes exist, display error and require description
- If changes exist, analyze to generate description
- Create worktree with auto-generated names
Mode 3: From SDLC-Develop Spec (Arkhe Integration)
When no arguments provided and sdlc-develop specs exist, create worktree linked to an existing feature spec.
Detection Flow:
- Check if
.arkhe.yamlexists -> readdevelop.specs_dir(default:arkhe/specs) - Scan
{specs_dir}/for existing spec directories - If specs found -> present selection via
AskUserQuestion - Use spec directory name for worktree and branch names
Naming Convention
This skill produces dual names:
| Component | Format | Example | |-----------|--------|---------| | Worktree directory | .claude/worktrees/{keywords} | .claude/worktrees/user-authentication | | Git branch | {type}/{number}-{keywords} | feat/001-user-authentication |
The directory uses just keywords (tab-completion friendly). The branch uses the full conventional format (consistent with /create-branch).
Commit Type Detection
Automatically detect commit types from keywords in the description:
| Type | Keywords | |------|----------| | feat | add, create, implement, new, update, improve | | fix | fix, bug, resolve, correct, repair | | refactor | refactor, rename, reorganize | | chore | remove, delete, clean, cleanup | | docs | docs, document, documentation |
If no keyword is detected, defaults to feat.
Keyword Extraction
- Split description into words
- Remove stopwords: the, a, an, for, to, in, on, at, by, with, from, and, or, but, this, that
- Remove commit type keywords (add, fix, create, etc.)
- Keep first 2-3 meaningful words
- Convert to lowercase, join with hyphens
Workflow Steps
Step 1: Parse Arguments and Determine Mode
# Check for arguments
DESCRIPTION="$ARGUMENTS"
If $ARGUMENTS is provided -> Mode 1 (manual) If empty -> check for .arkhe.yaml specs (Mode 3), then fall back to auto-generate (Mode 2)
For Mode 2 (auto-generate):
# Check for uncommitted changes
CHANGED_FILES=$(git diff --name-only HEAD 2>/dev/null; git diff --cached --name-only 2>/dev/null)
If no changes, display error: "No arguments and no uncommitted changes. Provide a description: /worktree "
If changes exist, analyze filenames/paths to generate a description.
Step 2: Generate Names
Detect commit type from description keywords (see table above). Default to feat.
Extract keywords: Filter stopwords from description, keep first 2-3 meaningful words, hyphenate.
Find next sequential number:
# Scan ALL branches (shared number space with /create-branch)
MAX_NUM=$(git branch --list | grep -oE '/[0-9]{3}-' | grep -oE '[0-9]{3}' | sort -n | tail -1)
NEXT_NUM=$(printf "%03d" $((10#${MAX_NUM:-0} + 1)))
Assemble names:
- Worktree directory:
KEYWORDS(e.g.,user-authentication) - Git branch:
TYPE/NUMBER-KEYWORDS(e.g.,feat/001-user-authentication)
Step 3: Validate Worktree Directory
# Check directory doesn't already exist
ls .claude/worktrees/$KEYWORDS 2>/dev/null
If it exists, report the conflict and stop. Suggest either a different description or removing the existing worktree.
Also check if the branch already exists:
git branch --list "$TYPE/$NEXT_NUM-$KEYWORDS"
If the branch exists, increment the number and retry.
Step 4: Safety Check - Git Ignore
Verify .claude/worktrees/ is git-ignored:
git check-ignore -q .claude/worktrees 2>/dev/null
If NOT ignored (exit code non-zero), add .claude/worktrees/ to .gitignore:
echo '\n# Worktrees\n.claude/worktrees/' >> .gitignore
git add .gitignore && git commit -m "chore: add .claude/worktrees/ to .gitignore"
Step 5: Ask Base Branch
Use AskUserQuestion to ask which branch to base the worktree on:
- main (Recommended) -- Create from the main branch
- Current branch -- Create from the currently checked out branch
- Other -- User specifies a different branch name
Step 6: Create Worktree
mkdir -p .claude/worktrees
git worktree add ".claude/worktrees/$KEYWORDS" -b "$TYPE/$NEXT_NUM-$KEYWORDS" "$BASE_BRANCH"
Where $BASE_BRANCH is main, HEAD, or the user-specified branch.
Step 7: Confirm Success
Report:
- Worktree path:
.claude/worktrees/ - Git branch:
/-(based on ``) - List worktrees:
git worktree list - Remove when done:
git worktree remove .claude/worktrees/
Important Notes
- Sequential Numbering: Shared number space with
/create-branch-- scans all branches - Keyword Extraction: Filters common words, keeps 2-3 meaningful terms
- Lowercase Convention: All names are lowercase with hyphens
- Conventional Commits: Branch names align with conventional commit types
- Dual Naming: Directory name differs from branch name for usability
Supporting Documentation
- [WORKFLOW.md](WORKFLOW.md) - Detailed step-by-step process
- [EXAMPLES.md](EXAMPLES.md) - Real-world examples for all worktree types
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Common issues and solutions
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: joaquimscosta
- Source: joaquimscosta/arkhe-claude-plugins
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.