fable-verify

A verification checklist for coding agents before they say work is complete, fixed, or correct. It requires fresh checks that directly test the claimed result.

In plain words
What is it for?
Use it before committing, opening a pull request, or moving to another task. It helps verify code, built output, rendered pages, loaded definitions, and other concrete results.
Why use it?
It prevents treating a successful command or partial test run as proof that the actual result works. It also makes unchecked assumptions and failed checks explicit.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/debabsah/fable-method/fable-verify
Any agent
npx skills add debabsah/fable-method --skill fable-verify
Clone the repo
git clone --depth 1 https://github.com/debabsah/fable-method

Made for: Claude Code, Codex.

Per session 98 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,238 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00098 $0.01238
Opus 5 $0.00049 $0.00619
Sonnet 5 $0.00020 $0.00248
Haiku 4.5 $0.00010 $0.00124

Measured yesterday against content hash 850254c840eb, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

fable-verify 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 yesterday.

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.

skills/fable-verify/SKILL.md · 40 lines

How it starts

The opening of the file, as written. The whole thing — 40 lines — stays where its author put it; the contents beside it link to each section on GitHub.

fable-verify

"It ran" is not verification. Evidence before claims, always. Verify at the layer of the claim, not the layer below it.

The gate

Before any success/completion claim or expression of satisfaction:

  1. Identify the command or observation that would prove this specific claim.
  2. Run it fresh, in full (not a remembered earlier run; not a partial check).
  3. Read the whole output — exit code, counts, the actual values.
  4. Verify at the layer of the claim. Exit 0 / "deploy healthy" / "containers up" only proves the layer below the claim. If the claim is "the output is correct," look at the output. If it's "the page renders," look at the page. If it's "the definitions load," import them in the built artifact and count them.
  5. Only then state the claim — as ledger lines: Verified: <claim> — ran <command> -> saw <result>, with anything unchecked under Assumed: or PROVISIONAL. If it fails, state the actual status with the output.

Sharpen it

  • Know what pass looks like before you run it: pull the oracle from .fable/project.md — the command and what green literally prints. Exit 0 with 3 skipped is not the pass you meant.
  • The counting environment is binding: the oracle row's Counts where decides where green counts. Local green on a CI-counted claim stays PROVISIONAL until the environment of record agrees — quote it (e.g. gh pr checks).
  • Discharge residuals — durable write first, delete second: when this evidence settles an entry in .fable/residuals.md, append its resolution to .fable/claims-log (as a Verified: line if that's what it became), then delete the line from residuals.md, then announce it. The order is load-bearing, not stylistic: interrupt it the other way round and you lose the residual and never record the claim — and that lost Verified: is exactly what fable-debug needs to falsify against when the behaviour later breaks. A residual is discharged only once its resolution is durable somewhere else. The counters treat any remaining Assumed:/PROVISIONAL line as open.
  • Categorical over enumerated: assert a property over all items of a class, so the check inspects cases you didn't think to list. When it over-fires, diagnose scope vs. substance before loosening it.
  • Oracle over the whole population: when reconstructing hidden logic, diff your candidate against a readable known-good output over every row, not a sample; state plainly which parts are transcribed vs. inferred.
  • No known-good output? Manufacture the oracle with a metamorphic relation: state how the output must change when the input changes in a known way (add a row → the count rises by one; permute input order → the result is unchanged), then check that property. It turns hidden truth into a runnable check.
  • A number derived from data is a claim about the data: before quoting a count, rate, or aggregate as fact, run one independent sanity check — reconcile against a known total, re-derive one row or sample by hand, or check an order-of-magnitude bound — and record the query that produced the number beside it. A figure that fails its sanity check ships as PROVISIONAL or not at all.
  • Experiential claims get experienced: when the claim is that an artifact renders, reads, or is usable — a page, dashboard, chart, document — the proving observation is entering its modality: open it, screenshot it, click the flow, and record what you literally saw as the saw half of the ledger line. Green tests and zero-must-fix reviews prove the layer below, and the looking step only fires reliably when it is named — so on a project that ships such artifacts repeatedly, mint an experiential oracle row rather than trusting the habit.
  • Sample the tails: first item, last item, weirdest item — not just the middle.
  • Use evidence you didn't generate: re-open the file you wrote, re-run, screenshot and read it, diff before/after, count what you claimed to count.
  • Treat good news as suspect: a pass that came too easily is unverified until you can say why it's real. Distinguish "the build succeeded" (rehearsal) from "the thing loaded and ran" (reality).
  • Re-check against the original request and any standing rules from scoping.

Read the full file on GitHub · 40 lines

Changes

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.

  1. yesterday First seen · 40 lines · 98 tokens per session scan A 850254c840eb

Subscribe to this mod's changes

fable-verify is a skill published in the GitHub repository debabsah/fable-method (1 stars, last pushed 1mo ago), licensed MIT. It adds 98 tokens to every session and 1,238 once invoked, about $0.0005 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-31.

Related

Other skills, from other repositories

issue-triage

Issue triage: audit open issues, categorize, detect duplicates, cross-ref PRs, risk assessment, post comments. Args: "all" for deep analysis of all, issue numbers to focus (e.g. "42 57"), "en"/"fr" for language, no arg = audit only in French.

rtk-ai/rtk · 70 tokens

hud

Configure HUD display options (layout, presets, display elements).

Yeachan-Heo/oh-my-claudecode · 14 tokens

moai-ref-ui-polish

UI polish and interface-completion reference: the small visual details — concentric border radius, optical alignment, shadow-vs-border, motion easing, typography smoothing, tabular numbers, icon stroke weight, hit areas — that separate polished interfaces from generic ones. Agent-extending skill that amplifies…

modu-ai/moai-adk · 98 tokens

kelos

Author, debug, and operate Kelos resources (Task, Session, Workspace, AgentConfig, TaskSpawner) on Kubernetes. Use for Kelos CRDs, resource manifests, the kelos CLI, or live cluster operations. Do not use for ordinary Kelos repo code edits, tests, reviews, build/CI, or git tasks unless they involve those resources.

kelos-dev/kelos · 76 tokens

trellis-brainstorm

Guides collaborative requirements discovery before implementation. Creates task directory, seeds PRD, asks high-value questions one at a time, researches technical choices, and converges on MVP scope. Use when requirements are unclear, there are multiple valid approaches, or the user describes a new feature or complex…

mindfold-ai/Trellis · 65 tokens

mulmoterminal-keys

Bind keyboard shortcuts and fix keyboard/clipboard behaviour in MulmoTerminal. Writes keymap, which Settings cannot set at all — its Keyboard shortcuts section is read-only, listing every action bound or not plus a send row. Explains copyOnSelect, questionPaneEnabled and terminalSubmit, which have their own Settings…

receptron/mulmoterminal · 289 tokens