# Frozen r02 technical recheck

Date: September 13, 2026. Scope: the locally present, public-facing `chunk-title-r02/public` kit and its corrected preparation. This is an independent technical replay, not another source-aesthetic or blind review. No publication is claimed.

## Verdict

**The original raster finding is resolved for the actual corrected preparation.** The real public CLI completed successfully and generated **29 PNGs**. Every PNG is byte-identical to the builder's actual public-CLI output, the corrected private manifest and the public artifact binding.

The unchanged verifier compared **all 66 render frames** and exited **0**. Maximum binary-ink XOR / union is **0.0012132575966469971 = 0.1213257597%**, below the unchanged, strictly-less-than **3%** ceiling. The previous failure was **3.7272773563%**. Ink remains gray `< 96`; neither the metric nor its threshold was relaxed. All 13 existing tests passed.

**One bounded integrity gap remains for builder return.** The successful raster repair is not a blanket pass for the standalone verifier's manifest validation.

## Builder return: manifest validation is incomplete

Priority: **P2**, separate from the resolved raster fault. Relevant code is `chunk-title-r02/public/verify.py:89` and `verify.py:95`. The public preparer rejects the wrong executable at `prepare.py:21`, but the standalone verifier does not validate all the provenance and inventory fields it receives.

Three real CLI counterexamples, using private copies of the manifest and unchanged correct PNGs, all exited **0**, reported raster pass and retained the same 0.1213257597% maximum:

1. Replace the browser record with the known failing Headless Shell name/hash and its same version string.
2. Replace the declared font hash with 64 zeroes.
3. Replace the final inventory row with a duplicate paper row. The list still has 29 rows, but only 28 unique paths; the final Adaptation detail PNG is no longer hash-checked through that inventory.

These results do **not** show that the builder used the wrong browser/font or supplied bad PNGs. The independent replay, executable check, actual-byte comparison and public checksum checks establish the corrected artifacts in this recheck. The gap is that a later standalone verification accepts contradictory or incomplete manifest evidence while reporting integrity pass.

Minimal correction: compare browser hash/version with the reference binding, compare the declared font hash with the verified project font, and require the exact unique PNG path set derived from the recipe before checking all bytes. Keep the `< 0.03` raster calculation unchanged. Add these three rejection cases to the helper's tests. No builder edits were made here.

## Executed checks

- Verified all **14 public files**: 13 entries in `SHA256SUMS`, plus the checksum file's own digest. All ten declared code bindings matched.
- Ran the guide's first Bash block with its strict shell flags. The only execution addition was `flock` around PNG preparation; the verifier independently locks each FFmpeg decode. The configured Python environment, full Chrome and selected project inputs were reused read-only. No dependencies were copied and no dependency symlinks were created.
- The block ran project binding, 13 tests, actual preparation, actual verification and both model cut lists. The result was exit 0, 29 saved PNGs, and all 66 frame records matching the builder's recorded verifier output. The source excerpt was mechanically decoded by that verifier; this gives no source-aesthetic credit.
- Compared the verifier with the original failed kit. The six mask, count, difference, bounds, probe and decode functions are AST-identical; the full source delta changes manifest input/output wiring, not the comparison loop or strict gate.
- Nine real input/hash negatives correctly rejected: missing run configuration, wrong executable hash, existing output, output outside the worker, invalid replacement text, changed selected project bytes, changed recipe hash, changed preparation-code hash and changed PNG bytes.
- Five synthetic shell-failure injections stopped exactly at guard, binding, tests, preparation or verification. No later command ran. These test shell control flow only; they are not substitute render evidence. An empty manifest can exist when preparation fails because shell redirection occurs before the command; the subsequent verifier still does not run.
- The 206 snapshotted shared-input files, including the r02 materials, accepted inputs and prior failed kit/plates, remained unchanged. The initial unrelated storage-guard obstruction cleared; the unchanged guard then passed. No bypass or foreign-file cleanup was used.

Actual replay command shape, from the public helper directory with the documented environment configured:

```bash
"$PYTHON" binding.py --project "$PROJECT"
"$PYTHON" test_recipe.py -v
flock "$FIELDNOTES_RUN_ROOT/encoder.lock" "$PYTHON" prepare.py --project "$PROJECT" --browser "$CHROME_BINARY" --out "$OUT" > "$MANIFEST"
"$PYTHON" verify.py --stage "$STAGE" --plates "$OUT" --preparation "$MANIFEST"
"$PYTHON" model.py --variant original
"$PYTHON" model.py --variant adaptation
```

The private execution record retains the exact arguments, environment, paths, stdout digest and exit status. All comparison/negative results and the actual generated PNGs are retained with a hash seal. No tests or rendering were restarted while freezing this verdict.

## Hashes

SHA-256 values below are grouped into eight blocks for readability; remove spaces to recover the full digest.

| Artifact | SHA-256 |
| --- | --- |
| Public `SHA256SUMS` | `4fe89131 88701a4c cdb1796c ef511b8b 95cb6d78 88ed7e52 9aacdce9 c37399fa` |
| Tested full Chrome executable | `9a1fec86 405041cd f16c9977 d022130c 4caf96da 6d1a9a20 b1767b4a e370e8f6` |
| Independent preparation manifest | `79e788e3 87b9d5f1 b7d4f667 d702280e 27ee42e3 9a3cbb10 e1df3bbe eacb98d6` |
| Independent verification JSON | `3ca0fbea 5a50db50 89ca127f fcd11ebf ba441d88 e0c0a4f2 7809c88c aeea9802` |

The complete 29-file PNG hash list is in the byte-comparison evidence. A separate private freeze manifest binds the reports, CLI records, malformed-input fixtures and generated PNGs. Local machine paths are intentionally excluded from this public-safe summary.

## Limits and zero-credit boundaries

- **Native Resolve renders: 0. Moving reviews: 0. New source-quality or blind-win credit: 0.** No new mechanism/example or final-presentation credit.
- No source aesthetic inspection was restarted. No source-master download, full-resolution source/crop-origin recovery, native import/export or historical browser reconstruction was performed.
- The retained source excerpt is 960×540; existing renders and prepared layers are 1920×1080. The technical window remains `[0,33)` at `30000/1001`, not a full-source review.
- Only paper is supplied as SVG. Text remains editable copy plus HTML/CSS and becomes raster PNG layers. There are **no outlined-glyph SVG plates**, full-vector text plates or verified native SVG import.
- No new MP4 was encoded. No installation, dependency copy, arbitrary scratch symlink, deployment or public-network availability check occurred. The real files here are a local public-facing kit, not proof of a served deployment.
- The manifest counterexamples leave a limited standalone integrity gap; they do not negate the independently verified byte-identical preparation or authorize any threshold waiver.

This verdict is frozen to the saved replay and listed hashes. A subsequent corrected helper would need only a narrow technical check of its changes, not a new blind/source-quality review.
