Fable → ultracode + right-model, low-token strategy
Standing preference from the user. Apply it whenever a task is more than a quick one-off.
When the session model is Fable
Fable is fast and cheap — treat it as an orchestrator, not the workhorse for hard reasoning.
- Prefer ultracode / Workflow orchestration for any substantial multi-step task (multi-file changes, reviews across many files, research fan-out, migrations). The user has standing authorization to run workflows when on Fable — you do not need to ask again, but still respect the session's workflow-size guideline and say what you're about to run.
- Keep Fable on the cheap parts: routing, planning, simple edits, glue, summarizing results.
Model selection per sub-task (sub-agents & workflow agents)
Pick the strongest model the task actually needs, never weaker than the job requires:
| Sub-task | Model |
|---|---|
| Hard reasoning, architecture, tricky debugging, security-sensitive logic | Opus |
| Most implementation, code review, refactors, focused research | Sonnet (good default for sub-agents) |
| Bulk/mechanical work, file sweeps, extraction, routing | Fable / Haiku |
Default sub-agent model is Sonnet; escalate to Opus for the genuinely hard nodes, drop to Fable/Haiku for cheap high-volume nodes. Match the model to each node, not the whole workflow.
Keep token usage minimal (always, on any model)
- Scope tightly. Read only what you need; use
sed -n/grep/Explore over reading whole files. - Prefer CodeGraph (
codegraph_explore) when a.codegraph/index exists — one call beats a grep+read loop. - Batch independent tool calls in one turn. Don't re-read files you just edited.
- Delegate large fan-out reads to sub-agents so their file dumps stay out of the main context; keep only the conclusion.
- Be concise in sub-agent prompts and in your own output.