haft v8
v8 is a pivot. Earlier versions tried to be a place you worked — a standalone interactive agent, a TUI, a desktop app over Haft Core. v8 drops all three. Haft no longer competes with general coding agents on the runtime surface. It becomes a governance substrate that adds FPF discipline on top of whichever coding agent you already use.
The rationale, with parity-compared variants, a rollback plan, and falsifiable
predictions, is recorded as a DecisionRecord in the repo:
dec-20260525-v8-architecture-pivot-.... The FPF reasoner critique
confirmed a Bitter-Lesson-Preference violation in the old standalone direction.
Three surfaces, one artifact graph
Haft is one kernel consumed through three surfaces over one .haft/
artifact graph. The surfaces dispatch typed actions to the kernel; they do not
invent semantics.
- Skills + slash commands in your coding agent (Claude Code,
Codex, OpenCode, Cursor) — workflow skills auto-trigger;
/h-frame /h-decide /h-verify ...run manually. - CLI (
haft problem,haft decision,haft commission, ...) — manual access, no LLM in the loop, CI-friendly. - MCP server (
haft serve) — programmatic access for any LLM agent over the Model Context Protocol.
The kernel MCP server is the cross-host enforcement surface. It validates arguments server-side and returns structured errors for FPF violations — missing required fields, parity gaps, weakest-link omissions, predictions without a verify step. Skills carry the procedure; the kernel carries the gates.
What was dropped
haft agent— the standalone interactive agent- The TUI (the Bun / OpenTUI / SolidJS bundle from the prior 8.0 release)
- The desktop wrappers (Tauri / Wails) — no desktop app in v8
- v7 helper commands that only made sense for the standalone runtime
Existing .haft/ artifacts (decisions, problems, notes, specs) are
forward-compatible. Upgrading from v7? See
MIGRATION-v8.md.
The loop: Specify → Think → Govern
The governance model from v7 carries over intact. The pivot changed the surfaces, not the discipline. A repository starts with a parseable ProjectSpecificationSet (TargetSystemSpec, EnablingSystemSpec, TermMap). Decisions and evidence then hang off that spec instead of floating as chat history.
repository
→ .haft initialized
→ TargetSystemSpec + EnablingSystemSpec + TermMap (Specify)
→ h-frame / h-explore / h-compare / h-decide (Think)
→ h-verify / haft check / code-context recall (Govern)
Optional alpha track:
→ WorkCommission → Open-Sleigh runtime (Run, Codex only) What's new in v8
- The three-surface model — skills + CLI + MCP — replaces the standalone runtime.
- 15 skills installed by
haft init, with manual-onlyh-decide/h-commissionper the Transformer Mandate. - FPF spec search is hybrid: exact pattern id, then keyword fused with semantic recall over baked section vectors. A reworded "how do I think about X" finds the pattern that answers it. See Reasoning & FPF.
- v8.1 shares one local
haft-embedmodel process across livehaft servesessions, so semantic recall no longer loads a separate ONNX runtime per MCP server. - The kernel MCP returns structured errors as hard enforcement gates.
Where to next
- Install & init — get a project onboarded for a supported host.
- Reasoning & FPF — the skills, the seven MCP tools, and semantic spec search.
- Spec onboarding — the typed flow from
needs_onboardto verified coverage. - Enforcement check —
haft checkand CI exit codes. - Harness — optional alpha execution engine for Codex-only WorkCommission runs.