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:

LevelBehavior
liteBuilds what's asked, names the lazier alternative.
fullEnforces the ladder — the default.
ultraYAGNI-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:

bash
1ROBOCO_FABLE_MODE_ENABLED=true2ROBOCO_PONYTAIL_INTENSITY=full   # lite | full | ultra
Prompt-only where it can be

Ponytail 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.

llms.txt