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-only h-decide / h-commission per 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-embed model process across live haft serve sessions, 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_onboard to verified coverage.
  • Enforcement checkhaft check and CI exit codes.
  • Harness — optional alpha execution engine for Codex-only WorkCommission runs.