Opus 4.8 Transition — closing the Fable 5 gap with harness engineering
Fable's edge was never magic — it was three things: deeper single-pass reasoning, a 1M-token context window, and fewer mistakes per step. None of those are copyable, but all three are compensable: make the steps smaller, make verification mandatory, and move recurring intelligence out of the model and into scripts, skills, and workflows. Opus 4.8 at xhigh effort inside a tighter harness gets ~90% of Fable-quality output on AIOS work. The last ~10% gets a budget-gated Fable-5-API escalation valve.
Under the hood: a model downgrade shows up as (a) shallower multi-constraint reasoning, (b) smaller usable context, (c) higher per-step error rate, (d) weaker ambiguity recovery. Each has a specific harness counter — that's this plan.
1 · What the Fable 5 workflow actually was
What made Fable sessions productive, extracted from session logs and how work actually ran:
- One-call boot —
session_start.pydigest instead of 13 manual reads (model-agnostic, keep). - Parallel evidence-gathering — many independent tool calls per turn; Mac + VM checks fused into one investigation.
- Context Mode discipline — raw output stays in the sandbox; only conclusions enter context.
- Orchestrator-worker — subagents/Workflows spawned into sibling workspaces, no copy-paste handoffs.
- Fused reasoning steps — Fable held 5+ constraints at once (the GitHub-token triage: 4 credential stores × 3 machines × expiry/scope/consumer matrix resolved in ~10 tool calls).
- Decision hygiene — questions to Tom only at genuine decision points; everything else autonomous.
- Self-verification — fingerprint-then-verify habits (live-API check before claiming anything).
Items 1–4 and 6 are harness features — they survive the model swap untouched. Items 5 and 7 are model strengths — they are what the compensations below replace.
2 · Gap analysis → compensation map
| # | Fable 5 strength | Opus 4.8 reality | Harness compensation |
|---|---|---|---|
| G1 | Deep multi-constraint reasoning in one pass | Holds fewer constraints; degrades on fused mega-steps | Decompose by default: TodoWrite for any task ≥3 steps; Workflow stages with schema-validated outputs; one question per agent |
| G2 | 1M-token context ([1m]) | 200K standard | Context austerity: Context Mode mandatory, stricter Tier-3 routing, /compact-sync at ~60% context, subagent fan-out keeps orchestrator context thin |
| G3 | Low per-step error rate | More narration-without-execution risk; plausible-but-wrong | Structural verification: verification-before-completion + run-and-show-output enforced in every persona; adversarial-verify Workflow stage (2-of-3 skeptic vote) for high-stakes findings |
| G4 | Recovers well from vague asks | Needs explicit targets | Acceptance criteria up front: /draft-goal for any multi-session task; briefs state "done means X" |
| G5 | Novel/hard problems (top ~10%) | Will plateau | Fable-5 API escalation valve — metered-gate approved per use (Phase 3) |
| G6 | Long-horizon autonomy | Drifts on very long turns | Shorter turns, per-task commits (already rule), Monitor/loop patterns for waits instead of marathon turns |
3 · Work plan
Phase 0 — Cutover day
- Flip
~/.claude/settings.json→"model": "claude-opus-4-8"(drop the[1m]suffix — Fable-only). Keep"effortLevel": "xhigh". Only model pin found on Mac or VM (verified 2026-07-06); Operator + scripts pin nothing. - Decide
/fastdefault: fast mode = Opus with faster output. Recommend ON for routine ops sessions, OFF for build sessions. - Smoke test: boot a session, run one routine flow end-to-end (
/sync+ a small ship + commit); confirm session_start, context-mode hooks, MCP servers, commit discipline all behave. - Update
connections.mdAI/LLM row + the 2 memory files referencing Fable (memory/MEMORY.md,memory/sops_unattended_session_permissions.md).
Phase 1 — Operating-mode hardening
- Write
memory/feedback_opus48_operating_mode.md(boot-loaded, all agents): decompose-by-default, TodoWrite threshold, verification-before-completion mandatory,/compact-syncat 60% context, no fused mega-investigations — staged Workflow instead. - Add one line to each
agents/*/CLAUDE.mdhard-rules section pointing at that memory file (sync via SYNC_MAP). - Skillify the top recurring Fable-era flows so the intelligence is deterministic: (a) credential/token triage →
/token-triage(fingerprint → live-API check → consumer map → decision gate, generalized from the 2026-07-06 GitHub investigation); (b) cross-machine state audit (Mac+VM); (c) any 3+-repeat patternstate_sweep.pyflags. - Convert high-stakes review/audit skills to Workflow-backed multi-agent form (find → adversarial verify → synthesize) — Workflow orchestration is a harness capability and compensates directly for G1/G3.
Phase 2 — Benchmark & tune
- Define a 6-task regression suite from real AIOS work: token triage, GPI breach triage, morning-brief quality, prospect research, a Monesys bugfix, a multi-file AIOS refactor.
- Run each on Opus 4.8; score vs Fable-era transcripts (correctness, autonomy, turns-to-done, Tom interventions).
- Where it misses: tighten the relevant skill/SOP (not one-off prompts). Re-run. Two iterations max, then accept.
- Add a "model performance" line to the Friday
/audit.
Phase 3 — Escalation valve ONLY IF PHASE 2 SHOWS GAPS
- Wire
ANTHROPIC_MODEL=claude-fable-5one-shot invocation path (API billing), documented inconnections.md. - Rule: metered-tool gate applies per use — state task + estimated tokens, wait for Tom's yes. Reserve for architecture decisions, stuck debugging (2+ failed Opus attempts), and irreversible-change reviews.
4 · What does NOT change
Session-start protocol, hard rules (external-comms / metered / deliverable-URL gates), orchestrator-worker model, Context Mode policy, state surfaces, commit discipline, skills registry. The AIOS was built model-agnostic — that's the asset this plan leans on.
5 · Costs & risks
- Opus 4.8 on the Max sub: no new cost. Fable-5 API: metered — gated per use, expected rarely (Phase 3).
- Risk — verification theater: Opus narrating checks it didn't run. Counter: run-and-show-output is already a hard rule; Phase 1 makes it boot-loaded for every agent.
- Risk — context bloat regression: smaller window + same habits = truncation. Counter: G2 measures,
/ctx-statsspot checks. - Rollback: settings.json is one line; nothing else is destructive.
projects/opus48-transition/STATUS.md · Tom has decided on the escalation valve.