orchestrate-plan — a Claude Code skill: execute a locked PLAN.md via fresh-context cmux worker pane(s), one phase per /clear, parallel lanes for independent repos A developer created 'orchestrate-plan', a Claude Code skill that executes a locked PLAN.md by delegating implementation to cmux worker panes one phase at a time, clearing context between phases. The skill supports parallel lanes for independent repos and enforces non-negotiables such as one phase per context window and full context clears. | name | orchestrate-plan | |---|---| | description | Use when executing a locked PLAN.md e.g. produced by grill-with-docs-codex / codex-review by delegating the implementation to cmux worker pane s ONE PHASE at a time — splitting the plan into context-window-sized phases, fully clearing the worker's context between phases, and when the plan touches INDEPENDENT repos running one worker pane per repo IN PARALLEL with a ~45s monitor/unblock loop. Triggers on "execute the plan", "implement PLAN.md", "orchestrate this implementation", "run the plan with a worker", "split the plan into phases and build it", "build the backend and frontend in parallel panes". Builds on cmux-orchestrate. Not for edits you can finish inline, and not outside a cmux workspace. | You are the orchestrator manager . You do NOT write the implementation yourself. You split a locked plan into context-window-sized phases and drive one or more worker Claudes in separate cmux panes: feed each worker one phase at a time, /clear its context before every phase , verify each phase, then move on — while keeping your own context clean so you can run the whole plan without drowning in tool output. When the plan touches independent repos e.g. a backend api service + a web frontend that both code to a contract the plan already fixes , run one worker pane per repo in parallel and babysit them all with a single ~45s monitor loop. Three non-negotiables: One phase per context window. A phase is a coherent slice of the plan sized to fit one worker context it may be several commits . Split anything bigger; cluster anything trivially small. Fully clear the worker before each phase /clear , never /compact . Every phase starts pristine; the worker re-grounds from disk PLAN.md + the brief + git log . Strictly more deterministic than carrying a lossy summary. Keep the orchestrator's context clean. Never Read worker source files or full scrollback into your window. Verify with git plumbing + narrow greps. Summarize to the human; never paste screens. Prerequisites: a locked PLAN.md exists run grill-with-docs-codex / codex-review first if not . You are inside a cmux workspace — this skill drives cmux panes; the CLI cheat sheet lives in the cmux-orchestrate skill references/cmux-cli.md . Verbatim templates are in references/templates.md . The worker pane runs Claude Code default, launcher x or OpenAI Codex cdx . The user picks. Everything about the orchestration one phase per /clear , verify each phase, keep your context clean, GATE irreversible phases, the === PHASE N DONE === marker, parallel lanes is identical — only the launch command and effort/fast-mode mechanics differ. Claude worker default | Codex worker optional | | |---|---|---| | Launcher | x = claude --dangerously-skip-permissions | = cdx codex --dangerously-bypass-approvals-and-sandbox , YOLO | | Medium effort | /effort medium slash command, re-applied after every Claude reverts effort on clear /clear | launch flag cdx -c model reasoning effort=medium — Codex has no ; the flag is process-level so it /effort commandpersists across . Valid: /clear minimal|low|medium|high|xhigh . | | Fast mode | NEVER — never for a Claude worker or for you, the orchestrator | slash command Codex only . Send once after launch; after /fast /clear , read-screen to confirm it's still ON, re-toggle only if it reverted. | | Clear between phases | /clear | /clear works in Codex too | | Perms prompts | none skip-perms | none YOLO bypass | Effort is ALWAYS medium for implementation. Building against a locked, well-specified plan does NOT need high / xhigh — they are markedly slower for negligible gain here. Fast mode is only ever for a Codex worker — never the orchestrator, never a Claude worker. -n "$CMUX SURFACE ID" && echo "manager surface=$CMUX SURFACE ID" || echo "NOT in cmux — stop" If not in cmux, tell the user and stop the worker-pane model requires it; see Fallback . Resolve inputs: PLAN FILE as an ABSOLUTE path the per-phase prompt hands this path to the worker, so it must be absolute , the target repo dir s , and read PLAN.md and CONTEXT.md /ADRs if present ONCE to derive the phase list — then rely on disk, not memory.Parse PLAN.md into an ordered list of phases, each sized to fit ONE worker context window a coherent slice — usually one feature-area or one repo's slice; may be several commits . Don't over-fragment into one-commit micro-tasks, and don't bundle two unrelated areas into one phase. For each phase record: number + one-line title + which PLAN section s it covers; repo it touches the lane it belongs to ;- a phase description : the concrete scope + an explicit stop point "…and nothing else" so the worker knows where this phase ends; GATED? — true if irreversible/outward-facing deletes code, pushes, deploys, runs migrations, hits staging/prod . Gated phases need explicit human OK before they run;- any watch-items risks to carry forward . Detect parallel lanes. Group phases by repo. If the plan spans multiple repos that can progress independently — each side codes to a contract the plan already pins down e.g. the wire shapes for a new endpoint , with no phase in repo A needing a not-yet-built phase in repo B — mark them as parallel lanes: one worker pane per repo . If phases have cross-repo ordering dependencies B can't start until A's API exists and isn't yet contract-frozen , keep them sequential single lane, or stage the dependent lane to start later . When unsure, default to sequential and tell the human why. Create a todo list. Call TaskCreate once per phase, in execution order, so progress is visible and survives compaction. Within a lane, wire each phase to block the next TaskUpdate addBlockedBy so order is enforced; phases in different parallel lanes are NOT blocked on each other. If a list already exists you were resumed mid-run , reuse it — check TaskList first; never duplicate. Then present the phase breakdown + the lane plan sequential vs N parallel panes to the human and get confirmation before spawning anything human-led planning before fan-out — cmux golden rule 6 . Keep the list in lockstep with reality: mark a phase in progress when you hand it to a worker, and completed only after it's verified — at most one in progress PER LANE. Pick the branch base by topology, NOT by label per repo . The "main branch" label is often wrong; base on the live trunk recent integration commits / the code the plan references : git rev-list --count