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]>
10 lines
1.2 KiB
Markdown
10 lines
1.2 KiB
Markdown
# 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`).
|