AI IntelligenceAug 19, 2026Practical Tip
Article
Why a Prompt Without Measurable Criteria Will Inevitably Break Your Model
Frontier EditorialSource: Reddit r/PromptEngineering
01
Source Brief
Why a Prompt Without Measurable Criteria Will Inevitably Break Your Model
02
Practical Tip
This post focuses on one layer: measurable criteria. Role, constraints, clarification, and terminology are intentionally simplified - they serve as markers that "these layers exist." Other layers are omitted. The model has a role. It has constraints. It has clarification. It has terminology. But it doesn't know how many, how long, in what tone. Here's an example: "You are a copywriter. Write several persuasive versions of landing page copy with a call to action. Don't go beyond copywriting. If asked to do something outside your role - refuse. Ask if anything is unclear. By 'versions' I mean different approaches to the offer." The role is there. The constraints are there. The clarification is there. The terminology is partially there. But the criteria are not defined. The model doesn't know: How many versions to write How long the copy should be What "persuasive" means What level of aggressiveness is acceptable Moment 1. User: "Write the versions" The model doesn't know how many versions - is forced to assume - decides it means "three." Moment 2. User: "No, I need more" The model doesn't know what "more" means - is forced to assume - fixes "three" as a mistake - decides "more" means "ten." Moment 3. User: "Too much." The model doesn't know what "too much" means - is forced to assume - fixes "ten" as a mistake - decides fewer. Moment 4. User: "And the copy is weak" The model doesn't know what "weak" means - is forced to assume - decides it means "not enough emotion" - adds exclamation marks. Moment 5. User: "Now it's too pushy" The model doesn't know what "pushy" means - is forced to assume - compares with the previous version - decides "pushy" means the added exclamation marks and aggressive wording - removes the exclamation marks and softens the wording. All five assumptions stayed in the context. The Result The model wrote three versions. Then ten. Then fewer, but with exclamation marks. Then with softened wording. The user meant one thing : five versions of 100 words each, calm tone, no exclamation marks. But he didn't say it out loud. He believed that "several," "persuasive," and "not pushy" already meant that. The model heard "several" - and chose the most statistically frequent option: three. Because in training data, "several" most often means "three." From there, every clarification from the user became a new guess. The model had no criteria - so it substituted its own. The role was there. The constraints were there. The clarification was there. The terminology was there. The criteria weren't. The model kept substituting its own numbers. The prompt broke. Why This Is Inevitable Criteria are not defined. "Several" can mean three, five, ten. "Persuasive" - anything. "Not pushy" - even more so. When criteria are missing, the model picks the most statistically likely ones - not the ones the user meant. The user knows what he means. The model doesn't. Criteria are not formulated. "Persuasive" is requested - but no definition is given. "Not pushy" is said - but no boundary is shown. Every vague criterion is a fork in the road. The model picks a path. The context remembers that path. Sooner or later, the context is filled with numbers and rules the user never agreed to. A modern model could ask: "How many versions? How long? What tone?" But the user already gave clarification: "ask if anything is unclear." And here's the trap: the model thinks "several" and "persuasive" are clear. It doesn't occur to the model to ask about them. Because for the model, they're not "unclear" - they're just vague . And the user thinks that since he allowed the model to ask - the model will ask if something is wrong. The Fix The problem isn't solved by one line like "be more specific." It's solved by a full criteria block . Here's what that looks like: CRITERIA (MANDATORY NUMBERS AND FORMATS) Before generating any output, confirm with the user: Quantity - how many versions? (A number.) Length - how many words or characters per version? (A number.) Tone - what style? (Calm, aggressive, friendly, expert?) Call to action - how many CTAs? (A number or zero.) VAGUENESS CHECK: Before requesting a criterion, check: Can it be understood in more than one way? Does it depend on taste? Does it have a numerical expression? If a criterion is vague - treat it as undefined . Request a number or format from the user. RULE: If a criterion is not defined - request it BEFORE generating. Do NOT substitute your own values. Why This Works "Confirm the criteria" - forces the model not to rely on its own assumptions "Vagueness check" - shifts the model from passive to active: it doesn't wait for the user to notice the problem, it searches for it "Treat it as undefined" - closes the loophole "I think I know how many are needed" "Request a number or format" - turns taste-based judgments into measurable values This block is needed not only by the model. It's needed by the user himself. The model already knows that "several" is not a number. The user doesn't. The user is confident that "persuasive" is a criterion. The block forces him to name a number for the first time . And it often turns out that the user himself didn't know how many versions he needed. He just said "several" - and expected the model to figure it out. The Result The model stops guessing. It asks for the quantity. Gets a number. Asks for the length. Gets a number. Asks for the tone. Gets an answer. After three or four questions, every criterion is locked down. The output matches what the user meant. The context is clean. The user, in turn, starts noticing which criteria he used to leave vague. And over time, he gets used to defining them upfront - before the model even asks. Don't make the model guess how many, how long, and in what tone. It will guess. And it will be wrong. submitted by /u/Majestic_Pie_2512 [link] [comments]
03