PostGatecontrol layer, not a prompt8 rules18 drafts
A prompt can ask a model to follow your rules. It cannot stop the draft that breaks one.
This is the difference between "I told it the rules" and a workflow you can trust unattended.
Every rule below is a checkable constraint. Every draft gets a verdict, and a rejected draft
names the rule it broke and quotes the words that broke it.
Built by Muhannad for an educational-content workflow briefSynthetic sources, no client dataRecomputed in your browser on load
01 / the run
Eighteen drafts through the gate.
Twelve were assembled by a constrained composer from four source documents. Six are what an
unconstrained model hands you when the rules live only in the prompt. Watch which ones stop.
02 / the ledger
Click any row. A rejection tells you exactly what to fix.
Draft
Origin
Format
Verdict
Rules
Broke
03 / falsifiable
Paste your own text. The same eight rules run on it.
Nothing here is fixture-bound. The gate takes any string. Try breaking a rule on purpose:
add an invented percentage, write "guaranteed", open with "In this post I wanted to share".
04 / the rules
Eight constraints, and why each one exists.
Six are blockers and stop a draft. Two are notes and only annotate. That split is a decision your rules file owns, not the model.
Rule
Weight
Why it exists
05 / verification
Every number above, re-derived and asserted.
These assertions pin relationships, not totals, so they keep meaning if the corpus changes. They run in your browser now, and at /api/selftest.