Migrating to v8

v8 keeps the v5-to-v6 rename from quint-code to haft, keeps the v7 spec-first governance model, and removes the standalone agent, TUI, and desktop wrappers. Your existing artifacts are preserved; migration runs through haft init.

Why the rename? The name "quint" conflicts with Quint — a formal specification language by Informal Systems. To avoid confusion between the two projects, haft adopted a new name in v6: haft (the handle of an axe — the part you actually grip when doing the work).

What changed

Naming

  • Binary: quint-codehaft
  • Project directory: .quint/.haft/
  • User home: ~/.quint-code/~/.haft/
  • All slash commands: /q-*/h-*

Data model

  • Claims — decisions now carry verifiable claims with verify_after dates. Existing decisions get claims generated from their evidence during migration.
  • /h-verify replaces /q-refresh — the fifth cognitive mode actively checks claims against reality, not just evidence age.
  • 5-mode model — Understand, Explore, Choose, Execute, Verify maps to /h-frame, /h-explore, /h-compare, /h-decide, /h-verify.
  • Spec-first readiness — v8 expects TargetSystemSpec, EnablingSystemSpec, and TermMap carriers before broad governed work.

v8 surface changes

  • haft init installs host skills and MCP config for supported agents.
  • haft serve is the MCP surface used by Claude Code and Codex.
  • haft_query exposes search, status, and the fused code graph.
  • haft check is the deterministic CI governance gate.
  • The optional execution harness is alpha and Codex-only; learn the reasoning and governance loop first.

How to migrate

Update the binary, then re-run init in each project for your host:

# Install haft (replaces quint-code)
curl -fsSL https://haft.tools/install.sh | bash

# In each project directory
cd your-project
haft init

haft init detects your existing .quint/ directory and automatically:

  1. Renames .quint/ to .haft/
  2. Migrates the database from ~/.quint-code/projects/{id}/ to ~/.haft/projects/{id}/
  3. Runs schema migrations (adds claims table, updates artifact types)
  4. Generates claims from existing evidence where possible
  5. Updates project.yaml with the new schema version

All your decisions, problems, notes, and evidence are preserved.

Safe to run multiple times. haft init is idempotent — if it detects .haft/ already exists, it skips the rename and only runs pending database migrations.

Update project prompt files

If you have a CLAUDE.md (or .cursorrules, AGENTS.md, GEMINI.md) with haft-specific instructions, update the slash commands:

# Download the current reference prompt
curl -fsSL https://raw.githubusercontent.com/m0n0x41d/haft/main/CLAUDE.md > CLAUDE.md

Or manually find-and-replace in your existing file:

v5 (old) v8
quint-codehaft
.quint/.haft/
~/.quint-code/~/.haft/
/q-reason/h-reason
/q-frame/h-frame
/q-char/h-frame / /h-compare
/q-explore/h-explore
/q-compare/h-compare
/q-decide/h-decide
/q-note/h-note
/q-refresh/h-verify
/q-status/h-status
/q-search/h-search
/q-problems/h-problems
/q-onboard/h-onboard
quint-code inithaft init
quint-code board/h-status / haft check

Update CI scripts

If you have CI pipelines that reference quint-code, update them:

  • Binary name: quint-codehaft
  • Directory references: .quint/.haft/
  • Database path: ~/.quint-code/~/.haft/
  • CI governance gate: quint-code board --checkhaft sync && haft check

Verify migration

After running haft init, verify everything works:

/h-status

You should see your existing decisions, problems, and notes. If the MCP connection fails, make sure the new binary is in your PATH and restart your AI tool.

Git cleanup

After confirming migration, commit the renamed directory:

git add .haft/
git rm -r --cached .quint/   # if .quint/ was tracked
git commit -m "chore: migrate quint-code to haft v8"

Coordinate with your team. If multiple engineers work on the same repo, agree on a migration point. Once .quint/ is renamed to .haft/ in the main branch, everyone needs to update their binary and run haft init.

What if I don't migrate?

Haft detects old .quint/ directories and prompts you to run haft init. Your data is safe — it just won't work until you migrate. The old quint-code binary continues to work with v5 data if you need to roll back.