open-standards/jouletable/SPEC.md
Transaction Science 4282d3f148 jouletable: new umbrella standard — a metered/gated/attested agent at every surface
Joule Table (jt.transaction.science) is the open standard for binding an accountable
agent into any surface where work happens — editor, chat, forge, meeting, call — with
the same three seams everywhere: gate (a signed grant decided outside the model), meter
(joules at the model-call boundary), receipt (a verifiable sealed ledger). It composes
JCP + Mesh + jcp-efficiency + Sandbox, and is satisfied by two reference bindings:
Joule Hook (tool/editor) and Joule Desk (collaboration/teammate: chat/forge/room). Its
editor class = Joule Hook, so the two bindings compose. Umbrella for what were two
separate standards; the name = the idea (a seat at the table: present + answerable).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-05 07:32:59 -04:00

5.9 KiB

Joule Table — A Metered, Gated, Attested Agent at Every Surface

Version: 0.1.0-draft.1 · Status: Draft · Profile: jouletable/1 Home: jt.transaction.science · Spec text: CC-BY-4.0 · Reference code: Apache-2.0

Joule Table is the open standard for binding an accountable agent into any surface where work happens — a coding editor, a chat channel, a git forge, a video meeting, a phone call. Wherever the agent shows up, the same three things hold: its authority is a signed grant decided outside the model, its work is energy-metered, and every action seals to a verifiable receipt. An agent's accountability shouldn't stop at the edge of one tool; Joule Table is the guarantee that it doesn't.

The name is the idea: the agent takes a seat at the table — present where the work is, and answerable for what it does there.

Joule Table is one of the Transaction Science open standards, and it composes the others rather than re-implementing them: JCP decides and grants, Mesh meters at the model front door, jcp-efficiency is the receipt, and Sandbox attests execution.


§1 Why Joule Table exists

The accountable-agent stack is being built one surface at a time — a hook in the editor here, a teammate in the chat there, a bot in the meeting. Each re-answers the same three questions (what may it do? what did it cost? can I verify it?) in a different, usually un-portable way. Joule Table names the shared substrate those answers share, so an agent that is metered, gated, and attested in your IDE is the same, verifiably, when it joins your standup — and the receipts chain across both.

§2 The three seams (the substrate every binding provides)

Every Joule Table binding, on every surface, provides the same three seams:

  • Gate — each action is decided outside the model against a JCP capability + joule-budget grant. A capability the grant does not hold is denied before the side effect, whoever asked and however it was phrased.
  • Meter — the work is measured at the model-call boundary (a proxy for a request/response model; a relay for a streaming one), in joules derived at honest provenance, never claimed as a physical measurement.
  • Receipt — every decision and every completed unit seals to a verifiable ledger (efficiency/1 + decision receipts), non-repudiable and independently checkable.

A binding is conformant when it provides the seams that surface allows and seals honest receipts (§5). What differs per surface is only how the seams attach.

§3 The two bindings

Joule Table has two reference bindings — one for where you build, one for where you collaborate — and they compose.

Joule Hook — the tool/editor binding (../joulehook)

Carries the three seams into a coding editor or agent host through its own extension points: the PreToolUse-hook family (Claude Code, Cursor, Windsurf, Antigravity), a base_url metering proxy, an MCP receipt server. The agent works in your tools, gated and metered, without forking any of them.

Joule Desk — the collaboration/teammate binding (../jouledesk)

The persistent @joule you delegate to on a shared surface — a chat channel, a git forge, or a live meeting. Its authority is a signed grant (not admin config), its every action seals to a ledger the whole channel can verify. Binding classes: chat (Slack/Discord/Matrix), forge (GitHub/GitLab), and room (the real-time class: Zoom/Teams/Meet/LiveKit). When Joule Desk works inside an editor, its editor class is Joule Hook — the two bindings meet there.

§4 Composition

Joule Table is a through-line, not a re-implementation:

Seam Composed from
Gate JCP — capability ⊗ joule-budget = one signed grant, decided outside the model
Meter Mesh / jcp-efficiency — µJ per accepted token, per completed unit, waste
Receipt jcp-receipt / jcp-efficiency — sealed, hash-verifiable JCR-1
Attestation Sandbox — the admitted work runs attested (sandbox-tee::energy)

Joule Hook and Joule Desk each assemble these into a binding for their surface family; Joule Table is the contract that both satisfy.

§5 Conformance

A Joule Table binding declares which seams it provides and MUST:

  1. Decide outside the model. No gate may consult the LLM to authorize an action.
  2. Meter at the model-call boundary where it can reach it, at honest provenance — a binding that presents an energy figure it cannot back is non-conformant (§jcp-efficiency).
  3. Seal verifiable receipts — every allow, deny, and completed unit, checkable by a third party holding the steward key.

A binding that can reach fewer seams on a closed surface MUST say so, not overclaim. Joule Hook and Joule Desk are the reference bindings; new surfaces conform by providing the same three seams.

§6 The map

                         Joule Table  ·  jt.transaction.science
                    (gate · meter · receipt — at every surface)
                                    │
              ┌─────────────────────┴─────────────────────┐
        Joule Hook                                     Joule Desk
     tool / editor binding                     collaboration / teammate binding
   Claude Code · Cursor ·                     chat  (Slack · Discord · Matrix)
   Windsurf · Antigravity · Zed               forge (GitHub · GitLab)
                                               room  (Zoom · Teams · Meet · LiveKit)
              └──────────── editor class = Joule Hook ────────────┘

Transaction Science is the steward, not the proprietor: the seam contract and the right to fork are public.