{ "spec": "JouleClaw Information Conservation Law v1", "schema_id": "conservation/1", "measure_id": "canonical-json-byte-count", "note": "I(output) ≥ I(spec) AND I(output) ≤ I(spec) + I(delta) + I(substrate.used) (within residual_tolerance). Every implementer MUST produce the same Vec ordering as the reference DeterministicVerifier, byte-equal under serde_json's serialization with the same field set.", "vector_count": 5, "vectors": [ { "n": 1, "description": "Conforming — output exactly equals spec, no delta, no substrate.", "input": { "spec_bytes_utf8": "hello", "output_bytes_utf8": "hello", "delta_fields": {}, "substrate_id": "", "substrate_arrangement_hash": "", "substrate_used_info": 0, "residual_tolerance": 0, "required_slots": [] }, "expected_findings": [ {"kind": "conforming"} ] }, { "n": 2, "description": "BelowSpec — output shorter than spec; shortfall reported.", "input": { "spec_bytes_utf8": "the quick brown fox jumps over the lazy dog", "output_bytes_utf8": "hi", "delta_fields": {}, "substrate_id": "", "substrate_arrangement_hash": "", "substrate_used_info": 0, "residual_tolerance": 0, "required_slots": [] }, "expected_findings": [ {"kind": "below_spec", "shortfall": 41} ] }, { "n": 3, "description": "Hallucination — output longer than spec + delta + substrate budget.", "input": { "spec_bytes_utf8": "hi", "output_bytes_utf8": "hi there, this is a much longer response than the budget allows", "delta_fields": {}, "substrate_id": "", "substrate_arrangement_hash": "", "substrate_used_info": 0, "residual_tolerance": 0, "required_slots": [] }, "expected_findings": [ {"kind": "hallucination", "unaccounted": 61} ] }, { "n": 4, "description": "MissingDelta — required slot 'name' was never filled.", "input": { "spec_bytes_utf8": "hello, name", "output_bytes_utf8": "hello, name", "delta_fields": {}, "substrate_id": "", "substrate_arrangement_hash": "", "substrate_used_info": 0, "residual_tolerance": 0, "required_slots": ["name"] }, "expected_findings": [ {"kind": "missing_delta", "missing": ["name"]} ] }, { "n": 5, "description": "Multi-finding — MissingDelta + BelowSpec together (required slot empty AND output undersized).", "input": { "spec_bytes_utf8": "the quick brown fox jumps over the lazy dog", "output_bytes_utf8": "hi", "delta_fields": {}, "substrate_id": "", "substrate_arrangement_hash": "", "substrate_used_info": 0, "residual_tolerance": 0, "required_slots": ["name"] }, "expected_findings": [ {"kind": "missing_delta", "missing": ["name"]}, {"kind": "below_spec", "shortfall": 41} ] } ] }