← ClaudeAtlas

orchestrate-batch-headlesslisted

Drive a multi-task batch on the headless×claude lane — the default. One `run-headless` driver owns the run and the engine's Scheduler spawns `claude -p` per stage, so no stage prompt or output passes through the session. Use for ordinary batches; the interactive lane is only for watching stages live.
cperler/sous · ★ 1 · AI & Automation · score 67
Install: claude install-skill cperler/sous
# Batch runner — headless×claude lane Set up a batch and get the driver running. The engine's own `Scheduler` is the supervisor here — not you. Your job is scaffolding (create the run, add the tasks, sanity-check the DAG), **launching or handing off** the driver, and reading the result afterwards. No stage prompt or output passes through the session either way. **Prefer this skill over `orchestrate-batch-interactive` for ordinary batches.** On the interactive lane every stage's prompt and result flows through the session context, and the run records `$0.00`/zero tokens because the Workflow shim cannot report usage — 15 runs of history are financially invisible for exactly this reason. The headless lane spends its tokens in a subprocess, records real per-stage cost in `stage-costs.jsonl`, chains provider sessions with `--resume` (measured 92–96% cache hits on long stages), and leaves the session free. Use the interactive skill only when a human needs to watch each stage as it happens. ## Constants - `ROOT` = the shared runs-root (top-level `runs/`). `RUN` = run id. `PROJECT` = project adapter module (e.g. `adapters.project.selfhost`). - **Always pass `--shared-root`** when `ROOT` is the top-level `runs/` (#91) — it forces the per-run nest even on a fresh `runs/` the auto-detect heuristic can't recognize. No-op once nesting exists, so it is safe on every call. - No `--mode` flag is needed: `run-headless` forces `ExecutionMode.HEADLESS` itself (`cli.py:191-192`), rega