Governance substrate for AI coding agents

HAFT

haft
PROBLEM-OPS ENGINE

Make better decisions. Remember why you made them.

$ curl -fsSL https://haft.tools/install.sh | bash
See the failure mode

One project graph, across the tools you already use

Codex Claude Code Cursor Gemini CLI OpenCode Pi

Formerly quint-code

The problem

Plausible output is not a durable engineering decision.

You and your AI make consequential choices every day. The answer can look confident and still lack a frame, a fair comparison, recoverable rationale, or evidence that survives changing conditions.

  1. 01

    The problem was never framed

    You reach for Kafka before naming what is broken. Familiarity wins before the actual constraints enter the room.

  2. 02

    Comparison never happened

    The first plausible option becomes the answer. Alternatives, parity, trade-offs, and weakest links stay invisible.

  3. 03

    “Why did we make that?”

    The rationale disappears into chat history. Months later, the team reconstructs intent from code comments and git blame.

  4. 04

    “Is this still the right call?”

    Traffic, team, and requirements change while the old decision remains frozen and its supporting evidence quietly expires.

How it works

Use only the rigor the current question needs.

Haft brings the pinned FPF source into your coding agent and keeps a typed project graph only when later work needs to rely on the result. The skills are independent capabilities, not stages in a mandatory funnel.

Start with the question that is actually current.

Call /h-reason when a concern deserves a deliberate, source-supported reasoning pass. Haft retrieves the relevant versioned FPF material, applies the smallest useful method, and keeps alternatives live when the evidence is insufficient.

A reversible exchange can stay in conversation. It becomes a durable project record only when handoff, replay, authority, automation, or later verification needs an addressable result.

$ /h-reason "How should we handle cross-service transaction failures?"

Foundation

Source first. No shadow methodology.

Haft is built on First Principles Framework by Anatoly Levenchuk — a rigorous transdisciplinary architecture for thinking. Haft pins and retrieves that source instead of replacing it with a simplified catalog.

Read the FPF specification
01
Retrieval is not application.

A relevant source candidate is not yet a selected pattern, recommendation, or performed work.

02
Records must earn their cost.

Reasoning stays conversational until a real receiving use needs replay, authority, or verification.

03
Authority remains human.

Plans, generated text, and tool schemas do not silently become binding decisions or execution permission.

Frequently asked questions

Why do I need haft when there are SDD frameworks?
SDD frameworks structure specifications. Haft brings source-supported reasoning, project memory, evidence freshness, and explicit human authority gates to the work around those specifications. The two surfaces complement each other: specs describe the system; Haft preserves and checks the reasoning later work must rely on.
How is this different from ADRs?
ADRs are static markdown files you write after deciding. haft decisions are live artifacts — they have computed trust scores (R_eff) that degrade as evidence ages, expiry dates that trigger reviews, rollback plans with conditions, and they're searchable via full-text search. An ADR tells you what was decided. A haft decision tells you whether you should still trust it.
Can I use it on an existing project?
Yes. Run haft init and then /h-onboard — the agent bootstraps the typed project and software-system carriers from repository evidence. You do not need to reconstruct every historical decision before using Haft for the next current concern.
What happens when I switch between AI coding tools?
Haft stores structured graph state in a local SQLite database with git-tracked markdown carriers. It supports Claude Code, Codex, Pi, Hermes, Zed, Antigravity, Cursor, Gemini CLI, and OpenCode. Switch tools, your decisions stay. The knowledge is in your repo, not in a chat thread. Initialize Haft for the host you use; Claude Code is the default.
Isn't this overkill for small projects?
A small reversible exchange can stay in conversation. Use /h-note when a fact must survive the session, or /h-reason when the question deserves a deliberate source-supported pass. Haft does not force a full artifact lifecycle onto every choice.
Does it work for teams or solo only?
Both. The .haft/ directory is git-tracked, so decisions ship with your code in PRs. For team sync, run haft sync — each engineer pulls the latest markdown projections from git and syncs them into their local database. No shared database, no merge conflicts on binary files. Each person has a local copy that stays in sync through your normal git workflow.
Is haft good for vibe coding?
Yes, when the result must remain understandable after the chat is gone. Keep reversible exploration lightweight; use /h-reason or a narrower capability when a decision, assumption, or handoff will matter later.

From the creator of haft

ivan zakutni

First Principles Engineering

Production AI systems. Software architecture decisions that don't age like milk. The same methodology behind haft — applied to real-world engineering problems.

Deep dives, not hot takes. For engineers who ship.