docs(accounting): the judge names the fidelity it does not check

Green: 112 passed in the gate's own file. The docstring now says what the two
routes do NOT reach -- neither decodes a pixel, so a converter writing a blank
PNG is accepted, and "claiming a conversion it did not perform" means claiming
one whose FILE is missing, never one whose pixels are wrong.

Teaching the judge pixels is a different job and is not this order. Leaving a
reader of the gate to infer the gap was the defect.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-19 09:31:50 +02:00
commit 76e407f368
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q

View file

@ -440,6 +440,16 @@ def asset_holds(build: Build, source: Path) -> bool:
says were written. A bundle claiming a conversion it did not perform still says were written. A bundle claiming a conversion it did not perform still
fails, which is the difference between reading the bundle and believing fails, which is the difference between reading the bundle and believing
the report. the report.
WHAT NEITHER ROUTE PROVES IS FIDELITY. Both ask whether a file in
`assets/` holds the bytes the bundle names, and neither decodes a PIXEL:
measured 2026-09-19, a mutated converter that writes a BLANK PNG is
accepted here, because the bundle is internally consistent -- the digest
it claims to have written really is the asset's digest -- and nothing in
this gate compares that picture with the source's. The suite fells that
mutant by decoding both sides; the judge cannot. So "claiming a conversion
it did not perform" means claiming one whose FILE is missing, never one
whose pixels are wrong.
""" """
digest = _sha256(source) digest = _sha256(source)
if any( if any(