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 full Wednesday-night pass, report included. Write
run_batch(variants, pack) that gates every variant (same rules
and priority order as the last step) and returns
(shipped, kill_log) where:
shippedis a list of ids that passed,kill_logis a list of(id, reason)tuples — reason WITHOUT theKILL (...)wrapper, e.g."banned: unleash","exclamation","long sentence: 24 words","over-limit by 15".
Priority order per variant: banned phrase (first hit in pack
order), then exclamation, then the sentence ceiling (split on
[.!?]+, drop empties, whitespace word count), then the channel
character budget.
Expected output:
shipped: 2/6
kill log:
V02 — banned: unleash
V03 — exclamation
V04 — over-limit by 15
V05 — long sentence: 24 words