dispatchlisted
Install: claude install-skill davidlee/doctrine
# Dispatch (router)
Drive a slice's phases to completion through sub-agent **workers** — you are the
orchestrator and **sole writer**, they execute.
**Announce at start:** "Using the dispatch skill to run workers under the
orchestrator funnel."
## The outer loop
1. `dispatch setup --slice <N> --dir <path>` — create/resume coordination worktree.
On the claude arm `--dir` MUST resolve inside the project root (convention
`.dispatch/SL-<n>`); an outside-root dir fails closed (ISS-031 — the pre-spawn
`cd` silently reverts under a jail, forking `main` not B).
2. **Claude arm only:** `cd` into the coordination directory and park Bash cwd
there for the full drive loop. The Agent tool's `isolation: worktree` forks off
the Bash cwd HEAD — base==B holds only if the cwd is parked at B before the
spawn (a mis-parked cwd forks the wrong base). Step out to the session root
only for authored writes (slice status, memory, audit). Commit those authored
writes with `dispatch commit --slice N -m <msg> -- <path>…` (pathspec-mandatory,
ISS-234-guarded), never a raw `git commit`.
3. `dispatch plan-next --slice <N>` — find next actionable phase(s); plan parallel batches when file-disjoint
4. Route to the correct arm:
- Check `doctrine.toml` → `[dispatch]` → `claude-force-subprocess-dispatch`
(default `false` if the file or key is absent).
- If `true`, route workers via [`/dispatch-subprocess`](../dispatch-subprocess/SKILL.md)
(default to `pi` arm until `p