Fable + Ponytail Doctrine
Fable-mode layers two pieces of behavioral doctrine into every agent the orchestrator spawns — making the fleet communicate outcome-first and build lazily-correct, on the model tiers you already run. It changes how agents behave, not which model backs them.
It's off by default. When off, the spawn path — composed prompt, hooks, everything — is byte-for-byte what it was before the feature existed.
What it adds
The Fable doctrine is a universal cross-role layer composed into every agent's system prompt right after the base rules: lead every report with the outcome, finish work instead of narrating intentions, report failures verbatim, prefer readable prose over fragment-speak. That prompt-level doctrine reaches every runtime — Claude, Grok, Codex, and Gemini alike. The guard-hook half is not uniform: Claude-runtime agents get a full set (a stop-gate that catches promised-but-undone work, a bash-discipline nudge, an honesty nudge) alongside RoboCo's own hooks, never replacing them; Grok-runtime agents get the honesty nudge only, since a Grok-side hook denial cancels the whole run; Codex and Gemini get no hooks at all in this release — neither CLI exposes a verified hook mechanism, so their enforcement leans entirely on their own tool-scoping policy (sandbox levels / execpolicy for Codex, the TOML Policy Engine for Gemini) rather than a Fable-specific hook.
The Ponytail doctrine rides the same flag — no separate switch. It's the "lazy senior developer" ladder: question whether code needs to exist, reuse what the codebase already has, reach for the standard library before dependencies, one line before fifty. Developers get the full ladder; every other role gets an ethos-only cut so code-mechanics rules can't leak into task plans, review notes, or docs. The ladder explicitly yields to RoboCo's own bars — the coverage gate, QA review, the conventions standard, and reviewer feedback always win.
Tuning the developer intensity
ROBOCO_PONYTAIL_INTENSITY (default full) sets how aggressive the developer ladder is:
| Level | Behavior |
|---|---|
lite | Builds what's asked, names the lazier alternative. |
full | Enforces the ladder — the default. |
ultra | YAGNI-extremist: deletion before addition, challenges the requirement itself. |
Non-developer roles have no dial — they run a fixed, restrained stance.
Enable it
Flip "Fable + Ponytail doctrine" in Settings → Feature Flags, or set the env var:
1ROBOCO_FABLE_MODE_ENABLED=true2ROBOCO_PONYTAIL_INTENSITY=full # lite | full | ultraPonytail adds no hooks at all — bundling it under the Fable flag changes only the composed prompt. The measurable effect shows up in the delivery metrics you already have: rework rate, first-pass yield, and spawn waste on the Metrics page.