open-standards/jouledesk/conformance/v1/README.md
Transaction Science b92fad0a18 jouledesk: refresh the published receipt to jcp/2, and hold it byte for byte
summarize-allow.hex was pinned to the superseded jcp/1 receipt profile — a 588-byte
envelope its own README and receipt.json called 586 — while the reference teammate
seals jcp/2, which binds a payload_hash (667 bytes). The teammate is deterministic
(three runs byte-identical) and the new envelope decodes to every field
receipt.json records.

pack.rs now requires the teammate to seal the published bytes exactly, and the
published bytes themselves to verify under the channel steward and decode to
receipt.json. Falsified: the old receipt back in the pack fails the byte check; a
changed cost_uj in receipt.json fails the decode checks.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 14:16:01 -04:00

33 lines
1.4 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: 667 bytes, byte-identical on every run of the reference
teammate. Its payload is the current JCP receipt profile, `jcp/2`, which binds a
`payload_hash`.
- **`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).