This playbook is for knowledge base operators, RAG pipeline engineers, and AI quality teams who need to move beyond detecting conflicts to understanding their origin. When your retrieval system surfaces contradictory claims from multiple documents, this prompt analyzes the conflicting passages and classifies the root cause: temporal drift, definitional differences, methodology variance, jurisdiction conflicts, or data quality issues. The ideal user is someone who already has a conflict detection step in place and needs a structured diagnosis to decide whether to update the knowledge base, adjust retrieval, or escalate to a subject matter expert.
Prompt
Source Conflict Root Cause Analysis Prompt

When to Use This Prompt
Understand the job-to-be-done, ideal user, required context, and when not to use this prompt for source conflict root cause analysis.
Use this prompt after a conflict detection step has identified the conflicting source pairs. It is not a conflict detector itself. It assumes you already have two or more documents that disagree and need a structured diagnosis. The prompt requires the conflicting passages as input, along with any available metadata such as publication dates, document types, jurisdictions, and source identifiers. Without this context, the model cannot reliably distinguish between a genuine temporal update and a data quality error. The output is a root cause classification with supporting evidence drawn from the passages themselves, not a resolution of the conflict.
Do not use this prompt when you need to resolve conflicts, rank sources by credibility, or generate a final answer that reconciles disagreements. Those are separate workflows covered by sibling playbooks such as Source Credibility Weighting Prompt for Conflicts and Conflict-Aware RAG Answer Generation Prompt Template. Also avoid this prompt when the conflicting passages are not yet identified—start with Multi-Source Conflict Detection Prompt Template first. For high-stakes domains such as healthcare, legal, or finance, always route the root cause analysis output to a human reviewer before taking action on the knowledge base. The prompt provides a diagnosis, not a decision.
Use Case Fit
Where the Source Conflict Root Cause Analysis Prompt delivers value and where it creates risk. Use this to decide if the prompt fits your workflow before you invest in harness integration.
Good Fit: Knowledge Base Diagnostics
Use when: you operate a multi-source knowledge base and need to explain why retrieved documents disagree. The prompt excels at categorizing root causes—temporal drift, definitional mismatch, methodology variance, jurisdiction conflict, data quality issues—with evidence from the conflicting sources themselves. Guardrail: Provide at least two conflicting source excerpts with metadata (date, author, jurisdiction). The prompt cannot diagnose what it cannot see.
Bad Fit: Single-Source or No-Conflict Scenarios
Avoid when: only one source is available or the sources agree. The prompt is designed for conflict analysis and will fabricate or overstate disagreements when given harmonious evidence. Guardrail: Run a conflict detection step first. Only invoke root cause analysis when a contradiction is confirmed. If sources agree, route to a standard synthesis prompt instead.
Required Inputs: Source Pairs with Metadata
What you must provide: conflicting source excerpts, source identifiers, publication dates, document types, and any domain or jurisdiction tags. Without metadata, the prompt cannot distinguish temporal drift from genuine methodological disagreement. Guardrail: Build a pre-processing step that attaches metadata to every source chunk before retrieval. Missing metadata should trigger an input validation failure, not a best-guess analysis.
Operational Risk: Over-Classification of Minor Variance
What to watch: the prompt may classify trivial wording differences or paraphrasing as definitional conflicts, producing noisy root cause reports that erode operator trust. Guardrail: Add a severity threshold in your harness. Only surface root cause analyses for conflicts rated major or critical by a prior severity classification step. Route minor variance to a summary log, not an alert.
Operational Risk: Hallucinated Root Causes
What to watch: when source excerpts are short or ambiguous, the model may invent plausible-sounding root causes (e.g., 'methodology variance') without evidence in the text. Guardrail: Require the prompt to cite specific phrases from each source that support the root cause classification. If no supporting evidence is found, the output must say 'insufficient evidence to determine root cause' rather than guessing.
Domain Constraint: Regulated Industries
What to watch: in legal, clinical, or financial contexts, a misclassified root cause can trigger incorrect downstream actions—overriding a contract clause, dismissing a clinical finding, or ignoring a regulatory conflict. Guardrail: All root cause outputs in regulated domains must route to human review before any automated action. The prompt output is a diagnostic aid, not a decision. Log the full analysis with source evidence for audit.
Copy-Ready Prompt Template
A copy-ready prompt template for classifying why retrieved sources disagree, with placeholders for your documents, domain taxonomy, and output schema.
This template is designed to be copied directly into your prompt management system, IDE, or orchestration layer. It accepts a set of conflicting source passages and returns a structured root cause classification with supporting evidence. The prompt forces the model to distinguish between genuine contradictions and superficial disagreements caused by temporal drift, definitional variance, methodology differences, jurisdiction conflicts, or data quality issues. Use it when your RAG pipeline surfaces contradictory claims and you need to understand why before deciding how to resolve or surface the conflict to users.
textYou are a root cause analyst for a knowledge base system. Your job is to examine conflicting source passages and classify the underlying reason for the disagreement. Do not resolve the conflict. Do not pick a winner. Classify the root cause and provide evidence. ## INPUT [CONFLICT_DESCRIPTION] ## SOURCE PASSAGES [SOURCE_PASSAGES] ## DOMAIN TAXONOMY [DOMAIN_TAXONOMY] ## OUTPUT SCHEMA Return a JSON object with the following structure: { "conflict_id": "string identifier for this conflict instance", "root_cause_category": "TEMPORAL_DRIFT | DEFINITIONAL_DIFFERENCE | METHODOLOGY_VARIANCE | JURISDICTION_CONFLICT | DATA_QUALITY_ISSUE | SOURCE_BIAS | OTHER", "root_cause_explanation": "2-4 sentence explanation of why this category applies, referencing specific evidence from the source passages", "evidence": [ { "source_id": "identifier from SOURCE_PASSAGES", "relevant_excerpt": "quoted text that supports the root cause classification", "rationale": "why this excerpt points to the classified root cause" } ], "is_genuine_contradiction": true or false, "genuine_contradiction_rationale": "if true, explain why the sources genuinely disagree on facts; if false, explain why the disagreement is superficial or resolvable", "recommended_resolution_strategy": "TEMPORAL_PRECEDENCE | AUTHORITY_WEIGHTING | MAJORITY_VOTE | ESCALATE_TO_HUMAN | FLAG_FOR_USER | NO_RESOLUTION_NEEDED", "confidence": 0.0 to 1.0, "uncertainty_notes": "optional string describing what would increase confidence" } ## CONSTRAINTS [CONSTRAINTS] ## EXAMPLES [EXAMPLES] ## INSTRUCTIONS 1. Read the conflict description and all source passages carefully. 2. Identify whether the sources genuinely contradict each other or whether the disagreement stems from a resolvable difference in context, definitions, timeframes, methods, jurisdiction, or data quality. 3. Classify the root cause using exactly one category from the OUTPUT SCHEMA. 4. Provide at least one evidence item per source passage that supports your classification. 5. If you cannot determine the root cause with confidence above 0.7, set the category to OTHER and explain what additional information would help. 6. Do not fabricate facts not present in the source passages. 7. Do not resolve the conflict or declare one source correct unless the root cause category inherently implies precedence (e.g., TEMPORAL_DRIFT with a clear newer source).
Adaptation guidance: Replace [CONFLICT_DESCRIPTION] with a 1-3 sentence summary of what the sources appear to disagree about. Populate [SOURCE_PASSAGES] with each retrieved chunk, including source identifiers, publication dates, author metadata, and the full passage text. The [DOMAIN_TAXONOMY] placeholder should contain your organization's domain-specific categories for root causes—legal teams might add STATUTORY_CHANGE or CIRCUIT_SPLIT, while financial analysts might add RESTATEMENT or ACCOUNTING_STANDARD_CHANGE. Use [CONSTRAINTS] to inject domain-specific rules such as regulatory citation requirements, jurisdiction precedence rules, or minimum evidence thresholds. The [EXAMPLES] placeholder should contain 2-3 few-shot examples showing correct classifications for your domain. For high-stakes domains, wire the output into a human review queue when confidence falls below 0.8 or when recommended_resolution_strategy is ESCALATE_TO_HUMAN.
Validation and evals: Before deploying, build a test harness that validates the output JSON against the schema, checks that evidence array is non-empty, and confirms that root_cause_category matches one of the enumerated values. Run the prompt against a golden dataset of 20-30 known conflicts with labeled root causes and measure precision, recall, and F1 per category. Pay special attention to false positives where the model classifies superficial disagreements as genuine contradictions. Log every classification with the input passages, output, and confidence score for auditability. If your domain is regulated, require human sign-off on classifications where is_genuine_contradiction is true and the conflict severity is high.
Prompt Variables
Required and optional inputs for the Source Conflict Root Cause Analysis prompt. Each placeholder must be populated before the prompt is sent. Validation notes describe how to check input quality before execution.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CONFLICTING_SOURCES] | Array of document objects containing the conflicting passages, source metadata, and the specific claims that disagree | [{"source_id": "doc-142", "source_name": "Q3 Earnings Report", "publication_date": "2024-10-15", "claim": "Revenue grew 12% YoY", "passage": "..."}, {"source_id": "doc-187", "source_name": "Investor Presentation", "publication_date": "2024-11-02", "claim": "Revenue grew 8% YoY", "passage": "..."}] | Schema check: each object must have source_id, claim, and passage fields. Minimum 2 sources required. Publication_date must parse as ISO 8601. Null or empty array should abort. |
[CONFLICT_DESCRIPTION] | Natural language summary of what the sources disagree about, used to focus the root cause analysis | Sources disagree on YoY revenue growth rate for Q3 2024. Doc-142 states 12%, Doc-187 states 8%. | Length check: minimum 20 characters, maximum 500 characters. Must reference at least two sources by identifier. Vague descriptions should trigger a refinement prompt before analysis. |
[DOMAIN_CONTEXT] | Domain or industry context that shapes how root causes are interpreted and categorized | Financial reporting for a publicly traded SaaS company subject to SEC filing standards | Must be non-empty. Domain should match one of the supported categories in the root cause taxonomy. Unrecognized domains should fall back to general analysis with a warning flag. |
[ROOT_CAUSE_TAXONOMY] | List of root cause categories the analysis should consider, with definitions and examples | ["temporal_drift", "definitional_difference", "methodology_variance", "jurisdiction_conflict", "data_quality_issue", "source_error", "update_lag"] | Schema check: must be a non-empty array of strings. Each category must have a definition available in the system context. Unknown categories should be rejected before prompt assembly. |
[OUTPUT_SCHEMA] | Expected JSON schema for the root cause analysis output, including required fields and types | {"type": "object", "properties": {"conflict_id": {"type": "string"}, "root_causes": {"type": "array"}, "primary_cause": {"type": "string"}, "confidence": {"type": "number"}, "evidence_per_cause": {"type": "array"}}, "required": ["conflict_id", "root_causes", "primary_cause", "confidence", "evidence_per_cause"]} | Schema must be valid JSON Schema draft-07 or later. Required fields must include root_causes, primary_cause, and evidence_per_cause. Confidence must be constrained to 0.0-1.0 range. Validate schema parse before prompt execution. |
[ANALYSIS_CONSTRAINTS] | Rules limiting what the analysis can conclude, such as requiring direct evidence for each root cause or prohibiting speculation | Each root cause must cite at least one specific passage from the conflicting sources. Do not infer causes not supported by the provided text. If no root cause can be determined with confidence >= 0.6, output 'indeterminate' as primary_cause. | Parse check: constraints must be parseable as a list of rules. Each rule must be testable. Constraints that contradict the output schema should be flagged. Missing constraints should default to requiring evidence citation per cause. |
[CONFLICT_ID] | Unique identifier for this conflict instance, used for traceability and downstream workflow routing | conf-2024-11-15-003 | Format check: must match pattern 'conf-YYYY-MM-DD-NNN'. Must be unique within the analysis batch. Null allowed only if the system auto-generates IDs after analysis. Duplicate IDs should trigger a warning. |
[PRIOR_ANALYSIS_CONTEXT] | Optional field for previous root cause analyses on related conflicts, used to detect recurring patterns or systemic issues | Previous analysis conf-2024-10-22-001 identified methodology_variance as root cause for a similar revenue reporting conflict between docs 98 and 112. | Null allowed. If provided, must include conflict_id and primary_cause from prior analysis. Cross-reference check: prior conflict_id must exist in the analysis log. Stale prior analyses older than 90 days should include a recency warning. |
Implementation Harness Notes
How to wire the Source Conflict Root Cause Analysis prompt into a production application or diagnostic workflow.
The Source Conflict Root Cause Analysis prompt is designed for diagnostic, not real-time, workflows. It expects a batch of pre-identified conflicting documents and returns a structured root cause classification. Wire this prompt into a knowledge base maintenance pipeline, a scheduled audit job, or an internal operator tool—not into a customer-facing Q&A endpoint. The primary integration points are: a conflict detection step that identifies document pairs or clusters with contradictory claims, a retrieval or document fetch step that gathers the full text of those documents, and a downstream action step that routes the root cause analysis to the appropriate remediation queue (e.g., stale content refresh, terminology normalization, jurisdiction tagging).
Build a validation layer around the prompt's structured output. The expected schema includes root_cause_category (an enum of temporal drift, definitional difference, methodology variance, jurisdiction conflict, data quality issue, or unknown) and evidence (an array of source excerpts with document identifiers). Validate that the category is a recognized enum value and that each evidence item includes a non-empty source_id and excerpt. If validation fails, retry once with the validation errors injected into the prompt as additional [CONSTRAINTS]. Log all retries and validation failures for later prompt improvement. For high-stakes knowledge bases (legal, regulatory, clinical), route unknown classifications and low-confidence outputs to a human review queue rather than auto-applying remediation.
Model choice matters here. This prompt requires careful comparative reasoning across multiple documents, so prefer models with strong long-context and analytical capabilities. If the conflicting documents are long, consider a two-pass architecture: first, use a cheaper model to extract the specific conflicting claims from each document; second, pass only those extracted claims plus surrounding context to the root cause analysis prompt. This reduces token costs and improves focus. Store the full prompt, response, and validation results in an observability log keyed by document cluster ID. Over time, review misclassifications to refine the root_cause_category enum and the prompt's decision rules. Do not use this prompt to automatically resolve or hide conflicts—its job is diagnosis, not synthesis.
Expected Output Contract
Defines the structured JSON output shape, field types, and validation rules for the root cause analysis response. Use this contract to build downstream parsers, validation checks, and logging schemas.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
analysis_id | string (uuid) | Must match regex ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | |
conflict_summary | string (1-3 sentences) | Length must be between 50 and 500 characters; must reference at least two source identifiers from the input context | |
root_causes | array of objects | Array must contain 1-5 objects; each object must pass the root_cause object validation rules below | |
root_causes[].category | enum string | Must be one of: temporal_drift, definitional_difference, methodology_variance, jurisdiction_conflict, data_quality_issue, source_authority_gap, scope_mismatch | |
root_causes[].description | string | Length between 30 and 300 characters; must explain how this category applies to the specific conflict | |
root_causes[].source_evidence | array of strings | Each string must be a direct quote or close paraphrase from a source document; array must contain at least 1 item | |
root_causes[].confidence | number (0.0-1.0) | Must be a float between 0.0 and 1.0 inclusive; values below 0.5 should trigger a human review flag in the application layer | |
resolution_guidance | string or null | If null, application must route to human review queue; if string, length must be between 20 and 500 characters | |
requires_human_review | boolean | Must be true if any root_causes[].confidence < 0.5 or if resolution_guidance is null; otherwise may be false |
Common Failure Modes
Root cause analysis prompts fail in predictable ways when source documents are messy, models overconfidently invent causes, or the analysis confuses correlation with causation. These cards cover the most common production failure modes and how to guard against them.
Hallucinated Root Causes
What to watch: The model confidently invents a root cause—such as a methodology difference or temporal drift—that is not actually supported by the provided source excerpts. This happens when the prompt asks for categorization but the evidence is thin or ambiguous. Guardrail: Require the model to quote the specific passage that supports each root cause claim. Add a post-generation verification step that checks whether every cited cause has a corresponding source excerpt. If no excerpt exists, flag the output for human review.
Over-Classification of Minor Differences
What to watch: The model treats every minor wording difference as a substantive conflict, producing a long list of low-severity root causes that overwhelm the operator. This happens when the prompt lacks severity thresholds or conflates stylistic variation with genuine disagreement. Guardrail: Include explicit severity definitions in the prompt—distinguish between definitional conflicts, data quality issues, and superficial phrasing differences. Add a minimum impact threshold: only report root causes that would change a downstream decision or answer.
Temporal Confusion Without Date Anchoring
What to watch: The model identifies temporal drift as a root cause but cannot determine which source is newer, or misorders documents because publication dates are missing, ambiguous, or in different formats. Guardrail: Require explicit date extraction as a prerequisite step before temporal analysis. If dates are missing or unparseable, the prompt should output temporal_drift: unconfirmed rather than guessing. Add a pre-processing step that normalizes all date fields before the prompt runs.
Single-Source Bias in Multi-Document Analysis
What to watch: The model anchors on one source and interprets all other documents relative to it, rather than analyzing each source independently. This produces root cause analyses that implicitly treat one document as ground truth. Guardrail: Structure the prompt to require pairwise comparison before root cause synthesis. Ask the model to describe each source's position independently, then identify where they diverge. Add an eval check that verifies every source is cited at least once in the analysis.
Missing Jurisdictional or Domain Context
What to watch: The model attributes a conflict to data quality or methodology when the real root cause is jurisdictional—different regulatory regimes, accounting standards, or legal frameworks that produce legitimately different answers. Guardrail: Include a jurisdiction and domain context field in the prompt input. If the operator does not provide it, the prompt should output jurisdiction_context: missing and flag the analysis as incomplete. Train reviewers to check whether domain-specific rules explain the conflict before accepting methodology-based root causes.
Confidence Inflation on Ambiguous Conflicts
What to watch: The model assigns high confidence to a root cause classification even when the evidence is genuinely ambiguous or multiple causes could explain the same conflict. This misleads operators into treating the analysis as definitive. Guardrail: Require the prompt to output a confidence score per root cause and an alternative_explanations field listing other plausible causes. Add a calibration check: if the top root cause and the next-best alternative have similar evidence strength, the output should explicitly flag the ambiguity and recommend human review.
Evaluation Rubric
Criteria for evaluating the quality and correctness of root cause analysis outputs before deploying the Source Conflict Root Cause Analysis Prompt to production.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Root Cause Category Validity | Output root cause category matches one of the predefined types: temporal_drift, definitional_difference, methodology_variance, jurisdiction_conflict, data_quality_issue, or other with explicit justification | Category is missing, ambiguous, or not from the allowed enum without a clear justification in the [ROOT_CAUSE_EVIDENCE] field | Schema validation against allowed enum values; spot-check 20 outputs for category appropriateness |
Evidence Grounding | Every root cause claim in [ROOT_CAUSE_EVIDENCE] includes a direct quote or specific reference to a source passage from [CONFLICTING_SOURCES] | Evidence field contains unsupported assertions, paraphrases without source anchors, or generic statements like 'sources disagree on methodology' | Automated check for quote presence or source ID references in evidence field; human review of 10 random outputs for hallucinated evidence |
Source Pair Attribution | Output correctly identifies which specific sources conflict and maps each root cause to the relevant source pair from [CONFLICTING_SOURCES] | Root cause analysis references sources not present in input, conflates multiple conflicts into one, or fails to distinguish which sources disagree on what | Cross-reference source IDs in output against input source list; verify pair mapping accuracy on 15 test cases with known conflicts |
Temporal Drift Detection Accuracy | When temporal_drift is identified, output includes specific dates, versions, or effective periods from sources and explains why the time gap explains the conflict | Temporal drift claimed without date evidence, or dates present but no explanation of how timing caused the divergence | Test with 10 known temporal conflict cases; measure precision and recall of temporal_drift classification |
Definitional Difference Precision | When definitional_difference is identified, output quotes the conflicting definitions verbatim and explains the semantic gap | Definitions are paraphrased rather than quoted, or the output claims definitional conflict when sources actually agree on meaning but differ on scope | Test with 8 known definitional conflict cases; verify quote accuracy and semantic gap explanation quality |
Methodology Variance Explanation | When methodology_variance is identified, output describes the differing methods, data sources, or assumptions explicitly and explains how they lead to divergent conclusions | Output states 'different methods' without specifying what methods, or fails to connect methodological differences to the specific conflicting claims | Test with 10 known methodology conflict cases; check for method description completeness and causal linkage to conflict |
Jurisdiction Conflict Handling | When jurisdiction_conflict is identified, output names the specific jurisdictions, regulatory frameworks, or governing bodies and explains why they produce different requirements or interpretations | Output mentions 'different jurisdictions' without naming them, or fails to explain the regulatory mechanism causing the conflict | Test with 8 known jurisdiction conflict cases; verify jurisdiction naming accuracy and regulatory mechanism explanation |
Data Quality Issue Specificity | When data_quality_issue is identified, output specifies the quality problem type (e.g., stale data, incomplete records, unit errors, sampling bias) with source evidence | Output makes vague claims like 'data might be wrong' without specifying the quality issue type or pointing to evidence in the source | Test with 10 known data quality conflict cases; check issue type classification accuracy and evidence specificity |
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 prompt and a small set of known-conflict document pairs. Remove strict output schema requirements initially—let the model return free-text root cause analysis to observe its reasoning patterns. Use a simple JSON structure with only root_cause_category, explanation, and evidence_excerpts fields.
Prompt modification
Replace [OUTPUT_SCHEMA] with: Return JSON with fields: root_cause_category (string), explanation (string), evidence_excerpts (array of strings). Drop [CONFIDENCE_THRESHOLD] and [ESCALATION_RULES] placeholders.
Watch for
- Model inventing root causes not supported by the documents
- Conflating correlation with causation in conflict explanations
- Missing temporal drift when documents span different dates
- Overconfident single-cause attribution when multiple factors interact

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