Source of truth for agent-to-agent Task spawn — type selection, token-efficient splits, and cost-aware model routing.
Orchestrator — wires coordinator ↔ member agents. Process skills are atoms that compose via context-pack.md; this skill owns how members are spawned and what they receive.
References: context-pack.md · second-opinion-dispatch.md · explore-escalation-dispatch.md · review-council-dispatch.md · subagent-types.md · task-splitting.md · model-routing.md · adversarial.md · task-prompt.md · member-schema.md · output-format.md · agent-discovery.md.
Read references/research-basis.md when calibrating spawn or cost claims. Do not load by habit.
Quick reference
| Need | Where |
|---|---|
| Member context / token rules | references/context-pack.md |
| Process dispatch recipes | second-opinion · explore-escalation · review-council dispatch refs below |
Which subagent_type when |
references/subagent-types.md |
| Token-efficient slice splits | references/task-splitting.md |
| Cheapest good-enough model | references/model-routing.md |
| Adversarial / staged debate | references/adversarial.md |
| Member prompt template | references/task-prompt.md |
| Per-member output shape | references/member-schema.md |
| Consolidated report | references/output-format.md |
| Council agent discovery | references/agent-discovery.md |
Non-negotiables
When this skill applies (user attached subagents, an entry skill invokes dispatch, or the plan includes Task members):
- ≤100k total context — hard ceiling — combined coordinator material + every member prompt + cited excerpts in one dispatch run must stay under 100,000 tokens. If over budget: split into another dispatch run, shrink slices, drop bodies for pointers, or serialise members — never exceed 100k. Budget in the dispatch plan (task-splitting.md).
- Spawn real members — one host Task per planned member with chosen
subagent_typeand model per Model assignment. Parallelread_file/grep/ other tools are not substitutes for member runs. - Synthesis runs after members — merge member outputs before the consolidated report. Writing synthesis without completed Task runs is a violation.
- Forbidden rationalizations — do not skip spawns because you already read the repo, want lower latency, or want to save tokens when entry skill or plan already committed to dispatch.
- Valid skips — user declines spawn; When-not-to-spawn passes and no entry-skill carve-out; host cannot run Task; only one member planned and single-pass suffices and no entry-skill carve-out.
Cost default: Cheapest good enough — Auto / omit model under Auto parent; never default to premium or *-fast in parallel.
When-not-to-spawn
Before N ≥ 2, name a single-pass rival: one coordinator with deeper tool use in one context. Spawn only when slices are independent and the rival cannot cover them (task-splitting.md).
Skip subagents when the rival suffices, work is sequential, members would duplicate without added confidence, or the user wants one authoritative pass.
Entry-skill carve-out
When an orchestrator or process skill mandates Task spawn, do not re-litigate “one agent suffices.” Follow that recipe’s member budget and Non-negotiables.
| Entry skill | Spawn shape | Recipe lives in |
|---|---|---|
| second-opinion | Med or deep (light = no spawn) | second-opinion-dispatch.md |
| iterate | Single blind member per pass | iterate blind-reviewer-dispatch |
| handoff | Single compact member (model-invoked) | handoff handoff-subagent-dispatch |
Type and model defaults for each → subagent-types.md.
One vs many
| Pattern | Members | When |
|---|---|---|
| Single subagent | 1 | Blind review pass, one slice, sequential debate defender, tiebreaker |
| Parallel coverage | 2–6 typical | Independent sources, areas, or topics (task-splitting.md) |
| Staged debate | 2 + 1 | Wave attackers → defender (adversarial.md § B) |
More than 10 members — split into multiple dispatch runs.
Dispatch modes
- Coverage — split by source, subsystem, or artifact (task-splitting.md).
- Perspective — same material, distinct stance; diversify prompts/stances, not premium models by default.
- Adversarial — kill mandates, context asymmetry → adversarial.md.
Hard rule: never parallel members with identical model and identical prompt. Shared Auto (inherit-auto) is expected — diversify via subagent-types.md and stances.
Workflow
1. Classify
Load the entry skill recipe when one applies; else plan manually:
- Job:
research|explore|gather|review|mixed - Source of truth:
web|repo|plan - Goal: coverage | perspectives | adversarial | adversarial-med | adversarial-deep
- Pick
subagent_typeper member → subagent-types.md - Split slices for minimum total tokens → task-splitting.md
2. Plan and spawn
- Discover — agent-discovery.md when council agents may apply.
- Dispatch plan — write before spawning (template below). Include single-pass rival unless carve-out applies.
- Pre-spawn gate — model-routing.md; fail closed on contradictions.
- Spawn — compose prompts per task-prompt.md.
model=inherit-auto→ omit toolmodel.
Task: [What the user asked]
Classification: [research / explore / gather / review / mixed]
Source of truth: [web / repo / plan]
Goal: [coverage / perspectives / adversarial / adversarial-med / adversarial-deep]
Single-pass rival: [why one pass insufficient, or "entry-skill carve-out"]
Parent model: [Auto | <named model>]
User model overrides: [none | member=slug, …]
Cheapest path: [inherit-auto | model=auto | explicit slug + why Auto insufficient]
Selected members:
- [subagent_type] · tier=[Fast|Standard|Premium] · model=[inherit-auto | slug] · stance=[id]: [minimal sub-task — see task-splitting.md]
Why these types: [subagent-types.md rationale]
Token budget: [estimated tokens — must sum <100k across all members + coordinator excerpts]
Synthesis plan: [merge / adjudicate]
3. Synthesize
Apply the synthesis gate.
Synthesis gate
Prerequisite: at least one completed Task per planned member (unless valid skip).
- Merge agreeing findings once.
- Preserve conflicts — do not flatten.
- High-stakes contradiction → one sequential tiebreaker (model-routing.md) or ask user.
- Report per output-format.md; domain shape → entry skill.
Model assignment
Cheapest good enough — not most capable by default. Full procedure → model-routing.md.
Invariant: Parent model = Auto + no override ⇒ every Task call omits model. inherit-auto is a plan sentinel only.
Fallback matrix
| Need | Prefer | Fallback |
|---|---|---|
| Repo map | explore |
generalPurpose |
| Web docs | docs-researcher |
generalPurpose |
| Plan critique | generalPurpose + stance |
council if HOST + plan context |
Log fallbacks in availability log.
Output format
Follow output-schema.md. Consolidated runs → output-format.md.
Consumer bindings
Project recipe index and council paths arrive as injected context on skill read. Do not edit synced copies in place.