Checkpoint
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
Checkpoint — the half AI never writes. You have a manifest recorded
last week and the files as they exist right now. Since then,
eval.csv was quietly regenerated: it grew from 2 rows to 3 and
its bytes changed. Your job is the alarm.
Write verify(manifest, files): for each manifest entry, look up
the file's current content in files, recompute the data row count
(newline count minus 1 — these are CSVs with a header) and the
short hash, and compare both against the recorded rows and
sha256. Return a list of strings — <file>: ok when both match,
<file>: MISMATCH when either doesn't — in manifest order.
Expected output:
train.csv: ok
eval.csv: MISMATCH