{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github-m0n0x41d--haft","slug":"m0n0x41d--haft","name":"haft","type":"agent","url":"https://quint.codes","page_url":"https://unfragile.ai/m0n0x41d--haft","categories":["ai-agents","app-builders"],"tags":["ai-agents","ai-coding","ai-skills","air","anthropic","claude","claude-code","cli","codex","codex-cli","context-memory","cursor","cursor-ai","developer-tools","first-principles","gemini-cli","prompt-engineering","reasoning","structured-reasoning","systems-thinking"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github-m0n0x41d--haft__cap_0","uri":"capability://planning.reasoning.first.principles.framework.fpf.structured.reasoning.enforcement","name":"first principles framework (fpf) structured reasoning enforcement","description":"Enforces a disciplined 5-mode engineering cycle (Understand → Explore → Choose → Execute → Verify) by requiring AI agents to frame problems before solving them, generate genuinely different solution variants, and compare options under parity constraints. Implements this via MCP tools (haft_problem, haft_solution, haft_decision) that validate reasoning artifacts against a formal specification before allowing progression to implementation.","intents":["Ensure AI agents don't jump to coding without proper problem framing","Force comparison of multiple design alternatives with equal rigor","Create auditable decision records linked to code implementation","Prevent premature optimization by enforcing structured exploration"],"best_for":["Teams using Claude Code, Cursor, or Gemini CLI who want governance over agentic reasoning","Organizations requiring decision traceability and falsifiable engineering contracts","Solo developers building complex systems who need to avoid decision drift"],"limitations":["Requires explicit adoption of FPF methodology — agents must be prompted to use MCP tools","No automatic enforcement if agent chooses to bypass the reasoning cycle","Pre-alpha TUI agent mode may have stability issues in production workflows"],"requires":["Go 1.21+ (for haft binary)","MCP-compatible AI agent (Claude Code, Cursor, Gemini CLI, or Codex)","Project initialized with haft init (creates .haft/ policy directory)"],"input_types":["natural language problem statements","solution variant descriptions","decision rationale with evidence"],"output_types":["structured reasoning artifacts (JSON)","decision maturity/freshness status","falsifiable decision contracts"],"categories":["planning-reasoning","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_1","uri":"capability://tool.use.integration.mcp.based.tool.serving.for.ai.agent.integration","name":"mcp-based tool serving for ai agent integration","description":"Exposes Haft's reasoning capabilities as a Model Context Protocol (MCP) server via JSON-RPC transport, providing six specialized tools (haft_problem, haft_solution, haft_decision, haft_evidence, haft_check, haft_search) that AI agents can invoke natively within their execution environment. The server runs as a subprocess managed by the agent's MCP client, maintaining a persistent SQLite state store and knowledge graph indexed to the codebase.","intents":["Integrate Haft governance directly into Claude Code, Cursor, or Gemini CLI workflows without context switching","Allow agents to query decision history and evidence without leaving their IDE","Enable agents to record decisions and link them to code modules atomically","Provide agents with codebase-aware search over past engineering decisions"],"best_for":["IDE-integrated AI agents (Cursor, Claude Code) that support MCP","Teams wanting to enforce governance without breaking agent workflows","Organizations with existing MCP infrastructure"],"limitations":["MCP transport adds ~50-100ms latency per tool invocation","Requires agent to explicitly call tools — no automatic decision capture","JSON-RPC serialization overhead for large decision artifacts (>10KB)","No built-in authentication — assumes trusted local network"],"requires":["haft serve command running (spawns MCP server on stdio)","MCP client in agent (Claude Code 1.0+, Cursor 0.42+, Gemini CLI)","Project initialized with haft init"],"input_types":["JSON-RPC method calls with structured parameters","problem frames, solution variants, decision rationale"],"output_types":["JSON decision artifacts","evidence records with timestamps","search results (decision summaries + relevance scores)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_10","uri":"capability://safety.moderation.parity.enforcement.in.solution.comparison","name":"parity enforcement in solution comparison","description":"Enforces equal rigor in comparing competing solutions by requiring that all variants be evaluated against the same criteria, preventing bias toward preferred solutions. Implements parity checks via the haft_solution and haft_decision tools that validate solution descriptions follow the same structure and depth. Tracks comparison fairness metrics to ensure decisions are based on equivalent evidence.","intents":["Prevent premature optimization by ensuring all solutions are fairly compared","Detect bias in solution evaluation (e.g., strawman alternatives)","Ensure decision rationale is based on equivalent evidence","Create auditable comparison records"],"best_for":["Teams making high-stakes architectural decisions","Organizations wanting to prevent decision bias","Developers working on complex trade-off decisions"],"limitations":["Parity checks are structural only — don't validate semantic equivalence","Requires explicit solution descriptions (no automatic extraction)","Comparison fairness is heuristic-based, not mathematically rigorous","No support for weighted criteria or multi-objective optimization"],"requires":["Solutions recorded via haft_solution tool","Structured solution descriptions with required fields","Decision recorded via haft_decision tool"],"input_types":["solution variant descriptions","comparison criteria"],"output_types":["parity validation results","fairness metrics","comparison audit trail"],"categories":["safety-moderation","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_2","uri":"capability://data.processing.analysis.evidence.decay.and.decision.freshness.tracking","name":"evidence decay and decision freshness tracking","description":"Monitors the health of engineering decisions across two axes: maturity (progress from Unassessed to Shipped) and freshness (Healthy → Stale → At Risk based on evidence age and drift detection). Implements R_eff (effective reasoning score) that decays over time as supporting evidence ages, triggering alerts when decisions drift from their original context. Uses SQLite schema with timestamp-based queries to identify stale decisions and prompt re-evaluation.","intents":["Detect when past decisions are no longer valid due to codebase changes","Automatically flag decisions that need re-evaluation based on evidence age","Prevent technical debt by surfacing decisions that have drifted from their original assumptions","Provide metrics on decision health across a portfolio of projects"],"best_for":["Teams managing multiple projects with long decision lifecycles","Organizations wanting to prevent decision rot and technical debt","Developers who need visibility into which past decisions are still valid"],"limitations":["Evidence decay is time-based only — does not detect semantic drift in code","Requires explicit evidence attachment to decisions (no automatic detection)","Freshness thresholds are configurable but not learned from project history","No integration with version control to detect breaking changes"],"requires":["SQLite database (created by haft init)","Decisions recorded with haft_decision tool","Evidence attached via haft_evidence tool with timestamps"],"input_types":["decision artifacts with creation timestamps","evidence records with attachment dates"],"output_types":["freshness status (Healthy/Stale/At Risk)","maturity level (Unassessed/Assessed/Implemented/Shipped)","R_eff score (0-1 decay curve)"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_3","uri":"capability://search.retrieval.codebase.aware.knowledge.graph.indexing.and.search","name":"codebase-aware knowledge graph indexing and search","description":"Builds a knowledge graph that links engineering decisions to codebase artifacts (modules, functions, files) using FPF Spec Search & Indexer. Enables semantic search over past decisions filtered by codebase context, allowing agents to query 'decisions affecting this module' or 'solutions tried for this problem pattern'. Stores graph in SQLite with projections that map decisions to code locations and vice versa.","intents":["Find past decisions relevant to the current coding task without manual search","Understand which decisions impact a specific code module","Avoid re-solving problems that were already decided in other parts of the codebase","Provide agents with codebase context when making new decisions"],"best_for":["Large codebases (10K+ LOC) where decision reuse is high-value","Teams with long project histories and accumulated decision debt","Developers working across multiple modules who need cross-cutting decision context"],"limitations":["Indexing requires explicit linking of decisions to code modules (not automatic)","Search quality depends on decision description quality and metadata","No support for cross-repository decision graphs","Indexing latency grows with codebase size (>100K LOC may require optimization)"],"requires":["Decisions recorded with module/file metadata via haft_decision","FPF Spec Search & Indexer running (built into haft serve)","SQLite database with artifact store schema"],"input_types":["decision artifacts with codebase location metadata","semantic search queries (natural language or structured)"],"output_types":["ranked decision summaries with relevance scores","module-to-decision mappings","decision-to-code cross-references"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_4","uri":"capability://planning.reasoning.autonomous.tui.agent.with.react.style.coordinator","name":"autonomous tui agent with react-style coordinator","description":"Provides a terminal-based autonomous agent (haft agent command) that executes the engineering cycle without human intervention, using a ReAct-style coordinator to move through Understand → Explore → Choose → Execute → Verify phases. The coordinator maintains state in SQLite and can pause at checkpoints for human review. Implements a lemniscate cycle pattern that allows looping back to earlier phases if verification fails.","intents":["Run autonomous engineering tasks from the command line without IDE integration","Prototype solutions with human-in-the-loop checkpoints at decision points","Execute multi-step engineering workflows (problem analysis → solution generation → implementation)","Iterate on solutions based on verification feedback"],"best_for":["Solo developers prototyping solutions without IDE","CI/CD pipelines that need autonomous decision-making with human checkpoints","Teams testing FPF methodology before integrating with IDE agents"],"limitations":["Pre-alpha status — stability not guaranteed in production","TUI rendering may be slow on high-latency terminals","No built-in integration with version control (manual git operations required)","Checkpoint pauses require human interaction — not suitable for fully autonomous CI/CD"],"requires":["Go 1.21+ (for haft binary)","Terminal with 80+ column width and ANSI color support","Project initialized with haft init","LLM provider configured (Claude, Gemini, or Codex API key)"],"input_types":["natural language problem statement","codebase context (files, modules)","human feedback at checkpoints"],"output_types":["decision artifacts","code implementations","verification reports"],"categories":["planning-reasoning","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_5","uri":"capability://tool.use.integration.multi.provider.llm.abstraction.with.provider.agnostic.reasoning","name":"multi-provider llm abstraction with provider-agnostic reasoning","description":"Abstracts LLM provider differences (OpenAI Codex, Anthropic Claude, Google Gemini) behind a unified interface, allowing the same FPF reasoning cycle to work across different models. Routes tool calls and reasoning prompts to the configured provider via a provider adapter pattern, with fallback support for multiple models. Stores provider configuration in project policy files.","intents":["Switch between LLM providers without changing reasoning logic","Use different models for different phases (e.g., Claude for framing, Codex for code generation)","Avoid vendor lock-in by supporting multiple provider APIs","Test reasoning quality across different models"],"best_for":["Teams evaluating multiple LLM providers","Organizations with existing relationships with multiple vendors","Developers wanting to avoid single-provider dependency"],"limitations":["Provider-specific features (e.g., Claude's extended thinking) not exposed","Reasoning quality varies significantly across providers — no automatic optimization","Fallback logic is manual — requires explicit provider ordering in config","API cost differences not tracked or optimized"],"requires":["API key for at least one provider (Claude, Codex, or Gemini)","Provider configuration in .haft/policy/providers.yaml","Network access to provider APIs"],"input_types":["reasoning prompts (provider-agnostic format)","tool call specifications"],"output_types":["reasoning responses from selected provider","tool call results"],"categories":["tool-use-integration","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_6","uri":"capability://safety.moderation.project.policy.enforcement.and.governance.configuration","name":"project policy enforcement and governance configuration","description":"Enforces project-level governance policies via .haft/ directory containing formal specifications (FPF Spec), provider configurations, and decision templates. Policies are versioned and can be checked via haft check command to ensure decisions comply with project standards. Implements a policy-as-code approach where governance rules are stored alongside the project and enforced by the Haft runtime.","intents":["Define and enforce organization-wide engineering standards across projects","Ensure decisions follow project-specific templates and criteria","Audit compliance with governance policies","Version control governance rules alongside code"],"best_for":["Organizations with formal governance requirements","Teams wanting to enforce consistent decision-making across projects","Regulated industries requiring auditable decision processes"],"limitations":["Policy violations are detected but not automatically prevented","No built-in policy conflict resolution (manual intervention required)","Policy changes don't retroactively validate existing decisions","Limited policy expressiveness — no conditional logic or complex rules"],"requires":["haft init to create .haft/ directory structure","Policy files in YAML or JSON format","haft check command to validate compliance"],"input_types":["policy specifications (YAML/JSON)","decision artifacts for validation"],"output_types":["compliance reports","policy violation alerts"],"categories":["safety-moderation","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_7","uri":"capability://automation.workflow.desktop.visual.cockpit.for.decision.portfolio.management","name":"desktop visual cockpit for decision portfolio management","description":"Provides a Wails v2-based desktop application (Go backend + React frontend) that visualizes the project's reasoning state across multiple dimensions: decision maturity, freshness, evidence decay, and Pareto fronts of competing solutions. Allows human oversight of autonomous agent decisions, multi-project portfolio views, and interactive decision exploration. Status: pre-alpha.","intents":["Visualize decision health across a portfolio of projects","Review and approve decisions made by autonomous agents","Explore trade-offs between competing solutions using Pareto fronts","Monitor evidence decay and identify stale decisions"],"best_for":["Engineering managers overseeing multiple projects","Teams wanting visual governance dashboards","Organizations with complex decision portfolios"],"limitations":["Pre-alpha status — UI/UX not finalized, stability issues expected","Pareto front visualization limited to 2-3 dimensions","No real-time updates — requires manual refresh","Desktop-only (no web version)"],"requires":["Wails v2 runtime (Go 1.21+, Node.js 16+)","SQLite database with decision artifacts","React 18+ (bundled with Wails)"],"input_types":["decision artifacts from SQLite","evidence records with scores"],"output_types":["visual dashboards (React components)","Pareto front plots","decision timeline views"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_8","uri":"capability://data.processing.analysis.sqlite.backed.artifact.store.with.schema.migrations","name":"sqlite-backed artifact store with schema migrations","description":"Implements a persistent data layer using SQLite with versioned schema migrations, storing decision artifacts, evidence records, codebase mappings, and reasoning state. Provides projection views that map decisions to code modules and track artifact relationships. Migrations are managed via a migration system that ensures schema consistency across versions.","intents":["Persist decision artifacts and evidence across sessions","Query decision history and relationships","Track codebase-to-decision mappings","Support schema evolution without data loss"],"best_for":["Projects requiring persistent decision history","Teams needing to query decision relationships","Organizations with long-running projects"],"limitations":["SQLite not suitable for high-concurrency scenarios (>10 concurrent writers)","No built-in replication or backup — requires external tooling","Schema migrations must be applied manually (no auto-migration)","Query performance degrades with large decision volumes (>100K artifacts)"],"requires":["SQLite 3.35+ (bundled with most systems)","Write access to project directory (.haft/data.db)","Schema version matching haft binary version"],"input_types":["decision artifacts (JSON)","evidence records with timestamps"],"output_types":["artifact records from queries","relationship mappings","projection views"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-m0n0x41d--haft__cap_9","uri":"capability://automation.workflow.cli.command.suite.for.governance.and.initialization","name":"cli command suite for governance and initialization","description":"Provides a comprehensive CLI interface with commands for project initialization (haft init), governance checks (haft check), MCP server startup (haft serve), and autonomous agent execution (haft agent). Commands are composable and support piping for integration with shell scripts and CI/CD pipelines. Implements a task-based CLI pattern with structured output (JSON/YAML).","intents":["Initialize Haft in a new project with policy templates","Check decision compliance with project policies","Start MCP server for IDE integration","Run autonomous reasoning tasks from CI/CD"],"best_for":["DevOps engineers integrating Haft into CI/CD pipelines","Developers setting up Haft in new projects","Teams automating governance checks"],"limitations":["CLI output format is fixed (JSON/YAML) — no custom formatting","Commands are synchronous — no background job support","Error handling is verbose — may be noisy in CI/CD logs","No built-in shell completion (must be configured manually)"],"requires":["haft binary in PATH","Project directory with git repository (for haft init)"],"input_types":["command-line flags and arguments","stdin for piped input"],"output_types":["JSON/YAML structured output","exit codes for success/failure"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":46,"verified":false,"data_access_risk":"high","permissions":["Go 1.21+ (for haft binary)","MCP-compatible AI agent (Claude Code, Cursor, Gemini CLI, or Codex)","Project initialized with haft init (creates .haft/ policy directory)","haft serve command running (spawns MCP server on stdio)","MCP client in agent (Claude Code 1.0+, Cursor 0.42+, Gemini CLI)","Project initialized with haft init","Solutions recorded via haft_solution tool","Structured solution descriptions with required fields","Decision recorded via haft_decision tool","SQLite database (created by haft init)"],"failure_modes":["Requires explicit adoption of FPF methodology — agents must be prompted to use MCP tools","No automatic enforcement if agent chooses to bypass the reasoning cycle","Pre-alpha TUI agent mode may have stability issues in production workflows","MCP transport adds ~50-100ms latency per tool invocation","Requires agent to explicitly call tools — no automatic decision capture","JSON-RPC serialization overhead for large decision artifacts (>10KB)","No built-in authentication — assumes trusted local network","Parity checks are structural only — don't validate semantic equivalence","Requires explicit solution descriptions (no automatic extraction)","Comparison fairness is heuristic-based, not mathematically rigorous","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.4433903041823838,"quality":0.47,"ecosystem":0.7000000000000001,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:22.062Z","last_scraped_at":"2026-05-03T13:58:34.540Z","last_commit":"2026-04-30T08:29:47Z"},"community":{"stars":1309,"forks":104,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=m0n0x41d--haft","compare_url":"https://unfragile.ai/compare?artifact=m0n0x41d--haft"}},"signature":"D8u8OvK2Yy//hBFM++2SnNVJxlQpJ4edTIOKgLGUAxyAzXzpU/zcmzeWhREIqJO0SW6Q2x1tsnNFS6Qo+s9gDQ==","signedAt":"2026-06-21T23:49:05.713Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/m0n0x41d--haft","artifact":"https://unfragile.ai/m0n0x41d--haft","verify":"https://unfragile.ai/api/v1/verify?slug=m0n0x41d--haft","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}