{"schema":"project-telos.display-calibration/v1","tool":"telos.display.calibration","generated_at":"2026-06-28T00:00:00.000Z","purpose":"Promote Calibrate Pro and Quanta Color into a read-only Telos display-calibration contract for host-neutral color packets, artifact refs, and Crucible measurement gates.","contract":{"protocol_agnostic":true,"receipts_required":true,"hardware_mutation_allowed":false,"raw_assets_required_for_interop":false,"io_surfaces":["cli-json","mcp-json-rpc","ide","tui","app-bridge","proof-artifact"],"verdicts":["MATCH","DRIFT","UNVERIFIABLE"],"mutation_boundary":"This contract does not call DDC/CI, set monitor OSD values, apply DWM LUTs, write ICC profiles, or persist startup services."},"sources":[{"id":"calibrate-pro","role":"display calibration workflow and artifact lineage","origin":{"repo":"HarperZ9/calibrate-pro","path":""},"receipt":{"repo":"HarperZ9/calibrate-pro","commit":"ba415e6a75fe5145c27c634c658646120a274804","path":"README.md","sha256":"04e294f1b6776cb28a89db036ab89fc0b70a69dcdc88f77e05af5c1ca56411f6"}},{"id":"quanta-color","role":"color science metrics, spaces, HDR, ICC, spectral, and gamut primitives","origin":{"repo":"HarperZ9/build-color","path":""},"receipt":{"repo":"HarperZ9/build-color","commit":"a75d63c588b444b159cdb40274817c8096555773","path":"README.md","sha256":"afeec67fdc9acc91afde7838666bf51bc4c576fa67ff66e43b7d633b050093a6"}}],"display_targets":[{"id":"generic-sdr-reference","white_point":"D65","transfer":"sRGB or BT.1886","gamut":"sRGB","artifact_refs":["icc-v4-profile-ref","delta-e-summary"],"verifier_notes":"Use as the first synthetic target for report and packet interop."},{"id":"wide-gamut-hdr-reference","white_point":"D65","transfer":"PQ, HLG, or BT.2390 EETF","gamut":"Display P3 or Rec.2020","artifact_refs":["cube-3d-lut-ref","calibration-report-ref"],"verifier_notes":"Treat HDR claims as UNVERIFIABLE until measured or simulated packets include explicit criteria."},{"id":"sensorless-panel-database","white_point":"panel-profile-dependent","transfer":"panel-profile-dependent","gamut":"EDID or panel database","artifact_refs":["restore-state-ref","calibration-report-ref"],"verifier_notes":"Panel database predictions are evidence leads, not measured truth, until paired with measurement packets."}],"patch_sets":[{"id":"colorchecker-24","role":"common color patch sanity set","minimum_fields":["patch_id","target_lab_or_xyz_ref","measured_lab_or_xyz_ref","delta_e"]},{"id":"grayscale-tracking","role":"gamma and neutral axis tracking","minimum_fields":["level","target_luminance_ref","measured_luminance_ref","chromaticity_drift"]},{"id":"hdr-ramp","role":"tone-map and rolloff inspection","minimum_fields":["code_value","target_nits_ref","measured_or_simulated_nits_ref","transfer_function"]},{"id":"gamut-boundary","role":"primary, secondary, and hull boundary checks","minimum_fields":["sample_id","target_space","mapped_space","clipping_or_compression"]}],"artifact_types":["icc-v4-profile-ref","cube-3d-lut-ref","calibration-report-ref","delta-e-summary","restore-state-ref"],"color_library":{"dependencies":["quanta-color"],"spaces":["sRGB","Display P3","Rec.2020","Oklab","JzAzBz","CAM16-UCS","CIE Lab"],"metrics":["CIEDE2000","CAM16-UCS","Oklab Delta E","JzAzBz Delta E"],"adaptation":["Bradford","CAT16","D50","D65"],"hdr":["PQ","HLG","BT.2390","BT.2446"]},"measurement_gates":[{"tool":"crucible.measurement_gate","criteria_ref":"display-calibration.measurement-packet/v1","expected_verdicts":["MATCH","DRIFT","UNVERIFIABLE"],"requires":["action_intent_id","target_id","patch_set_id","artifact_ref","source_receipts","evaluation_time"]},{"tool":"telos.measurement.layers","criteria_ref":"visual.histogram-field and visual.dither-spectrum-meter","expected_verdicts":["MATCH","DRIFT","UNVERIFIABLE"],"requires":["image_or_frame_hash","tone_histogram","contrast_map","privacy_boundary"]}],"privacy":{"raw_device_telemetry_required":false,"raw_lut_payload_required":false,"raw_icc_payload_required":false,"raw_private_assets_required":false,"redacted_report_refs_allowed":true,"hash_only_receipts_allowed":true},"boundary":"read-only contract surface only; no DDC/CI, no monitor OSD mutation, no DWM LUT apply, no ICC write, no startup persistence, and no raw device telemetry required for interop.","next_actions":["Implement a read-only color packet generator before adding live monitor controls.","Route synthetic calibration packets through crucible.measurement_gate.","Use Quanta Color as the shared color-science dependency for Telos measurement layers.","Keep restore-state refs mandatory before any future local hardware mutation path."]}
