teixeirazeus/fablize-for-hermes
This project adapts fablize's verified procedures — verification grounding, multi-story evidence gating, investigation protocol, and early-stop prevention.
fablize-for-hermes is a port of the fablize procedure system designed to improve task completion and verification within the Hermes Agent ecosystem. It implements a structured behavioral ruleset that enforces multi-step task decomposition, evidence-based checkpoints, and systematic investigation protocols for debugging. By utilizing a Python-based goal engine and specific verification packs, the project ensures agents ground their claims in tool results rather than ending tasks prematurely. This framework helps maintain procedural discipline during complex coding, UI rendering, and logic tasks.
- Implements multi-story task decomposition with mandatory evidence-based verification gates.
- Provides a systematic investigation protocol for reproduction and causal debugging.
- Includes a Python goal engine for persistent task state management.
full readme from github
English · 简体中文 · Português (BR)
fablize-for-hermes — run like Fable, on Hermes Agent
A port of fablize for the Hermes Agent ecosystem. This project adapts fablize's verified procedures — verification grounding, multi-story evidence gating, investigation protocol, and early-stop prevention — from Claude Code's plugin system to Hermes Agent's skill system.
fablize makes any agent see a task through to the end — with evidence and verification — as procedure, not as luck.
The origin
fablize was born from a controlled comparison of Claude Opus and "Fable 5" (19 A/B runs + 26 real sessions, ~1,500 tool calls). The finding: on closed, answer-bearing work (code, logic, builds) the two models were effectively tied. The gap was in depth — following an implication one step further — and that turned out to be model capability, not injectable.
But the procedure of good work — actually running what you build, decomposing multi-step tasks with evidence checkpoints, investigating bugs systematically — does transfer. fablize ships only the procedures whose effect was verified.
What transfers and what doesn't
| Trait | Transferable? | How fablize-for-hermes does it |
|---|---|---|
| Verification grounding (run & observe the artifact) | ✅ | Skill section 3 — run in real renderer, observe output, fix, re-run |
| Multi-story completion + evidence gate | ✅ | scripts/goals.py — decompose, checkpoint, refuse completion without proof |
| Systematic investigation (reproduce → hypotheses → causal chain) | ✅ | Skill section 2 + packs/investigation-protocol.txt |
| Early-stop prevention | ✅ | Skill foundation rule: no promises without tool calls |
| Out-of-spec defect discovery | ❌ not possible | Capability — the model finds it, or it doesn't |
| Open-ended creative detail | ❌ not possible | Capability — shows only where there is no fixed answer |
| Self-driven propagation depth | ❌ not possible | Capability — directed propagation transfers; self-started depth does not |
What's included
1. Hermes Agent skill (skills/fablize/SKILL.md)
The core behavioral ruleset, structured as a Hermes Agent skill (YAML frontmatter + markdown). Covers:
- Foundation rules — always-on: lead with outcome, ground claims in tool results, no early stops, confirm destructive actions
- Multi-story loop — decompose 2+ story tasks → complete with evidence → verification gate on the final story
- Deep investigation — reproduce → 3+ competing hypotheses → trace causal chain → verify before/after → report rejected hypotheses
- Verification grounding — run render/executable artifacts, observe, fix, re-run before declaring done
- Capability ceiling — escalate honestly when the model's ceiling is the blocker
2. Goal engine (scripts/goals.py)
A self-contained, stdlib-only Python script for multi-story decomposition with a
verification gate. State persists in ~/.hermes/fablize/ and survives session death.
goals.py create --brief "Build a dashboard" \
--goal "design::Create the HTML layout" \
--goal "implement::Add chart visualizations" \
--goal "verify::Run and verify the dashboard renders correctly"
goals.py next
# ... work this story ...
goals.py checkpoint --id G001 --status complete --evidence "Layout created with sidebar and main panel"
goals.py status
3. Packs — contextual discipline files
packs/verification-grounding-pack.txt— The grounding loop: run, observe, fix, re-run. For HTML, SVG, games, UI, charts, animations.packs/investigation-protocol.txt— The systematic debugging protocol: reproduce, competing hypotheses, causal chain, verify before/after.
4. Setup scripts (setup/)
setup.sh [--skill-only|--local|--global]— Install the skill into Hermes and optionally inject the operating block intoAGENTS.mdorCLAUDE.mduninstall.sh [--skill-only|--local|--global|--all]— Reverse the setup
Differences from original fablize
| Aspect | fablize (original) | fablize-for-hermes |
|---|---|---|
| Platform | Claude Code plugin | Hermes Agent skill |
| Routing | UserPromptSubmit hook via hooks.json |
Skill content — agent loads and applies matching discipline |
| Early-stop | finish-the-work.sh Stop hook (JSON transcript) |
Foundation rule in skill — agent self-enforces |
| State dir | ./.fablize/ (per-project) |
~/.hermes/fablize/ (Hermes-wide, survives sessions) |
| Scripts | In scripts/ — run from repo root |
Same scripts, adapted for Hermes paths |
| Setup | Injects into CLAUDE.md |
Installs as Hermes skill + optionally injects block |
Install
Quick install (skill only)
git clone https://github.com/teixeirazeus/fablize-for-hermes.git
cd fablize-for-hermes
bash setup/setup.sh --skill-only
Then load the skill in your Hermes session:
skill_view(name='fablize')
Full install (skill + always-on block)
bash setup/setup.sh --local # injects block into ./AGENTS.md
bash setup/setup.sh --global # injects block into ~/.claude/CLAUDE.md
Uninstall
bash setup/uninstall.sh --all
How it behaves
- Trigger: load the
fablizeskill, or trigger inline when the agent detects 2+ stories, debugging, or render artifacts - 2+ stories → decompose + verification gate via
goals.py - Debugging → investigation protocol (reproduce → hypotheses → causal chain)
- Render artifact → verification grounding (run → observe → fix → re-run)
- Hard task → adaptive thinking + escalate to stronger model if stuck
- Capability ceiling → escalate honestly (the harness does not fake capability)
Honest limits
- It cannot raise model capability. Open-ended creative quality and self-driven discovery are out of reach — that is a model-choice decision, not a harness one.
- The effect numbers come from the original fablize small-family self-measurement. The direction is solid; the decimals are not asserted.
- The early-stop rule relies on agent self-enforcement, not a deterministic hook. It is a guideline, not a guard.
License
MIT — same as the original fablize. The upstream fablize by fivetaku is MIT licensed. This port adapts the design and procedures to the Hermes Agent ecosystem.