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]>
32 lines
1.3 KiB
Markdown
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).
|