promptdojo_

Variants at scale — twelve on-voice, and a kill log for the rest — 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 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:

  • shipped is a list of ids that passed,
  • kill_log is a list of (id, reason) tuples — reason WITHOUT the KILL (...) 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

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