Decompose large multi-file tasks into N disjoint file-scoped workstreams with worktree isolation, distinct portless ports, and per-job temp paths. Use when fan-out, parallel workers, large refactors, multi-package builds, Blender/mesh batches, or when the agent would otherwise solo a large task on the frontier model.
Install
npx skillscat add simnova/openclinxr/large-task-orchestration Install via the SkillsCat registry.
Large-task orchestration (reliable fan-out)
Grok self-parallelizes to cheaper models mainly on large tasks. For medium/large product work, force decomposition so work does not stay solo on the expensive frontier model.
Required decomposition (before coding)
- Split the goal into N ≥ 2 disjoint workstreams with non-overlapping write scopes (paths, packages, or mesh/role ids).
- Each stream gets:
- Own worktree (
isolation=worktreeorgit worktree addunder~/.grok/worktrees/…) - Own portless / dev port (never share a fixed port across jobs)
- Own temp directory (never share
/tmp/openclinxr_*.pngor similar fixed names)
- Own worktree (
- Prefer deepseek-v4-pro (bounded write) / deepseek-v4-flash (scout) via
spawn_subagentorOPENCLINXR_WORKER=1 GROK_SUBAGENTS=1 grok -p … --model deepseek-v4-pro --yolo. Parent keeps orchestration + integration. - Parent integrates: verify, merge worktrees, update SSOT once — workers do not touch
PROJECT_STATUS.md,docs/openclinxr/*registry*,docs/_archive/**, or AGENTS.md.
Worker session env (required for headless / --yolo)
export OPENCLINXR_WORKER=1
export GROK_SUBAGENTS=1
# Optional alias signal for hooks NO-OP only: GROK_SUBAGENT=1
# Bounded autonomy (prefer over blanket --yolo): --always-approve avoids hangs. --deny rules are
# the DETERMINISTIC control (blocks rm/push non-interactively); --sandbox workspace is BEST-EFFORT
# (fails open under some spawn contexts). --cwd is NOT a boundary. Real safety = --deny +
# intended-files-only. VERIFIED in agentic-eval permission-bounds.test.ts; formatWorkerHeadlessDispatchFlags().
grok -p "<scoped task>" --model deepseek-v4-pro \
--always-approve --sandbox workspace --deny 'Bash(rm -rf *)' --deny 'Bash(git push *)' \
--cwd <worktree> --max-turns 40OPENCLINXR_WORKER=1 makes repo-mutating SessionStart hooks (docs hygiene auto-run, CEO rehydrate, post-slice Stop) NO-OP so workers stay in pathScope files. GROK_SUBAGENTS=1 exposes spawn_subagent in headless -p (without it the tool is absent — multi-level grok→deepseek tiering cannot fire). See formatWorkerHeadlessEnvPrefix in packages/openclinxr/agent-loop/src/grok-repo-agent-spawn.ts.
Per-job temp-file convention (anti-race)
Never use a fixed path like /tmp/openclinxr_skin_albedo_mixed.png across parallel jobs.
# Per-process unique root
export OPENCLINXR_JOB_TMP="${TMPDIR:-/tmp}/openclinxr-job-${USER:-u}-$$-$(date +%s)-${OPENCLINXR_JOB_ID:-job}"
mkdir -p "$OPENCLINXR_JOB_TMP"
# Per-mesh / per-artifact names
# $OPENCLINXR_JOB_TMP/<meshId>_albedo.png
# $OPENCLINXR_JOB_TMP/<meshId>_<stage>_<pid>.png
# Prefer mktemp when writing single files:
ALBEDO=$(mktemp "${OPENCLINXR_JOB_TMP}/${MESH_ID:-mesh}_albedo.XXXXXX.png")Rules:
| Do | Don't |
|---|---|
$OPENCLINXR_JOB_TMP/<mesh>_<stage>_$$.ext |
/tmp/openclinxr_skin_albedo_mixed.png |
mktemp / unique suffix per write |
Shared fixed basename across Blender/Python jobs |
Job-local caches under worktree .tmp/ |
Writing sibling job outputs into the same path |
Ports (portless / dev servers)
- Each workstream claims a distinct port or portless identity.
- Pattern: derive from job id / pid (
BASE_PORT + ($$ % 1000)or portless project nameopenclinxr-w-$$). - Never hardcode a single shared
5173/8787for parallel workers.
Fan-out recipe (parent)
- List N streams with writeRoots + done_when.
- Spawn N workers in parallel (
background=true+isolation=worktree, or N headlessOPENCLINXR_WORKER=1 GROK_SUBAGENTS=1processes in distinct worktrees). - Wait / merge; run focused verify once.
- Parent (CEO) updates
PROJECT_STATUS.md+ post-slice — not workers.
Skill cross-links
- Worker scoped session:
.grok/skills/worker-scoped-session/SKILL.md - Temp paths detail:
.grok/skills/per-job-temp/SKILL.md - Headless regen loop:
.grok/skills/regen-score-report/SKILL.md - Docs:
~/.grok/docs/user-guide/16-subagents.md(isolation/worktree),14-headless-mode.md(--yolo,--max-turns),20-background-tasks.md