@@ -237,9 +237,10 @@ mod tests {
237237 fn ocr_schema_fit_rides_existing_preset_no_new_variant ( ) {
238238 // Probe OCR-SCHEMA (.claude/plans/ocr-probes-v1.md): the OCR value tenants
239239 // fit an EXISTING ValueSchema preset, so a 5th `ValueSchema::Ocr` enum variant
240- // is NOT needed (#496 §0 anti-invention). The codec-residue set OCR rides —
241- // HelixResidue + TurbovecResidue + EntityType (+ Fingerprint) — is exactly
242- // `Compressed`; everything else OCR could want is in the POC `Full` default.
240+ // is NOT needed (#496 §0 anti-invention). `Compressed` carries the codec
241+ // residues — but OCR also writes confidence→Energy + repair→Plasticity, which
242+ // `Compressed` LACKS, so OCR rides `Full` (the only preset with residues AND
243+ // the hot lifecycle columns), not `Compressed` (codex P2 on #500).
243244 let compressed = ValueSchema :: Compressed ;
244245 for t in [
245246 ValueTenant :: HelixResidue ,
@@ -249,11 +250,20 @@ mod tests {
249250 ] {
250251 assert ! (
251252 compressed. has( t) ,
252- "Compressed already carries {t:?} — OCR rides it "
253+ "Compressed carries the codec residue {t:?}"
253254 ) ;
254255 }
255- // The shipped transcode rides POC `Full`, which carries every tenant OCR touches
256- // (incl. Meta anchor / Energy confidence / Plasticity provenance).
256+ // ...but NOT the hot columns OCR's writeback needs — Compressed alone drops them.
257+ assert ! (
258+ !compressed. has( ValueTenant :: Energy ) ,
259+ "Compressed lacks Energy"
260+ ) ;
261+ assert ! (
262+ !compressed. has( ValueTenant :: Plasticity ) ,
263+ "Compressed lacks Plasticity"
264+ ) ;
265+ // OCR rides `Full`, which carries every tenant OCR touches (residues + Meta
266+ // anchor + Energy confidence + Plasticity provenance + EntityType).
257267 let full = ValueSchema :: Full ;
258268 for t in [
259269 ValueTenant :: HelixResidue ,
0 commit comments