Worktree
Primes your project for peak Claude Code performance
npx -y skills add oprogramadorreal/optimus-claude --skill worktreeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Creates a git worktree for isolated parallel development — new branch in a separate directory with project setup and test baseline. Enables multiple Claude Code sessions on different tasks simultaneously. Multi-repo aware. Use when you need to work on something else without disturbing current work.
SKILL.md
5.0 KB, as published. Nobody here has run it
Worktree
Create a git worktree for isolated parallel development. Sets up a new branch in a separate directory (.worktrees/) with project setup and test baseline, so the main workspace stays on its original branch. Each worktree can host an independent Claude Code session.
Workflow
1. Multi-repo Detection
Read $CLAUDE_PLUGIN_ROOT/skills/init/references/multi-repo-detection.md for workspace detection. If a multi-repo workspace is detected:
- Run the git commands below inside the target child repo (the workspace root has no
.git/, so git commands must target individual repos) - If the user specified a target repo (inline or in conversation), use it
- If ambiguous, use
AskUserQuestion— header "Target repo", question "Which repo should the worktree be created for?": list each repo as an option
2. Worktree Detection Guard
Read $CLAUDE_PLUGIN_ROOT/skills/worktree/references/worktree-setup.md and run the worktree detection guard from that reference. If the guard detects you are already inside a linked worktree, inform the user:
Already running inside a worktree (`<worktree-path>`).
To create another worktree, run this skill from the main workspace instead.
Then stop — do not create recursive worktrees.
3. Gather Context and Branch Name
Record the current branch:
git rev-parse --abbrev-ref HEAD
Determine a meaningful description for the branch from the first source that provides enough signal (check in this priority order):
- Inline description — if the user provided text with the invocation (e.g.,
/optimus:worktree "fix login timeout"), use it directly - Conversation context — scan the current conversation for the user's task intent, problem description, or feature request
If neither source provides enough signal, use AskUserQuestion — header "Worktree scope", question "What will you work on in the new worktree?":
- New feature — "Implement a new capability"
- Bug fix — "Fix a bug or issue"
- Other — "Describe the task"
If the answer captures only a category (New feature / Bug fix), follow up and ask for a few words describing the task — the slug needs a concrete description, not the category label.
Read $CLAUDE_PLUGIN_ROOT/skills/commit/references/branch-naming.md for the naming convention. Determine <type> and generate the slug from the description.
Handle collisions: apply the Collision Handling section of the same reference.
Create the branch without switching to it:
git branch <branch-name>
4. Create Worktree
Follow the setup procedure from $CLAUDE_PLUGIN_ROOT/skills/worktree/references/worktree-setup.md using <branch-name> and <original-branch> from Step 3. The procedure handles:
- Deriving the worktree directory name
- Creating
.worktrees/and ensuring it is gitignored - Creating the worktree:
git worktree add .worktrees/<worktree-dir> <branch-name> - Running project setup in the worktree (npm install, pip install, cargo build, etc.)
- Verifying the test baseline
On failure, follow the reference's Failure handling (§8) — cleanup and diagnostics — then stop.
5. Report and Next Steps
## Worktree Created
Working directory: `.worktrees/<worktree-dir>`
Branch: `<branch-name>` (from `<original-branch>`)
Main workspace: `<original-branch>` (unchanged)
Tests: passing / failing (pre-existing — N failures) / no test command detected
### Open the worktree
**VSCode** (recommended — each worktree gets its own window, terminal, and file watchers):
- Source Control panel → right-click the worktree → "Open Worktree in New Window"
- Or from terminal: `code .worktrees/<worktree-dir>`
- Or Command Palette → "Git: Open Worktree in New Window"
**Claude Code CLI**: `cd .worktrees/<worktree-dir> && claude`
### Cleanup
When done: `git worktree remove .worktrees/<worktree-dir>`
If the setup procedure's §3 modified .gitignore, add a line after "Main workspace": .gitignore updated to ignore .worktrees/ (staged, not committed).
In a multi-repo workspace, prefix all paths in the report with the target repo directory (e.g., cd <repo>/.worktrees/<worktree-dir>).
Recommend running /optimus:tdd in the new worktree for test-driven development, or /optimus:init if the worktree needs project setup.
Tell the user: Tip: for best results, start a fresh conversation for the next skill — each skill gathers its own context from scratch.
Important
- Never commit or push anything in the main workspace
- The main workspace branch is always restored to
<original-branch> - Worktrees are created inside
.worktrees/(gitignored) to keep the project root clean