promptdojo_

The policy pack — banned promises and fresh citations, as data — step 7 of 8

Write lint_draft(text, banned) — the banned-promises linter that runs on every suggested reply before you even read it.

It takes the draft text and the banned-phrase list, and returns the list of banned phrases found in the draft (case-insensitive substring match), in banned-list order — the order of the pack, not the order they appear in the sentence.

The report loop is written for you: clean drafts print clean, dirty drafts print HOLD with the phrases joined by ; .

One thing before you trust that clean: T-880 cites KB-204 — the article the freshness check flagged as stale two steps ago. The phrase linter reads words, not citations, so it waves the draft through anyway. The checkpoint welds both gates together and closes exactly that gap.

Expected output:

T-880: clean
T-881: HOLD — full refund; won't happen again
T-882: HOLD — policy exception

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