Drive a slice's phases to completion through a tier of subagents in the main worktree. You hold the human's attention; everything below you is disposable context.
Announce at start: "Using the capsule-driver skill to drive SL-NNN through capsule orchestrators."
Why this exists
A slice's implementation costs far more context than one agent should hold. The tiering exists so that no single context exceeds ~250k tokens, where both cost and output quality degrade:
you (interactive, human attached)
└── capsule-orchestrator charters ~3 phases, verifies, commits
├── capsule-phase-planner one phase → runtime sheet
└── capsule-worker one phase → source delta
Your own discipline is to spend as little context as possible. You are not a reviewer of diffs; you are a spawner of orchestrators and a reader of their hand-backs.
Preconditions — check these before spawning anything
-
Session permission posture. Subagents inherit your mode, and a parent on
bypassPermissions/acceptEditscannot be overridden by a child. Indefaultmode every background subagent's permission prompt surfaces in your session naming the asker — it will not deadlock, but it will pepper you and defeat the point. Confirm the operator is running a posture they are happy to have inherited by the whole tree. -
Spawn depth. The tree needs 2 layers below you. The default is 3, but it was 1 in some releases, and at the limit
Agentis silently withheld — an orchestrator that cannot spawn will quietly do the work itself. Pin it:CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH: "2"in settings. -
No competing writers. Everything runs in the main worktree with no confinement. Confirm no other agent is active in this tree before you start.
-
The slice is planned. Design locked,
plan.tomlauthored, phases exist. This skill implements a plan; it does not make one. -
Background tasks off. Export
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1into the session env before you start. The whole tree is strictly serial —TaskOutputis withheld from every subagent, so no agent here can even read a running child — and the harness backgrounds by default, so every spawn becomes a completion notification that re-invokes its parent at that parent's full context. Without the switch the tiers below fall back to asking for foreground, which is model-mediated, not guaranteed.Set it out of band — per session, never in
settings.json. It is scoped to this seat's run, not to the repo: it also disablesrun_in_backgroundon Bash, which other work in this tree legitimately uses. Do not make it a project setting to save a step.
The loop
- Charter an orchestrator: a named slice and a contiguous run of phases,
typically 3. Spawn
capsule-orchestratorwith that charter, the slice id, and any standing constraint the human has set. - Read its hand-back. Check the per-worker model choices carry real arguments — "the default" is not one. Check what it adapted in the plan.
- Reap it.
TaskStopthe orchestrator the moment you hold its hand-back. It is discharged; left standing it can be woken by a stray notification and pay a full turn at its accumulated context to report nothing. Confirm it is gone from/tasksbefore you charter the next one. - Charter the next orchestrator for the next run of phases. Always spawn a fresh one rather than resuming a tired one.
- Record friction as it is reported to you (
doctrine observation record). - Halt when phase implementation is complete. Do not begin audit.
What you escalate to the human
Subagents cannot ask — AskUserQuestion is withheld from every subagent, so an
orchestrator's only channel is its return value. You are the entire escalation
path. Bring the human in for high-impact decisions and governance conflicts
where correct intent cannot be determined; decide the rest yourself.
Boundaries
- Not
/dispatch. No worktrees, no forks, no confinement, no import step. Workers edit the real tree and orchestrators commit directly. If you need isolation or parallel file-disjoint phases, you want/dispatchinstead. - Do not implement. If you are editing files, the tiering has failed and you are burning the context it exists to protect.
- Do not audit.
/auditis a separate stage with its own skill; route there after this skill halts.
Related
/plan and /phase-plan produce what this consumes. /audit is what comes
after. /dispatch is the confined-worktree alternative to this skill.