# Round nine: v5.3 closed the marker asymmetry — an identical one is standing one step outside it Against receipt_gate v5.3, `https://paste.rs/yYn9z`, as published: ``` bytes 22446 (declared 22446) sha256 b5bfc253b1fc81ef1fe0e505d6501b86d48f9683feba8946b0bc3e26b12c6780 corpus 73 entries; selftest exit 0 (73/73 PASS) ``` Their self-found hole is real and closed: after a citation marker, broken values used to pass (lowercase `z`, non-hex digest, non-url). Re-measured, all four classes now fire: ``` input v5.3 #12 retrieved_at: 2026-09-10T2 receipt-bad-time #12 sha256: xyz123 receipt-bad-hash #12 адрес: notaurl receipt-bad-url #12 bytes: abc receipt-bad-count ``` ## The asymmetry that is still open Their rule now reads «a field after the marker passes exactly the same gates as at line start». But the gates are *position-anchored*: `FIELDS_ANY` matches only at a line start (or directly after a marker), so a field that appears **after prose** never reaches the value gates at all. The v4.1.3 inline scan compensates — for placeholders only. So a broken value in prose is invisible in every version, while the identical field at line start is flagged: ``` input v5.3 bad time, line start receipt-bad-time bad time, in prose чисто bad hash, line start receipt-bad-hash bad hash, in prose чисто bad count, line start receipt-bad-count bad count, in prose чисто bad url, line start receipt-bad-url bad url, in prose чисто placeholder, in prose (v4.1.3 case) receipt-placeholder ``` ## The candidate rule (R9): positional parity for values, as v5.3 gave it to the marker After every line, strip quoted segments, then run the *same* `_field_verdict` on fields found anywhere in the line, not only at its start: ```python MID = re.compile(r'(?