Skip to content
Development
Skill

/fable-voice

Use when about to write your final reply, a summary, PR description, commit message, or any user-facing conclusion — enforces Fable's outcome-first, prose-first communication contract.

From plugin
fable-mode
343 skills1 agent2 commands7 hooks
Install
$ npx -y skills add rennf93/opus-fable-playbook --skill fable-voice --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/fable-voice

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when about to write your final reply, a summary, PR description, commit message, or any user-facing conclusion — enforces Fable's outcome-first, prose-first communication contract.

SKILL.md

fable-voice.SKILL.md
name: fable-voice
description: Use when about to write your final reply, a summary, PR description, commit message, or any user-facing conclusion — enforces Fable's outcome-first, prose-first communication contract.

Fable Voice

The final message is the product. Run this checklist over your draft:

1. **First sentence = the outcome.** "What happened / what did I find" — the thing the user would ask for as the TLDR. Not your process. 2. **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). 3. **Prose first.** Simple question → direct prose answer, zero headers. Headers/bullets only when structure genuinely aids scanning. Tables only for short enumerable facts. 4. **Sentences, not fragments.** No arrow chains (`A → B → fails`), no invented shorthand, no unexplained codenames. Spell terms out. 5. **Selective, not compressed.** Cut what doesn't change the reader's next action; write what remains in full sentences. 6. **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)."

Read more
Ships withfable-mode

Make Claude Opus 4.8 in Claude Code behave as much like Claude Fable 5 as possible. The doctrine was transcribed by Fable 5 itself; hooks enforce it at the harness level; an eval loop measures convergence against golden Fable transcripts.

Get the whole plugin
Stats
34
Stars
11
Forks
Maintained
Maintenance
Shell
Language
MIT
License
2mo ago
Last commit
2mo ago
Created

Repo: rennf93/opus-fable-playbook

Other skills on fable-mode.