Fable orchestrator
Claude Fable 5.1 supplies orchestration decisions only. Codex remains the runtime that
spawns workers, owns files, runs tools, verifies the result, and reports to the
user.
Invocation
Treat everything after $fable as the objective. Fable 5.1 always owns
orchestration. Implementation workers are restricted to GPT-5.6 Luna and
DeepSeek V4 Flash:
$fable build the feature
$fable debug this; implementer: gpt-5.6-luna
Model names are requests, not guesses. Before dispatch, inspect the current
spawn_agent tool description and custom agent roles. Use only models or roles
that are currently callable. If a requested model is unavailable, say so and
use the closest available choice only when that substitution is low-risk;
otherwise ask for a replacement.
For the simplest automatic path, the user can provide only an objective. Apply
this ordered classifier when they did not explicitly choose a route:
- loop construction, repeated iteration, or high-throughput mechanical work:
use a callable OpenCode Go agent pinned to
opencode-go/deepseek-v4-flash;
- implementation: use a callable OpenCode Go agent pinned to
opencode-go-responses/gpt-5.6-luna, then
opencode-go/deepseek-v4-flash;
- planning, research, review, and other work: choose by normal task fit.
Prefer an exposed agent_type that pins both model and provider. Never infer
callability from a config file or send a raw model override across providers.
An explicit implementation choice wins only when it is GPT-5.6 Luna or DeepSeek
V4 Flash. Do not assign implementation to any other model. After any applicable
approval gate, state only <Agent> — <Model>: <bounded responsibility>, then
immediately start. Classify by the callable model pin, not the agent's display
name. Do not show the full model catalog unless asked.
OpenCode Go compatibility
Codex Router owns OpenCode Go provider setup, model discovery, and credentials;
Fable must not duplicate them. A user adds the OpenCode Go API key once through
the router's local secure setup. Never request or paste an API key in chat or
store it in a Fable packet. Fable consumes only callable opencode-go/ and
opencode-go-responses/ agents supplied by Codex, so it needs no proxy,
dashboard, or second static model list. Start a new Codex task after changing
the provider or agent definitions.
Workflow
- Read the objective and relevant local instructions. Inspect enough of the
workspace to give Fable facts rather than assumptions.
- Build a compact orchestration packet containing the objective, acceptance
criteria, workspace context, constraints, protected files, evidence already
gathered, callable worker menu, concurrency limit, and user preferences.
- Send the packet to
scripts/ask_fable.sh. Use Claude's fable alias; do not
read, copy, print, or modify Claude credentials.
- Require a bounded task graph with role, model or agent type, owned files or
responsibility, dependencies, expected output, verification, and a stop
condition for every node. Reject any implementation node assigned to a model
other than GPT-5.6 Luna or DeepSeek V4 Flash.
Fable 5.1 adjudication remains outside the worker graph.
- Validate the graph against the actual task and current tools. Codex has final
responsibility for safety and scope. Do not execute invented models, unsafe
actions, or work outside the user's request.
- Spawn independent ready nodes in parallel, up to the live collaboration
limit. Tell every code-writing worker its ownership and that other agents
share the workspace, so it must preserve and accommodate their edits.
- Collect results, inspect changed files, and run proportionate verification.
For complex work, send a concise results packet back through the helper for
the next graph or final adjudication. Cap this at three Fable calls unless
the user asks to continue.
- Finish only when acceptance criteria and verification pass. Report selected
models, material changes, and concrete proof.
Whenever the helper returns Fable's orchestration output, display it verbatim
under this exact heading:
Fable 5.1 speaks:
Do not relabel ordinary Codex or worker-agent output as Fable speech.
Boundaries
- Fable plans and adjudicates; it does not silently replace the Codex workers.
- Exchange decisions, evidence, task packets, diffs, test results, and blockers,
not hidden reasoning.
- Orchestration does not expand authorization. Publishing, deployment,
destructive operations, spending, and external messages retain their normal
approval boundaries.
- If delegation adds no value, use one worker or execute directly after the
Fable plan.
Calling Fable
Pass the packet as standard input:
printf '%s' "$PACKET" | "$HOME/.codex/skills/fable/scripts/ask_fable.sh"
Do not place secrets in the packet. The helper uses the existing local Claude
Code authentication and creates no persistent Claude session.
1---2name: fable3description: Use the locally authenticated Claude Code Fable 5.1 model only as the orchestrator for a task, then execute implementation with GPT-5.6 Luna or DeepSeek V4 Flash. Use when the user invokes $fable or asks Fable to orchestrate Codex agents.4---56# Fable orchestrator78Claude Fable 5.1 supplies orchestration decisions only. Codex remains the runtime that9spawns workers, owns files, runs tools, verifies the result, and reports to the10user.1112## Invocation1314Treat everything after `$fable` as the objective. Fable 5.1 always owns15orchestration. Implementation workers are restricted to GPT-5.6 Luna and16DeepSeek V4 Flash:1718- `$fable build the feature`19- `$fable debug this; implementer: gpt-5.6-luna`2021Model names are requests, not guesses. Before dispatch, inspect the current22`spawn_agent` tool description and custom agent roles. Use only models or roles23that are currently callable. If a requested model is unavailable, say so and24use the closest available choice only when that substitution is low-risk;25otherwise ask for a replacement.2627For the simplest automatic path, the user can provide only an objective. Apply28this ordered classifier when they did not explicitly choose a route:2930- loop construction, repeated iteration, or high-throughput mechanical work:31 use a callable OpenCode Go agent pinned to `opencode-go/deepseek-v4-flash`;32- implementation: use a callable OpenCode Go agent pinned to33 `opencode-go-responses/gpt-5.6-luna`, then34 `opencode-go/deepseek-v4-flash`;35- planning, research, review, and other work: choose by normal task fit.3637Prefer an exposed `agent_type` that pins both model and provider. Never infer38callability from a config file or send a raw model override across providers.39An explicit implementation choice wins only when it is GPT-5.6 Luna or DeepSeek40V4 Flash. Do not assign implementation to any other model. After any applicable41approval gate, state only `<Agent> — <Model>: <bounded responsibility>`, then42immediately start. Classify by the callable model pin, not the agent's display43name. Do not show the full model catalog unless asked.4445## OpenCode Go compatibility4647Codex Router owns OpenCode Go provider setup, model discovery, and credentials;48Fable must not duplicate them. A user adds the OpenCode Go API key once through49the router's local secure setup. Never request or paste an API key in chat or50store it in a Fable packet. Fable consumes only callable `opencode-go/` and51`opencode-go-responses/` agents supplied by Codex, so it needs no proxy,52dashboard, or second static model list. Start a new Codex task after changing53the provider or agent definitions.5455## Workflow56571. Read the objective and relevant local instructions. Inspect enough of the58 workspace to give Fable facts rather than assumptions.592. Build a compact orchestration packet containing the objective, acceptance60 criteria, workspace context, constraints, protected files, evidence already61 gathered, callable worker menu, concurrency limit, and user preferences.623. Send the packet to `scripts/ask_fable.sh`. Use Claude's `fable` alias; do not63 read, copy, print, or modify Claude credentials.644. Require a bounded task graph with role, model or agent type, owned files or65 responsibility, dependencies, expected output, verification, and a stop66 condition for every node. Reject any implementation node assigned to a model67 other than GPT-5.6 Luna or DeepSeek V4 Flash.68 Fable 5.1 adjudication remains outside the worker graph.695. Validate the graph against the actual task and current tools. Codex has final70 responsibility for safety and scope. Do not execute invented models, unsafe71 actions, or work outside the user's request.726. Spawn independent ready nodes in parallel, up to the live collaboration73 limit. Tell every code-writing worker its ownership and that other agents74 share the workspace, so it must preserve and accommodate their edits.757. Collect results, inspect changed files, and run proportionate verification.76 For complex work, send a concise results packet back through the helper for77 the next graph or final adjudication. Cap this at three Fable calls unless78 the user asks to continue.798. Finish only when acceptance criteria and verification pass. Report selected80 models, material changes, and concrete proof.8182Whenever the helper returns Fable's orchestration output, display it verbatim83under this exact heading:8485```text86Fable 5.1 speaks:87```8889Do not relabel ordinary Codex or worker-agent output as Fable speech.9091## Boundaries9293- Fable plans and adjudicates; it does not silently replace the Codex workers.94- Exchange decisions, evidence, task packets, diffs, test results, and blockers,95 not hidden reasoning.96- Orchestration does not expand authorization. Publishing, deployment,97 destructive operations, spending, and external messages retain their normal98 approval boundaries.99- If delegation adds no value, use one worker or execute directly after the100 Fable plan.101102## Calling Fable103104Pass the packet as standard input:105106```bash107printf '%s' "$PACKET" | "$HOME/.codex/skills/fable/scripts/ask_fable.sh"108```109110Do not place secrets in the packet. The helper uses the existing local Claude111Code authentication and creates no persistent Claude session.