open-standards/jcp/conformance
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 84b32820e2 jcp: C22 conformance — executable check + published dual-ceiling vectors
Completes SPEC §4.8. The prior commit left this as a noted follow-up; a
conformance class without an executable check and a published vector is not a
standard, just an assertion.

- jcp-conformance: `c22_dual_ceilings` registered in checks(), so it runs in the
  harness alongside C1-C21 (verified: "✓ C22 dual ceilings: money beside joules,
  no rate invented"). It asserts every property §4.8 requires — a joules-only
  grant's encoding omits the field entirely; adding a money ceiling changes the
  grant's identity; an allow debits both dimensions; money binding while joules
  have room denies funds-exceeded and debits neither; the mirror (joules bind,
  money has room) denies budget-exceeded; a foreign currency is refused
  currency-mismatch rather than converted; an absent ceiling means "joules alone
  bound", not zero; and attenuation refuses a raise, a drop, or a
  re-denomination while a plain attenuate inherits.

- conformance/v1/dual_ceilings.json: a NEW file (following standing.json's
  precedent of one file per feature) carrying the fixed-key dual-ceiling grant
  and the three receipts that define C22 — allow / funds-exceeded /
  currency-mismatch — plus spent_after {uj:10, minor:300} proving the denials
  debited nothing. A cross-language verifier can replay all three.

Verified the backward-compatibility guarantee rather than trusting it:
gen-vectors was run into a temp dir and vectors.json, standing.json, and
meta.json all diffed BYTE-IDENTICAL against the committed copies. Only the new
file is added.

Workspace green (40 suites), clippy clean.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-17 00:58:18 -04:00
..
v1 jcp: C22 conformance — executable check + published dual-ceiling vectors 2026-07-17 00:58:18 -04:00