promptdojo_

files without fear — open(), pathlib, and the receipt for your data — step 8 of 8

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

full-screen editor opens — close anytime to keep reading.