When the output is wrong, fix what produced it — the prompt, the data, the generator — not the output. No filters, no gates, no find-and-replace patches on the way out.
A recurring temptation with AI-generated sites: the output is wrong in some specific way, so you add a filter that catches that specific wrongness on the way out. A regex that strips the bad thing. A gate that rejects the bad case. It works, narrowly, and it quietly rots — because you are now maintaining a growing list of symptoms instead of a correct source, and every symptom you did not predict still ships.
Doozer's rule is the opposite: when the output is wrong, fix what produced it. The operator states it directly: don't trap for it, produce better content and better muses so the problem cannot occur.
words ("1811", "Real"). The lazy fix is a filter that removes stray ::first-letter CSS after the fact. The real fix was in the muse-generation prompt (includes/muse-interpreter.php): forbid ::first-letter/drop-cap CSS and bare-element prose selectors at authoring time. Regenerate, and zero drop-cap rules exist to filter.
the posted hours said closed Sunday and Monday. The trap-the-symptom fix is a fact-checker rule that special-cases day-count claims. The real fix (includes/ai-content.php) feeds the actual weekday_text and the open-day count into the content prompt, so the model writes an accurate schedule the first time. Fact-Guard still exists as a net, but the net should catch surprises, not do the generator's job.
The discipline is refusing the fix that is easy to write and easy to demo, in favor of the fix that changes the distribution of outputs. A filter improves one page. A better prompt improves every page that will ever be generated, including the failures you have not seen yet. It is slower to reach for and it is the only version that scales to thousands of sites without accumulating a junk drawer of special cases. Same spirit as design standards living in one registry: change the rule where it is authored, not everywhere it shows up.