Worktree kit
Use the manager script for all worktree actions.
bash "${DROID_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/skills/flow-next-worktree-kit/scripts/worktree.sh" <command> [args]
Commands:
create <name> [base]listswitch <name>(prints the worktree path; it cannot change your shell's directory - usecd "$(... switch <name>)")cleanup [<name>...] [--yes](no args = interactive; names skip the prompt;--yesskips the confirmation, required off a terminal)copy-env <name>
Safety notes:
createdoes not change the current branchcreatesets no upstream on the new branch (--no-track) - under the upstream-based push modes (simple,upstream,current) a baregit pushcannot aim at the base branch; under the defaultpush.default=simple(withoutpush.autoSetupRemote) the first push needsgit push -u origin <name>(legacypush.default=matchingpushes all name-matched branches regardless of upstream)cleanupdoes not force-remove worktrees and does not delete branchescleanupdeletes the worktree directory (including ignored files); removal fails if the worktree is not clean.env*is copied with no overwrite (symlinks skipped)- refuses to operate if
.worktrees/or any worktree path component is a symlink copy-envonly targets registered worktreesoriginfetch is optional; local base refs are allowed- fetch from
originonly when base looks like a branch - Worktrees live under
.worktrees/ createinitializes.worktrees/.gitignore(*plus!.gitignore) when absent, sogit add -Acannot stage nested worktrees as gitlinks; existing custom ignore files are preserved
Shared claim state. Parallel agents in sibling worktrees driving flowctl on the same repo share claim state via .git/flow-state. Set FLOW_STATE_DIR per agent (outside the tree) when running flow pipelines concurrently.