بنقرة واحدة
git-worktrees
// Git worktree isolation for parallel plan execution. Creates isolated working directories so multiple plans can execute simultaneously without conflicts.
// Git worktree isolation for parallel plan execution. Creates isolated working directories so multiple plans can execute simultaneously without conflicts.
UI/UX design intelligence with searchable database
Generate comprehensive implementation plans through systematic discovery, synthesis, verification, and decomposition into beads. Use when asked to plan a feature, create a roadmap, design an implementation approach, or decompose work into trackable issues. Do NOT use for simple one-step tasks, quick fixes, or when the user just wants to execute an existing plan — use the work skill instead.
Execute a plan or direct task with worker delegation and verification.
Deep investigation mode. Gather context, analyze, synthesize recommendations without making code changes.
Fetch up-to-date library documentation via Context7 MCP. Use when working with external libraries, APIs, or frameworks.
Start interview-driven planning with Prometheus. Asks clarifying questions before generating implementation plan.
| name | git-worktrees |
| description | Git worktree isolation for parallel plan execution. Creates isolated working directories so multiple plans can execute simultaneously without conflicts. |
| triggers | ["worktree","isolation","parallel"] |
Run multiple plans in parallel without stepping on each other's toes.
Use worktree isolation when:
/work sessions simultaneouslyThe worktree root is resolved in this order:
| Priority | Location | Notes |
|---|---|---|
| 1 | .worktrees/ | Default — at project root (sibling of .maestro/, .claude/) |
| 2 | worktrees/ | Alternate — same level |
| 3 | CLAUDE.md preference | If project CLAUDE.md specifies a custom path |
| 4 | Ask user | Prompt for directory if none of the above exist |
All paths are relative to the project root (the directory containing .maestro/ and .claude/).
Before creating a worktree, verify the environment is safe:
git check-ignore -q .worktrees
.worktrees/ is already ignored — proceed..worktrees/ is NOT ignored — auto-add it:echo "" >> .gitignore
echo "# Maestro worktrees (auto-added)" >> .gitignore
echo ".worktrees/" >> .gitignore
Verify the repo is clean enough to create a branch:
git status --porcelain
git worktree add "<worktree-dir>/<plan-slug>" -b "maestro/<plan-slug>"
<worktree-dir> is the resolved directory from the priority chain (e.g., .worktrees/)<plan-slug> is the plan filename without .md (e.g., add-auth from add-auth.md)-b flag creates branch maestro/<plan-slug> tracking the current HEADmkdir -p "<worktree-dir>/<plan-slug>/.maestro/plans"
cp ".maestro/plans/<plan-slug>.md" "<worktree-dir>/<plan-slug>/.maestro/plans/"
mkdir -p "<worktree-dir>/<plan-slug>/.maestro/handoff"
mkdir -p "<worktree-dir>/<plan-slug>/.maestro/drafts"
mkdir -p "<worktree-dir>/<plan-slug>/.maestro/wisdom"
mkdir -p "<worktree-dir>/<plan-slug>/.maestro/archive"
After creating the worktree, detect and run the project's setup commands inside the worktree directory:
| File | Setup Command | Notes |
|---|---|---|
package.json | bun install | Always use bun, never npm/yarn/pnpm |
Cargo.toml | cargo build | Rust projects |
pyproject.toml | uv sync | Always use uv, never pip/poetry/pipenv |
go.mod | go mod download | Go modules |
build.gradle or gradlew | ./gradlew build | Use project wrapper when available |
pom.xml or mvnw | ./mvnw install | Use project wrapper when available |
Run the setup command from the worktree root:
cd "<worktree-dir>/<plan-slug>"
# detect and run appropriate setup command
If multiple project files exist (e.g., monorepo), run each applicable setup command.
Before starting any work in the worktree, verify the existing test suite passes:
cd "<worktree-dir>/<plan-slug>"
# Run the project's test command (detected from project conventions)
When plan execution finishes (all tasks completed or user stops):
Copy any wisdom files generated during execution back to the main tree:
cp "<worktree-dir>/<plan-slug>/.maestro/wisdom/"* ".maestro/wisdom/" 2>/dev/null
Report the branch name to the user for merge or PR:
Plan complete. Changes are on branch: maestro/<plan-slug>
You can merge with: git merge maestro/<plan-slug>
Or create a PR from this branch.
Ask the user whether to remove the worktree now or keep it for inspection:
git worktree remove "<worktree-dir>/<plan-slug>"
git branch -d "maestro/<plan-slug>"
# Only if user confirms:
git branch -D "maestro/<plan-slug>"
git worktree remove.bun for all JavaScript/TypeScript operations. Never fall back to npm.uv for Python. Never fall back to pip..worktrees/ (or resolved equivalent) at the project root, not nested inside src/ or other directories..maestro/plans/ so workers can find it.node_modules or virtualenvs from the main tree will not work.git branch -d first. Only use -D with explicit user confirmation..worktrees/ is not in .gitignore, worktree contents could be accidentally committed.git worktree list before creating.maestro/<plan-slug> already exists. Either the plan was run before (offer to reuse or pick a new name) or there is a naming conflict./work command — offers worktree isolation before spawning workers.maestro/plans/ — the plan file to execute.maestro/wisdom/ — merged back from worktree on completiongit with worktree support (Git 2.5+)project-conventions skill — used for setup auto-detection