FAQ

What is Haft?

Haft is a local project-memory and reasoning layer for AI-assisted engineering. It helps a coding agent distinguish problems, options, human decisions, specifications, work, and evidence—and reconnect them to code later.

What is the current release?

v9.0.2 is current. It includes the v9.0.1 migration repair and fixes conventional monorepo scope detection without changing the v9 capability or authority boundary. v8.1.0 is the published predecessor; there was no v8.2 release.

When is Haft useful?

When the project outlives one session, several people or agents need the same rationale, a decision is expensive to reverse, evidence freshness matters, or specifications and code need durable links.

When is Haft probably unnecessary?

For throwaway scripts, obvious mechanical changes, and low-cost fixes with clear tests. Haft should not create more ceremony than the mistake it helps prevent.

Do I need to learn FPF first?

No. Ask the agent normally and use h-reason on a costly or ambiguous question. Haft retrieves the relevant source from the bundled FPF version. Learning FPF later helps you inspect and steer the agent more deeply, but it is not an installation prerequisite.

Is Haft a coding agent?

No. It plugs into an existing host. v8 removed the standalone agent, TUI, and desktop wrappers. v9 also removed haft run, haft harness, and bundled Open-Sleigh execution.

Does Haft prescribe a workflow?

No. Its 12 skills are independent entry points for different situations. A plan can still contain ordered work, but the skill list is not a process that every task must follow.

Can I use it on an existing project?

Yes. If the codebase has never used Haft, run haft init for the host you use and restart it. Once initialized, ordinary Haft upgrades need only the new binary plus a host restart: explicitly compatible database migrations activate when haft serve starts. Re-init is for changing or refreshing the host carriers. Haft installs the default memory model automatically. A simple single-scope codebase can be detected automatically; a genuinely ambiguous or multi-scope project may need you to identify the intended scope.

What does onboarding ready mean?

Only that the project profile and memory model are available. It does not say the specifications are healthy, the code is correct, or the evidence is current.

When does Haft save project memory?

When you explicitly ask to save or bind something, or when current work has a concrete later use such as handoff, replay, audit, automation, delayed evidence, or costly reversal. Empty memory and generic future usefulness are not enough.

Where is data stored?

Structured state lives in local SQLite under ~/.haft/projects/<project-id>/. Reviewable project files live under .haft/. A small local decision-summary index lives at ~/.haft/index.db.

Can a team share Haft state through git?

Partly. Readable records can travel with a pull request, and supported subsets can be imported with haft sync or haft spec sync. v9 does not provide a fully replicated team database, complete authority replay, or safe concurrent use of one ledger from several worktrees. See Teams & git.

Can the agent decide for me?

It can recommend and compare. When you directly choose one clear option for one clear subject and scope, a supported host can record that through h-decide. The agent must not turn its own recommendation, quoted text, or tool fields into your decision.

Why do specification approve, rebaseline, and reopen commands still exist?

They manage the reviewed baseline of one specification section in the current v9.0.2 runtime. They are explicit operator-controlled changes and are not inferred from review, sync, tests, or a git merge. The separate human-reviewed profile-link repair explored during v9 development was removed; compatible memory-model upgrades are automatic.

Can Haft execute commissioned work?

No. It can keep runner-neutral commission and run records for an external integration. Your coding-agent host or a separately operated runner does the work. Haft itself does not apply, merge, push, deploy, or publish it.

Which hosts are supported?

Claude Code and Codex are the stable v9 hosts. Cursor, Grok, Pi, Hermes, Zed, Antigravity, OpenCode, Gemini CLI, and Air have experimental or legacy adapters. Run haft init --help for the installed surface.

What is haft-embed?

haft-embed is an optional compatibility sidecar for older semantic-recall paths. It is not required for the v9 project-memory and FPF path, and Haft makes no claim that its dense or hybrid recall is better than FTS, rg, a pinned source file, or host search.

How do I know the host loaded the new version?

Fully restart the host, run haft version and haft doctor, and inspect the loaded MCP surface when exact identity matters. Updating files on disk does not replace a process that is already running.

What happened to quint-code?

The project was renamed to Haft in v6. Old .quint/, ~/.quint-code/, and /q-* names belong to historical migration paths, not the current product surface.