by m0n0x41d
Engineering decisions engine that know when they're stale. Frame, compare, decide — with evidence decay and parity enforcement. For Claude Code, Cursor, Gemini CLI, Codex and more.
# Add to your Claude Code skills
git clone https://github.com/m0n0x41d/haftLast scanned: 4/29/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-04-29T06:23:48.487Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}haft is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by m0n0x41d. Engineering decisions engine that know when they're stale. Frame, compare, decide — with evidence decay and parity enforcement. For Claude Code, Cursor, Gemini CLI, Codex and more. It has 1,365 GitHub stars.
Yes. haft passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/m0n0x41d/haft" and add it to your Claude Code skills directory (see the Installation section above).
haft is primarily written in Go. It is open-source under m0n0x41d on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh haft against similar tools.
No comments yet. Be the first to share your thoughts!
formerly quint-code
FPF governance substrate for AI-assisted software delivery.
Your agents (Claude Code, Codex) write code fast. Most repositories are not ready for serious harness engineering: the target system is underspecified, the enabling system is implicit, term maps are missing, and runtime evidence is detached from the spec. Haft makes the project harnessable before it scales execution.
Haft is a governance substrate that makes a repository harnessable for principal-led FPF engineering work. It turns problem frames, comparisons, decisions, commissions, and evidence into auditable artifacts, with enforcement at the kernel boundary.
Specify → Think → Run → Govern.
Not a coding agent. Not a documentation generator. The handle between the tool and the hand: the part that turns raw model capability into formal specification, governed decisions, bounded commissions, and evidence-backed engineering work.
Haft is consumed through three surfaces over one .haft/ artifact graph:
/h-frame /h-decide /h-verify ... run manuallyhaft problem, haft solution, haft decision, ...) — manual access, no LLM in the loophaft serve) — programmatic access for any LLM agent over the Model Context ProtocolThe kernel MCP server is the cross-host enforcement surface: it validates arguments server-side and returns structured errors for FPF violations (missing required fields, parity gaps, weakest-link omissions, predictions without verify_after). Skills carry the procedure; the kernel carries the gates.
v8 dropped the standalone interactive agent (haft agent), the TUI, and the
desktop wrappers. Haft no longer competes with general coding agents on the
runtime surface — it adds governance discipline on top of whichever agent you
already use. The pivot, with parity-compared variants, rollback plan, and
falsifiable predictions, is recorded in
.haft/decisions/dec-20260525-v8-architecture-pivot-from-standalone-agent-to-g-bbe45cb7.md.
Upgrading from v7? See MIGRATION-v8.md — the upgrade checklist
plus what was dropped (haft agent, TUI, desktop, v7 helper commands).
FPF by Anatoly Levenchuk — a rigorous, transdisciplinary architecture for thinking.
The skill set (h-frame, h-explore, h-compare, h-decide, h-verify, and
the full catalog below) gives your agent an FPF-native operating system for
engineering decisions: framing before solutions, characterization before
comparison, parity enforcement, evidence with congruence penalties,
weakest-link assurance, and a cycle that reopens itself when evidence ages or a
measurement fails.
The framing and comparison skills auto-trigger on operator context. The binding
step (h-decide, h-commission) is manual-only per the Transformer Mandate:
agents frame and compare; the human principal records the binding choice.
haft fpf search (and haft_query(action="fpf") from MCP) searches the indexed
FPF specification. Retrieval is hybrid: exact pattern id first, then keyword
(FTS5) fused with semantic recall over baked section vectors, so a reworded "how
do I think about X" finds the pattern that answers it. The vectors ship inside
the binary; semantic recall degrades to keyword when the embedding sidecar is
absent.
curl -fsSL https://raw.githubusercontent.com/m0n0x41d/haft/main/install.sh | bash
The install URL still points at the historical quint-code path. The installed
binary is haft.
Then in your project, init with your host-agent flag:
haft init # Claude Code (default)
haft init --local # Claude Code, repo-local commands
haft init --codex # Codex CLI / Codex App
haft init --all # Claude Code + Codex
Claude Code and Codex are the supported hosts. Cursor, Gemini CLI, and OpenCode
have experimental config flags (--cursor, --gemini, --opencode) while
their runtime and docs converge.
Cursor: after init, open Settings → MCP → find haft → enable the toggle.
Cursor adds MCP servers disabled by default.
The binary is the same; only the MCP config and command/skill install locations differ.
| Tool | MCP config | Commands / prompts | Skills |
|---|---|---|---|
| Claude Code | .mcp.json (project root) |
~/.claude/commands/ (or .claude/commands/ with --local) |
~/.claude/skills/ (15 skills) |
| Codex CLI / App | .codex/config.toml |
~/.codex/prompts/ (or .codex/prompts/ with --local) |
~/.agents/skills/ (15 skills) |
Project-scoped configs (.mcp.json, .codex/config.toml) use portable
project-root paths, so they are safe to commit for shared repositories.
Existing project? Run /h-onboard after init. It builds a parseable
target-system spec, enabling-system spec, term map, and spec-coverage graph —
not just a codebase summary.
Check spec carriers locally:
haft spec check
haft spec check --json
haft spec check is deterministic L0/L1/L1.5 only: it parses fenced
yaml spec-section blocks, checks required structural fields, validates known
carrier shapes, and confirms the term-map carrier parses. It makes no L2
semantic judgment, no LLM review, and no L3 runtime claim.
| Tool | What it does |
|---|---|
haft_note |
Micro-decisions — atomic facts with typed anchors, validation, auto-expiry |
haft_problem |
Frame problems, declare comparison dimensions with indicator roles |
haft_solution |
Explore variants with diversity check, compare under parity |
haft_decision |
Decision contracts: invariants, claims, evidence, baseline lifecycle |
haft_commission |
WorkCommission lifecycle for execution harnesses |
haft_refresh |
Lifecycle management for every artifact kind |
haft_query |
Search, status dashboard, code graph (callers/callees/impact/explore — each reached symbol fused with the decisions governing it), FPF spec search |
haft init| Skill | Mode | What it does |
|---|---|---|
| h-reason | auto (umbrella) | Full FPF reasoning palette in one entry — framing, exploration, comparison, verification, notes, plus slideument patterns (Goldilocks, NQD, BLP, Scaling-Law Lens). Manual /h-reason always works; auto-fires on broad "let's think this through" signals where no specialized skill matches sharply. |
| h-frame | auto | Frame a problem with B.4.1 stabilize + problem typing + umbrella-word repair |
| h-diagnose | auto | Diagnose a failure with parallel hypothesis testing (one Agent subagent per hypothesis to prevent anchoring) |
| h-explore | auto | Generate distinct candidate variants with NQD diversity discipline (parallel direction-assigned agents) |
| h-compare | auto | Fair comparison with dim-wise parallel scoring + Pareto front (not a scalar winner) |
| h-decide | manual | Record a binding DecisionRecord with full DRR — Transformer Mandate (disable-model-invocation) |
| h-verify | auto | Baseline → measure → evidence loop with drift detection |
| h-status | auto | Read-only project FPF state dashboard |
| h-onboard | auto | First-frame ceremony for projects new to haft |
| h-spec-cover | auto | Spec-coverage check with blind/stale module triage |
| h-note | auto | Lightweight micro-decision recording |
| h-commission | manual | WorkCommission lifecycle — manual per Transformer Mandate (disable-model-invocation) |
| h-abduct | subroutine | Pure B.5.2 abductive four-step (frame prompt → ≥3 rivals → filters → prime) |
| h-boundary-unpack | subroutine | A.6.B L/A/D/E decomposition of boundary statements |
| h-semio-review | subroutine | X-FANOUT-AUDIT — concept-rename / spec-consistency audit |
Auto-triggering skills fire when their description matches operator context.
Manual-only skills (h-decide, h-commission) require explicit invocation per
the Transformer Mandate — binding artifacts come from the human principal, not
the agent. Subroutines (h-abduct, h-boundary-unpack, h-semio-review) are
called from other skills or invoked explicitly when working a specific FPF
sub-discipline.
Routing reliability is testable: haft check routing runs 40 golden prompts
(current pass rate 82.5%).
Attach evidence with haft_decision(action="evidence", ...). Evidence carries
formality levels (F0–F3), congruence levels (CL0–CL3), and expiry dates. Trust
scores (R_eff) degrade as evidence ages; stale evidence triggers refresh. Use
haft_decision(action="measure", ...) for post-implementation verification.
The harness implements code from DecisionRecord artifacts under a real Codex
agent in an isolated workspace. It is beta, and the execution agent is
Codex only — there is no Claude execution path. Single-commission
haft harness run is the trustworthy operator path; drain mode and auto-apply
are validated on docs-class commissions, so treat them as beta on
production-code commissions.
Two entry points spawn the engine. haft run implements one decision directly:
haft run dec-20260414-001
It reads the decision's invariants, claims, and affected files from the graph, builds a prompt with full reasoning context, spawns a Codex agent with the invariants as guardrails, and takes a baseline snapshot on completion.
haft harness runs commissioned work through Open-Sleigh, with scope guards
(allowed_paths / forbidden_paths),