Releases: Dallenlol/fable-mode
Releases · Dallenlol/fable-mode
Release list
v1.7.0 — the closed loop: it learns your model's bad habits
- Closed-loop habit correction: the Stop hook detects discipline violations from session transcripts (re-reads after edits, repeat reads, full-file rewrites, unverified edits); the next session gets ONE targeted corrective for the worst recurring habit. Local-only, one line of context.
- Marathon tier × 3 at n=2 (Sonnet): 12/12 pass both conditions; fable-mode −35% report length, −14% turns, −8% output tokens. Haiku fable-condition record: 9/9 all-time.
- Grading self-test now covers every task (20 checks).
v1.6.1 — breakpoint clearing, provider-neutral export
- Breakpoint clearing: the state loop suggests /clear at task boundaries (done + ctx >40%), not on a timer — cached history is cheap; rebuilding context isn't. New
⟳ clear-worthystatusline chip. - Provider-neutral wording: the AGENTS.md export now degrades gracefully on harnesses without subagents/compaction — Claude, GPT, Gemini, or local models.
- Regression evidence: Haiku 7/7, first perfect sweep including the 12-file marathon task.
v1.6.0 — the state loop, marathon evals, prompt-variant testing
The state loop
/fable-mode:fable-state on — Fable maintains a .fable-state.md project memory file at the end of every substantive turn. /clear whenever the context meter runs hot; the next session auto-resumes from the file. Continuation context in ~2k tokens instead of re-billing your entire chat history every turn. Off by default, statusline shows ✎ state while active.
Also in this release
- Marathon eval tier: 12-file service fixture with a cross-file root cause — measures reading discipline where it actually compounds.
--skill-fileflag: A/B alternate SKILL.md variants; prompt changes are now measured, not guessed.fable-mode-skill.zipattached below — one-step claude.ai skill upload./fable-statsestimated-savings line, README visuals, CHANGELOG, CONTRIBUTING, issue templates, Windows notes.
v1.5.1 — eight more craftsman rules
Skill additions, all woven into the existing loop:
- One line? One line. And between two equal-size options, take the one that's correct on edge cases — less code never means a flimsier algorithm.
- Deletion over addition, boring over clever, and prefer editing an existing file over creating a new one.
- User insists on the full version? Build it — no re-arguing.
- YAGNI applies to tests too: one minimal check, no frameworks or per-function suites unless asked.
- 'skipped X — add when Y' one-line reporting convention for deliberate omissions.
- Requested explanation is never debt — brevity rules bind only unrequested prose.
AGENTS.md regenerated to match.
v1.5.0 — usage-limit meters, setup guide, the Fable persona
- Usage-limit meters in the statusline: native 5-hour and 7-day plan quota bars (Pro/Max) with reset times — yellow at 50%, red at 80%. Context meter now prefers Claude Code's official
context_windowfields with a transcript fallback for older CLIs. - INSTALL.md: complete setup guide — plugin, statusline, level pinning, stats, claude.ai upload, AGENTS.md export, updating, uninstalling, troubleshooting.
- The plugin is now 'Fable' (displayName): a persona — active every response, released with
fable off. - Sharper craftsman mechanics in the skill: rung zero ('does this need to exist at all?'),
fable:shortcut comments naming the ceiling and upgrade path, ship-the-minimal-version-and-offer-the-full-one, and an anti-drift persistence clause.
v1.4.0 — statusline HUD + /fable-level
- Statusline HUD: opt-in terminal status bar showing fable level, model, branch, live context meter with tokens remaining (yellow 60% / red 85%), session output tokens, cost, duration, lines changed. Install:
scripts/install-statusline.sh(refuses to clobber an existing statusline without--force). ~50ms render, local files only. - /fable-level command: pin
lite|full|deepor return toautofrom chat; persists across sessions. - SessionStart hook now keeps the installed statusline copy in sync with plugin updates.
v1.3.0 — auto-routed levels, local stats, portable export, reproducible evals
What's new
- Intensity levels with auto mode — fable-mode silently routes each task to lite / full / deep; no classification needed from the user. Pin a level in chat (
fable level: deep) or persistently via~/.claude/fable-mode/level. Misrouted tasks escalate mid-task. - Local token stats — a Stop hook logs per-session usage to the plugin data dir (local only, no telemetry). Ask
/fable-mode:fable-statsfor totals and trends. - AGENTS.md export — the same operating style, generated from the skill, for Cursor / Codex / Zed / any AGENTS.md-aware tool.
- Reproducible eval harness —
evals/ships six graded A/B tasks (root-cause instinct, triage, reuse, YAGNI, two green-test-suite traps) plus a stdlib-only runner with real token accounting, and a 14-check grading self-test. - CI — manifests, hook scripts, skill frontmatter, AGENTS.md sync, and the grading self-test validate on every push.
- Skill additions: prompt-cache hygiene, long-session state notes, numeric uncertainty calibration.