{
  "about": "Shrink-only baseline for chaingraph/standard/jcs-rfc8785-vectors.test.mjs (JCS-RFC8785-VECTORS-1). Every non-PASS (implementation, case) outcome is listed with its class. defect: to be removed by the owner row when fixed. policy: a deliberate I-JSON rule (SPEC §4 / §PPH-1.1: unsafe integers fail loudly). by-design: the twin mirrors the zkVM guest's journal serializer; aligning it needs a new guest image and re-proving, which is not planned. Never add an entry to make the gate pass; fix the cause or record a ruling.",
  "measured": "2026-09-28 against origin/main 7d213273 (_hash.mjs, vm/twin/verify.mjs)",
  "known": [
    { "impl": "ocg-hash-path", "case": "structures.json", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "array-index member names enumerate numerically before other names" },
    { "impl": "ocg-hash-path", "case": "values.json", "outcome": "POLICY-REJECT", "class": "policy", "why": "1E30 is an integer-valued double above 2^53; assertIJson rejects it by design" },
    { "impl": "ocg-hash-path", "case": "weird.json", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "member \"1\" enumerates before \"\\n\" and \"\\r\"" },
    { "impl": "ocg-hash-path", "case": "P1-int-keys-9-10", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "\"9\" emitted before \"10\"" },
    { "impl": "ocg-hash-path", "case": "P2-int-and-string-keys", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "\"2\" emitted before \"10\"" },
    { "impl": "ocg-hash-path", "case": "P3-year-keys", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "\"999\" emitted before \"2024\"" },
    { "impl": "ocg-hash-path", "case": "P4-leading-zero-key", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "array index \"1\" emitted before string key \"01\"" },
    { "impl": "ocg-preimage", "case": "structures.json", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "same serializer as ocg-hash-path" },
    { "impl": "ocg-preimage", "case": "values.json", "outcome": "POLICY-REJECT", "class": "policy", "why": "same I-JSON rule as ocg-hash-path" },
    { "impl": "ocg-preimage", "case": "weird.json", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "same serializer as ocg-hash-path" },
    { "impl": "ocg-preimage", "case": "P1-int-keys-9-10", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "same serializer as ocg-hash-path" },
    { "impl": "ocg-preimage", "case": "P2-int-and-string-keys", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "same serializer as ocg-hash-path" },
    { "impl": "ocg-preimage", "case": "P3-year-keys", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "same serializer as ocg-hash-path" },
    { "impl": "ocg-preimage", "case": "P4-leading-zero-key", "outcome": "FAIL", "class": "defect", "owner": "JCS-CANON-FIX-1", "why": "same serializer as ocg-hash-path" },
    { "impl": "twin-jcsCanonicalize", "case": "values.json", "outcome": "THROW", "class": "by-design", "why": "fail-closed on exponent-form numbers, mirroring the guest" },
    { "impl": "twin-jcsCanonicalize", "case": "weird.json", "outcome": "FAIL", "class": "by-design", "why": "UTF-8 byte key order (Rust BTreeMap) puts U+FB33 before U+1F602" },
    { "impl": "twin-jcsCanonicalize", "case": "P5-astral-vs-high-bmp", "outcome": "FAIL", "class": "by-design", "why": "UTF-8 byte key order (Rust BTreeMap)" }
  ]
}
