Migrating from v5 to v6
Version 6.0 renames quint-code to haft, introduces the 5-mode model, and adds claim-aware
decisions. Your data is preserved — migration is handled automatically by 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, v6 adopts a new name: 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.
New features
haft sync— team workflow, syncs git-tracked markdown into local DBhaft agent— standalone TUI runtime, no external AI tool required- Knowledge graph — file-to-decision mapping with invariant injection
- Desktop app (pre-alpha) — visual dashboard
How to migrate
Update the binary, then re-run init in each project:
# Install haft (replaces quint-code)
curl -fsSL https://quint.codes/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 latest reference prompt
curl -fsSL https://raw.githubusercontent.com/m0n0x41d/quint-code/main/CLAUDE.md > CLAUDE.md Or manually find-and-replace in your existing file:
| v5 (old) | v6 (new) |
|---|---|
quint-code | haft |
.quint/ | .haft/ |
~/.quint-code/ | ~/.haft/ |
/q-reason | /h-reason |
/q-frame | /h-frame |
/q-char | /h-char |
/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 | haft board |
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 v6" 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?
The haft 6.0 MCP server 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.