You gave the model five rules: stay under 200 words, use second person, include a CTA, no exclamation marks, and do not mention competitor names. It came back at 180 words, in second person, with a CTA and no exclamation marks — and casually dropped two competitor names in the third paragraph. The constraint you cared about most was the one that disappeared. This is a common failure: when a prompt has many rules, the model treats them as roughly equal weight and may drop one that conflicts with another or that lives mid-prompt where attention is thinner. The fix is not to repeat the rule louder, but to hoist it to its own section, phrase it as a hard binary, and verify it in the output.
Common causes
Ordered by frequency.
1. Critical constraint buried in the middle of the prompt
You wrote a 400-word brief and the critical rule is in paragraph 3. Models pay disproportionate attention to the start and end of long prompts. The middle is where rules quietly die.
How to spot it: open your prompt and locate the dropped constraint. If it is more than 50% of the way down and not in a labeled section, that is the cause.
2. The constraint conflicts with another rule
Rule A: "sound enthusiastic and energetic". Rule B: "no exclamation marks, no superlatives". The model picks one and quietly violates the other. Usually it picks the one that is easier to satisfy locally.
How to spot it: list your rules. Are any of them in tension? The dropped one is usually the harder-to-satisfy half of a pair.
3. Soft phrasing makes the rule optional
"try to avoid mentioning competitors" reads as a preference. "do not mention any of the following names: X, Y, Z" reads as a rule. Soft language gets soft compliance.
How to spot it: re-read the constraint. Words like try, prefer, ideally, if possible all signal “negotiable” to the model.
4. Long context pushes the constraint out of attention
In a 6k-token system prompt, a rule on line 8 is competing with 200 lines of subsequent content. By the time the model is generating, the rule may have rolled out of high-attention positions.
How to spot it: prompt is long and the dropped rule is not in the first 500 or last 500 characters.
5. The rule lives in a different turn than the request
If you said "always use second person" 4 turns ago and now you say "write a follow-up", the rule may not be re-activated. Long chats lose constraint anchoring.
How to spot it: scroll up. The constraint was established in a different turn and was not repeated when you made the current request.
6. The rule is negative but the example shows the negative behavior
"do not include legal disclaimers" followed by "here is an example: <example with a legal disclaimer at the bottom>". The model often imitates the example shape and ignores the negation.
How to spot it: check whether any example or reference document in the prompt violates the rule you stated.
Before you change anything
- Confirm which constraint was dropped and that it was actually in the prompt.
- Write down the exact prompt, the model, and any prior turns where rules were established.
- Save the bad output verbatim — quote the lines that violate the constraint.
- Note which other constraints WERE satisfied, to identify any conflict.
- Check whether the same prompt drops the same constraint across multiple runs (deterministic vs sampling).
Information to collect
- Full prompt text and any system prompt.
- The list of rules in order, with their exact wording.
- The output that violated the rule, with violations highlighted.
- The model, temperature, and tool-use settings.
- Any examples or reference documents that may have undermined the rule.
Shortest fix path
Ordered by ROI.
Step 1: Identify the one non-negotiable constraint
Out of your N rules, pick the one rule whose violation would block shipping the output. Everything else is secondary. If you cannot pick one, your prompt has unclear priorities and that itself is a cause.
Step 2: Hoist it to a dedicated top section
Restructure the prompt:
# NON-NEGOTIABLE
Do not mention any of these competitor names: Acme Corp, BetaCo, Gamma Inc.
If you find yourself wanting to mention any of them, write [REDACTED] instead.
# Task
<the actual task>
# Style rules
- Under 200 words
- Second person
- Include a CTA
- No exclamation marks
The hard rule is in its own section, at the top, in capitalized form.
Step 3: Use binary language, not soft language
| Soft (drops easily) | Hard (sticks) |
|---|---|
"try to avoid X" | "do not include X under any circumstances" |
"ideally under 200 words" | "output must be 180-200 words; reject if outside" |
"prefer second person" | "use only 'you' and 'your'; do not use 'we', 'I', or 'they'" |
"keep it professional" | "do not use slang, emojis, contractions, or exclamation marks" |
Step 4: Add an output self-check
End the prompt with:
Before you finish, verify:
1. Did you mention Acme, BetaCo, or Gamma? (Y/N)
2. Quote the line that proves you obeyed rule 1.
If any check fails, rewrite the output and re-check.
The self-check forces the model to reread its own output against the rule.
Step 5: For agentic systems, add a programmatic guardrail
For automation, do not rely on the prompt alone. Add a post-generation regex/keyword check:
banned = ["Acme Corp", "BetaCo", "Gamma Inc"]
if any(b.lower() in output.lower() for b in banned):
raise ConstraintViolation("competitor mentioned")
If the model violates, retry with the violation included in the prompt: "your previous output mentioned BetaCo on line 4. Rewrite without any competitor name."
Step 6: Resolve conflicts before generation
If your “enthusiastic” rule conflicts with your “no exclamation marks” rule, decide which wins and remove the other, or specify how to reconcile: "sound enthusiastic through verb choice and concrete numbers, not punctuation or superlatives."
How to confirm the fix
- The non-negotiable constraint is satisfied in 5/5 consecutive runs.
- The model’s self-check at the end correctly identifies whether the rule was followed.
- A teammate reading the output without seeing the prompt cannot find a violation.
- The programmatic check (if you added one) passes.
If still broken
- Reduce the prompt to the bare minimum: hoisted constraint + task + 1 example. Build back up.
- Try a stronger model — constraint following is capability-bound.
- Move the constraint into a system prompt or Custom GPT / Project instruction instead of a user message.
- For very long prompts, split the work: have one call check the constraint and another generate.
- Lower temperature to 0.3-0.5; high temperature increases constraint drops.
Prevention
- Default discipline: every prompt has at most one
# NON-NEGOTIABLEsection with one rule. - For recurring workflows, encode constraints in the system prompt, not the user message.
- Treat dropped constraints as a prompt bug to fix, not a model failure to forgive.
- After any prompt rewrite, re-test with 3 runs to confirm the constraint sticks.
- Maintain a checklist of common non-negotiables (no PII, no competitor names, no fabricated stats) you paste into briefs.
Related reading
- Conflicting instructions weaken output
- Latest sentence overrides earlier rule
- Long prompt degrades output
- Negative constraints stated too vaguely
- Mixed-tone instructions
Tags: #Troubleshooting #Prompt #Prompt quality #Prompt engineering