Use when starting any recursive-mode requirement to set up an isolated git worktree. Required before implementation phases: create an isolated workspace, verify a clean baseline, and keep main/master clean.
117 stars
0 votes
0 copies
1 view
Added September 1, 2026
testingpythonrustgojavashellbashnodegit
Works with
cli
Security analysis
B84/100
mediumInstalls packages at runtime which could introduce malicious dependencies
mediumInstalls packages at runtime which could introduce malicious dependencies
Installs into .claude/skills of the current project.
Are you the author of Recursive Worktree?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/try-works-recursive-worktree)
---
name: recursive-worktree
description: 'Use when starting any recursive-mode requirement to set up an isolated git worktree. Required before implementation phases: create an isolated workspace, verify a clean baseline, and keep main/master clean.'
---
# recursive-worktree
## Purpose
Use this skill at the start of a recursive-mode run to set up an isolated worktree before Phase 1+ work begins.
The canonical overall workflow still lives in `/.recursive/RECURSIVE.md`. This skill covers only the worktree-isolation discipline for `00-worktree.md`.
## Hard Rule
Do not proceed with recursive-mode phase work until:
1. A feature-branch worktree exists.
2. The worktree directory is git-ignored if it lives inside the repo.
3. Project setup has completed.
4. A clean or explicitly acknowledged baseline test state has been recorded.
## Default Location Order
Use this priority:
1. Existing `.worktrees/`
2. Existing `worktrees/`
3. A preference documented in repo instructions
4. Ask the user
5. Default to `.worktrees/`
Global fallback location:
- `~/.config/recursive-mode/worktrees/<project-name>/`
## Main Branch Protection
If the current branch is `main` or `master`, default to creating a worktree on a feature branch:
```bash
git worktree add .worktrees/<run-id> -b recursive/<run-id>
cd .worktrees/<run-id>
```
If the user explicitly insists on main-branch work, record that exception in `00-worktree.md`.
## Minimum Phase 0 Checklist
`00-worktree.md` must cover:
- selected worktree location
- git-ignore verification
- branch name and worktree path
- setup commands executed
- baseline test command and result
- normalized diff basis fields including `Baseline type`, `Baseline reference`, `Comparison reference`, `Normalized baseline`, `Normalized comparison`, and `Normalized diff command`
- explicit note that subsequent phases run from the worktree
- the required `## TODO` heading from the scaffold
## Suggested Commands
Check branch:
```bash
git branch --show-current
```
Check ignore status:
```bash
git check-ignore -q .worktrees || git check-ignore -q worktrees
```
Create worktree:
```bash
git worktree add .worktrees/<run-id> -b recursive/<run-id>
```
## Setup Guidance
Run the setup command that matches the repo:
- Node.js: `npm install`
- Rust: `cargo build`
- Python: `pip install -r requirements.txt` or project-specific install
- Go: `go mod download`
- Maven: `mvn compile -q`
- Gradle: `./gradlew compileJava`
- .NET: `dotnet restore`
Then run the baseline test command appropriate to the project and record the result in `00-worktree.md`.
## Router State In Worktrees
Before delegated or routed work runs from an isolated worktree, verify the router files inside that same worktree:
```bash
test -f .recursive/config/recursive-router.json
test -f .recursive/config/recursive-router-discovered.json
```
```powershell
Test-Path .recursive/config/recursive-router.json
Test-Path .recursive/config/recursive-router-discovered.json
```
If the controller/source repo has a configured router policy or discovery inventory and the worktree lacks it, sync both files into the worktree before resolving or invoking routed roles. Preserve user edits to the worktree policy; when changing bindings, prefer `recursive-router-configure` over hand edits.
`recursive-router-discovered.json` is local discovery state and may be untracked. Its absence in a fresh worktree is expected, but it is still not safe to resolve an external role from stale assumptions. Refresh it with `python ./scripts/recursive-router-probe.py --repo-root . --json` from the worktree, or copy the current inventory from the controller/source repo when that is the intended policy basis.
Record the router policy path, discovery path, validation/probe command, and resulting route decision in `00-worktree.md` or in the delegated action record before accepting routed work.
## Output Contract
Write the artifact to:
- `/.recursive/run/<run-id>/00-worktree.md`
Use feature branches named:
- `recursive/<run-id>`
## Routing Awareness
If this skill uses delegated review or any other routed external model to validate worktree setup, baseline verification, or branch safety, re-read:
- `/.recursive/config/recursive-router.json`
- `/.recursive/config/recursive-router-discovered.json`
immediately before choosing that CLI/model, and honor the routed policy or explicit fallback instead of hardcoding a reviewer model.
## Integration
- Invoke this skill before AS-IS analysis and planning.
- After Phase 0 is lock-valid, continue the run from the worktree context.
- Keep later phases, including `STATE.md`, `DECISIONS.md`, and memory updates, on the same feature branch until merge time.