Orchestration & delegation policy (scarce-top-tier stack)
A routing policy for stacks with one scarce, expensive main-loop model and
cheaper or unlimited delegate tiers. Written against a Claude Fable main
loop with Opus sub-agents and Codex lanes, but the shape transfers to any
stack with the same economics.
Core law: the scarce model must not do pleb work, and must not be spawned as
a sub-agent. Its tokens buy judgment, not throughput.
The hard rules
- Scarce tier as sub-agent: sparingly, never aggressively. Default to an
explicit
model: 'opus' on every Agent tool / Workflow agent() call and
meta.phases entry — never omit-and-inherit when the parent is the scarce
tier, or you silently fan out your most expensive model. A rare
judgment-heavy delegated task may use it, only when the cheaper tier
genuinely can't carry the work. Also prefer the main loop doing work
hands-on over reflexive delegation while limits are healthy — delegation has
its own overhead.
- No mid-tiers. Pick a small number of delegate tiers and stick to them.
In this stack: Opus (unlimited) and Codex gpt-6-astra (via
codex exec; history gpt-5.5 → gpt-5.6-sol → gpt-6-astra).
Mixing in more tiers makes routing decisions unauditable.
- The main loop keeps the big picture. Architecture, specs,
contract-sensitive design, subtle state machines, integration and conflict
resolution, final synthesis, judgment calls — all done in the main loop.
Mechanical, scoped, parallelizable work gets delegated.
Choosing the delegate
- Codex (
gpt-6-astra, medium/high reasoning effort by default) — the default
for most high-level tasks, including substantial implementation lanes. astra
is a frontier-tier peer of the scarce model, not a small model: it beats the
main loop in some areas, so consult it for second opinions on hard calls.
Reserve xhigh/max for an explicitly heavy lane, never as the reflex. It is
an obsessive instruction follower: as capable as the scarce tier, but less
creative. It does not improvise well — it executes. Give it a carefully
written, detailed, explicit spec and it will grind through it relentlessly
and precisely. Use for: implementation lanes, migrations, refactors,
test-writing against a defined contract, scenario authoring — anything where
the spec is complete and deviation is unwanted.
- Opus — mainly for context gathering. Exploration, codebase mapping,
research sweeps, reviews, verification passes — work where the brief can be
loose and the deliverable is understanding, not a diff. Opus copes well with
ambiguity: hand it a goal and let it figure out the terrain.
Rule of thumb: context gathering → Opus; execution (once the main loop has
written the spec) → Codex; judgment / synthesis / spec-writing → the main loop
itself. The quality of a Codex lane is bounded by the quality of the spec —
invest tokens in the brief, not in doing the lane yourself.
The difficulty axis
The routing axis is difficulty, not just recon-vs-execution.
- Simple, well-bounded work → Opus agents. This includes light execution:
templated UI ops, e2e clones of an existing pattern, features that ride an
existing pipeline end-to-end. Opus is unlimited and copes with looser briefs.
- Hard or precision work → Codex
high lanes with a complete spec (xhigh/max
only when the brief justifies it). Core
evaluator seams, security-critical strengthen-never-relax changes,
correctness-sensitive paths, the largest surfaces.
- Gate-reviewer lanes stay on the highest Codex preset (
max) regardless of the
size of what they're reviewing.
When assigning fleet lanes, stamp the adapter per lane in the spec so the
launch is mechanical and no routing decision happens at spawn time.
Exceptions
- If the operator explicitly names a model for a scoped task, honor it for that
task only, then return to this policy.
- The operator can override any of this per session; absent that, this policy
stands.
1---2name: fable-orchestration3description: Delegation policy for a multi-model agent stack where the main loop runs on a scarce top-tier model (e.g. Claude Fable) and cheaper/unlimited tiers do the mechanical work. The main loop owns architecture and judgment; sub-agents (Opus) and Codex lanes (gpt-6-astra, a frontier-tier peer run at medium/high effort) execute. Load whenever spawning sub-agents (Agent tool, Workflow agent() calls, codex fleets) or planning any delegation.4---56# Orchestration & delegation policy (scarce-top-tier stack)78A routing policy for stacks with **one scarce, expensive main-loop model** and9**cheaper or unlimited delegate tiers**. Written against a Claude Fable main10loop with Opus sub-agents and Codex lanes, but the shape transfers to any11stack with the same economics.1213Core law: **the scarce model must not do pleb work, and must not be spawned as14a sub-agent.** Its tokens buy judgment, not throughput.1516## The hard rules17181. **Scarce tier as sub-agent: sparingly, never aggressively.** Default to an19 explicit `model: 'opus'` on every Agent tool / Workflow `agent()` call and20 `meta.phases` entry — never omit-and-inherit when the parent is the scarce21 tier, or you silently fan out your most expensive model. A rare22 judgment-heavy delegated task may use it, only when the cheaper tier23 genuinely can't carry the work. Also prefer the main loop doing work24 hands-on over reflexive delegation while limits are healthy — delegation has25 its own overhead.262. **No mid-tiers.** Pick a small number of delegate tiers and stick to them.27 In this stack: **Opus** (unlimited) and **Codex gpt-6-astra** (via `codex exec`; history gpt-5.5 → gpt-5.6-sol → gpt-6-astra).28 Mixing in more tiers makes routing decisions unauditable.293. **The main loop keeps the big picture.** Architecture, specs,30 contract-sensitive design, subtle state machines, integration and conflict31 resolution, final synthesis, judgment calls — all done in the main loop.32 Mechanical, scoped, parallelizable work gets delegated.3334## Choosing the delegate3536- **Codex (`gpt-6-astra`, medium/high reasoning effort by default) — the default37 for most high-level tasks**, including substantial implementation lanes. astra38 is a frontier-tier peer of the scarce model, not a small model: it beats the39 main loop in some areas, so consult it for second opinions on hard calls.40 Reserve `xhigh`/`max` for an explicitly heavy lane, never as the reflex. It is41 an obsessive instruction follower: as capable as the scarce tier, but less42 creative. It does not improvise well — it *executes*. Give it a carefully43 written, detailed, explicit spec and it will grind through it relentlessly44 and precisely. Use for: implementation lanes, migrations, refactors,45 test-writing against a defined contract, scenario authoring — anything where46 the spec is complete and deviation is unwanted.47- **Opus — mainly for context gathering.** Exploration, codebase mapping,48 research sweeps, reviews, verification passes — work where the brief can be49 loose and the deliverable is understanding, not a diff. Opus copes well with50 ambiguity: hand it a goal and let it figure out the terrain.5152Rule of thumb: **context gathering → Opus; execution (once the main loop has53written the spec) → Codex; judgment / synthesis / spec-writing → the main loop54itself.** The quality of a Codex lane is bounded by the quality of the spec —55invest tokens in the brief, not in doing the lane yourself.5657## The difficulty axis5859The routing axis is **difficulty**, not just recon-vs-execution.6061- **Simple, well-bounded work → Opus agents.** This includes light *execution*:62 templated UI ops, e2e clones of an existing pattern, features that ride an63 existing pipeline end-to-end. Opus is unlimited and copes with looser briefs.64- **Hard or precision work → Codex `high` lanes with a complete spec** (`xhigh`/`max`65 only when the brief justifies it). Core66 evaluator seams, security-critical strengthen-never-relax changes,67 correctness-sensitive paths, the largest surfaces.68- **Gate-reviewer lanes stay on the highest Codex preset (`max`)** regardless of the69 size of what they're reviewing.7071When assigning fleet lanes, stamp the adapter per lane in the spec so the72launch is mechanical and no routing decision happens at spawn time.7374## Exceptions7576- If the operator explicitly names a model for a scoped task, honor it for that77 task only, then return to this policy.78- The operator can override any of this per session; absent that, this policy79 stands.