fable-mode
Skill42 starsChanged 7 days agoMITView on GitHub
Enforces staged execution discipline on large tasks: a written stage plan, parallel delegation where the runtime supports it, a failable verification check at each stage, and a skeptical self-review before delivery. Trigger when the user explicitly asks for thorough/systematic/deep work or when the task spans multiple files, sources, or sessions.
27 other projects use a version of this, 3 of them edited.
Adopted by
Most recently taken up by
- thistleknot/skillsedited, first seen Nov 8, 2026
- ryanportfolio/winuse-mcptheir own version, first seen Nov 8, 2026
- ryanportfolio/Harness-Firmwaretheir own version, first seen Nov 7, 2026
- ryanportfolio/HarnessFirmware.comtheir own version, first seen Nov 5, 2026
- ryanportfolio/Corewise.Academytheir own version, first seen Nov 5, 2026
- Dallenlol/fable-modetheir own version, first seen Nov 1, 2026
Used with
Projects with it also use addskill, apply-firmware and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ryanportfolioSkilladdskill
Create, import, update, or install repo or personal skills: runtime ownership, resources, discovery checks.
Also in 6 projects that use this
ryanportfolioSkillapply-firmware
Bring current folder (plain folder, existing repo, old or partial firmware copy) up to full Harness Firmware in place. Mirror external repo → adopt-repo.
Also in 6 projects that use this
- +10 more from ryanportfolio
Other versions27 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- mrtooher/fable-mode★ 87825% same
- mischker/claude-skills★ 067% same
- thistleknot/skills★ 049% same
Wrote their own version · 24
- cozytab/fable5-mode★ 104same name
- REX-codebase/fable-mode★ 24same name
- saschb2b/skills★ 22same name
- fabdelgado/fable-mode★ 5same name
- fantaJinMode/fable-mode★ 3same name
- PH5h5W6d2L/fable-mode★ 3same name
- ayborg43/fable-mode★ 2same name
- bmaltais/skills★ 2same name
- Dallenlol/fable-mode★ 2same name
- Dallenlol/ripple-hud★ 2same name
14 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- app-creatorSkill
- bento-slidesSkill
- brochure-designerSkill
- business-card-readerSkill
- claude-designerSkill
- codebase-to-courseSkill
- daily-briefingSkill
- diagram-designSkill
- ffmpeg-video-processingSkill
- frontend-designSkill
- gamma-presenterSkill
- gitSkill
- hotel-finderSkill
- humanizerSkill
- in-depth-researchSkill
- jclaw-apiSkill
- jira-operationsSkill
- powerpoint-pptxSkill
- research-paper-writer-proSkill
- restaurant-recommenderSkill
- skill-creatorSkill
- ui-ux-pro-maxSkill
- visual-explainerSkill
- whatsapp-wacli-linuxSkill
- whatsapp-wacli-macSkill
- writing-standardsSkill
- youtube-transcriptSkill
The file
We split this skill into the rules it gives an agent
12 rules. 0 are common, 6 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 24 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 34
Create a checklist using the checklist tool with each stage as an item.
- Very specific: line 46
If stage N and stage M don't depend on each other, spawn them concurrently using subagent_spawn.
- Very specific: line 50
Use conversation_send to push status updates from subagents back to the main conversation.
- Distinctive: line 68
If a fix at stage N invalidates a prior stage's output, re-run that stage's check before continuing.
- Very specific: line 70
After a stage passes its check, update the checklist — mark that stage completed and the next stage in_progress.
- Distinctive: line 74
Before presenting final output, read it as a skeptical reviewer would.
- Very specific: line 87
Read the entire relevant codebase section before writing a line (use filesystem)
- Distinctive: line 88
Write tests before (or alongside) implementation, not after
- Distinctive: line 101
Check for obvious data quality issues (nulls, duplicates, outliers) first
- Distinctive: line 116
When a task is genuinely beyond the model's capability, flag it rather than producing plausible-sounding wrong output.
- Distinctive: line 125
Sequential dependency: Run stages in order, using outputs from prior stages as context for the next
- Very specific: line 127
Long-running task: Write a work log file to fable-mode/worklog.md at the root of the workspace using filesystem.
“Common” is measured: kept by at least 6 in 10 of the 24 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Fable Mode
This skill encodes execution discipline for complex work: decompose before acting, delegate where the runtime allows, verify with checks that can fail, self-critique before delivery.
A note on what this is. The skill shapes the procedure a model follows. It does not change the model's underlying capability. Coherence across long tasks and genuine self-correction live in the weights, not in a prompt. On a model that already does these well, the skill reinforces good habits. On a weaker model, it imposes structure the model would otherwise skip, but it cannot lift the model's reasoning ceiling. Treat this as a checklist, not a capability transplant.
When NOT to use this
If a task has one obvious correct approach and fits in a single pass, do it directly and skip this loop. Staging a trivial task wastes effort and buries the answer under ceremony. This loop earns its cost only when a one-shot attempt would plausibly miss something.
Trigger when the user explicitly asks ("do this thoroughly", "be systematic", "deep work mode") OR when the task objectively spans multiple files, multiple sources, or multiple sessions. Do NOT trigger on ordinary multi-step requests that a direct attempt handles fine.
Core Loop
The loop is constant across domains. Only the verification artifact in step 3 changes by domain (see Domain-specific patterns).
1. Stage Map (before touching anything)
Write out the full stage plan before starting. Number the stages. Include a brief expected output for each. This is how you avoid discovering at stage 7 that you made a wrong assumption at stage 2. Update the map when what you learn invalidates what you planned. The map is a living document, not a contract.
Each stage should produce one verifiable artifact. If a stage produces nothing checkable, merge it with the next.
Create a checklist using the checklist tool with each stage as an item. Mark the first stage as in_progress.
Example format:
Stage 1: [Name] → [Expected output]
Stage 2: [Name] → [Expected output]2. Delegate Independent Work (if the runtime supports it)
First check whether subagent tooling exists in the current runtime. It does: subagent_spawn and subagent_yield are available.
If stage N and stage M don't depend on each other, spawn them concurrently using subagent_spawn. Each subagent should be briefed with: its specific task, what it should produce, where to save outputs, and any relevant context from prior stages.
Good delegation: "research X while I do Y", "process these 3 files", "verify this independently". Bad delegation: splitting a single coherent thought just to use subagents.
Use conversation_send to push status updates from subagents back to the main conversation.
Collect before you respond — this is not optional. A subagent's work only reaches your reply if you wait for it. Whenever you fan out — a tasks[] batch or several async=true spawns — end that stage with one subagent_yield call that awaits every child: pass all=true (collects all pending children) or the explicit runIds list the spawn returned. subagent_yield suspends your turn; you resume automatically once the children finish, with their results delivered back to you, and only then do you synthesize your response from them.
Do not write your final answer while children are still running. If you do, their output arrives later as separate announcements you can no longer fold in, and your reply silently omits the very work you delegated — which is worse than not delegating at all. The sequence is always: spawn the independent stages → subagent_yield (await all) → synthesize → respond. If you also did your own work alongside them, you still yield for the children before responding, then combine everything.
3. Verify with a Check That Can Fail
Each stage must define a pass condition that an external artifact satisfies. Acceptable checks:
- a test that runs and passes (use
exec) - a file or output that provably exists in the expected shape (use
filesystem) - a source actually fetched and read, not assumed (use
web_fetchorweb_search) - an output diffed against the stated spec
"I reviewed it and it looks right" is not a check. A model that would skip verification will also pass its own introspection. If a stage genuinely has no failable check, say so explicitly and mark its output as unverified so the gap is visible downstream.
The cost of catching an error at stage 3 is trivial; at stage 8 it is catastrophic.
If a fix at stage N invalidates a prior stage's output, re-run that stage's check before continuing. The loop goes forward and backward.
After a stage passes its check, update the checklist — mark that stage completed and the next stage in_progress.
4. Self-Critique Before Delivery
Before presenting final output, read it as a skeptical reviewer would. Name at least one weakness or limitation. Either fix it or flag it to the user.
Step 3 is the check that can fail. Step 4 is the judgment call about what remains weak after the check passes.
Your reply ends the turn, and no tool call runs after it. So close the checklist in the call just before you write the reply: mark every stage this reply delivers completed, and leave pending only the stages planned for a later turn. Self-critique happens before the reply too, so never list it as a stage after the delivery — that item could never be marked done.
Domain-Specific Patterns
Each domain below is an instance of step 3: it names the failable check that fits the work.
Software Engineering
- Read the entire relevant codebase section before writing a line (use
filesystem) - Write tests before (or alongside) implementation, not after
- For large changes: plan the diff, then execute it
- Failable check: tests run (use
exec); error paths exercised, not just the happy path
Research / Knowledge Work
- Gather sources before synthesizing. Do not write as you search
- For each claim that matters: what's the evidence? what would falsify it?
- Distinguish confirmed facts from inferences; flag the latter explicitly
- Failable check: every load-bearing claim traces to a source actually read (use
web_fetchorweb_search)
Data Analysis
- Understand the data shape before writing any analysis (use
filesystemorexecto profile) - State your hypothesis before computing, not after seeing the numbers
- Check for obvious data quality issues (nulls, duplicates, outliers) first
- Failable check: data quality assertions run against the actual data and pass (use
exec)
Long-Running / Multi-Session Tasks
- Maintain a work log: decisions made, why, what was tried and failed
- At the start of any continuation, re-read the work log before doing anything (use
filesystem) - Define done criteria upfront so you know when to stop
- Failable check: done criteria are written and testable, not vibes
What This Skill Doesn't Do
It doesn't make the underlying model smarter. Complex reasoning, novel synthesis, and domain expertise still depend on the model. This skill shapes how a model works through a problem: the approach, the discipline, the verification habits. It does not change raw capability.
When a task is genuinely beyond the model's capability, flag it rather than producing plausible-sounding wrong output.
Example
See the skill repository at https://github.com/mrtooher/fable-mode for worked examples showing the loop catching errors that one-shot attempts miss — including a null-pointer bug in an API endpoint (software engineering), a research claim attributed to the wrong source (knowledge work), a data analysis with hidden nulls (data analysis), and a multi-session task with no done criteria (long-running).
Edge Cases
- All stages independent: fan out with
subagent_spawn(tasks[]batch orasync=trueeach), then onesubagent_yieldwithall=true(or the returnedrunIds) to await ALL children before synthesizing — never respond while children still run (see §2) - Sequential dependency: Run stages in order, using outputs from prior stages as context for the next
- Stage verification fails: Diagnose and fix before proceeding. If the fix invalidates prior stages, re-run their checks too
- Long-running task: Write a work log file to
fable-mode/worklog.mdat the root of the workspace usingfilesystem. Re-read it at the start of each continuation session viadatetimeto confirm session boundaries - User interrupts mid-loop: Summarise current progress from the checklist and work log, present it to the user, and offer to resume
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

