Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add rennf93/opus-fable-playbook --skill fable-voicegit clone --depth 1 https://github.com/rennf93/opus-fable-playbookWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/rennf93/opus-fable-playbook/fable-voice)<a href="https://agentmods.dev/skills/rennf93/opus-fable-playbook/fable-voice"><img src="https://agentmods.dev/badge/skills/rennf93/opus-fable-playbook/fable-voice/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/rennf93/opus-fable-playbook/fable-voice"><img src="https://agentmods.dev/badge/skills/rennf93/opus-fable-playbook/fable-voice.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00042 | $0.00531 |
| Opus 5 | $0.00021 | $0.00266 |
| Sonnet 5 | $0.00008 | $0.00106 |
| Haiku 4.5 | $0.00004 | $0.00053 |
Grade A, and why
fable-voice scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Fable Voice
The final message is the product. Run this checklist over your draft:
- First sentence = the outcome. "What happened / what did I find" — the thing the user would ask for as the TLDR. Not your process.
- Complete. Everything the user needs is IN this message — findings from mid-turn, caveats from your thinking. They read nothing else. A bare "done" or "verified" is not content by itself — pair it with the facts that prove it (what changed, where, how you checked).
- Prose first. Simple question → direct prose answer, zero headers. Headers/bullets only when structure genuinely aids scanning. Tables only for short enumerable facts.
- Sentences, not fragments. No arrow chains (
A → B → fails), no invented shorthand, no unexplained codenames. Spell terms out. - Selective, not compressed. Cut what doesn't change the reader's next action; write what remains in full sentences.
- No hedging on verified facts; no claims on unverified ones.
Bad → good
Buried lede: "I started by reading the config loader, then traced the
env override path, then checked the CI logs, and found the deploy fails
because DATABASE_URL is unset in staging."
→ "The deploy fails because DATABASE_URL is unset in staging. I traced it
through the config loader's env override path and confirmed in the CI logs."
Header spam (for "is X safe to delete?"): "## Analysis\n### Usage\n- 0
references\n### Risk\n- low\n## Conclusion\n- safe"
→ "Yes — legacy_export() has no references anywhere in the repo, so it's
safe to delete. The only mention is its own definition at export.py:112."
Arrow chain: "auth → middleware → session lookup → returns stale token → 401" → "The 401 happens because the middleware's session lookup returns a stale token after rotation."
Hedge after verification: "This should hopefully fix the issue." → "Fixed and verified: the full suite passes (42 passed in 3.1s)."
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 45 lines · 42 tokens per session scan A a6b339ed6806
fable-voice is a skill published in the GitHub repository rennf93/opus-fable-playbook (34 stars, last pushed 2mo ago), licensed MIT. It adds 42 tokens to every session and 531 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
confidence-gate
When you're about to claim success ("fixed", "done", "works", "passing tests") at the end of a turn, verify the claim is backed by actual evidence in this session. presence's Stop hook will flag a success claim that has no recent test/build pass behind it. Be aware of this gate and either run the verification, or…
are-you-done
A completion checker for coding work that asks for evidence before allowing an assistant to say a task is finished.
did-you-forget-me
A requirement-checking skill that compares the current work with what the user explicitly asked for. It is written in Korean and includes a fixed Korean report format.
dont-leave-me
A stop-before-finishing checklist for an agent that checks whether requested work, changed files, verification, and cleanup have actually been handled.
show-me-proof
A skill for collecting concrete proof that a coding task was completed, such as changed files, test commands, logs, and remaining risks.
baton-setup
One-time setup and health check for fable-baton. Use when the user asks to set up, configure, verify, or troubleshoot fable-baton - sets the default model to "best" (Fable 5 with Opus fallback) in /.claude/settings.json and verifies the plugin is fully installed.