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]>
56 lines
3 KiB
Markdown
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.
|