open-standards/joulecontract/conformance/v1/amendment-chain.json
Transaction Science 429dc59a83 joulecontract v0.8: the implementability amendment — round five seals the pack
Round five turned the adversarial method on the published artifacts
themselves: a clean-room auditor, forbidden from reading joulecontract-rs,
attempted to build a conformant validator from SPEC + conformance pack
alone. Verdict: receipt-local yes, composed no. Seventeen findings
(provenance/joulecontract-diff-v0.7-pack.md) — the bundle construction
was recoverable only by brute force, the negative vectors demanded
composed verdicts while omitting their sealed contexts, the key-log
event model showed one variant of two, the spec's literal quorum MUST
failed the golden vector, and RFC 8785 (the canonicalization any honest
implementer reaches for) produces the wrong digest.

SPEC v0.8.0 amends v0.7.0 (archived byte-exact; seven verified anchors):
bundle address = digest of LF-joined sorted member addresses; canonical
JSON defined precisely (float-ness preserved — deliberately not JCS);
DSSE PAE in the spec text; quorum scope stated (receipt-scoped k≥2 at
JR-3, per-obligation at JR-4); obligation matching exact with the frame
synthesis rule; the pack declared the normative wire form; timestamps
integer seconds; the KeyLog Added/Revoked enum on the wire.

Pack expands 13 → 22 vectors: evidence-bundle.json ships every member's
bytes (incl. the transition record), every negative embeds its sealed
context, four new mutation negatives (engagement_undisclosed,
recourse_undeclared, static_only_frame, unterminated_chain), three
context-variant vectors (timestamp_stale, breach_unamended,
verifier_revoked_window), and a JR-4 receipt making per-obligation
quorum visible. The EnB object is now sealed evidence and resolved by
the composed validator. Conformance README rewritten as an
implementer's guide; remaining unvectored behaviors stated explicitly.

Also: joule-code pre-existing clippy warnings fixed (workspace now
zero), binding emits 0.8.0.

76 joulecontract tests + 39 joule-code tests green, clippy zero on both
workspaces. Site: Round 5 card + seven-anchor chain, redeployed.

The round's lesson in the standard's own grammar: the pack was making
composed claims whose evidence was not sealed alongside — it was
running evidence:external. v0.8 seals the pack.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-06-10 16:21:44 -04:00

33 lines
No EOL
1.1 KiB
JSON

{
"chain": [
{
"file": "joulecontract-spec-v0.1.md",
"sha2_256": "8c042e984dd54400a78bbafb654efac3dc8031b191b14c302e31d5f5888128cd"
},
{
"file": "joulecontract-spec-v0.2.md",
"sha2_256": "1c4bd6a0232174a04f6a04857fd7522c9799873d963da89692a8c024992f73b8"
},
{
"file": "joulecontract-spec-v0.3.md",
"sha2_256": "97a957abac569d07d0a3a71dcdd418378ae1f852108280f549329c19cde0222a"
},
{
"file": "joulecontract-spec-v0.4.md",
"sha2_256": "ee932a71b94d71ddd4fc1abfb5805f2066e925fa17b6587b735cfdfc61b3835a"
},
{
"file": "joulecontract-spec-v0.5.md",
"sha2_256": "86800c4bc7d5dcffd920da23370f7e3eb4acb91dc66e4038da74102b6e061441"
},
{
"file": "joulecontract-spec-v0.6.md",
"sha2_256": "a4b8554ee0f3920c980868907360ddc4b114a2b8a30d5b5acd5f9476a4c64931"
},
{
"file": "joulecontract-spec-v0.7.md",
"sha2_256": "e2f6dd215244bf18e0ea7e1ddc0a6889f66de427baa4130d5be82b3c0ac7c5a4"
}
],
"note": "SPEC §16 chain: digests of the published markdown serializations, verifiable against ../../archive/."
}