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-code→haft - Project directory:
.quint/→.haft/ - User home:
~/.quint-code/→~/.haft/ - All slash commands:
/q-*→/h-*
Data model
- Claims — decisions now carry verifiable claims with
verify_afterdates. Existing decisions get claims generated from their evidence during migration. /h-verifyreplaces/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 initinstalls host skills and MCP config for supported agents.haft serveis the MCP surface used by Claude Code and Codex.haft_queryexposes search, status, and the fused code graph.haft checkis 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:
- Renames
.quint/to.haft/ - Migrates the database from
~/.quint-code/projects/{id}/to~/.haft/projects/{id}/ - Runs schema migrations (adds claims table, updates artifact types)
- Generates claims from existing evidence where possible
- Updates
project.yamlwith 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-code | haft |
.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 init | haft 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-code→haft - Directory references:
.quint/→.haft/ - Database path:
~/.quint-code/→~/.haft/ - CI governance gate:
quint-code board --check→haft 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.