Fable Validate Loop logo

Fable Validate Loop

Community
richkuo
fable-validate-loop

Use when the user asks to validate a GitHub issue with Fable 5.1 and then autonomously drive it to a reviewed PR in one shot — "fable-validate-loop", "fable validate and work on #N", "fully automate issue #N with fable". Runs fable-validate, auto-applies its update-issue edits when the verdict calls for it, has fableplan produce and post a Fable 5.1 implementation plan (skipped only when the verdict's title-floored signal reads `plan: no`, which means the title score and the recomputed score are both below 75, with no safety flags and no `plan first: Yes` stamp in the issue's Execution block), then hands off to work-on-issue-loop — stopping instead when validation flags the issue as too large, architecturally infeasible, or already addressed by an existing PR, or recommended for closure as completed or invalid, when a step holds for a human decision, or when the issue edit does not land.

Overview

Publisherrichkuo
Repositoryrk-skills
Skill namefable-validate-loop
Stars
50
Forks
8
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by richkuo on GitHub. Read the source before you install it.

Installation

Install the Fable Validate Loop AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/richkuo/rk-skills/tree/main/skills/fable-validate-loop
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/richkuo/rk-skills.git /tmp/rk-skills
mkdir -p .claude/skills
cp -r /tmp/rk-skills/skills/fable-validate-loop .claude/skills/fable-validate-loop
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Fable Validate Loop in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Fable Validate Loop on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Fable Validate Loop is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

fable-validate-loop

Chain fable-validate → (conditional) update issue → (conditional) fableplan → work-on-issue-loop into one unattended run. Parse each skill's output and proceed where the interactive skill would wait for the user, except at the STOP rows below.

Do not skip or reorder the chain. Validation gates planning, and the plan gates implementation. The only sanctioned skip is the step-4 score gate. Every other step of each skill still runs.

Input

Same as fable-validate: issue URL, #<N> / <N> / owner/repo#N, or nothing (the issue named, validated, planned, or filed in this session; with none, stop and ask). Never pick an issue from a list.

Optional targetBranch ({ issue, targetBranch } or a prose "target branch ") passes unchanged to every validate, plan, and build step; work-on-issue step 1 ("Target") owns its validation.

Steps

1. Run fable-validate

Invoke fable-validate (Skill tool) for the issue and let it run fully. It emits the standard verdict block:

**#<N>: Update issue description? <Yes|No>**  ·  Complexity: <score>/100 — Capability <k> (Risk <r>, Uncertainty <u> — <driver>); Volume <v> (Scope <s>, Coupling <c>, Verification <x>) · plan: <yes|no>  ·  Scope: <OK | too large — split/umbrella/narrow>

A Close issue? verdict or a Validation blocked line takes the block's place (validate-issue step 8); step 2 stops on both. Parse it yourself. Record the resolved issue as the full reference owner/repo#N: the repository from the user's reference (URL or owner/repo#N), else gh repo view --json nameWithOwner -q .nameWithOwner in the current checkout. Every later step and every skill this chain invokes gets that full reference and targets exactly this issue. A bare number resolves against the current checkout, so no handoff passes one.

2. Scope and decision gate

First check the verdict's Scope field, Architecture section, and Concerns (for an already-addressing PR), and the state fable-validate and fable-dispatch ended in. Rows (a) to (c) are Fable validation only: a chain that validates with plain validate-issue does not apply them.

ConditionAction
Scope: too large (split / umbrella / narrow flagged)STOP. Report the disposition and proposed parts; splitting is a human call.
Validation blocked (validate-issue step 8: no completed-verdict line)STOP. Report the missing input; an incomplete validation is never approval to build.
Close issue? Yes — Completed or Close issue? Yes — Invalid (validate-issue step 8)STOP. Report the reason and its evidence. Closing the issue is a human call: never close it, edit it, or build.
Architecture marked InfeasibleSTOP. Report the infeasibility and the "Optimal direction" note.
A merged PR already implements the fixSTOP. Report the PR and the close/repurpose recommendation.
An open PR is already addressing the issueSTOP. Report the overlapping PR; supersede/join/wait is a human call.
(a) fable-validate step 3 found the verdict structurally wrong and held it for the userSTOP. Relay what is off. Do not re-dispatch or continue on the verdict.
(b) The dispatch failed a second time on the Agent path (fable-dispatch section 7)STOP. Relay the failure report. Do not re-dispatch or validate the issue yourself.
(c) The section 7 snapshot diff shows that the subagent wroteSTOP. Relay the changed paths. Do not revert them or continue on that tree; the user decides.

Otherwise continue.

3. Apply the update-issue edits, if called for

On Update issue description? Yes, apply the edits now, before fableplan, per fable-validate step 5 (validate-issue step 11 and skills/validate-issue/issue-editing.md), from the current checkout, against the step 1 owner/repo#N. The stacked attribution line is Validated with LLM: <served model> | <accepted tier> | Harness: <harness> | fable-validate-loop: the model and effort that fable-validate step 2 recorded, and the harness running the session per fable-dispatch section 6. A delta skill that reuses this step substitutes its own suffix and, when it validates on the session model, that model and tier. On No, go to step 4.

Continue only when the editing procedure's "Verify the saved issue" read-back shows the corrected title, the first complexity line, and the appended footer line.

ConditionAction
The gh issue edit call failed, the editing procedure stopped with a prepared correction (newer edits kept arriving), or the read-back does not show the corrected title, complexity line, and footerSTOP. Report the prepared correction and what the read-back showed. Do not plan or build.

4. Run fableplan, planning phase only

Score gate: skip fableplan and go straight to step 5 only when the verdict signal is plan: no (validate-issue step 8 emits it only when the title score and the recomputed score are both below 75) and neither override below applies. Never read the raw Complexity: value for this gate; the title score is the floor. Safety carve-out: if the validation flags money, data integrity, security, or an auto-protective mechanism anywhere in its findings, run fableplan regardless of score. Stamped plan flag: if the issue's ## Execution block, read as the issue stands after step 3 (gh issue view <N> -R <owner>/<repo> --json body), stamps plan first: Yes (or the legacy fableplan first: Yes), run fableplan regardless of score. For an unconditional plan use fable-validate-fableplan-loop.

Top-band note: the signal is yes for every score of 75 or higher, so band-3 issues always plan here. Implementation runs on the session model, so in this chain Fable 5.1 involvement ends with the validation and the posted plan.

Otherwise invoke fableplan (Skill tool) for the step 1 owner/repo#N under its "Planning-phase-only invocation" section, with harness suffix fable-validate-loop in the posted footer (a delta skill that reuses this step substitutes its own name). Give the planner the validation verdict alongside the issue; the plan must respect the verified/refuted claims, the Optimal-direction note when architecture was Underspecified, and the 5c concerns. Keep the plan's scratchpad file for step 5. On a structurally wrong plan, a fableplan dispatch failure after its internal retry, or a snapshot diff that shows the planning subagent wrote, stop and report per that section; never implement unplanned.

5. Hand off to work-on-issue-loop

Invoke work-on-issue-loop (Skill tool) with the step 1 owner/repo#N passed explicitly. Point it at the plan's scratchpad file and the posted ## Implementation plan (<model>) comment, and tell it deviations follow work-on-issue step 2's plan-deviation policy and must each be named in the PR body. Do not narrow that policy here. If the score gate skipped step 4, hand off the issue alone and note the skip.

6. Report

Relay work-on-issue-loop's final summary (PR URL, review cycles, final verdict), prefixed with one line for the head of the chain: scope gate passed, issue updated or not, plan posted (comment URL) or skipped by the score gate. On a STOP row, report the row and its evidence in place of the summary. Cap the whole report at 55 words and 5 sentences, plain simple English in ASD-STE100, per the Response Style rules in CLAUDE.md/AGENTS.md.

Red Flags — STOP

SituationAction
Tempted to skip validation or planning and jump to implementationNever reorder; the only sanctioned skip is the step-4 score gate
Scope: too large, Architecture Infeasible, a Close issue? verdict, or a PR already addressing the issueStop and report per step 2
fable-validate held the verdict for the user, a dispatch failed twice, or a snapshot diff shows a writeStop and report per step 2 rows (a) to (c)
Tempted to wait for a literal user reply to the verdict's → next-step lineParse the verdict yourself and proceed per the step rules. This row covers only that next-step prompt; every STOP row in steps 2 to 4 and in fableplan's planning-phase-only section outranks it
Handing off a bare issue numberPass the step 1 owner/repo#N to every invoked skill
Verdict says Update issue description? YesApply the edits before fableplan runs, and continue only when the read-back confirms them (step 3)
fableplan's sanity-check finds the plan structurally wrong, its dispatch fails after the retry, or its snapshot diff shows a writeStop and report per fableplan's planning-phase-only section; never hand a broken plan to work-on-issue-loop, and never re-plan yourself

Frequently asked questions

What does the Fable Validate Loop AI skill do?

Use when the user asks to validate a GitHub issue with Fable 5.1 and then autonomously drive it to a reviewed PR in one shot — "fable-validate-loop", "fable validate and work on #N", "fully automate issue #N with fable". Runs fable-validate, auto-applies its update-issue edits when the verdict calls for it, has fableplan produce and post a Fable 5.1 implementation plan (skipped only when the verdict's title-floored signal reads `plan: no`, which means the title score and the recomputed score are both below 75, with no safety flags and no `plan first: Yes` stamp in the issue's Execution bloc...

Why use Fable Validate Loop on TypingMind?

Because you install it once and use it with any model. Fable Validate Loop is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Fable Validate Loop in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/richkuo/rk-skills/tree/main/skills/fable-validate-loop. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Fable Validate Loop?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Fable Validate Loop?

As many as you like. As long as a model supports skills, you can use Fable Validate Loop with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Fable Validate Loop AI skill free?

Yes. It is published on GitHub by richkuo under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇