marketplace/bundles/plan-marshall/skills/manage-worktree/SKILL.md
Manage per-plan git worktrees under <project_root>/.claude/worktrees/
npx skillsauth add cuioss/plan-marshall manage-worktreeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create, remove, resolve, and list per-plan git worktrees. Worktrees live under <project_root>/.claude/worktrees/{plan-id}/ — the canonical Claude Code worktree location inside the main git checkout — and are isolated per plan so multiple plans can run in parallel on one repo. Anchoring worktrees inside the main checkout means project-level permission allow-lists and IDE indexing work without per-host customization. All plan-marshall runtime state lives at <root>/.plan/local/ in the main checkout; each worktree's .plan is a symlink back to the main checkout's .plan, so tracked config, the executor, and runtime state are shared across every worktree.
Base contract: See manage-contract.md for shared enforcement rules, TOON output format, and error response patterns.
Skill-specific constraints:
git worktree remove --force unless the caller has explicitly verified the worktree is clean. Destructive deletion of in-progress work is prohibited.git worktree add, always symlink {worktree}/.plan to the main checkout's .plan directory so documented command invocations (python3 .plan/execute-script.py …) resolve to the same executor and runtime state from inside the worktree. The symlink step is idempotent — re-running create over an existing worktree never clobbers real user data.get_worktree_root() (which resolves to <project_root>/.claude/worktrees) and the plan id; never accept an arbitrary path from the caller.| Subcommand | Arguments | Purpose |
|-----------|-----------|---------|
| path | --plan-id | Return the computed worktree path (without creating anything) |
| create | --plan-id --branch [--base] | Create worktree + new branch + .plan symlink |
| remove | --plan-id [--force] | Remove worktree (non-force by default) |
| list | (none) | Enumerate worktrees under <root>/.claude/worktrees/ |
TOON format per the manage-contract. Successful results include worktree_path.
development
Domain-owned OpenRewrite log-line finding parser for the java-cui domain — parses the
development
Domain-owned OpenRewrite marker detection for the java-cui domain — scans Java/Kotlin sources for cui-rewrite TODO markers, categorizes them by recipe, and fails the gate on any detected marker
development
Operator control surface for the marshalld build server — enrol/drop a project in the machine-global registry (the opt-in enable signal and anti-laundering wall), manage the daemon lifecycle (start, stop, drain, status, install, upgrade) version-pinned to the verified bundle copy, and inspect the daemon's per-project interaction-audit log (read-only)
tools
The tiny build-consumption client for the marshalld build server — submit a build job, bounded long-poll for its result, ping the daemon identity, and preflight registry-plus-liveness in one call; consumption only, never provisioning or enrolment