fable-skill
Fable-model operating discipline for any AI coding agent.
One skill that upgrades how your agent works — not what it knows. It enforces the working discipline that separates top-tier agentic models from ordinary runs: explore before planning, plan before acting, verify every change with evidence, debug at root cause instead of retrying blindly, persist state across long tasks, and self-review before declaring done.
Install it once with npx, natively, into whichever agent you use:
| Claude Code | Cursor | GitHub Copilot | OpenAI Codex |
| Gemini CLI / Antigravity | Windsurf | Cline | Roo Code |
| Amp | OpenClaw / ClawBot | Hermes Agent | Aider |
| Continue.dev | Zed | JetBrains Junie | Kiro (AWS) |
| Trae | Qwen Code | OpenCode | Goose |
| Warp | Kilo Code | Augment | OpenHands |
| Replit Agent | any AGENTS.md agent | claude.ai (zip) |
Quick start
# Claude Code, available in every project
npx github:almutaz9000/fable-skill claude --global
# OpenAI Codex, native skill available in every project (~/.agents/skills/)
npx github:almutaz9000/fable-skill codex --global
# Cursor rules for the current repo
npx github:almutaz9000/fable-skill cursor
# AGENTS.md block — picked up by Codex, Amp, Jules, Zed, Factory, and others
npx github:almutaz9000/fable-skill agents
# Hermes Agent native skill, available in every project (~/.hermes/skills/)
npx github:almutaz9000/fable-skill hermes --global
# Everything at once for the current repo
npx github:almutaz9000/fable-skill all
# See every supported agent and where it installs
npx github:almutaz9000/fable-skill list
No dependencies, no build step, Node ≥ 16. The installer is idempotent — re-run it any time
to update; shared files like AGENTS.md are edited only between managed markers, so your own
content is never touched.
Token cost: compact by default
Single-file rules targets (Cursor, Copilot, AGENTS.md, and the like) inject their content
into every request, so they get the compact edition (roughly 2k tokens) — the full
discipline distilled into one document. Agents with native skill folders (Claude Code, Codex,
OpenClaw, Hermes Agent) load reference modules on demand, so they get the complete skill at no per-request
cost. If you want the full version (roughly 7k tokens) in a rules file anyway, opt in with
--full:
npx github:almutaz9000/fable-skill agents --full
How to use it
Once installed, the skill activates two ways:
- Explicitly — type
/fable-skillin Claude Code,$fable-skillin Codex (or browse/skills). Rules-file agents (Cursor, Copilot, AGENTS.md, …) have it always on, so there is nothing to invoke. - Automatically — skill-native agents match your prompt against the skill description and load it when the task fits: debugging, multi-file changes, refactors, research, analysis, writing, scientific work, search, and long-running or multi-agent tasks.
You don't need special prompt phrasing — the skill adapts to the task. But the examples below show what it changes in each case.
Two-axis calibration
Every task is calibrated on two axes before any work begins:
Tier (how much process overhead):
| Tier | When | What it means |
|---|---|---|
| LIGHT | Single-step, reversible, unambiguous | Act directly; verify the one change; no plan, no state file |
| STANDARD | Clear scope, low blast radius | The loop without written artifacts; targeted verification at the end |
| FULL | Complex, irreversible, ambiguous, long, multi-agent | Written plan, explicit reasoning, state persistence, full verification |
Domain (which protocol to apply):
| Domain | Trigger | Core discipline |
|---|---|---|
| CODE | implement, fix, debug, refactor | Explore → plan → act → verify with real output |
| PLAN | plan, roadmap, strategy | Checkable done-criteria, riskiest-assumption-first decomposition |
| ANALYSIS | analyze, compare, evaluate | Analytical loop, confidence labels, counter-analysis |
| REPORT | report, write, document | Audience-first structure, citation standard, cold-reader pass |
| SCIENCE | paper, experiment, literature | Full paper protocol, reproducibility standard, mandatory limitations |
| SEARCH | find, search, survey | Source evaluation rubric, provenance rule, conflict surfacing |
| ORCHESTRATE | parallel agents, delegate, coordinate | Subagent configuration, acceptance criteria, adaptive reconfiguration |
The tier and domain are independent. A FULL × SCIENCE task uses the full paper protocol with explicit written plans. A LIGHT × SEARCH task is a quick lookup with a citation.
Example: debugging a failure
Users report the login endpoint started returning 500 after yesterday's deploy. Find the root cause and fix it.
Without the skill, a typical agent grabs the first plausible cause and patches it. With it, the agent must capture the exact error, reproduce it on demand, rank at least three hypotheses before testing any, bisect to where good state turns bad, fix the cause (not the symptom), and re-run the original failing case to prove the symptom is gone. Symptom patches like swallowing the exception are explicitly banned.
Example: multi-file refactor or migration
Migrate our config loading from JSON files to environment variables across the app.
This hits the FULL tier: the agent writes a plan with checkable done-criteria before touching code, fronts the riskiest assumption (is there a consumer that can't take env vars?), works in vertical slices so the app builds after each step, and runs the broad test gate once at the end — pasting real output, not "should work now".
Example: long or multi-session task
Build out the reporting module — we'll work on this over the next few days.
The agent maintains a STATE.md (goal, plan with progress, key discoveries, decisions
made and why) so the work survives context compaction and session breaks. Resuming later,
it reads the state file first instead of re-deriving everything.
Example: ambiguous request
Something feels slow about the dashboard, can you improve it?
Instead of guessing, the agent turns "slow" into a checkable criterion (measure first, then a target), lists its assumptions visibly, verifies the cheap ones immediately, and carries the rest flagged into the final answer — no silent load-bearing guesses.
Example: trivial task (the skill stays out of the way)
Fix the typo in the welcome banner.
This is the LIGHT tier: no plan file, no hypothesis tree, no ceremony. The agent makes the edit, verifies that one change, and reports plainly. The calibration gate exists precisely so small tasks stay fast.
Example: research and literature search
Survey the current state of retrieval-augmented generation — what approaches exist, how do they compare, and what are the open problems?
Domain: SEARCH, Tier: FULL. The agent generates at least three distinct query angles in one batch (not one query at a time), evaluates each source against a credibility/recency rubric, builds a claim map tracing each key finding to its source, surfaces any conflicts between sources with both sides quoted, and labels confidence levels throughout. Every load-bearing claim in the output cites a source actually opened in the session — training recall is not a citation.
Example: data analysis
Our checkout funnel conversion dropped 12% last week. Find out why.
Domain: ANALYSIS, Tier: FULL. The agent runs data integrity checks first (row counts, null rates, before/after comparison using the same measurement definition), generates at least three hypotheses before testing any, builds an assumption audit marking which are verified and which are carried, runs the counter-analysis (argues the strongest case against the primary conclusion), and labels every conclusion with a confidence level. "The data shows X" is used only for directly observed facts; "this suggests Y" for inferences; "one possible explanation" for speculation.
Example: writing a technical report
Write an executive briefing on whether we should migrate our auth service to OAuth 2.1.
Domain: REPORT, Tier: FULL. The agent declares the audience (executive, non-technical) and the key question before writing a single word, drafts the supporting body first, writes the executive summary last (answer upfront, conclusion stated directly), runs a full consistency pass (numbers match across all sections), then re-reads the complete document as an executive encountering it cold and resolves any confusion before delivering. The deliverable is a document artifact, not prose in the chat window.
Example: scientific writing
Write the methodology and results sections for our LLM evaluation paper.
Domain: SCIENCE, Tier: FULL. The agent writes the methodology to the reproducibility standard (enough detail for an independent researcher to replicate), reports results with uncertainty ranges and distinguishes results from interpretations, writes a limitations section with at least three named limitations, and ensures the conclusion section claims nothing beyond what the results support. Every number traces to a specific experiment or dataset. "Future work" is not a substitute for a limitation.
Example: complex parallel task with multiple agents
Benchmark five alternative database schemas for our new analytics service: gather performance literature, implement a prototype of the two best candidates, run load tests, and produce a recommendation report.
Domain: ORCHESTRATE, Tier: FULL. The agent writes an integration protocol before spawning any subagents (exactly how outputs will combine), then fans out in parallel: a SEARCH agent surveys performance literature, a CODE agent implements both candidates once the survey is done, and an ANALYSIS agent interprets load test results. Each subagent receives a self-sufficient prompt with role, domain, tier, done-criteria, input, constraints, and the exact output format the integration step requires. Every output is evaluated against explicit acceptance criteria — partial passes are rejections. If an agent's output is rejected, the failure category is diagnosed (wrong scope, depth, format, domain, or capability gap), the configuration is updated, and the agent is re-run differently. The orchestrating agent does not write the final report until every subagent's output has been accepted and the integrated result satisfies the original goal's done-criteria.
When to use it — and when not to
Reach for fable-skill when the cost of a wrong or sloppy run is high:
| Situation | Why it helps |
|---|---|
| Debugging anything non-obvious | Forces hypothesis ranking and bisection instead of guess-and-patch |
| Changes spanning several files | Written plan, vertical slices, one real verification gate |
| Refactors and migrations | Riskiest-assumption-first ordering; scope creep gets surfaced, not absorbed |
| Irreversible actions (deletes, deploys, force-pushes) | Inspect-target-first rule and explicit confirmation gates |
| Work spanning many turns or sessions | STATE.md survives context loss |
| Vague or underspecified goals | Assumption ledger + checkable done-criteria before code |
| Smaller/faster models doing agentic work | The discipline compensates for weaker default process — this is where gains are largest |
Skip it (or let the LIGHT tier no-op) when:
- One-line edits, typo fixes, formatting — process would cost more than a retry.
- Pure Q&A about code or concepts — there's nothing to plan or verify.
- Docs-only tweaks — a careful re-read is the whole verification.
- Brainstorming and open-ended ideation — the protocol optimizes execution, not divergence.
- You deliberately want a quick-and-dirty draft over a verified result — say so in the prompt ("skip verification, just sketch it") and the skill's own effort-calibration rule will honor it.
The rule of thumb baked into the skill itself: process weight must scale with the cost of being wrong. If a mistake costs one cheap retry, act; if it costs an afternoon or a production incident, the full protocol pays for itself.
What's in the skill
The skill is plain markdown — a core protocol plus nine focused modules. Agents with native skill support (Claude Code, OpenClaw, Hermes Agent) get the folder as-is and load modules on demand; agents with a single rules file get everything merged into one document in their native format.
| Module | What it enforces |
|---|---|
SKILL.md |
The Fable Loop: understand → explore → plan → act → verify → iterate → review, plus the two-axis calibration gate (Tier × Domain) and non-negotiable rules |
COMPACT.md |
The whole discipline distilled to roughly 2k tokens — what single-file rules targets install by default |
reasoning.md |
Hypothesis trees, decision rubrics, self-consistency checks, assumption ledgers, argument mapping, confidence calibration, altitude control |
planning.md |
Checkable done-criteria, domain-specific plan templates (CODE, RESEARCH, ANALYSIS, REPORT, SCIENCE, ORCHESTRATION), decomposition heuristics, replanning rules |
execution.md |
Parallel tool batching, wide-fan exploration, subagent delegation, minimal-diff editing discipline |
verification.md |
The evidence standard ("it should work" is banned), a five-rung code verification ladder, full verification ladders for RESEARCH, WRITING, and ANALYSIS |
context.md |
STATE.md pattern so long tasks survive context compaction and session breaks |
communication.md |
Outcome-first reporting, output format by domain, honesty rules, readability over compression |
research.md |
Source evaluation rubric, multi-source synthesis, query strategy, provenance rule, conflict surfacing |
analysis.md |
Analytical loop, uncertainty accounting with confidence labels, assumption audit, data integrity checks, counter-analysis |
writing.md |
Report and scientific paper protocols, citation standard, tone calibration, consistency pass, writing verification ladder |
orchestration.md |
Multi-agent spawning, delegation templates, output acceptance criteria, adaptive reconfiguration protocol, orchestration patterns (fan-out, pipeline, tournament) |
Per-agent install locations
| Agent | Command | Installs to |
|---|---|---|
| Claude Code | claude --global / claude |
~/.claude/skills/fable-skill/ or .claude/skills/fable-skill/ |
| Cursor | cursor |
.cursor/rules/fable-skill.mdc (always-apply rule) |
| GitHub Copilot | copilot |
.github/instructions/fable-skill.instructions.md |
| Windsurf | windsurf |
.windsurf/rules/fable-skill.md (always-on) |
| Cline | cline --global / cline |
~/Documents/Cline/Rules/ or .clinerules/ |
| Roo Code | roo |
.roo/rules/fable-skill.md |
| OpenAI Codex ≥ 0.50 | codex --global / codex |
~/.agents/skills/fable-skill/ or .agents/skills/fable-skill/ (native skill, loads on demand) |
| OpenAI Codex (older) | codex-agents --global / codex-agents |
~/.codex/AGENTS.md or ./AGENTS.md (managed block) |
| Gemini CLI / Antigravity | gemini --global / gemini |
~/.gemini/GEMINI.md or ./GEMINI.md (managed block) |
| Amp | amp |
./AGENTS.md (managed block) |
| OpenClaw / ClawBot | openclaw --global / openclaw |
~/.openclaw/skills/fable-skill/ or ./skills/fable-skill/ |
| Hermes Agent | hermes --global / hermes |
~/.hermes/skills/fable-skill/ or ./.hermes/skills/fable-skill/ |
| Aider | aider |
./CONVENTIONS.md (managed block; load with --read CONVENTIONS.md) |
| Continue.dev | continue --global / continue |
~/.continue/rules/ or .continue/rules/ |
| Zed | zed |
./.rules (managed block) |
| JetBrains Junie | junie |
.junie/guidelines.md (managed block) |
| Kiro (AWS) | kiro |
.kiro/steering/fable-skill.md |
| Trae | trae |
.trae/rules/fable-skill.md |
| Qwen Code | qwen --global / qwen |
~/.qwen/QWEN.md or ./QWEN.md (managed block) |
| OpenCode | opencode --global / opencode |
~/.config/opencode/AGENTS.md or ./AGENTS.md (managed block) |
| Goose (Block) | goose |
./.goosehints (managed block) |
| Warp | warp |
./WARP.md (managed block) |
| Kilo Code | kilo |
.kilocode/rules/fable-skill.md |
| Augment Code | augment |
.augment/rules/fable-skill.md |
| OpenHands | openhands |
.openhands/microagents/repo.md (managed block) |
| Replit Agent | replit |
./replit.md (managed block) |
| AGENTS.md standard | agents |
./AGENTS.md (managed block) |
claude.ai: zip the skill/ folder (it must contain SKILL.md at its root) and
upload it under Settings → Capabilities → Skills.
Using it in Codex: after npx github:almutaz9000/fable-skill codex --global, invoke it
explicitly with $fable-skill (or browse /skills), or just start a complex task — Codex
auto-selects skills whose description matches the prompt. Codex skills use progressive
disclosure, so the skill costs almost nothing until it triggers.
Any agent not listed: copy skill/ into wherever your agent reads instructions,
or paste the merged output of SKILL.md + references/*.md into its system prompt / rules file.
What it does (and honestly, what it doesn't)
A skill is instructions, not weights. It cannot transfer raw model intelligence. What it can transfer is process — and in agentic work, process failures (acting on unread code, claiming success without running anything, retrying the same fix, losing state mid-task) account for a large share of the quality gap between model tiers. This skill closes those by policy:
- Never act on assumption — read the code, run the command, get ground truth first.
- Never claim without evidence — every "it works" must cite output that would differ if it didn't.
- Never retry verbatim — two failures at the same subgoal force a change of hypothesis or altitude.
- Never lose state — long tasks keep a STATE.md that survives context compaction.
- Never skip the review — a hostile self-review gates every "done".
Expect the biggest gains on process-heavy work: debugging, refactors, migrations, research, multi-step automation.
For Hermes Agent specifically, prefer Hermes-native workflows when available: use the todo tool instead of inventing a plan file for medium tasks, use delegate_task for parallel sub-workstreams, and rely on Hermes skill folders and session persistence instead of stuffing everything into always-on rules text.
Across models, this skill is designed to help most of the common coding and agentic models that can follow structured instructions and use tools reliably. It improves process rather than raw intelligence, so stronger models will still reason better, but smaller and cheaper models often benefit the most from the explicit workflow discipline.
Repo layout
fable-skill/
├── skill/ # the skill itself (canonical source, plain markdown)
│ ├── SKILL.md # the Fable Loop + two-axis calibration gate
│ ├── COMPACT.md # ~2k-token compact edition for single-file rules targets
│ └── references/
│ ├── reasoning.md # hypothesis trees, argument mapping, confidence calibration
│ ├── planning.md # plan templates for all 7 domains
│ ├── execution.md # parallel tool use, subagent delegation
│ ├── verification.md # evidence standard + verification ladders for all domains
│ ├── context.md # STATE.md pattern for long tasks
│ ├── communication.md # outcome-first reporting, output format by domain
│ ├── research.md # source evaluation, provenance rule, synthesis protocol
│ ├── analysis.md # analytical loop, confidence labels, counter-analysis
│ ├── writing.md # report + science paper protocols, consistency pass
│ └── orchestration.md # multi-agent spawning, acceptance criteria, adaptive reconfiguration
├── bin/cli.js # zero-dependency npx installer
└── package.json
Contributing
Improvements to the discipline itself (sharper rules, better protocols, new agent targets for the installer) are welcome — open an issue or PR. Keep rules falsifiable and behavioral: "never X without Y" beats "try to be careful".
No comments yet
Be the first to share your take.