Inferensys

Prompt

Contradiction Explanation Generation Prompt

A practical prompt playbook for generating grounded explanations of conflicting evidence in production AI workflows.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

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.

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.

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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

PROMPT PLAYBOOK

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.

text
You 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.

IMPLEMENTATION TABLE

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.

PlaceholderPurposeExampleValidation 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.

PROMPT PLAYBOOK

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.

IMPLEMENTATION TABLE

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 ElementType or FormatRequiredValidation 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

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when generating contradiction explanations and how to guard against it.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

IMPLEMENTATION TABLE

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.

CriterionPass StandardFailure SignalTest 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

ADAPTATION OPTIONS

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.
Prasad Kumkar

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.