open-standards/jouledesk/conformance/v1/README.md
Transaction Science a8f3e4e26c jouledesk: rename Joule Tag → Joule Desk (naming call), part of the Joule Table umbrella
David's naming: the teammate/collaboration binding is 'Joule Desk' (you still @joule
it; the standard is Joule Desk) — 'tag' was borrowed from a third-party product name,
which broke the self-referential/no-comparison rule. Full rename across the standard:
dir jouletag→jouledesk, crate + jouledesk-bind binary, profile jouletag/1→jouledesk/1,
stewards did:jcp:jouletag-{channel,realtime}→jouledesk-*, and every SPEC/README/code/
example reference. Conformance vector regenerated (steward change → 586→588 bytes;
decoded fields unchanged: summarize/allow/100000/900000). @joule handle untouched.
17 tests green, clippy-clean. Joule Desk + Joule Hook are the two bindings under the
Joule Table umbrella (jt.transaction.science) — umbrella spec lands next.

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

32 lines
1.3 KiB
Markdown

# Joule Desk conformance vectors — `v1`
Published vectors for `jouledesk/1`. The reference teammate is deterministic (fixed dev
keys, `now = 0`), so these bytes are reproducible — anyone can check an implementation
against them without trusting it.
## Files
- **`summarize-allow.hex`** — the raw sealed JCR-1 (`COSE_Sign1`) decision receipt for a
granted `summarize` tag: 586 bytes, byte-identical on every run of the reference
teammate.
- **`receipt.json`** — what that envelope MUST decode + verify to under the channel
steward key `did:jcp:jouledesk-channel` (SPEC §5): `verdict: allow`, `cost_uj: 100000`,
`budget_remaining_uj: 900000`, `verified: true`.
## Reproducing
```bash
cd ../../jouledesk-rs
cargo run -p jouledesk --example vector # stdout = the hex; stderr = the decode
```
The regenerated hex MUST equal `summarize-allow.hex`, and the decode MUST match
`receipt.json`.
## What a conformant teammate must satisfy
1. **Authorise** each tagged action against the capability set **outside the model**
(§4); refuse an unheld skill or an over-budget tag at routing (§5).
2. **Seal** every dispatched decision as an independently-verifiable JCR-1 receipt (§5),
debiting the joule budget on allow.
3. **Meter** energy per completed unit and never overstate provenance (§6; §7 honesty).