Clever prompts drift where governed ones hold.
The first pack we shipped sent a banned phrase to a client on day one.
The first prompt pack we ran in production shipped a banned phrase into a client subject line on day one, and the prompt read well enough that we didn't catch it before shipping. We ran the same prompt across thirty emails in a week and it drifted: a banned phrase slipped through on email nineteen, a draft quietly changed the offer, and a "pass" came back with nothing actually checked, because the prompt had no obligation to check.
The instinct is to write a better instruction: more detail, more emphasis, a few more "make sure you" lines. That's the wrong fix, because the problem isn't that the instruction is unclear; it's that nothing forces the prompt to follow it. At volume, a prompt with no governance behaves like a junior writer with no review process: fine on a good day, unpredictable on a deadline.
Why a clever prompt drifts at volume
A bare prompt is a suggestion. The model reads it, weighs it against everything else in the context window, and produces something plausible. On a single run that's usually close enough that you don't notice the gaps. The drift is invisible until you scale.
Run the same prompt fifty times and the gaps compound. When a required input is missing, the model guesses rather than stopping, so a bad draft ships instead of an error. When the output violates your rules, there's nothing that catches it before you see it. And because there's no human gate, the approval that should have been yours gets made silently by the model. None of these are failures of cleverness but of structure.
The teams I work with who run AI in production don't write smarter prompts; they wrap ordinary prompts in a structure that makes the prompt accountable for its own output before a human ever reads it.
The four mechanisms that make a prompt govern itself
A governed prompt has four parts layered on top of the instruction. Each one closes a specific drift failure.
Prerequisites, fail-closed. The prompt declares what it needs and refuses to run without it, so there's no silent guessing. If the input is missing, it stops and tells you what to provide.
Self-validation, self-healing. Before returning anything, the prompt checks its own output against named rules. A failed check gets fixed once internally, or the prompt returns a "validation failed" line instead of a bad draft.
Human gate. The prompt stops and waits for your APPLY or REJECT. It never writes a file, queues a send, or commits a change on its own. The decision stays with you, at the most expensive point in the workflow.
Improvement proposal. When the prompt notices a recurring pattern, it proposes a one-line rule for you to add by hand. It never edits its own rules, so you stay in control of what the system learns.
These four aren't specific to email; they're how you make any AI step safe to repeat. But email is where the cost of drift shows up fast, because a bad send is public and permanent.
A governed prompt you can run today
Here is one of the seven prompts from the pack, the pre-send QA check, written with all four mechanisms in place. Paste it into Claude, add your email HTML where the prompt asks, and run it. It refuses to proceed without the HTML, checks six categories, cites evidence for every flag, and stops for your decision instead of marking the send ready itself.
## Prerequisites (required before running)
- Email HTML source (exported from your ESP, not a screenshot)
- Target ESP name (Klaviyo, HubSpot, Mailchimp, custom)
If either is missing, do not proceed. Respond:
"Cannot run. Missing: [list]. Provide and re-run."
## Inputs
Target ESP: [ESP NAME]
Email HTML: [PASTE FULL HTML INCLUDING HEAD AND FOOTER]
## Task
Run a pre-send QA across six categories. Return PASS or FAIL for each.
For every FAIL, cite the specific instance with a line number or quote.
1. Personalization: merge tags have fallbacks, no unclosed variables
2. CTA: one primary action, button names the action not the outcome
3. Legal: real unsubscribe URL present, physical address in footer
4. Mobile: no element wider than 600px, no body font under 14px
5. Dark mode: no hard-coded hex on text without a prefers-color-scheme override
6. Preview text: present, under 100 characters, not a repeat of the subject
## Self-validation (run before returning output)
- Every category returns PASS or FAIL
- Every FAIL cites a line number or verbatim quote
- No category marked PASS unless every check in it ran
- No suggestion outside the six categories above
If a check fails, fix once internally. If you cannot, return:
"Validation failed: [rule]. Cannot produce a compliant report."
## Human gate
After returning the findings, state:
"Type APPLY to block this send and queue the flagged fixes, or
OVERRIDE [category] with a documented exception note."
Do not modify the HTML. Do not mark the send as ready.
## Improvement proposal
If a recurring failure appears that is not in the six categories, append:
"PROPOSED RULE ADDITION: [one line]"
Do not modify this prompt.Run it on the raw HTML, not a screenshot, and paste the full markup including the head and footer. The legal items and preview text live in those sections, and they get stripped if you only copy the visible body.
What changes when the prompt polices itself
The output stops being a confident summary and starts being a work order. Instead of "looks good," you get "Line 47: {{first_name}} has no fallback." Instead of an approval the model made for you, you get a decision the model hands back. The same prompt produces the same discipline on email one and email fifty, which is the entire point of running AI in production rather than as a party trick.
This is the foundation under the rest of the system. Once a prompt governs itself, you can wire it into a pipeline, version it, and trust it to run without you watching every output. The full set, seven governed prompts for writing, auditing, and shipping email, is in the Email Production Prompt Pack. The ones worth keeping will show you which parts of your workflow you've been managing by hand.


