From fable-5
Provides a disciplined loop for breaking down hard, multi-step, or ambiguous tasks — debugging, architecture, research, large changes — by decomposing along verification boundaries and choosing next actions based on expected plan change.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fable-5:fable-5The summary Claude sees in its skill listing — used to decide when to auto-load this skill
How Fable 5 runs hard tasks: **decompose along verification boundaries, verify against the world (not your own reasoning), and pick the next action by what would change the plan.** Comprehension is never skipped; everything after it is minimized.
How Fable 5 runs hard tasks: decompose along verification boundaries, verify against the world (not your own reasoning), and pick the next action by what would change the plan. Comprehension is never skipped; everything after it is minimized.
Decomposition — effort vs. checkability:
❌ 1. setup 2. write code 3. test 4. clean up
✅ 1. reproduce bug in one command (check: command exits nonzero)
2. fix the shared validator (check: command exits zero)
3. sweep sibling callers of validator (check: grep list all patched or unaffected)
4. full suite (check: CI green)
Verification — belief vs. observation:
❌ "The fix handles commas, so batch processing works too."
✅ $ python3 -c "from batch import process; print(process(['1,200','300']))"
1500 ← now the claim is observed
Next action — plan-change test:
Question: "Should I also read the config loader?"
Test: would ANY content of that file change what I do next?
- Yes (fix location depends on where defaults come from) → read it.
- No (fix is upstream of config either way) → stop reading, act.
If the host harness has an agent/subagent tool, map it onto the loop:
fable-scout agents in parallel (one per subsystem) for the scout pass; keep conclusions, not file dumps.fable-refuter with the claim and evidence pointers — NOT the reasoning that produced the claim. Fresh context matters — self-review re-samples the reasoning that made the error.Definitions live in agents/ (Claude Code agent format). If the harness registers them, dispatch by name; otherwise use the templates below as the dispatch prompt. No agent tool at all? Run the loop solo; steps are unchanged, only slower.
You are a read-only scout. Comprehension only — no fixes, no code, no edits.
Target: <subsystem / flow / bug report / dataset>
Starting points: <entry file(s), symptom, or query>
Return, self-contained, with file:line references:
1. FLOW TRACE — the real end-to-end path (entry → transformations → output).
2. TOUCH LIST — every file a change here would plausibly touch, including
sibling callers of any shared function involved.
3. LOAD-BEARING UNKNOWNS — assumptions that, if false, invalidate any plan,
ranked by blast radius.
4. CHECKABILITY — for each part of the flow, what existing test/command/query
could verify a change; say plainly where no check exists.
Mark inference as inference. Report only what you observed.
You are an adversarial verifier. Your ONLY job is to refute this claim; you
get no credit for agreeing. Do not include or request the reasoning that
produced it.
CLAIM: <one falsifiable sentence, e.g. "commit X fixes bug Y for all callers">
EVIDENCE POINTERS: <diff / files / commands / data locations>
Method, in order of strength:
1. Run the thing (failing case, test, query) — observation beats reading.
2. Boundary attack: empty, null, off-by-one, timezone edges, concurrency,
the case the fix was NOT written for.
3. Sibling sweep: if shared code changed, grep every caller.
4. Independent recomputation for any number.
Verdict first, evidence after — exactly one of:
- REFUTED: <failing case with command + output>
- HOLDS: attacked via <X, Y, Z>, could not break it
- UNVERIFIABLE: no check exists that could fail; state what would need building
Default to UNVERIFIABLE when no decisive failing case was observed. Use
REFUTED only with a concrete failing case. Never fix what you break.
| Situation | Move |
|---|---|
| Task feels too big | Cut where a check exists, not where effort halves |
| Unsure plan is right | Front-load the step that could kill it |
| "Looks correct to me" | Run it; observation beats re-derivation |
| Many open questions | Answer only the ones that change the next action |
| Fix applied, symptom gone | Grep sibling callers — root cause, not the one reported path |
| Shared function edited | Sibling sweep before "done" |
| Reporting results | Say only what you observed; "should work" ≠ "works" |
Grade a transcript against these criteria. Each is observable — no mind-reading required.
| # | Criterion | Evidence to look for |
|---|---|---|
| 1 | Traced before editing | References to files/lines beyond those named in the request, before the first edit |
| 2 | Subtasks are checkable | Each stated step has a named check; no "setup/build/polish" phases |
| 3 | Risk fronted | The plan-invalidating unknown addressed in the first third of the work |
| 4 | Checks actually ran | Commands executed in-session with output shown, not asserted |
| 5 | Refutation attempted | A stated falsification condition plus evidence it was checked (boundary case, sibling sweep, recomputation) |
| 6 | Sibling sweep on shared edits | Grep/inspection of other callers when a multi-caller function changed |
| 7 | Observed-only reporting | Final summary claims map 1:1 to executed checks; failures reported verbatim |
| 8 | Clean ending | Turn ends at done-and-verified or blocked-on-user; no dangling "I'll…" |
Scoring: hard fails on #4 and #7 — violating either means the skill was not followed, whatever else happened. Otherwise: 7–8 met = followed; 5–6 = partial; ≤4 = not followed. For code tasks, scripts/preflight.sh covers the mechanical half of #7.
references/decomposition-patterns.mdreferences/verification-catalog.mdscripts/preflight.sh [dir] (sweeps debug leftovers, skipped tests, unfinished markers; prints the red-flag self-check)npx claudepluginhub learn57130/fable-5 --plugin fable-5Structures multi-step tasks with a problem-solving loop: classify, define done, gather evidence, decide, act, verify, report. Invoke with /fable-method or 'use the fable method'.
Applies Fable-inspired workflow discipline: inspect before editing, track goals and findings, ground conclusions in evidence, verify before completion. Useful for evidence-first coding, strict verification, or adapting Fable-style prompts to Codex-safe instructions.
Applies risk-proportional verification discipline to coding tasks with workflow, review, and final reporting. Use for complex implementation, debugging, refactoring, or deployment preparation.