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 whole pipeline against the live hero copy —
extract, verify, and resolve. Thursday is here and the copy ships
TODAY, so anything without a source gets struck from the copy
rather than shipped on faith. Write claim_check(copy, sources)
that:
- Extracts claims from the lowercased copy with
r"\d+(?:\.\d+)?|\blightest\b|\bfree\b"(in match order). - Looks each claim up in
sources. A truthy value verifies the row: print"<claim>: verified (<source>)". A missing or None entry: print"<claim>: OPEN — struck"and collect it. - Prints
"struck: <claims joined by ', '>". - Prints
"revised decision: SHIP (<n> claims, all closed)"where n counts the claims that survived.
Expected output:
890: verified (spec-sheet-v4.pdf)
free: verified (shipping-policy-2026.md)
75: verified (shipping-policy-2026.md)
4.8: OPEN — struck
lightest: OPEN — struck
struck: 4.8, lightest
revised decision: SHIP (3 claims, all closed)