Prompt instruction conflict checker
One of the quietest causes of unreliable LLM output is a prompt that contradicts itself. “Be concise” sits two lines above “explain your reasoning in full.” “Use a formal tone” competes with “keep it casual and friendly.” The model can’t satisfy both, so it silently picks one — and you get inconsistent results. The prompt instruction conflict checker scans for these contradictions using rule-based heuristics, right in your browser.
How it works
The checker holds a library of opposing instruction pairs, each defined by sets of trigger phrases. For every pair it looks for evidence of both sides in your prompt:
- Brevity vs. comprehensiveness — “be brief / concise / short” against “be thorough / comprehensive / detailed”.
- Formal vs. casual tone — “formal / professional” against “casual / friendly / conversational”.
- Strict format vs. free-form — “only return JSON / exact format” against “feel free / be creative / open-ended”.
- Certainty vs. hedging — “be definitive / no caveats” against “note uncertainty / add disclaimers”.
- Persona conflicts — “act as an expert” against “explain like I’m five”.
When both sides of a pair appear, it flags the tension and shows the triggering phrases so you can see exactly what clashed.
Why conflicts are hard to spot by eye
When you write a prompt incrementally — adding rules over several editing sessions — conflicts sneak in naturally. The “be brief” instruction was written first for a quick Q&A use case. Three iterations later, the prompt also instructs the model to “explain all relevant context thoroughly.” Neither line looks wrong on its own. Read together, they give the model an impossible target.
Conflicts also cause a specific debugging problem: because the model picks one side inconsistently, the output looks random. You run the prompt three times and get a short answer, a long answer, and a medium answer. That variance is the fingerprint of a conflict — the model is resolving the tension differently on each call, depending on which interpretation of your wording wins.
Resolving a flagged conflict
When the checker flags a pair, you have three options:
- Remove one side. If you want brevity, delete the comprehensiveness instruction. Clean and simple.
- Add a precedence rule. Write “if brevity and detail conflict, prefer brevity unless the answer would be wrong.” The model now has a tie-breaker.
- Scope each instruction. “Be brief for factual questions; be thorough for explanations” resolves the tension by context, leaving both instructions intact.
Tips and examples
Treat flagged conflicts as a prompt to make a decision, not as errors. Sometimes you genuinely want a nuanced balance — in that case, add an explicit precedence rule. Run the checker after every major prompt edit; conflicts often creep in when you stack new instructions on top of old ones without re-reading the whole thing. Also useful when inheriting a prompt written by someone else: paste it in before touching anything, so you know what tensions already exist before adding new ones.