{
  "rows": [
    {
      "id": "one-static-binary",
      "concept": "One static Go binary (the whole governed surface)",
      "category": "platform",
      "surface": "product",
      "what_you_get": "A single dependency-free Go binary (no Python, no CUDA, no go.sum) that you `go build` and run — the gateway, policy gate, quarantine, audit log, and metrics all in one process.",
      "audience": "platform",
      "maturity": "shipped",
      "claims_section": "The product",
      "claims_tag": "SHIPPED",
      "first_command": "go build ./cmd/fak",
      "first_command_verb": "",
      "needs_gpu": false,
      "needs_key": false,
      "witness_path": "go.mod",
      "witness": "go build ./... exit 0; cross-platform CI (ubuntu/macos/windows); zero go.sum",
      "entry_doc": "GETTING-STARTED.md",
      "verdict": "durable-product",
      "gaps": [
        "Optional -tags vulkan/cuda backends add GPU dependencies (off by default)",
        "Production serving (continuous batching, paged attention) still fronts an external engine"
      ],
      "durability_note": "CI builds + tests across three OSes on every push; the zero-dependency claim is structural (no go.sum entries in the default build)."
    },
    {
      "id": "governed-gateway",
      "concept": "Governed gateway (fak serve)",
      "category": "platform",
      "surface": "product",
      "what_you_get": "Front any OpenAI-compatible model server with one command; every tool call the model proposes is denied / repaired / quarantined before your agent runs it, with /metrics and /healthz.",
      "audience": "platform",
      "maturity": "shipped",
      "claims_section": "Gateway",
      "claims_tag": "SHIPPED",
      "first_command": "go run ./cmd/fak serve --addr 127.0.0.1:8080 --base-url http://localhost:11434/v1 --model qwen2.5:1.5b",
      "first_command_verb": "serve",
      "needs_gpu": false,
      "needs_key": true,
      "witness_path": "internal/gateway",
      "witness": "internal/gateway tests; TestServedResultArmsResultSideStack; v0.2.1 adversarial hardening",
      "entry_doc": "GETTING-STARTED.md",
      "verdict": "usable-today",
      "gaps": [
        "Needs an upstream model server (ollama / vLLM / a provider) running; the offline feel is the no-server boundary (fak agent --offline / serve --stdio)",
        "stream:true SSE is synthesized from the finished adjudicated turn, not true token-by-token streaming"
      ],
      "durability_note": "Gateway tests run on every commit; the wire client never supplies a Ref, so the IFC/secret/self-modify rungs stay armed on proxied calls."
    },
    {
      "id": "mcp-server",
      "concept": "MCP server (fak serve --stdio)",
      "category": "platform",
      "surface": "product",
      "what_you_get": "Expose the kernel's verdict as MCP tools (fak_adjudicate, fak_admit, ...) over stdio so Claude Code or any MCP client can ask the kernel before it runs a tool — offline, no upstream model needed.",
      "audience": "platform",
      "maturity": "shipped",
      "claims_section": "Gateway",
      "claims_tag": "SHIPPED",
      "first_command": "go run ./cmd/fak serve --stdio",
      "first_command_verb": "serve",
      "needs_gpu": false,
      "needs_key": false,
      "witness_path": "internal/gateway",
      "witness": "internal/gateway tests; MCP spec-conformance + v0.2.1 hardening; examples/mcp/.mcp.json",
      "entry_doc": "docs/cli-reference.md",
      "verdict": "durable-product",
      "gaps": [
        "OpenAI-wire MCP bridging is unit-tested but has no captured end-to-end transcript"
      ],
      "durability_note": "The /mcp HTTP route and the stdio path exercise the same in-process kernel boundary tested on every build."
    },
    {
      "id": "claude-code-passthrough",
      "concept": "Claude Code passthrough (fak guard -- claude)",
      "category": "platform",
      "surface": "product",
      "what_you_get": "One command wraps a real Claude Code session with the capability floor armed — your own key and prompt-cache breakpoints pass through untouched, and you get a verdict roll-up on exit.",
      "audience": "platform",
      "maturity": "shipped",
      "claims_section": "Gateway",
      "claims_tag": "SHIPPED",
      "first_command": "go run ./cmd/fak guard -- claude",
      "first_command_verb": "guard",
      "needs_gpu": false,
      "needs_key": true,
      "witness_path": "cmd/fak",
      "witness": "TestGuardDefaultPolicyDeniesDangerAllowsBenign, TestGuardEnvVar, TestFormatAuditSummary",
      "entry_doc": "docs/integrations/claude.md",
      "verdict": "usable-today",
      "gaps": [
        "Needs the claude CLI + an Anthropic key; the offline equivalent is `guard --dump-policy`",
        "KV poison-eviction is a no-op on passthrough (the model lives upstream, no local KV to drop)"
      ],
      "durability_note": "The exit audit reads the same /metrics counters, so it cannot overstate the protection; the embedded floor works from any directory."
    },
    {
      "id": "rsi-ship-gate",
      "concept": "RSI ship-gate (stewards + keep-or-revert loop)",
      "category": "platform",
      "surface": "benchmark",
      "what_you_get": "A runnable loop that evaluates a code candidate in an isolated worktree, measures a KPI, runs the suite, and KEEPS it only on a non-forgeable keep-bit (metric gain AND suite-green AND truth-clean).",
      "audience": "developer",
      "maturity": "shipped",
      "claims_section": "Stewards + RSI ship-gate",
      "claims_tag": "SHIPPED",
      "first_command": "go run ./cmd/rsiloop",
      "first_command_verb": "rsiloop",
      "needs_gpu": false,
      "needs_key": false,
      "witness_path": "internal/rsiloop",
      "witness": "internal/rsiloop tests (keep/revert/escalate/breaker-reset); internal/shipgate Evaluate/Gate",
      "entry_doc": "docs/rsi-loop.md",
      "verdict": "usable-today",
      "gaps": [
        "The demo KPI is a deterministic LRU hit-rate; a real subsystem optimization plugs in via a custom Proposer/Measurer",
        "Suite-green defaults to go build+vet (a Windows-safe proxy); the full test suite is WSL-only"
      ],
      "durability_note": "The keep-bit is non-forgeable (witness + metrics); the loop never mutates main without an explicit gated land step; the journal is append-only."
    },
    {
      "id": "a2a-in-kernel-channel",
      "concept": "In-kernel agent-to-agent message channel (a2achan)",
      "category": "platform",
      "surface": "benchmark",
      "what_you_get": "An in-kernel mailbox that delivers an addressed value from one agent to a different one — Send/Recv and Publish/Subscribe — gated by the same default-deny floor a tool call rides, so a send without the capability is denied and a private/quarantined body cannot cross channels.",
      "audience": "platform",
      "maturity": "shipped",
      "claims_section": "In-kernel agent-to-agent message channel (`a2achan`)",
      "claims_tag": "SHIPPED",
      "first_command": "go run ./cmd/a2ademo",
      "first_command_verb": "",
      "needs_gpu": false,
      "needs_key": false,
      "witness_path": "internal/a2achan",
      "witness": "TestDeterministicDelivery, TestFailClosedDefault, TestScopeTaintEnforcement, TestPubSubFanout (go test -race); cmd/a2ademo exit 0",
      "entry_doc": "docs/a2a-in-kernel-channel.md",
      "verdict": "usable-today",
      "gaps": [
        "Durable cross-process delivery (a session-image-backed mailbox) is the labeled-STUB next rung; in-process + continuation-id handoff is real today",
        "Send/Recv are not yet routed as true kernel Ops (the abi Op table is registered but dormant)"
      ],
      "durability_note": "The floor lives in the same kernel registries every tool call folds (an a2aGate adjudicator + a2aIngress admitter), not a side library; a delivered body keeps its taint."
    },
    {
      "id": "taskmgr-snapshot",
      "concept": "Task manager snapshot (process-local resource fold)",
      "category": "platform",
      "surface": "benchmark",
      "what_you_get": "Run `fak task sample` to get a JSON snapshot of the current process' running tasks/steps with per-task and per-step resource deltas (wall/CPU seconds, heap/sys memory, goroutines) and an ETA only when progress against a known total is positive.",
      "audience": "platform",
      "maturity": "shipped",
      "claims_section": "Task manager snapshot",
      "claims_tag": "SHIPPED",
      "first_command": "go run ./cmd/fak task sample",
      "first_command_verb": "task",
      "needs_gpu": false,
      "needs_key": false,
      "witness_path": "internal/taskmgr",
      "witness": "go test ./internal/taskmgr; go test ./cmd/fak -run TestTask",
      "entry_doc": "docs/task-manager.md",
      "verdict": "usable-today",
      "gaps": [
        "It is the embeddable in-process reference fold — not a durable scheduler, cross-PID monitor, or fleet oracle",
        "Resource state is sampled from the current Go runtime, so it sees only this process"
      ],
      "durability_note": "Stdlib-only; ETA is emitted only on positive progress against a known total, so it never invents a finish time."
    }
  ]
}
