Inferensys

Prompt

Contradiction Resolution Report Prompt

A practical prompt playbook for using the Contradiction Resolution Report Prompt in production fact-checking and verification 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 exact job-to-be-done, required inputs, and operational boundaries for the Contradiction Resolution Report Prompt.

This prompt is designed for a specific, high-stakes moment in an automated fact-checking pipeline: the point where a single claim has been matched against multiple sources, and those sources disagree. It is not a general-purpose verification tool. Its sole job is to take a pre-identified claim and a set of conflicting evidence records, analyze the nature of the contradiction, compare the authority and recency of the sources, and produce a structured resolution report. The ideal user is a developer or engineer building a verification system who has already solved claim extraction and evidence retrieval, and now needs a reliable module to handle conflict arbitration before a final verdict is reached.

You should use this prompt when your system has already surfaced a direct contradiction—for example, Source A states a revenue figure of $10M while Source B reports $12M for the same period, or two credible outlets give opposing accounts of an event. The prompt assumes you have at least two evidence objects, each with a source identifier, a publication date, and the specific text that supports or contradicts the claim. Do not use this prompt for initial claim extraction, single-source verification, or for scoring the overall truthfulness of a document. It is also a poor fit for resolving vague, subjective disagreements where the conflict is a matter of interpretation rather than a verifiable factual clash. In those cases, the output will be noisy and the resolution logic will fail to add value.

Before integrating this prompt, ensure your upstream pipeline provides clean, structured inputs. The prompt's effectiveness is directly tied to the quality of the evidence objects you supply. A common failure mode is feeding it evidence that is topically related but does not directly address the same atomic claim, which causes the model to hallucinate a conflict or produce a false resolution. To mitigate this, implement a pre-check that validates evidence relevance to the specific claim before calling this prompt. After generation, you must validate the output against a strict schema and run an evaluation to confirm that the reported contradiction type is logically consistent with the provided evidence. In high-risk domains like finance or healthcare, the final resolution recommendation should always be treated as a draft for human review, not an automated decision.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Contradiction Resolution Report Prompt works, where it fails, and what you must provide before using it in a production verification pipeline.

01

Good Fit: Multi-Source Conflict Resolution

Use when: you have two or more sources making contradictory factual claims and need a structured comparison. Guardrail: always provide the full claim text and source metadata for each conflicting source; never ask the model to resolve contradictions from memory.

02

Bad Fit: Single-Source Ambiguity

Avoid when: only one source is available or the issue is vague language rather than a direct contradiction. Guardrail: route single-source cases to the Evidence Sufficiency Assessment Report Prompt instead; contradiction resolution requires at least two conflicting evidence points.

03

Required Inputs

What you must provide: conflicting claim pairs with source attribution, publication dates, and domain context. Guardrail: validate that each claim is atomic and verifiable before invoking contradiction resolution; compound claims produce ambiguous conflict reports.

04

Operational Risk: False Equivalence

What to watch: the model may treat all sources as equally authoritative, creating false balance between credible evidence and unreliable claims. Guardrail: pre-score source authority using the Source Authority and Provenance Assessment Prompt and pass authority weights into the contradiction prompt.

05

Operational Risk: Temporal Drift

What to watch: sources from different time periods may appear contradictory when facts have legitimately changed. Guardrail: require publication timestamps in source metadata and instruct the model to flag temporal explanations before declaring contradiction.

06

Pipeline Dependency: Upstream Claim Quality

What to watch: contradiction resolution fails silently when upstream claim extraction produces overlapping, vague, or non-atomic claims. Guardrail: run Claim Extraction and Decomposition Prompt output through atomicity validation before feeding into contradiction resolution; garbage claims produce garbage conflict reports.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A ready-to-use prompt template for generating structured contradiction resolution reports from conflicting evidence sources.

This section provides a copy-ready prompt template that you can paste directly into your system. The template is designed to produce a structured contradiction resolution report when you have two or more sources making conflicting claims about the same factual matter. Replace the square-bracket placeholders with your specific claims, evidence sources, and output requirements before sending to the model. The template includes explicit instructions for comparing source authority, analyzing the nature of the contradiction, and recommending resolution or escalation paths.

text
You are a contradiction resolution analyst. Your task is to examine conflicting claims across multiple evidence sources and produce a structured resolution report.

## INPUT

### Primary Claim Under Review
[CLAIM_TEXT]

### Conflicting Sources
For each source, provide the conflicting statement, source metadata, and the nature of the conflict.

Source A:
- Statement: [SOURCE_A_STATEMENT]
- Source Name: [SOURCE_A_NAME]
- Source Type: [SOURCE_A_TYPE] (e.g., peer-reviewed study, government report, news article, expert testimony, internal document)
- Publication Date: [SOURCE_A_DATE]
- Authority Indicators: [SOURCE_A_AUTHORITY] (e.g., author credentials, institutional affiliation, citation count)

Source B:
- Statement: [SOURCE_B_STATEMENT]
- Source Name: [SOURCE_B_NAME]
- Source Type: [SOURCE_B_TYPE]
- Publication Date: [SOURCE_B_DATE]
- Authority Indicators: [SOURCE_B_AUTHORITY]

[ADDITIONAL_SOURCES] (Optional: include up to [MAX_SOURCES] additional conflicting sources using the same format)

### Context
[CONTEXT] (Optional: background information, domain context, or related claims that help interpret the contradiction)

## OUTPUT SCHEMA

Produce a JSON object with the following structure:

{
  "report_id": "string (unique identifier for this resolution report)",
  "claim_under_review": "string (the original claim being examined)",
  "contradiction_summary": "string (one-sentence description of what the contradiction is about)",
  "contradiction_type": "string (one of: direct_factual_disagreement, temporal_inconsistency, numerical_discrepancy, definitional_conflict, methodological_disagreement, interpretation_divergence, scope_mismatch, other)",
  "source_comparison": {
    "source_a": {
      "authority_score": "string (one of: high, medium, low, unable_to_determine)",
      "authority_rationale": "string (brief explanation of the authority assessment)",
      "recency_assessment": "string (assessment of whether the source is current enough for this claim)",
      "relevance_score": "string (one of: directly_relevant, partially_relevant, tangentially_relevant)"
    },
    "source_b": {
      "authority_score": "string",
      "authority_rationale": "string",
      "recency_assessment": "string",
      "relevance_score": "string"
    },
    "comparative_analysis": "string (explanation of which source carries more weight and why)"
  },
  "resolution_analysis": {
    "can_resolve": "boolean (whether the contradiction can be resolved with available evidence)",
    "resolution": "string (explanation of how the contradiction can be resolved, or why it cannot)",
    "preferred_interpretation": "string (which source is more likely correct, with reasoning)",
    "confidence_level": "string (one of: high, medium, low, insufficient_evidence)",
    "remaining_uncertainties": ["string (list of specific uncertainties that remain after analysis)"]
  },
  "recommended_action": "string (one of: accept_source_a, accept_source_b, accept_neither, escalate_for_human_review, request_additional_evidence, flag_as_unresolvable)",
  "escalation_rationale": "string (if escalation is recommended, explain what specific expertise or evidence is needed)",
  "evidence_gaps": ["string (list of missing evidence that would help resolve the contradiction)"],
  "caveats": ["string (list of limitations, assumptions, or caveats in this analysis)"]
}

## CONSTRAINTS

1. Do not fabricate evidence or source details. If information is missing, mark it as "unavailable" or "unknown" rather than inventing it.
2. When comparing source authority, consider: institutional credibility, author expertise, publication venue rigor, recency, and relevance to the specific claim.
3. If the contradiction stems from different definitions, timeframes, or scopes rather than factual disagreement, classify it accordingly rather than forcing a binary resolution.
4. For numerical discrepancies, note the magnitude of difference and whether it falls within reasonable tolerance.
5. If both sources could be partially correct under different interpretations, explain those interpretations.
6. Never claim certainty when evidence is insufficient. Use "insufficient_evidence" confidence level when appropriate.
7. If the contradiction involves regulated domains (legal, medical, financial, safety-critical), always recommend human review unless the resolution is trivially verifiable.

## RISK LEVEL: [RISK_LEVEL] (one of: low, medium, high, critical)
- Low: General knowledge, non-controversial topics
- Medium: Topics with moderate stakes or public interest
- High: Regulated domains, safety implications, financial decisions
- Critical: Life-safety, legal liability, or major financial impact

If RISK_LEVEL is high or critical, add an additional field "human_review_required": true to the output and include specific review instructions.

To adapt this template for your pipeline, replace each square-bracket placeholder with actual data from your claim extraction and evidence retrieval stages. The [CLAIM_TEXT] should be the exact claim being verified, preserving original wording. Source fields should be populated from your evidence database or retrieval system. The [RISK_LEVEL] placeholder controls whether the output includes mandatory human-review flags—set this based on your domain's regulatory requirements and the claim's potential impact. If you have more than two conflicting sources, use the [ADDITIONAL_SOURCES] placeholder and adjust [MAX_SOURCES] to your pipeline's capacity. The output schema is designed for direct ingestion into verification databases, audit trails, or reviewer dashboards.

Before deploying this prompt into production, validate that your upstream systems can reliably populate all required source metadata fields. Missing authority indicators or publication dates will degrade the model's ability to compare sources accurately. Implement pre-flight validation that checks for empty placeholders and rejects malformed inputs before they reach the model. For high-risk domains, add a post-processing step that verifies the human_review_required field is present and correctly set before any automated action is taken based on the resolution recommendation.

IMPLEMENTATION TABLE

Prompt Variables

Required inputs for the Contradiction Resolution Report Prompt. Each placeholder must be populated before the prompt is assembled and sent. Missing or malformed inputs are the most common cause of silent failures in contradiction detection pipelines.

PlaceholderPurposeExampleValidation Notes

[CLAIM_A]

The first claim being compared for contradiction

The product launched in Q3 2023

Must be a single atomic claim. Reject if multiple assertions are concatenated. Run claim-decomposition check before passing to this prompt.

[CLAIM_B]

The second claim being compared for contradiction

The product was in beta until Q4 2023

Must be a single atomic claim. Reject if identical to [CLAIM_A] after normalization. Flag if temporal or numerical values are absent when [CLAIM_A] contains them.

[SOURCE_A]

Full source metadata for the origin of [CLAIM_A]

{"id": "src-42", "title": "Press Release", "date": "2023-08-15", "authority": "official"}

Must include date and authority fields. Null authority triggers source-authority assessment before contradiction resolution. Validate JSON structure before prompt assembly.

[SOURCE_B]

Full source metadata for the origin of [CLAIM_B]

{"id": "src-87", "title": "Customer Forum Post", "date": "2023-11-02", "authority": "user-generated"}

Same schema requirements as [SOURCE_A]. Missing date field should trigger a pre-prompt retrieval step, not a null pass-through.

[EVIDENCE_CONTEXT_A]

The surrounding text or data from which [CLAIM_A] was extracted

Full paragraph: 'We are pleased to announce the Q3 launch of our product, following successful alpha testing in June.'

Must contain [CLAIM_A] verbatim or in a clearly traceable paraphrase. Run substring or fuzzy match before prompt assembly. Empty context is allowed only if claim was user-submitted without surrounding material.

[EVIDENCE_CONTEXT_B]

The surrounding text or data from which [CLAIM_B] was extracted

Full paragraph: 'The product remained in beta through October. GA is expected in Q4.'

Same validation as [EVIDENCE_CONTEXT_B]. If both contexts are empty, flag for human review before contradiction analysis—context stripping is a known failure mode.

[CONTRADICTION_TYPES]

The set of contradiction categories the model should check for

["direct-negation", "temporal-inconsistency", "numerical-conflict", "scope-mismatch"]

Must be a valid JSON array of strings from the supported contradiction taxonomy. Reject unknown types. An empty array means the model will use its default categories, which reduces auditability.

[RESOLUTION_POLICY]

Instructions for how to resolve or escalate when contradictions are found

{"auto_resolve": false, "prefer": "higher-authority", "escalate_if": "equal-authority", "human_review_threshold": "conflicting"}

Must be a valid JSON object with at least an escalate_if field. If auto_resolve is true, require an explicit tie-breaking rule. Log the policy version in the output for audit trail completeness.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Contradiction Resolution Report prompt into a production verification pipeline with validation, retries, and human review routing.

The Contradiction Resolution Report prompt is designed to be a single step within a larger fact-checking pipeline. It should be invoked only after claim extraction and evidence matching have been completed for a specific claim. The prompt expects a pre-assembled set of conflicting evidence sources, not raw documents. In a production system, a retrieval step should first gather candidate evidence, an evidence matching step should pair it with the claim, and a contradiction detection step should flag the claim as having conflicting evidence before this prompt is called. Calling this prompt on claims without verified conflicts wastes compute and can produce misleading 'no contradiction found' reports that mask real evidence gaps.

Wire this prompt into your application as a gated step. The input should be a structured object containing the original claim, an array of conflicting evidence sources with their authority scores, and the verification context. The output must be validated against a strict JSON schema before being stored or forwarded. Implement a validation layer that checks for required fields: contradiction_id, claim_id, conflicting_sources, resolution_recommendation, and escalation_flag. If the model returns malformed JSON, use a repair prompt from the Output Repair and Validation playbook to fix structural errors before retrying. For high-stakes domains like healthcare or finance, always set escalation_flag to true by default in your application logic and require human review before accepting any automated resolution. Log every invocation with the model version, input hash, output, and validation result for audit trails.

Model choice matters for this task. Use a model with strong reasoning capabilities and a large context window, as the prompt requires comparing multiple evidence sources and their authority metadata. GPT-4o or Claude 3.5 Sonnet are suitable defaults. For cost-sensitive pipelines, consider routing only high-authority-conflict claims to a larger model and handling low-stakes contradictions with a smaller model. Implement a retry strategy with exponential backoff for transient failures, but cap retries at three attempts. If the output fails validation after three retries, route the claim to a human review queue with the raw evidence and a failure note. Never silently accept an unvalidated contradiction resolution report in production—an incorrect resolution can propagate false confidence downstream into verification summaries and audit packages.

IMPLEMENTATION TABLE

Expected Output Contract

Schema contract for the Contradiction Resolution Report. Use this to validate model output before it enters downstream systems or human review queues.

Field or ElementType or FormatRequiredValidation Rule

report_id

string (UUID v4)

Must parse as valid UUID v4. Reject on mismatch.

contradiction_pair

object

Must contain claim_a and claim_b, each with source_ref and text. Null not allowed.

contradiction_type

enum: direct, temporal, numerical, logical, attribution

Must match one of the allowed enum values exactly. Case-sensitive.

source_authority_comparison

object

Must include authority_score_a, authority_score_b, and preferred_source. Scores must be integers 1-5.

resolution_recommendation

enum: prefer_source_a, prefer_source_b, escalate, insufficient_evidence

Must match one of the allowed enum values. Reject on unknown value.

resolution_rationale

string (1-500 chars)

Length must be between 1 and 500 characters. Must not be identical to claim text.

escalation_priority

enum: low, medium, high, critical

Required when resolution_recommendation is escalate. Otherwise must be null.

evidence_summary

array of objects

Each object must have source_id, excerpt (max 300 chars), and relevance label. Array length must be >= 1.

PRACTICAL GUARDRAILS

Common Failure Modes

Contradiction resolution reports fail in predictable ways. These are the most common failure modes and the guardrails that catch them before they reach production.

01

False Equivalence Between Sources

What to watch: The model treats all sources as equally authoritative, presenting a peer-reviewed study and a random blog post as equivalent conflicting evidence. This produces misleading 'balanced' reports that elevate noise to the level of signal. Guardrail: Require explicit source authority scoring before contradiction analysis. Include a source_authority_tier field in the input schema and instruct the model to weight contradictions by authority differential.

02

Synthetic Resolution Without Evidence

What to watch: The model invents a middle-ground resolution or harmonizes contradictory claims without citing evidence for the synthesis. This is a hallucination pattern where the model prioritizes narrative coherence over factual accuracy. Guardrail: Require every resolution recommendation to cite specific evidence. Add a validator that rejects resolution statements lacking at least one source citation. Flag resolutions that use phrases like 'it is likely that' or 'probably' without supporting evidence.

03

Temporal Context Collapse

What to watch: The model treats a 2019 source and a 2024 source as directly contradictory when the underlying facts changed over time. It fails to recognize that both could be true in their respective timeframes. Guardrail: Include source_date and claim_timestamp fields in the input schema. Instruct the model to check temporal alignment before declaring contradiction. Add a pre-check: 'Could both sources be true at different points in time?'

04

Definitional Drift Across Sources

What to watch: Two sources appear contradictory because they use the same term with different definitions, scopes, or measurement methodologies. The model flags a contradiction that is actually a terminology mismatch. Guardrail: Require the model to extract and compare definitions before contradiction analysis. Add a definition_alignment check step. If definitions differ, flag as 'apparent contradiction due to definitional mismatch' rather than 'substantive contradiction.'

05

Over-Reporting Minor Discrepancies

What to watch: The model floods the report with trivial numerical rounding differences, phrasing variations, or immaterial discrepancies that have no practical impact. This buries meaningful contradictions in noise and wastes reviewer time. Guardrail: Set a materiality threshold in the prompt. Instruct the model to classify contradictions by severity and suppress or de-prioritize those below the threshold. Add a post-processing filter that limits the report to the top-N highest-impact contradictions.

06

Missing Contradictions Due to Implicit Agreement Assumption

What to watch: The model assumes sources agree when they use similar language but actually make incompatible claims. This is the inverse of definitional drift—surface similarity masks substantive disagreement. Guardrail: Add a deliberate 'adversarial check' step: 'For each pair of sources that appear to agree, identify one way they could be interpreted as disagreeing. If such an interpretation exists, flag it for human review.' Combine with structured claim extraction before comparison.

IMPLEMENTATION TABLE

Evaluation Rubric

Criteria for testing the Contradiction Resolution Report Prompt before deployment. Each row defines a pass standard, a failure signal, and a concrete test method.

CriterionPass StandardFailure SignalTest Method

Schema Compliance

Output is valid JSON matching the [OUTPUT_SCHEMA] exactly; all required fields present and no extra fields.

JSON parse error, missing required field, or unexpected field present.

Automated schema validation against [OUTPUT_SCHEMA] using a JSON Schema validator.

Contradiction Detection Recall

All contradictions present in the [SOURCE_SET] are identified in the report; no false negatives.

A known contradiction from a golden test set is missing from the contradictions array.

Compare output contradictions against a pre-labeled golden dataset with known conflicts.

Contradiction Detection Precision

No false positives; every reported contradiction is a genuine logical or factual conflict between sources.

A reported contradiction is actually a paraphrase, a temporal update, or a domain-specific term difference.

Human review of a random sample of reported contradictions, or automated check against a set of non-contradictory source pairs.

Source Attribution Accuracy

Each contradiction correctly cites the specific source IDs and relevant text excerpts from [SOURCE_SET].

Citation points to a source that does not contain the conflicting claim, or source ID is hallucinated.

Verify each citation's source ID exists in [SOURCE_SET] and the quoted text is a substring match.

Resolution Logic Validity

For each contradiction, the resolution recommendation is logically consistent with the evidence and the [RESOLUTION_POLICY].

Recommendation ignores a higher-authority source, or suggests a resolution that contradicts the provided evidence.

LLM-as-judge evaluation with a rubric checking alignment between evidence, policy, and recommendation.

Escalation Flagging

Contradictions that cannot be resolved with available evidence are correctly flagged for human review with a clear rationale.

An unresolvable contradiction is marked as 'resolved' or an easily resolvable one is escalated.

Test with source pairs designed to be unresolvable (equal authority, contradictory data) and check the escalation flag.

Uncertainty Communication

Report includes a confidence score per contradiction and uses calibrated language (e.g., 'high confidence', 'low confidence') matching the score.

Confidence score is always 1.0, or language like 'definitely' is used for a low-confidence resolution.

Check that confidence scores are distributed across a range and that language qualifiers correlate with score thresholds defined in [CONSTRAINTS].

Output Completeness

Report includes a summary section with total contradictions found, resolved count, and escalated count.

Summary section is missing, or counts do not match the number of entries in the contradictions array.

Parse the output and assert that summary.total_contradictions equals the length of the contradictions array.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a simplified output schema. Drop strict JSON enforcement and accept markdown-structured reports. Focus on contradiction detection logic, not formatting.

Prompt modification

  • Replace [OUTPUT_SCHEMA] with a loose markdown template: ## Contradiction Found, ## Sources Compared, ## Recommended Resolution.
  • Remove [CONSTRAINTS] around source authority scoring and escalation rules.
  • Add: If you are unsure about a contradiction, flag it as 'Possible Conflict' rather than 'Confirmed Contradiction'.

Watch for

  • Missing schema checks leading to inconsistent report structure across runs.
  • Overly broad contradiction detection flagging stylistic differences as factual conflicts.
  • No source authority weighting, so a low-credibility source is treated equally to a primary source.
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.