v0.3.0 — Fable 5 Oracle mode
What's new
oracle: "fable-5" opt-in on DeliberateInput. After the 5-voice council deliberates, Claude Fable 5 (Mythos-class flagship shipped 2026-06-10, 95% SWE-Bench, 1M context) reads every verdict + the consensus and issues a single adjudication with override authority over the council.
Returned on CouncilResult.oracle:
model— e.g.claude-fable-5recommendation—go/wait/kill/splitscore— 0-100verdict— 2-3 sentences naming which voices it sided withoverride_reason— set only when Oracle disagrees with the council
Why two layers
Single-LLM answers hide their own uncertainty. A 5-voice council exposes the disagreement. A flagship adjudicator picks which side actually holds up. Both layers Brier-audited separately at resolution so you see when Oracle wins vs underperforms the council, instead of taking either's word for it.
Quickstart
```ts
import { CouncilDiff } from "council-diff";
const council = new CouncilDiff();
const result = await council.deliberate({
domain: "founder",
decision: "Ship hosted SaaS at $29/mo or stay OSS-only?",
context: "11-agent OSS stack, 3 paying customers begging for managed",
oracle: "fable-5",
});
console.log(result.recommendation); // council vote
console.log(result.oracle?.recommendation); // Fable 5 vote
console.log(result.oracle?.override_reason); // set only when they disagree
```
Try it: `ANTHROPIC_API_KEY=... npm run example:oracle`
Cost
- Council only: ~$0.03/call (Sonnet 4.6)
- Council + Fable 5 Oracle: ~$0.10/call total
Install
```bash
npm install council-diff@0.3.0
```
(npm publish pending NPM_TOKEN setup — for now, build from source.)
Diff
dd65f42 feat(oracle): v0.3.0 — Fable 5 Oracle mode (wave-borrow within 24h launch window)