open-standards/jouletable/README.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

56 lines
3 KiB
Markdown

# Joule Table — A Metered, Gated, Attested Agent at Every Surface
*Home: `jt.transaction.science`*
An agent's accountability shouldn't stop at the edge of one tool. 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. Every action seals to a verifiable receipt.**
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 doesn't re-implement — it **composes** the sibling standards (**JCP** grants,
**Mesh** metering, **`jcp-efficiency`** receipts, **Sandbox** attestation) into one
contract, satisfied by two reference bindings:
- **[Joule Hook](../joulehook)** — the **tool/editor** binding. Carries the gate + meter +
receipt into a coding editor's own extension points (Claude Code, Cursor, Windsurf,
Antigravity, Zed) — no fork required.
- **[Joule Desk](../jouledesk)** — the **collaboration/teammate** binding. The persistent
`@joule` you delegate to on a shared surface, whose every action seals to a ledger the
channel can verify. Classes: `chat` (Slack/Discord/Matrix), `forge` (GitHub/GitLab),
`room` (Zoom/Teams/Meet/LiveKit). Its `editor` class **is** Joule Hook.
## The three seams
| Seam | What it guarantees | Composed from |
|---|---|---|
| **Gate** | each action decided **outside the model** against a signed capability + joule-budget grant | JCP |
| **Meter** | joules at the **model-call boundary**, honest provenance, never overclaimed | Mesh · `jcp-efficiency` |
| **Receipt** | every allow/deny/unit sealed, **verifiable** by anyone with the steward key | `jcp-receipt` · `jcp-efficiency` |
## 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 · forge · room
Windsurf · Antigravity · Zed (Slack · GitHub · Zoom · LiveKit · …)
└────────── editor class = Joule Hook ──────────┘
```
- **Licence:** Apache-2.0 for reference code ([`LICENSE`](LICENSE)); CC-BY-4.0 for the
specification text ([`LICENSE-SPEC`](LICENSE-SPEC)).
- **Status:** v0.1.0 draft ([`SPEC.md`](SPEC.md)). The two bindings are implemented in
[`../joulehook`](../joulehook) and [`../jouledesk`](../jouledesk).
Joule Table is one of the [Transaction Science open standards](../README.md).
Transaction Science is the steward, not the proprietor.