open-standards/joule-code/conformance/README.md
Transaction Science 4f91795f10 joule-code: SPEC §5.1 grant-gated consultation + conformance class C5
The JcpGate landed as code; this makes it part of the
standard.

SPEC §5.1 (OPTIONAL) — the JCP binding, normatively:

  tier as action       a stage is consulted only if the
                       chain's leaf grant names its verb;
                       no l4 in the chain → no remote
                       frontier agent, structurally
  energy as budget     each consultation debits the tier's
                       §1.1 class marker (µJ: 1 / 10 / 10³ /
                       10⁶ / 10⁷, honest Estimator) from
                       EVERY link of the chain
  denial as fallthrough
  every consultation seals as a chained JCR-1 receipt with
  machine-readable deny reasons

  Readiness: Solid — the jcp runtime and chained receipts
  exist today; the binding is composition.

CONFORMANCE C5 — gated_cascade_vectors.json (6 vectors)

  Unlike C1–C4's wire round-trips, C5 runs the REAL jcp
  runtime end to end: fixed fixture identities (issuer
  [1;32], agent [2;32], steward [7;32]) + fixed per-tier
  costs make every vector deterministic. Each vector
  pins closing tiers per run, total µJ debit, and the
  sealed verdict sequence:

    ungranted l4 denied even when it would close
    granted l4 closes and debits its class (10_000_010)
    exhausted budget stops the escape hatch on run 2
      (deny sealed with reason budget-exceeded)
    earlier close → later tiers never consulted
    denied probe still reaches a granted deeper tier
      (l2 deny + l3 allow in one walk)
    repeated cheap closes accumulate exact debits (3×10)

  verify_gated_cascade extracts every sealed receipt and
  compares verdicts AND deny-reason strings — a denial is
  evidence, not a silent skip, and the suite proves it.

  Pack: 24 passed, 0 failed. Workspace: 33 green.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-06-10 11:18:59 -04:00

10 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Joule Code Conformance
A Joule Code implementation is **conformant at v0.1** if it round-trips the wire vectors in [`v1/`](v1/). The vectors — not any brand — define what is correct ([`../CHARTER.md`](../CHARTER.md) sense).
- [`v1/`](v1/) — the v0.1 vector pack (suites C1–C5, [`../SPEC.md`](../SPEC.md) §8). C5 (`gated_cascade_vectors.json`) applies only to implementations claiming the optional §5.1 JCP binding; its fixture identities (issuer `[1;32]`, agent `[2;32]`, steward `[7;32]` / `did:example:joule-code`, resource `b"repo:joule-code"`, request `{"tree-hash", "rename the function"}`) and per-tier µJ costs (1 / 10 / 10³ / 10⁶ / 10⁷) are fixed so runs are deterministic end to end.
- [`VERSIONS.md`](VERSIONS.md) — vector-pack ↔ spec-version matrix and compatibility rules.
Each pack is canonical for exactly one spec major version. Historical packs are never removed: an implementation pinned to an older spec version must be able to look up that version's pack indefinitely.
Reference implementations are conformant by construction. Third-party implementations certify themselves by running the public suite (`cargo run -p joule-code-conformance -- verify conformance/v1`).