promptdojo_

The voice pack is data — on-voice copy at batch volume — 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 voice pass. The AI drafted a five-variant batch for the Fieldnote relaunch. Lint every variant, print the per-variant verdicts, and build the on-voice queue that goes to Dana.

Write BOTH functions:

lint_copy(text, pack) — as before: banned phrases from pack["banned"] (in list order, case-insensitive, violation string "banned: <phrase>"), then "too long" if word count exceeds pack["max_words"]. Returns the violation list.

on_voice_variants(variants, pack) — returns the list of variant dicts whose lint_copy result is empty, preserving order.

The harness at the bottom prints one line per variant and the final queue count. Expected output:

E1 email  PASS
E2 email  FAIL banned: revolutionary
S1 social PASS
S2 social FAIL banned: best-in-class; banned: #1; too long
A1 ads    PASS
kept 3/5 — batch goes to Dana for approval

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