Use the Contradiction Explanation Generation Prompt when your application must surface evidential disagreements to end users, compliance reviewers, or analysts who need to assess source reliability themselves. The core job-to-be-done is transparency: you have already detected that two or more evidence sources directly contradict each other on a specific claim, and now you need a human-readable explanation that grounds every reason for conflict in the provided source content. This prompt is designed for explainability features in research assistants, decision-support systems, and RAG applications where users need to understand why sources disagree, not just that they disagree. The ideal user is a product engineer or AI builder integrating this into a pipeline that has already completed conflict detection—this prompt does not find conflicts; it explains them.
Prompt
Contradiction Explanation Generation Prompt

When to Use This Prompt
Understand the ideal job-to-be-done, required context, and when this prompt is the wrong tool for the job.
The prompt requires specific, pre-validated inputs to function correctly. You must provide the exact claim under dispute, the full text of the conflicting source passages, and any relevant metadata such as publication dates, author credentials, or document types. Without this context, the model will speculate about reasons for conflict rather than grounding its explanation in evidence. The prompt forces the model to cite specific spans from each source when describing what each source claims, preventing hallucinated or vague attributions. This is not a general-purpose summarization prompt—it assumes you have already identified a genuine contradiction through a separate detection step, such as the Multi-Source Conflict Detection Prompt Template or a structured comparison pipeline.
Do not use this prompt when the disagreement is merely a difference in scope, methodology, or terminology rather than a direct factual contradiction. If sources discuss different populations, time periods, or definitions of a term, a contradiction explanation will mislead users by framing compatible statements as conflicting. Similarly, avoid this prompt when you need to resolve or reconcile the conflict—this prompt explains the disagreement without taking a position on which source is correct. For resolution, use the Conflict Resolution Decision Prompt for AI Assistants or the Evidence Reconciliation Prompt for Analyst Reports. Finally, never use this prompt without human review in regulated or high-risk domains such as healthcare, legal, or financial compliance, where a poorly framed explanation of source conflict could imply false equivalence between authoritative and unreliable sources. Always pair this prompt with source reliability metadata and a human-in-the-loop review step when the explanation will be shown to end users making consequential decisions.
Use Case Fit
Where the Contradiction Explanation Generation Prompt delivers value and where it introduces risk. Use these cards to decide if this prompt fits your workflow before integrating it into a product harness.
Good Fit: Explainability Features
Use when: building transparency features that show users why sources disagree. The prompt excels at generating grounded, source-attributed explanations for end-user consumption. Guardrail: always verify that generated explanations reference specific source passages, not model-inferred motives.
Good Fit: Audit Trail Generation
Use when: compliance or governance workflows require human-readable records of evidence conflicts and resolution reasoning. The prompt structures explanations suitable for review queues. Guardrail: pair with an evidence conflict audit trail prompt to ensure completeness and traceability back to source spans.
Bad Fit: Root Cause Determination
Avoid when: the task requires diagnosing why sources conflict with high confidence. The model may fabricate plausible-sounding methodological flaws or temporal factors without evidence. Guardrail: restrict explanations to observable differences in source content; escalate root cause analysis to human domain experts.
Bad Fit: Standalone Conflict Resolution
Avoid when: the system must autonomously decide which source is correct and dismiss the other. Explanation generation should inform users, not silently resolve disputes. Guardrail: always present conflicting positions neutrally; use a separate conflict resolution decision prompt if resolution is required.
Required Inputs
What you need: at minimum, two source passages with citations and the specific claim or claims they conflict on. Source metadata such as publication date and authority level improves explanation quality. Guardrail: validate that both sources are present in the prompt context before generation; missing sources produce speculative explanations.
Operational Risk: Speculative Language
What to watch: the model may introduce phrases like 'Source A likely used different methodology' or 'This may be due to temporal drift' without evidence. Guardrail: add explicit constraints in the prompt template prohibiting speculative causal language; require explanations to cite only what each source actually states.
Copy-Ready Prompt Template
A production-ready template for generating grounded, human-readable explanations of why two sources conflict.
This prompt template generates a structured explanation of a contradiction between two source passages. It is designed for transparency and explainability features in RAG applications, research assistants, and decision-support systems. The model is instructed to ground every part of its explanation in the provided source content, avoiding speculation about author intent, methodology, or external factors not explicitly mentioned in the passages. Use this template when you need to show users why sources disagree, not just that they disagree.
textYou are an evidence analyst. Your task is to explain a contradiction between two source passages. You must ground every statement in the provided text. Do not speculate about author intent, methodology, or external factors unless they are explicitly stated in the passages. ## SOURCE A [SOURCE_A_TEXT] ## SOURCE B [SOURCE_B_TEXT] ## CONTRADICTED CLAIM [CONTRADICTED_CLAIM] ## INSTRUCTIONS 1. Identify what Source A claims about the contradicted claim. 2. Identify what Source B claims about the contradicted claim. 3. Explain the nature of the disagreement. Classify it as one of: factual contradiction, scope mismatch, temporal change, definitional difference, or methodological difference. 4. Identify any textual evidence within the passages that might explain the disagreement (e.g., different date ranges, populations, definitions). 5. State what remains unresolved and what a reader should verify independently. ## CONSTRAINTS - Do not invent information not present in the passages. - If the passages do not provide enough context to classify the disagreement confidently, state that explicitly. - Use direct quotes from the passages to support each point. - If the passages agree more than they disagree, acknowledge areas of agreement before explaining the conflict. ## OUTPUT FORMAT Return a JSON object with the following schema: { "source_a_position": "string (Source A's claim, with supporting quote)", "source_b_position": "string (Source B's claim, with supporting quote)", "disagreement_type": "factual_contradiction | scope_mismatch | temporal_change | definitional_difference | methodological_difference | uncertain", "possible_explanations": ["string (explanation grounded in passage text)"], "areas_of_agreement": "string or null", "unresolved_questions": ["string (what a reader should verify)"], "confidence": "high | medium | low (how confidently the disagreement can be characterized from the passages alone)" }
Adaptation guidance: Replace [SOURCE_A_TEXT] and [SOURCE_B_TEXT] with the full text of the conflicting passages. Replace [CONTRADICTED_CLAIM] with a concise statement of the specific claim in dispute. For multi-source scenarios, extend the template with additional source blocks. In high-stakes domains such as healthcare or legal review, add a [RISK_LEVEL] parameter and a human-review gate before the explanation reaches end users. Validate the output JSON against the schema before surfacing it in your application. If the model returns "disagreement_type": "uncertain" or "confidence": "low", route the output for human review rather than presenting it as a definitive explanation.
Prompt Variables
Required and optional inputs for the Contradiction Explanation Generation Prompt. Each placeholder must be populated before the prompt is assembled and sent. Validation notes describe checks to apply at the harness level before model invocation.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[SOURCE_A_TEXT] | Full text of the first conflicting source passage | According to the 2023 IPCC report, global temperatures will rise 2.1°C by 2100 under current policies. | Must be non-empty string. Check length > 20 characters. Truncate if exceeding model context window minus other inputs. |
[SOURCE_B_TEXT] | Full text of the second conflicting source passage | The Hansen et al. (2023) paper projects 3.6°C warming by 2100 using updated climate sensitivity models. | Must be non-empty string. Check length > 20 characters. Ensure [SOURCE_A_TEXT] and [SOURCE_B_TEXT] are not identical strings. |
[SOURCE_A_CITATION] | Attribution metadata for the first source | IPCC Sixth Assessment Report, Working Group I, Chapter 4, 2023 | Must be non-empty string. Used verbatim in output. Validate format matches application citation schema. |
[SOURCE_B_CITATION] | Attribution metadata for the second source | Hansen, J. et al., 'Global warming in the pipeline', Oxford Open Climate Change, 2023 | Must be non-empty string. Used verbatim in output. Validate format matches application citation schema. |
[CLAIM_UNDER_DISPUTE] | The specific claim or statement on which the sources conflict | Projected global temperature increase by 2100 under current policies | Must be non-empty string. Should be a single, scoped claim. Avoid compound claims. Check that both source texts actually address this claim. |
[CONFLICT_TYPE_HINT] | Optional classification of the conflict nature to guide explanation structure | methodological_difference | Must be one of allowed enum values: factual_contradiction, methodological_difference, interpretation_divergence, scope_mismatch, temporal_change, or null. If null, prompt instructs model to classify. |
[OUTPUT_SCHEMA] | JSON schema or format description for the expected output structure | {"conflict_summary": "string", "source_a_position": "string", "source_b_position": "string", "explanation_factors": ["string"], "resolution_possible": boolean, "confidence": "low|medium|high"} | Must be valid JSON schema string or structured format description. Parse check before insertion. Ensure schema fields match downstream consumer expectations. |
[GROUNDING_CONSTRAINT] | Instruction reinforcing that explanations must cite source content only | Only reference claims explicitly present in the provided source texts. Do not introduce external knowledge or speculate about unstated factors. | Must be non-empty string. Append to prompt as a hard constraint. Validate presence in final assembled prompt before sending. |
Implementation Harness Notes
How to wire the Contradiction Explanation Generation Prompt into an application with validation, retries, and human review gates.
The Contradiction Explanation Generation Prompt is not a standalone widget; it is a component in a larger evidence pipeline. Before this prompt fires, your system must have already detected a conflict between at least two source passages and extracted the specific contradictory claims. The prompt's job is to produce a human-readable explanation grounded in those source texts, not to discover the conflict itself. Wire it downstream of a conflict detection step (such as the Multi-Source Conflict Detection Prompt Template or Conflicting Passage Pair Identification Prompt) so that the explanation generator receives clean, verified input: the claim in dispute, the two conflicting source passages, and any available source metadata (publication date, author, methodology notes).
Build a validation wrapper around the model call that enforces grounding before the explanation reaches any user. The validator should check that every factual assertion in the generated explanation can be traced back to the provided source passages. A practical approach: extract all declarative sentences from the explanation, embed them, and run a cosine similarity check against sentence embeddings of the source passages. Flag any sentence below a similarity threshold for human review. Additionally, scan for speculative language markers ('might have,' 'could be,' 'perhaps') and cross-reference them against the source metadata—if the prompt speculates about a source's methodology without that information being present in the input, block the output. For high-stakes domains (legal, medical, financial), route all explanations through a human review queue before publication, with the validator's grounding scores attached to help reviewers prioritize.
Model choice matters for this task. The prompt requires careful reasoning about source content without introducing hallucinated context. Use a model with strong instruction-following and low hallucination rates on grounded summarization tasks—frontier models from major providers are appropriate here. Set temperature low (0.0–0.2) to reduce creative drift. Implement a retry strategy with escalating interventions: on first validation failure, resubmit with the validator's specific grounding failures appended as additional constraints. On second failure, escalate to a human reviewer with both the original sources and the failed explanation attempts. Log every generation attempt, validation result, and human decision for audit and prompt improvement. Never silently fall back to an unvalidated explanation.
The output schema should be strict. Require the model to return structured JSON with clearly separated fields: the contradictory claim, source A's position with citation, source B's position with citation, the explanation of factors that might account for the disagreement, and a confidence indicator. Parse this JSON in your application layer before rendering. If the model returns malformed JSON, use a repair prompt (see Output Repair and Validation Prompts pillar) rather than accepting a degraded text response. The structured output lets you render explanations differently for different surfaces—a concise inline tooltip versus an expanded audit view—while keeping the underlying data consistent and testable.
Test this prompt against a curated set of known contradictions with ground-truth explanations written by domain experts. Measure explanation faithfulness (does the explanation only use information present in the sources?), completeness (does it address all salient differences?), and neutrality (does it favor one source without evidence-based justification?). Run regression tests whenever you update the prompt, the model version, or the upstream conflict detection logic. A silent degradation in explanation quality can erode user trust faster than a refused answer.
Expected Output Contract
Define the exact fields, types, and validation rules for the contradiction explanation output. Use this contract to build downstream parsers, UI renderers, and automated eval checks.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
contradiction_id | string | Must match regex ^CONTRA-[a-f0-9]{8}$ or be null if no conflict found | |
claim_summary | string | Must be a single declarative sentence under 200 characters; parse check for sentence boundary | |
source_a_position | object | Must contain source_id (string), claim_text (string), and citation_span (string); schema validation required | |
source_b_position | object | Must contain source_id (string), claim_text (string), and citation_span (string); schema validation required | |
conflict_type | enum | Must be one of: factual_contradiction, methodological_difference, interpretation_divergence, scope_mismatch, temporal_change; enum check | |
explanation_factors | array of strings | Each string must be grounded in source content; speculative factors trigger a grounding verification check | |
resolution_confidence | string | Must be one of: high, moderate, low, unresolved; null not allowed when contradiction_id is present | |
human_review_required | boolean | Must be true if resolution_confidence is low or unresolved, or if conflict_type is factual_contradiction; approval gate check |
Common Failure Modes
What breaks first when generating contradiction explanations and how to guard against it.
Speculative Reconciliation
What to watch: The model invents a resolution or harmonizes conflicting sources by speculating about unstated factors, methodology differences, or population variations not present in the source text. Guardrail: Constrain the prompt to only explain conflicts using evidence explicitly stated in the provided passages. Add a validator that flags any explanation sentence containing phrases like 'might have,' 'could be due to,' or 'possibly because' unless directly quoting a source.
False Equivalence Between Sources
What to watch: The model presents conflicting sources as equally valid even when one source is clearly more authoritative, recent, or methodologically sound, creating a misleading 'both sides' framing. Guardrail: Require a source reliability assessment step before explanation generation. Include explicit instructions to weight explanations by source authority, recency, and methodology, and to state when one position carries significantly more evidential weight.
Overclaiming Conflict Severity
What to watch: The model treats minor differences in wording, scope, or emphasis as direct contradictions, producing conflict explanations where none meaningfully exist. Guardrail: Add a pre-explanation check that requires the model to extract the exact conflicting claims verbatim from each source and verify they address the same specific question, population, timeframe, and conditions before classifying as a contradiction.
Source Attribution Drift
What to watch: The explanation attributes a claim to the wrong source, merges positions from multiple sources into a single attributed statement, or fabricates source details not present in the provided passages. Guardrail: Require inline citation markers in the explanation output that map each attributed claim back to a specific source identifier and passage span. Run a post-generation citation verification step that checks each claim against its cited source.
Missing Implicit Conflicts
What to watch: The model fails to detect contradictions that require basic inference, such as when one source states a value of 47% and another implies a value below 30% through related statistics. Guardrail: Include few-shot examples that demonstrate detecting implicit contradictions through numerical, temporal, or categorical inference. Add an evaluation check using known implicit-conflict test cases to measure recall before deployment.
Explanation Hallucination Under Low Context
What to watch: When provided passages lack sufficient detail to explain why sources conflict, the model fabricates plausible-sounding reasons instead of acknowledging that the cause is unknown from available evidence. Guardrail: Add an explicit instruction to state 'The provided sources do not contain enough information to determine why these claims conflict' when the passages lack explanatory detail. Validate output for unsupported causal language using an LLM judge or keyword filter.
Evaluation Rubric
Use this rubric to test the Contradiction Explanation Generation Prompt before shipping. Each criterion targets a specific failure mode: speculative explanations, source misattribution, false equivalence, or missing causal factors. Run these checks on a golden set of known contradiction pairs.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Source Grounding | Every claim about what a source says is backed by a direct quote or explicit reference from [SOURCE_A] or [SOURCE_B] | Explanation contains phrases like 'Source A might believe' or attributes a claim not present in the provided passages | Human review: highlight each attributed claim and verify it exists verbatim or in clear paraphrase in the source text |
Speculation Control | Explanation of why sources conflict is limited to factors explicitly mentioned in the sources or [CONFLICT_CONTEXT] | Explanation invents methodological flaws, author biases, or external events not evidenced in the provided material | LLM-as-judge: prompt a separate model to flag any causal claim not traceable to the input sources or context |
Claim Representation Accuracy | Each source's position is stated without distortion, strawman, or selective omission of qualifying language | One source's claim is oversimplified to make the conflict appear sharper or one side is presented as obviously correct | Pairwise comparison: extract the claim summary for each source and check semantic equivalence with the original passage using an NLI model |
Conflict Type Classification | The explanation correctly identifies the conflict type from [CONFLICT_TYPE_TAXONOMY] if provided, or uses a consistent implicit category | Explanation misclassifies a scope difference as a factual contradiction or treats paraphrased agreement as disagreement | Classification accuracy test: run on 20 labeled contradiction pairs and measure precision/recall per conflict type |
False Equivalence Avoidance | When sources have materially different reliability levels per [SOURCE_RELIABILITY] metadata, the explanation does not present them as equally valid | Explanation uses 'on one hand... on the other hand' framing for a conflict where one source is authoritative and the other is outdated or low-quality | Spot-check: for pairs with reliability gap > 2 levels, verify the explanation signals the asymmetry within the first two sentences |
Temporal Factor Handling | If [SOURCE_A_DATE] and [SOURCE_B_DATE] differ significantly, the explanation considers temporal change as a possible factor | Explanation treats a 5-year-old source and a current source as contemporaneous without noting the date gap | Date delta check: if |date_A - date_B| > [TEMPORAL_THRESHOLD], assert the explanation mentions recency or change over time |
Uncertainty Calibration | When the evidence does not clearly explain the disagreement, the explanation uses calibrated uncertainty language rather than forced resolution | Explanation confidently asserts a single cause for the conflict when multiple factors are plausible and unverifiable from the sources | Confidence term audit: count hedging terms vs. certainty terms; flag explanations with zero hedging when [CONFLICT_CONTEXT] is sparse |
Output Schema Compliance | Output matches [OUTPUT_SCHEMA] exactly: all required fields present, no extra fields, types correct, enum values valid | Missing 'conflict_type' field, unlisted enum value, or narrative text where structured fields are expected | Schema validation: parse output with [OUTPUT_SCHEMA] validator; fail on any schema violation |
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
Start with the base contradiction explanation prompt and a small set of 2–3 conflicting passages. Use a single model call without schema enforcement. Focus on whether the explanation captures what each source claims and why they differ.
Prompt modification
- Remove strict output schema requirements; accept a paragraph or bulleted list.
- Add:
If you are unsure about the reason for disagreement, state that clearly rather than guessing. - Use placeholder:
[SOURCE_A_CLAIM]and[SOURCE_B_CLAIM]to isolate the conflicting statements before explanation.
Watch for
- The model inventing motives or methodological flaws not present in the sources.
- Conflating scope differences with factual contradictions.
- Overly verbose explanations that bury the core disagreement.

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