Linear free-film reference:17/19 controls pass, strict order monotonicity fails at80/160um. Not full C1/curved-edge/experiment validation.

Presentation only: python thin_film/scripts/linear_freefilm/report.py.
Original one-shot preparation/run are recorded in protocol.json; numerical states completed before NumPy bool JSON export failed.
recover_outputs.py reused all9 original NPZ states without evolution replay. Repeated recovery refuses existing outputs.
Original source-at-run files and hashes retained; current run.py has JSON-only scalar export fix, with exact diff/provenance. Do not replay successful states to repair metadata.
Original material state reused from frozen uniform10 files, see protocol initial_path and SHA. Model data are inherited SI inputs, not a new measured experiment.
Current original native uniform5 code/binary/materials unchanged.
Git may normalize processed text line endings; on-machine text hashes refer to original local bytes. Binary NPZ states retain exact byte hashes.
