KELVINCode
by entropy lab

FOR DEVELOPERS

Developer Companion and Intent Runtime

The Companion is the developer layer: Cloud coordinates the mission while an authorized Mac keeps source, tools, and local work under explicit control.

In preparation

The Intent Runtime foundation is published: seven kelvin_intents_* tools open a durable session, compile the request into a versioned Mission Graph, and hand out one node at a time, with an atomic claim and an idempotent receipt. Execution is not available yet. No node is dispatched to a Mac, there is no build node, the Evidence Gate does not gate, and there is no lease reaper. Today the Companion plans, records, and coordinates; it does not run the mission or close the proof.

One intent, one versioned graph

Instead of an agent improvising an endless loop, Kelvin compiles the request into an immutable Mission Graph identified by a digest. The Alpha template covers feature and fix, and draws seven nodes: intake, preflight, reproduce (on a fix only), agent work, review, test, and evidence gate. Every node declares dependencies, budget, timeout, retry, and an exit criterion — of these, the runtime today enforces the retry limit; budget and timeout are recorded in the graph and do not yet stop a session.

Cloud · Mission Graph

receives
The intent summary and the project the person selected; not the private workspace by default.
returns
Plan, states, an atomic claim with a lease, and idempotent receipts — never a shell.

Mac · Developer Companion

receives
A working directory chosen by the developer and a single-use grant, valid for fifteen minutes, with a closed list of operations.
returns
Tree digests before and after, and a LocalWorkReceipt. The signature is not proof yet: the key is born each time the app starts, and neither side verifies the receipt. Today it records the work; it does not attest to it.

The loop the agent follows

  1. Plan: “fix this bug” becomes nodes, budgets, and criteria that can be read before anything runs. Planning is read-only: it creates no session, job, or grant.
  2. Reserve: Cloud hands out one node at a time with an atomic claim — two concurrent requests, one winner — plus a lease and an idempotent receipt, and a report that arrives late is refused. Leasing a worktree, a build lane, or a Simulator does not exist yet: the local grant points at your working directory, not at an isolated copy.
  3. Execute: kelvin_companion_prepare and kelvin_companion_attest exist only on the local MCP. They resolve the canonical path, refuse a symlink, allow a handful of declared operations, and compute the tree digest before and after. The Codex and Claude adapters do not exist yet: today the thing that edits is the tool you already use, inside the granted directory.
  4. Verify: the graph already carries the review, test, and evidence-gate nodes — and that is where the contract stops. Nothing requires the review to come from a different agent, and the gate does not gate: today Cloud accepts the outcome the agent declares, with no artifact. Until the Evidence Gate lands, the state is demonstrated, not verified.
  5. Recover or finish: a repeated report is idempotent and returns the same receipt, and a terminal session never reopens. Recovery is not there: with no lease reaper, an agent that dies mid-node leaves the session stuck until somebody intervenes. Restarting the client, control plane, Node, and Runner is a release gate and has not passed.

What is missing before “delivered with proof”

The list is short and public: dispatching nodes to a Mac; a build node and execution of the child Evidence and Room nodes; real Codex and Claude adapters; verifying the receipt against the Node's enrolled identity; an approval that actually blocks; a lease reaper and reconciliation; the fleet scheduler and mailbox; Intent UI in the dashboard; and the Protocol Mirror, which learns a private protocol only afterwards, through replay and canary. None of it changes the Evidence, Live, Room, or Artifact contracts, which keep working with the Companion switched off.

Privacy and surfaces

Local_private stays on the Mac. Cloud_user_submitted is an explicit choice to send only the summary the control plane needs. The Companion does not turn Live MCP authority into machine access: the local grant pins a canonical directory, refuses a symlink, and allows a closed list of operations — the Mac decides what opens.

“Source does not go to Kelvin Cloud” is not the same as “source never leaves the machine”. The agent is yours: Codex, Claude, or another MCP client may send source to the model provider you chose, under that provider's own contract and configuration. Kelvin does not proxy that traffic and does not copy that context into its cloud — but it does not prevent it either. Showing the provider and data boundary before the grant, and letting an organization require a local-only adapter, is part of the design and still in preparation.

Artifact/Evidence can read and derive from sealed evidence without an active Mac. Live/Dojo remains the room and execution experience. The Companion is the third layer: local tools for developers using Claude, Codex, or another agent.