This prompt is designed for a single, high-stakes job: when your RAG system retrieves multiple documents that disagree on a material fact, date, obligation, or interpretation, you must expose the conflict to the user rather than silently resolving it. The ideal user is an AI engineer or product builder in legal, finance, or compliance domains where hiding a disagreement creates regulatory, contractual, or decision risk. The required context is a set of retrieved passages that contain a genuine contradiction—not just different phrasings of the same fact, but competing evidence positions that a reasonable reader would recognize as inconsistent.
Prompt
Contradictory Evidence Surface Prompt

When to Use This Prompt
Identifies the specific job-to-be-done, ideal user, and operational boundaries for the Contradictory Evidence Surface Prompt.
Use this prompt when the cost of a wrong answer is higher than the cost of an unresolved answer. For example, if two contracts assign the same obligation to different parties, or two financial filings report different revenue figures for the same period, the system's job is to present both positions with their sources, not to guess which is correct. The prompt is structured to produce a neutral, evidence-anchored output with explicit conflict metadata: each competing position gets its own block with source attribution, a direct quote, and a plain-language summary of what is claimed. A dedicated conflict summary section then explains the nature of the disagreement in terms of materiality, temporality, or interpretation.
Do not use this prompt for general Q&A where sources are consistent or where users expect a single definitive answer. It is not a fact-verification prompt—it surfaces conflicts but does not adjudicate them. It is not a synthesis prompt—it deliberately avoids merging contradictory claims into a compromise. If your system needs to resolve conflicts by preferring more recent, more authoritative, or more complete sources, use a temporal conflict resolution or evidence ranking prompt instead. This prompt is a surfacing tool, not a resolution tool. Before deploying it, ensure your retrieval pipeline is returning genuinely conflicting passages; feeding it consistent passages will produce false conflict flags that erode user trust.
Use Case Fit
Where the Contradictory Evidence Surface Prompt works and where it does not. This prompt is designed for high-stakes domains where surfacing disagreement is more important than providing a single, confident answer.
Good Fit: High-Stakes Research
Use when: The cost of a wrong answer is high, such as in legal research, financial compliance, or medical literature review. Guardrail: The prompt's neutral framing and mandatory source attribution ensure users see the full picture of the evidence, not just a synthesized consensus.
Good Fit: Multi-Document Analysis
Use when: Your retrieval system pulls in documents from different authors, time periods, or jurisdictions that are likely to conflict. Guardrail: The prompt is explicitly instructed to group claims by source and highlight temporal or authorial disagreements, preventing a false sense of uniformity.
Bad Fit: Simple Factual Lookups
Avoid when: The user needs a single, definitive answer to a simple question (e.g., 'What is the boiling point of water?'). Guardrail: Using this prompt for simple lookups adds unnecessary complexity and can confuse users by presenting a non-existent 'controversy'. Use a standard evidence-only prompt instead.
Required Inputs: Ranked Evidence Sets
What to watch: The prompt cannot surface conflicts if it only receives a single, monolithic block of text. Guardrail: The input must include multiple distinct passages with clear source metadata (author, date, title). The quality of the output is directly dependent on the diversity and quality of the retrieved evidence.
Operational Risk: Analysis Paralysis
What to watch: The output can become a long, exhaustive list of disagreements without a clear path forward for the user. Guardrail: The prompt template includes a [SYNTHESIS_INSTRUCTIONS] variable where you can direct the model to provide a structured summary of the conflict's nature or a weighted recommendation, preventing an undigested data dump.
Operational Risk: False Balance
What to watch: The model might present two conflicting sources as equally valid when one is clearly outdated, discredited, or from a fringe perspective. Guardrail: The prompt must be paired with a strong evidence-ranking step upstream. The prompt itself should be instructed to note source credibility markers (e.g., 'a 2019 study' vs. 'a 2024 Supreme Court ruling') without making the final judgment call itself.
Copy-Ready Prompt Template
A copy-ready system prompt that forces the model to surface contradictory evidence with neutral framing and source attribution.
This template is designed for high-stakes RAG applications in legal, finance, and compliance where sources disagree and the system must expose rather than hide conflict. The prompt instructs the model to identify competing positions, attribute each to its source, and present the disagreement without taking sides. Replace every square-bracket placeholder with your application's specific values before deployment.
textYou are a contradiction-aware evidence analyst. Your job is to answer questions using only the provided context, and to actively surface any contradictory evidence you find. ## CONTEXT [CONTEXT] ## QUESTION [INPUT] ## INSTRUCTIONS 1. Identify all distinct positions or claims present in the context that relate to the question. 2. If the context contains contradictory evidence, you MUST surface it. Do not ignore, reconcile, or choose a winner. 3. For each position, provide: - The claim or finding. - The source identifier from the context. - Any relevant date, jurisdiction, or authority metadata if present. 4. If the context is insufficient to answer the question, state that explicitly and describe what is missing. 5. Do not introduce knowledge outside the provided context. 6. Do not express a preference for one position over another. ## OUTPUT FORMAT Return a JSON object with this exact schema: { "answerable": boolean, "positions": [ { "claim": "string", "source": "string", "metadata": { "date": "string or null", "jurisdiction": "string or null", "authority": "string or null" }, "supporting_excerpt": "string" } ], "conflicts": [ { "description": "string describing the nature of the conflict", "position_indices": [0, 1] } ], "gaps": ["string describing missing information"], "neutral_summary": "string summarizing the state of evidence without taking sides" } ## CONSTRAINTS - Never fabricate source identifiers. - If only one position exists, the conflicts array must be empty. - If the context contains no relevant evidence, set answerable to false and return empty positions. - Keep supporting excerpts under 200 characters.
To adapt this template, start by replacing [CONTEXT] with your retrieved passages, ensuring each chunk has a stable identifier. Replace [INPUT] with the user's question. The output schema is strict JSON; validate it before surfacing to users. For regulated domains, add a human review step before the neutral summary is published. Test the prompt with known contradictory document pairs to verify that both positions appear and that the model does not fabricate a resolution.
Prompt Variables
Required inputs for the Contradictory Evidence Surface Prompt. Each variable must be populated before the prompt is assembled and sent to the model. Missing or malformed variables will cause the prompt to fail silently or produce unreliable conflict surfacing.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[QUERY] | The user question or topic that may have conflicting evidence across sources | What are the risks of drug X during pregnancy? | Must be non-empty string. Check for vague queries that need clarification before conflict surfacing. Length under 2000 chars recommended. |
[RETRIEVED_CONTEXTS] | Array of source passages with metadata that may contain contradictory claims | [{"source_id": "doc-12", "text": "Study A found no risk...", "date": "2023-06"}, {"source_id": "doc-47", "text": "Study B identified elevated risk...", "date": "2024-01"}] | Must contain at least 2 sources. Validate each entry has source_id and text fields. Empty array should trigger abstention, not conflict surfacing. |
[SOURCE_METADATA_SCHEMA] | Definition of which metadata fields are available per source for attribution | ["source_id", "title", "date", "authority_level", "document_type"] | Must match actual metadata present in RETRIEVED_CONTEXTS. Mismatch causes citation failures. Validate schema completeness before prompt assembly. |
[CONFLICT_DIMENSIONS] | Specific axes of disagreement the prompt should examine | ["factual_claims", "methodology", "temporal", "jurisdiction", "risk_assessment"] | Must be non-empty array. Each dimension should map to detectable disagreement patterns. Null allowed if using default dimensions defined in system prompt. |
[NEUTRALITY_CONSTRAINTS] | Rules for how competing positions should be framed without favoring any source | Do not rank sources by authority. Use 'Position A / Position B' framing. Avoid language like 'stronger evidence' or 'better study'. | Must be explicit string or null for defaults. Validate that constraints don't contradict system prompt framing rules. Check for bias-introducing language in constraints themselves. |
[OUTPUT_FORMAT] | Structure specification for the conflict report | {"sections": ["summary", "position_a", "position_b", "evidence_table", "unresolved_gaps"], "require_citations": true, "max_quote_length": 150} | Must be valid JSON schema or null for default format. Validate that required sections map to prompt output expectations. Citation requirement must be boolean. |
[ABSTENTION_CONDITIONS] | Rules for when the prompt should refuse to surface conflict rather than produce unreliable output | Abstain if fewer than 2 sources present. Abstain if sources share identical claims. Abstain if conflict is semantic rather than substantive. | Must be non-empty string or null. Validate that conditions are testable. Overly broad abstention rules will suppress legitimate conflict surfacing. Test against edge cases with near-identical sources. |
Implementation Harness Notes
How to wire the Contradictory Evidence Surface Prompt into a production RAG pipeline with validation, retries, and human review gates.
The Contradictory Evidence Surface Prompt is not a standalone Q&A prompt—it is a conflict-detection and surfacing component that sits between evidence retrieval and final answer delivery. In a production architecture, this prompt should be invoked when the retrieval step returns documents with conflicting claims, timestamps, or authority levels. The application layer is responsible for detecting potential conflict before calling this prompt. A pre-check step can use lightweight heuristics—such as named entity overlap with opposing sentiment, date range collisions, or source authority mismatches—to decide whether to route the query through a standard faithful synthesis prompt or this conflict-surfacing variant. Do not call this prompt for every query; it is designed for the subset of cases where hiding disagreement would be misleading.
The implementation harness requires several integration points. First, the prompt expects a structured [EVIDENCE_BLOCKS] input containing pre-processed passages with metadata: source identifier, publication date, authority level, and the raw text. Build a formatter that converts your retrieval results into this schema before injection. Second, implement output validation that checks for the required conflict structure: each competing position must have at least one supporting source, the neutral framing must be present, and no position should be presented as definitively correct unless the evidence is unanimous. Use a JSON schema validator on the structured output to enforce these constraints. If validation fails, retry once with the validation errors appended to the prompt as feedback. If the second attempt also fails, escalate to a human review queue with the original evidence blocks and both failed outputs attached.
Model choice matters here. This prompt benefits from models with strong reasoning and instruction-following capabilities, particularly for maintaining neutral framing under conflicting evidence. GPT-4o, Claude 3.5 Sonnet, and Gemini 1.5 Pro are suitable starting points. Avoid smaller or older models that may collapse conflicting evidence into a false consensus or fabricate a resolution. For high-stakes domains like legal and finance, log every invocation with the full prompt, retrieved evidence, model response, and validation results. These logs serve as audit evidence and are essential for evaluating conflict completeness over time. Implement a periodic human review sample—at least 10% of conflict-surfacing responses—to check that the model is not systematically favoring certain sources or introducing bias in its neutral framing. Finally, wire the validated output into your answer delivery layer with clear UI affordances that distinguish competing positions, source attributions, and the absence of a resolved answer.
Common Failure Modes
When a prompt is designed to surface contradictory evidence, the most dangerous failures are the ones that hide conflict rather than expose it. These cards cover the most common production failure modes and how to prevent them.
Synthesis Bias Toward One Source
What to watch: The model silently favors the most authoritative-sounding or first-retrieved source, presenting a one-sided answer despite conflicting evidence in context. Guardrail: Add an explicit instruction to enumerate all distinct positions before synthesis. Use an eval that checks for the presence of each conflicting claim in the final output.
False Equivalence Framing
What to watch: The model presents all conflicting positions as equally valid, even when one is clearly outdated, from a low-authority source, or factually incorrect. Guardrail: Require source metadata (date, authority, jurisdiction) in the prompt and instruct the model to weight positions by recency and credibility. Validate with a rubric that penalizes treating a deprecated policy and a current regulation as equal.
Conflict Resolution Without Attribution
What to watch: The model resolves the conflict by choosing a winner but drops the source citation, making the resolution unverifiable. Guardrail: Enforce a strict output schema where every resolved position must carry a source_id and rationale field. Post-process with a citation coverage check that fails if any claim lacks a source anchor.
Neutrality Drift Into Abstention
What to watch: The model, over-optimized for neutral framing, refuses to surface any useful conclusion and instead produces a vague summary that helps no one. Guardrail: Define a minimum output contract: the answer must include at least one actionable comparison or trade-off statement. Use an eval that measures "actionable insight density" and flags empty neutrality.
Temporal Conflict Collapse
What to watch: Sources from different time periods conflict, but the model treats them as simultaneous disagreements rather than a timeline of change. Guardrail: Include source timestamps in the context and add a prompt rule:
Hallucinated Middle Ground
What to watch: The model invents a compromise position that appears in none of the sources, fabricating a "balanced" answer that satisfies neither side. Guardrail: Add a strict grounding rule: "Every position you describe must be directly attributable to at least one provided source. Do not invent intermediate positions." Run a post-generation NLI check to verify each claim against the context.
Evaluation Rubric
Use this rubric to evaluate the quality of outputs from the Contradictory Evidence Surface Prompt before shipping. Each criterion targets a specific failure mode common in multi-source conflict surfacing.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Conflict Completeness | All material contradictions between sources are surfaced and attributed. | Output presents a unified answer that ignores a documented conflict between [SOURCE_A] and [SOURCE_B]. | Automated check: For a golden dataset with known conflicts, verify that each conflict is mentioned with both source IDs. |
Neutral Framing | No position is endorsed as correct; language is strictly comparative (e.g., 'Source A states X, while Source B states Y'). | Output uses resolving language like 'The correct view is...' or 'Source B clarifies that...'. | LLM-as-judge: Use a rubric to score neutrality on a 1-5 scale. Fail if score < 4. |
Source Attribution Accuracy | Every evidence position is linked to the correct source identifier from [CONTEXT]. | A claim is attributed to [SOURCE_A] but the text is found only in [SOURCE_B]. | Automated check: Extract all (claim, source_id) pairs and verify the claim string exists verbatim or in close semantic paraphrase within the specified source text. |
No Fabricated Resolution | Output does not introduce external knowledge to resolve the conflict. | Output states a fact not present in any provided source to explain why a conflict exists. | Automated check: Perform claim extraction and verify each claim has a minimum cosine similarity of 0.85 with at least one chunk in [CONTEXT]. |
Abstention on Unknowable Resolution | If sources conflict and no resolution is possible from the context, the output explicitly states this. | Output speculates on which source is more likely to be correct without evidence from the context. | LLM-as-judge: Check for speculation markers. Fail if speculation is detected without an explicit caveat that it is not grounded in the provided evidence. |
Citation Format Compliance | All citations strictly follow the format specified in [CITATION_FORMAT]. | Citations are missing, use a different format, or are hallucinated source IDs. | Regex validation: Check all citation instances against the expected pattern defined in [CITATION_FORMAT]. |
Handling of Single-Source Claims | Claims supported by only one source are explicitly noted as unconfirmed by other provided documents. | A claim from a single source is presented with the same level of certainty as a multi-source consensus. | Automated check: For each claim, count source attributions. If count == 1, verify the presence of a qualifier like 'according to [SOURCE]' or 'not corroborated by other sources'. |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base prompt with a single frontier model and a small set of known-contradictory document pairs. Focus on getting the conflict structure right before adding schema enforcement. Replace [EVIDENCE_SET] with 2-3 short passages that clearly disagree.
Watch for
- The model smoothing over conflict instead of surfacing it
- Missing source attribution on individual positions
- Conflating 'both sides' neutrality with false balance when one source is clearly more authoritative

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us