Not in the top 1,000 by GitHub stars
cozytab/fable5-mode
Make Opus 4.8 (or any Claude model) work like Claude Fable 5 — a Claude Code skill + guard hooks (plan gate, model ceiling, per-task enforcement) for Fable-5-grade discipline: plan, self-verify, and route sub-agents, without Fable 5.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
893b772fb5d6 → 893b772fb5d6
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 893b772fb5d6
No earlier version was observed for comparison.
Heat
0.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
fable-mode
When your agent uses it
A work-discipline protocol that makes Opus 4.8 (or any non-frontier model) operate at Fable-5-grade quality. Core idea — output quality = model capability x work discipline: spend extra orchestration to buy single-pass quality via six levers (plan gate, small-card execution, adversarial self-check, real-product verification, context hygiene, checkpoint autonomy). Activate ONLY on an explicit request — the user names the mode ("use fable mode", "enable fable-mode", "work like Fable 5", "rigorous mode", or the Chinese "用 fable 模式"、"开 fable-mode"、"像 Fable 5 一样做"、"严谨模式") — or when the project is already armed with a `.fable/` directory (the hooks handle that). Do not auto-trigger on a task merely being large, important, or quality-sensitive, and not on generic phrases like "do it well / 最高质量 / 别偷懒"; if a task looks like it would benefit, ask the user whether to enable fable-mode instead of assuming.
What it loads into context
Frontmatter
316 tokensAlways available to the agent
SKILL.md
4,546 tokensWhen the skill is activated
Reference documents
13,514 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use / not use
- When no stronger model is available
- The six levers (execute in order)
- Failure attribution ladder (before touching the fix)
- The Fable 5 habit set (any model, always)
- Delegation policy (concurrency, model, escalation)
- Enforcement layer (hooks — mechanics in `hooks/README.md`)
- Execution-order template
- Red lines
Scripts executed separately
hooks/_fable_common.pyhooks/fable_close_guard.pyhooks/fable_fail_streak.pyhooks/fable_lint.pyhooks/fable_profile_inject.pyhooks/fable_spawn_guard.pyinstall.shtests/test_guards.pytests/test_inject.pytests/test_install.py
Files
.gitignoreasset158 bytesLICENSEasset1,064 bytesREADME.mddoc19,694 bytesREADME.zh-CN.mddoc18,347 bytesSKILL.mdcore19,638 bytesSKILL.mdcore19,638 bytesSKILL.mdcore19,638 bytesSKILL.mdcore19,638 byteshooks/README.mddoc9,217 byteshooks/_fable_common.pyruns8,446 byteshooks/fable_close_guard.pyruns3,565 byteshooks/fable_fail_streak.pyruns3,519 byteshooks/fable_lint.pyruns4,192 byteshooks/fable_profile_inject.pyruns10,096 byteshooks/fable_spawn_guard.pyruns6,130 bytesinstall.shruns3,507 bytestemplates/LEDGER.template.mddoc857 bytestemplates/PROGRESS.template.mddoc413 bytestemplates/SPEC.template.mddoc736 bytestemplates/VERIFIER_PROMPT.mddoc1,155 bytestests/test_guards.pyruns14,614 bytestests/test_inject.pyruns8,691 bytestests/test_install.pyruns3,981 bytes
Read SKILL.md
# fable-mode (Fable-grade work-discipline protocol)
You are now in fable-mode. Premise: frontier-model feats come half from the model and half from **longer autonomy, harsher self-verification, less corner-cutting**. That second half is model-independent — this protocol supplies it. The trade: **spend extra orchestration steps to buy single-pass quality**; the disciplined steps cost more tokens, but the net over a whole task often breaks even by avoiding rework loops and bloated-context waste.
## When to use / not use
- **Activation is explicit-only**: enter this mode when the user asks for it by name, or when the project carries a `.fable/` directory. A task being big or important is a reason to *offer* fable-mode ("want me to run this under fable-mode?"), never to silently enter it.
- **Use** (once activated): substantial dev tasks (features, projects, clones, refactors), must-be-right deliverables, multi-file changes, research reports.
- **Don't use**: single-file tweaks, Q&A, small tasks verifiable at a glance — just do them. **Discipline is per-task, not per-project**: inside a fable-mode project a quick fix is still just a quick fix (guards stay quiet when the ledger is idle or paused — see Enforcement).
- **Honest boundary**: real capability walls exist — a single very long reasoning chain, holding a huge codebase at once, strong aesthetic judgment. If a stronger model is available, say so plainly and let the user decide. If not (the common case), degrade gracefully — next section.
- **Tool-reliability red line**: web-fetch tools can hang without timeout and stall a Workflow. Scraping subagents use `curl --max-time`, never WebFetch; long Workflows get a watchdog.
## When no stronger model is available
View the complete source on GitHubSkills included
- fable-mode
Repository facts
- License
- MIT
- Created
- Jul 6, 2026
- Last pushed
- Jul 15, 2026
- Forks
- 9
- Open issues
- 1
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 3 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 2 dangerous shell commandsin 2 files: README.md:213 README.zh-CN.md:188
- 18 network referencesin 3 files: README.md:5 README.zh-CN.md:5 SKILL.md:24
- No hidden or obfuscated text
- No instruction overrides
- 10 executable scriptsin 10 files: hooks/_fable_common.py:1 hooks/fable_close_guard.py:1 hooks/fable_fail_streak.py:1 and 7 more
- 9 references to secretsin 5 files: hooks/fable_profile_inject.py:40 hooks/fable_spawn_guard.py:93 tests/test_guards.py:217 and 2 more
- No requests to vote in Hot
Show all 39 signals by file
README.md
- Network accessline 5
**Make Opus 4.8 — or any Claude model — work like Claude Fable 5.** A [Claude Code](https://claude.com/claude-code) skill plus guard hooks that give a - Network accessline 6
[Claude Code](https://claude.com/claude-code) skill plus guard hooks that give a - Network accessline 19
# 1. Install the skill (honors CLAUDE_CONFIG_DIR; falls back to ~/.claude) git clone https://github.com/cozytab/fable5-mode \ - Network accessline 20
git clone https://github.com/cozytab/fable5-mode \ - Network accessline 113
**Prerequisites**: [Claude Code](https://claude.com/claude-code), and `python3` - Network accessline 126
git clone https://github.com/cozytab/fable5-mode \ - Network accessline 139
> Install the skill at https://github.com/cozytab/fable5-mode by following its README. - Dangerous shell operationline 213
everything or `rm -rf .fable`.
README.zh-CN.md
- Network accessline 5
**让 Opus 4.8(或任意 Claude 模型)像 Claude Fable 5 一样干活。** 一个 [Claude Code](https://claude.com/claude-code) skill,外加一组守卫 hook,给非顶级 - Network accessline 6
[Claude Code](https://claude.com/claude-code) skill,外加一组守卫 hook,给非顶级 - Network accessline 18
# 1. 安装 skill(认 CLAUDE_CONFIG_DIR,没设就退回 ~/.claude) git clone https://github.com/cozytab/fable5-mode \ - Network accessline 19
git clone https://github.com/cozytab/fable5-mode \ - Network accessline 103
**前置要求**:[Claude Code](https://claude.com/claude-code),以及 `python3` - Network accessline 114
git clone https://github.com/cozytab/fable5-mode \ - Network accessline 126
> 按 https://github.com/cozytab/fable5-mode 的 README 帮我安装这个 skill。 - Dangerous shell operationline 188
想关掉强制:把卡勾完,或 `rm -rf .fable`。
SKILL.md
- Network accessline 24
- **Don't use**: single-file tweaks, Q&A, small tasks verifiable at a glance — just do them. **Discipline is per-task, not per-project**: inside a fable-mode project a quick fix is still just a quick fix (guards stay quiet when the ledger i - Network accessline 26
- **Tool-reliability red line**: web-fetch tools can hang without timeout and stall a Workflow. Scraping subagents use `curl --max-time`, never WebFetch; long Workflows get a watchdog. - Network accessline 71
1. **The harness**: test drivers and acceptance scripts are code too. A too-conservative driver strategy or a wrong expected-value reads exactly like a product bug. Falsify the test before the tested. 2. **The deployment**: prove the new co - Network accessline 72
2. **The deployment**: prove the new code is actually running — look for a behavior signature only the new version has (or stamp one), bust caches (`fetch(url, {cache:'reload'})`, restart, rebuild). "Fix had no effect" is, embarrassingly of
hooks/_fable_common.py
- Executable scriptline 1
Executable file
hooks/fable_close_guard.py
- Executable scriptline 1
#!/usr/bin/env python3
hooks/fable_fail_streak.py
- Executable scriptline 1
#!/usr/bin/env python3
hooks/fable_lint.py
- Executable scriptline 1
#!/usr/bin/env python3
hooks/fable_profile_inject.py
hooks/fable_spawn_guard.py
install.sh
- Executable scriptline 1
#!/usr/bin/env bash
tests/test_guards.py
tests/test_inject.py
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Signal confidence: 39 facts
- Network access in prose of documentationREADME.md:5Low confidence
- Network access in prose of documentationREADME.md:6Low confidence
- Network access in code of documentationREADME.md:19Low confidence
- Network access in code of documentationREADME.md:20Low confidence
- Network access in prose of documentationREADME.md:113Low confidence
- Network access in code of documentationREADME.md:126Low confidence
- Network access in prose of documentationREADME.md:139Low confidence
- Dangerous shell operation in prose of documentationREADME.md:213Low confidence
- Network access in prose of documentationREADME.zh-CN.md:5Low confidence
- Network access in prose of documentationREADME.zh-CN.md:6Low confidence
- Network access in code of documentationREADME.zh-CN.md:18Low confidence
- Network access in code of documentationREADME.zh-CN.md:19Low confidence
- Network access in prose of documentationREADME.zh-CN.md:103Low confidence
- Network access in code of documentationREADME.zh-CN.md:114Low confidence
- Network access in prose of documentationREADME.zh-CN.md:126Low confidence
- Dangerous shell operation in prose of documentationREADME.zh-CN.md:188Low confidence
- Network access in prose of the SKILL.mdSKILL.md:24Low confidence
- Network access in prose of the SKILL.mdSKILL.md:26Low confidence
- Network access in prose of the SKILL.mdSKILL.md:71Low confidence
- Network access in prose of the SKILL.mdSKILL.md:72Low confidence
- Executable script in prose of a file that runshooks/_fable_common.py:1Low confidence
- Executable script in code of a file that runshooks/fable_close_guard.py:1High confidence
- Executable script in code of a file that runshooks/fable_fail_streak.py:1High confidence
- Executable script in code of a file that runshooks/fable_lint.py:1High confidence
- Executable script in code of a file that runshooks/fable_profile_inject.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuehooks/fable_profile_inject.py:40Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuehooks/fable_profile_inject.py:51Low confidence
- Access to secrets in code of a file that runshooks/fable_profile_inject.py:165High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuehooks/fable_profile_inject.py:166Low confidence
- Executable script in code of a file that runshooks/fable_spawn_guard.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuehooks/fable_spawn_guard.py:93Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuehooks/fable_spawn_guard.py:112Low confidence
- Executable script in code of a file that runsinstall.sh:1High confidence
- Executable script in code of a testtests/test_guards.py:1Low confidence
- Access to secrets in code of a test: a variable, placeholder or call, not a stored valuetests/test_guards.py:217Low confidence
- Executable script in code of a testtests/test_inject.py:1Low confidence
- Access to secrets in code of a test: a variable, placeholder or call, not a stored valuetests/test_inject.py:18Low confidence
- Executable script in code of a testtests/test_install.py:1Low confidence
- Access to secrets in code of a test: a variable, placeholder or call, not a stored valuetests/test_install.py:30Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.