This prompt is for compliance engineers and audit workflow builders who need a machine-readable, step-by-step record of how an AI system detected, analyzed, and resolved conflicting evidence. The primary job-to-be-done is producing a traceable decision record that can be stored in an audit log, reviewed by a human, or submitted as part of a regulatory filing. It is not designed for generating user-facing answers, summaries, or conversational responses. The ideal user is someone integrating AI into a governed workflow where every evidence-handling decision must be explainable to an internal or external reviewer.
Prompt
Evidence Conflict Audit Trail Prompt Template

When to Use This Prompt
Defines the job-to-be-done, ideal user, required context, and boundaries for the Evidence Conflict Audit Trail Prompt Template.
Use this prompt when you have already identified a set of conflicting source passages—through retrieval, upstream detection, or human escalation—and need to produce a structured audit trail. The prompt assumes the inputs include the original query or claim, the conflicting passages with source metadata, and any applicable resolution policies or risk classifications. It is appropriate for regulated domains such as financial compliance, clinical documentation review, legal evidence management, and safety-critical decision support. The output is a structured record containing conflict identification, analysis steps, resolution rationale, and traceable links back to source passages.
Do not use this prompt when you need a real-time answer for an end user, when the conflict is trivial or already resolved by a simple rule, or when the system lacks access to the original source passages. This prompt is also inappropriate for generating speculative explanations about why sources disagree—it must ground every statement in the provided evidence. If your workflow requires a balanced summary of conflicting positions for a decision memo, use the Conflicting Evidence Summary Prompt instead. If you need to classify the type of disagreement before producing an audit trail, run the Source Disagreement Classification Prompt first and feed its output into this template. The next section provides the copy-ready prompt template you can adapt for your evidence conflict audit workflow.
Use Case Fit
Where the Evidence Conflict Audit Trail prompt works, where it fails, and the operational preconditions required before wiring it into a compliance or audit workflow.
Good Fit: Structured Compliance Reviews
Use when: you need a step-by-step audit record of detected conflicts, resolution decisions, and reasoning for each step. Guardrail: define a fixed output schema (JSON) with required fields for source passages, conflict type, resolution action, and reviewer identity before generating the trail.
Bad Fit: Real-Time Chat or Unstructured Q&A
Avoid when: users expect conversational answers without audit overhead. Guardrail: route to this prompt only when an explicit 'generate audit trail' action is triggered; do not inject audit-trail generation into every RAG response.
Required Inputs: Source Passages and Conflict Pairs
What to watch: the prompt cannot invent conflicts from thin air. Guardrail: require pre-identified conflicting passage pairs, source metadata (document ID, date, authority score), and the specific claim in dispute as inputs. Validate inputs before calling the model.
Operational Risk: Incomplete Audit Trails
Risk: the model may skip steps, omit resolution reasoning, or fail to link decisions back to source passages. Guardrail: implement a post-generation validator that checks for required fields, source traceability, and step completeness. Reject and retry incomplete trails.
Operational Risk: Overconfident Resolution
Risk: the model may present a resolution as definitive when evidence is genuinely ambiguous. Guardrail: require an explicit 'confidence' or 'resolvability' field in the output schema. Escalate low-confidence resolutions for human review before the audit trail is finalized.
Variant: Human-in-the-Loop Approval
Use when: the audit trail will be submitted to regulators or external auditors. Guardrail: add a 'review_status' field to the output schema and route all generated trails through a human approval queue before they are committed to the system of record.
Copy-Ready Prompt Template
A reusable prompt template for generating structured audit trails that document evidence conflicts, resolution decisions, and traceable reasoning.
This prompt template produces a structured audit record when your system detects conflicting evidence across multiple sources. It forces the model to document each conflict, the resolution decision, the reasoning behind that decision, and explicit links back to source passages. The output is designed to be machine-readable for downstream compliance systems and human-readable for review queues. Use this template when you need a verifiable record of how your AI system handled contradictory information—not just what it decided, but why.
textYou are an evidence audit trail generator. Your task is to produce a structured, traceable record of how conflicting evidence was detected, analyzed, and resolved. Every claim in your output must be grounded in the provided source passages. ## INPUTS ### Source Passages [SOURCE_PASSAGES] <!-- Array of source objects, each with: source_id, source_label, passage_text, authority_score, recency_date --> ### Detected Conflicts [DETECTED_CONFLICTS] <!-- Array of conflict objects, each with: conflict_id, claim_in_dispute, source_ids_supporting, source_ids_opposing, conflict_type, severity_score --> ### Resolution Policy [RESOLUTION_POLICY] <!-- String describing the resolution rules: e.g., "prefer most recent source," "defer to highest authority score," "present both sides with uncertainty," "escalate if severity >= 0.7" --> ### Output Schema [OUTPUT_SCHEMA] <!-- JSON schema or field specification for the audit record --> ### Constraints [CONSTRAINTS] <!-- Additional constraints: e.g., "max 3 sentences per resolution rationale," "include exact quote spans," "flag unresolved conflicts for human review" --> ## INSTRUCTIONS For each conflict in [DETECTED_CONFLICTS], produce an audit entry that includes: 1. **Conflict Summary**: Restate the claim in dispute and identify which sources support versus oppose it. Use exact source_ids from [SOURCE_PASSAGES]. 2. **Evidence Extraction**: For each source involved, extract the specific passage text that supports or opposes the claim. Quote the relevant span verbatim and include the source_id and passage offset if available. 3. **Resolution Decision**: Apply [RESOLUTION_POLICY] to determine how this conflict should be resolved. State the decision clearly: which position is adopted, whether both are presented, or whether the conflict is escalated. 4. **Resolution Rationale**: Explain why this resolution was chosen, referencing the policy rule applied, the authority scores, recency dates, or other factors from [SOURCE_PASSAGES]. If the policy requires escalation, explain which threshold was exceeded. 5. **Unresolved Flag**: Set to true if the conflict could not be resolved under the policy and requires human review. Set to false if a resolution was reached. 6. **Traceability Links**: For every claim in your audit entry, provide a back-reference to the specific source_id and passage span that supports it. If you cannot ground a statement in the provided passages, do not include it. ## OUTPUT FORMAT Return a JSON object matching [OUTPUT_SCHEMA]. Every field must be populated. If a field cannot be populated from the provided evidence, use null and include a note in the "gaps" array explaining what was missing. ## CRITICAL RULES - Do not invent evidence. If a source does not contain information needed for a field, mark it as null. - Do not resolve conflicts by ignoring opposing evidence. Every conflicting source must be accounted for in the audit entry. - If [RESOLUTION_POLICY] is ambiguous for a given conflict, escalate rather than guess. - Preserve exact quotes. Do not paraphrase when extracting evidence spans.
Adaptation guidance: Replace each square-bracket placeholder with live data from your conflict detection pipeline before sending to the model. [SOURCE_PASSAGES] should be populated from your retrieval or evidence store, including authority scores and recency metadata if your resolution policy depends on them. [DETECTED_CONFLICTS] should come from an upstream conflict detection prompt or classifier—do not ask this prompt to both detect and audit conflicts, as combining those tasks degrades audit quality. [RESOLUTION_POLICY] must be a concrete, executable rule set, not a vague guideline; ambiguous policies produce inconsistent audit trails. [OUTPUT_SCHEMA] should be a strict JSON schema that your downstream compliance system can validate. If you are operating in a regulated domain, add a human review step after audit generation and before the audit record is finalized.
What to do next: After pasting this template into your application, build a validation layer that checks every traceability link against the original source passages. The most common failure mode is the model generating plausible-sounding rationales that reference source details not actually present in the provided text. Run this prompt against a golden set of known conflicts with expected resolutions, and measure whether the audit trail correctly identifies which sources support which positions and whether resolution decisions follow your policy. If your resolution policy involves numerical thresholds, test boundary cases where scores are close to the threshold to ensure consistent escalation behavior.
Prompt Variables
Required inputs for the Evidence Conflict Audit Trail prompt. Each placeholder must be populated before the prompt is sent. Validation notes describe how to check that the input is well-formed and safe before execution.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CONFLICT_LIST] | Array of detected evidence conflicts, each with source passages, claims, and conflict type | {"conflicts": [{"id": "C1", "claim": "Market grew 5%", "source_a": {"id": "S1", "text": "..."}, "source_b": {"id": "S2", "text": "..."}, "type": "factual_contradiction"}]} | Must be valid JSON array with at least one conflict object. Each conflict requires id, claim, source_a, source_b, and type fields. Reject empty array. |
[RESOLUTION_POLICY] | Rules for how conflicts should be resolved: prefer authority, flag for review, present both, or defer | {"default": "flag_for_review", "authority_tiers": ["peer_reviewed", "official_stats", "vendor_claims"], "auto_resolve_severity_below": "low"} | Must be valid JSON object with a default resolution strategy. If authority_tiers is present, each tier must be a non-empty string. Reject if auto_resolve_severity_below is set to 'high' or 'critical' without explicit approval flag. |
[AUDIT_SCHEMA] | Expected output structure for the audit trail record, defining required fields and their types | {"fields": ["conflict_id", "timestamp", "resolution_decision", "reasoning", "source_passages_cited", "reviewer"], "required": ["conflict_id", "resolution_decision", "reasoning"]} | Must be valid JSON schema definition. At minimum, conflict_id, resolution_decision, and reasoning must be required. Reject schemas that allow resolution_decision to be null without explicit nullable flag. |
[SOURCE_CORPUS_METADATA] | Metadata about the source documents, including identifiers, authority levels, and recency | {"sources": {"S1": {"authority": "peer_reviewed", "date": "2024-03-15", "title": "Annual Report"}, "S2": {"authority": "vendor_claims", "date": "2024-01-10", "title": "Press Release"}}} | Must be valid JSON object keyed by source ID matching those in CONFLICT_LIST. Each source must have authority and date fields. Reject if any source ID in CONFLICT_LIST is missing from metadata. |
[TRACE_ID] | Unique identifier linking this audit trail to the upstream workflow, session, or request | "req-8a3f2b9d-4c1e" | Must be a non-empty string. Should match the format used by the calling system for log correlation. Reject if null or empty. Recommend UUID or similar unique format. |
[TIMESTAMP] | ISO 8601 timestamp for when the audit trail generation was requested | "2025-01-15T14:30:00Z" | Must be valid ISO 8601 string. Reject if unparseable by standard datetime libraries. Timezone offset required. Future timestamps beyond 5 minutes of system clock should trigger a warning. |
[HUMAN_REVIEWER] | Identifier for the human reviewer responsible for final sign-off, or null if pending assignment | "reviewer-42" or null | Must be a non-empty string or null. If null, the audit trail must include a pending_review flag set to true. Reject empty string. |
[ESCALATION_RULES] | Conditions under which a conflict must be escalated to a higher authority or blocked from auto-resolution | {"escalate_if": {"severity": ["high", "critical"], "authority_gap": "two_tiers", "domain": ["safety", "compliance"]}} | Must be valid JSON object. If severity contains 'critical', auto-resolution must be disabled regardless of RESOLUTION_POLICY settings. Reject if escalation rules contradict RESOLUTION_POLICY auto-resolve settings. |
Implementation Harness Notes
How to wire the Evidence Conflict Audit Trail prompt into a production application or compliance workflow.
The Evidence Conflict Audit Trail prompt is designed to be the final, record-producing step in a multi-stage evidence pipeline. It should not be called in isolation. Before invoking this prompt, your application must already have: (1) a set of retrieved passages from your knowledge base or document corpus, (2) a specific claim or question being evaluated, and (3) the output of a conflict detection step that has identified which passages disagree and on what points. The audit trail prompt consumes these structured inputs and produces a machine-readable audit record. This record is the compliance artifact—it must be stored immutably, linked to the originating request, and never regenerated without explicit versioning.
Integration pattern: Wire this prompt as a post-processing step after your conflict detection model returns structured contradictions. The typical call sequence is: retrieve → detect_conflicts → generate_audit_trail → validate_audit → store. The prompt expects a JSON input object containing [CLAIM], [CONFLICTING_PASSAGES] (an array of objects with passage_id, source_document, excerpt, and position), [CONFLICT_TYPE] (the classification from your detection step), and [RESOLUTION_POLICY] (the rule your system applied, e.g., 'prefer_higher_authority', 'present_both', 'escalate'). The output schema should be enforced with structured output mode or a strict JSON schema validator. Model choice: Use a model with strong instruction-following and JSON mode support (GPT-4o, Claude 3.5 Sonnet, or equivalent). Avoid smaller models for this task—audit completeness requires precise extraction and no hallucinated passage IDs.
Validation and retries: After generation, run a validation step that checks: (a) every passage_id in the audit output exists in the input, (b) no fabricated quotes appear (compare excerpt strings against source passages), (c) the resolution_decision field is non-empty and matches one of your allowed resolution types, and (d) the traceability_chain array contains at least one entry per conflict. If validation fails, retry once with the validation errors appended as [CONSTRAINTS]. If the second attempt fails, log the failure, flag the record for human review, and do not store an invalid audit trail. Logging: Log the full prompt, response, validation result, and any retries to your observability platform. Include a trace_id that links the audit record back to the originating user request and evidence retrieval query.
Human review gates: For high-severity conflicts (where conflict_severity is 'high' or the resolution policy is 'escalate'), route the generated audit trail to a review queue before finalizing. The reviewer should confirm that the resolution reasoning is sound and that no evidence was misrepresented. Once approved, the audit record should be signed with the reviewer's identity and timestamp. Storage: Store audit records in an append-only database or log. Never overwrite an existing audit trail—if a conflict is re-evaluated later (e.g., because new evidence arrives), generate a new audit record with a new audit_id and a reference to the prior record. This preserves the chain of decisions for compliance review. What to avoid: Do not use this prompt to make the resolution decision itself—that should happen in a prior step with its own validation. Do not skip the excerpt-matching validation step; fabricated quotes in an audit trail are a compliance failure. Do not regenerate audit trails on the same inputs without explicit version tracking.
Expected Output Contract
Define the exact structure, types, and validation rules for the audit trail object. Use this contract to build downstream parsers, database schemas, and compliance checks.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
audit_id | string (UUID v4) | Must match UUID v4 regex. Generate if null. | |
timestamp | string (ISO 8601) | Must parse as valid ISO 8601 datetime. Set to current time if missing. | |
query | string | Must be non-empty string. Truncate to 2000 characters if exceeded. | |
conflicts | array of objects | Must be a JSON array. Minimum 0 items. Each item must conform to the conflict_item schema. | |
conflicts[].claim | string | Non-empty string. Must be a direct quote or close paraphrase from source passages. | |
conflicts[].source_a | object | Must contain id, passage, and position fields. id must match a provided source identifier. | |
conflicts[].source_b | object | Must contain id, passage, and position fields. id must differ from source_a.id. | |
conflicts[].resolution_decision | string (enum) | Must be one of: deferred_to_authority, presented_both, flagged_unresolved, reconciled, escalated_for_review. |
Common Failure Modes
What breaks first when generating evidence conflict audit trails and how to guard against it.
Silent Omission of Conflicts
What to watch: The model resolves ambiguity by ignoring minority or lower-confidence conflicts entirely, producing a clean but incomplete audit trail. This is common when the prompt implicitly rewards consensus. Guardrail: Require explicit enumeration of all detected conflicts before resolution. Add a dedicated output field for unresolved_disagreements and validate that every source pair flagged in the input appears in the output or is explicitly marked as reconciled.
Fabricated Source Attribution
What to watch: The model invents plausible-sounding source references, page numbers, or quote fragments to fill gaps in the audit trail. This is especially dangerous in compliance contexts where fabricated evidence creates legal exposure. Guardrail: Require exact quote extraction with character-level span references. Validate every citation against the provided source passages using a secondary grounding check. If a claim cannot be traced to a specific span, flag it as ungrounded and escalate for human review.
False Reconciliation of Irreconcilable Differences
What to watch: The model forces a coherent narrative by inventing scope differences, methodological caveats, or temporal explanations that are not present in the source material. This masks genuine disagreements and misleads downstream decision-makers. Guardrail: Include a reconciliation_confidence field in the output schema. Require the model to cite specific evidence for any reconciliation claim. If no source text supports the reconciliation, the model must classify the conflict as unresolved rather than reconciled.
Temporal Ordering Confusion
What to watch: The model misorders the sequence of conflicting claims, treating newer corrections as simultaneous disagreements or older claims as current disputes. This produces audit trails that misrepresent the evolution of evidence. Guardrail: Require explicit timestamp or publication-date extraction for each source. Add a temporal_relationship field to each conflict pair. Validate that sources published after a correction are not presented as pre-correction disagreements.
Severity Inflation for Low-Stakes Disagreements
What to watch: The model assigns high severity ratings to minor terminological differences or stylistic variations, flooding the audit trail with false positives and desensitizing reviewers to genuine high-impact conflicts. Guardrail: Define a severity taxonomy with concrete examples for each level. Include a materiality_threshold instruction: conflicts that do not change the decision, answer, or compliance posture should be classified as cosmetic or low severity. Run calibration tests with known low-stakes and high-stakes conflict pairs.
Audit Trail Truncation Under Token Pressure
What to watch: When the input contains many sources or long passages, the model silently drops conflict pairs from the audit trail to stay within output length constraints. The resulting trail looks complete but is missing critical entries. Guardrail: Require a total_conflicts_detected count at the top of the output. Implement a post-generation check that compares this count to the number of conflict entries actually present. If counts mismatch, trigger a retry with explicit instruction to include all detected conflicts or split the task across multiple calls.
Evaluation Rubric
Criteria for testing the Evidence Conflict Audit Trail Prompt before deployment. Each row defines a pass standard, a failure signal, and a concrete test method.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Conflict Recall | All injected contradictions appear in the audit trail with correct source IDs | Missing contradiction or source ID mismatch | Run against a golden set of 10 document pairs with known conflicts; check recall >= 0.95 |
Conflict Precision | No false conflicts flagged where sources agree or discuss different claims | Audit trail entry for paraphrased agreement or scope mismatch | Include 5 non-conflict pairs in the test set; assert zero conflict entries generated |
Resolution Decision Traceability | Every resolution decision references a specific source passage or policy rule | Resolution field contains generic reasoning without source citation | Parse resolution field for [SOURCE_ID] or [POLICY_REF] tokens; assert 100% presence |
Audit Trail Completeness | Output contains all required fields: conflict_id, claim, source_a, source_b, resolution, reasoning, timestamp | Missing field or null value in a required field | Schema validation against the defined output contract; assert all required fields present and non-null |
Source Passage Grounding | Each source reference includes document_id, passage_id, and excerpt text | Source reference is a URL or document title without specific passage | Regex check for passage_id and excerpt length > 20 characters; assert 100% compliance |
Reasoning Step Granularity | Reasoning field contains at least two distinct steps: evidence comparison and resolution rationale | Reasoning is a single sentence or repeats the resolution without analysis | Split reasoning on sentence boundaries; assert >= 2 sentences with distinct semantic content via embedding similarity < 0.9 |
Escalation Flag Accuracy | Escalation flag is true when resolution confidence is below threshold or sources have equal authority | Escalation flag false on high-severity unresolved conflict | Inject 3 conflicts with equal-authority sources; assert escalation_flag == true for all three |
Human-Readable Summary Quality | Summary field explains the conflict and resolution in plain language under 150 words | Summary exceeds 150 words or uses opaque technical jargon without explanation | Word count check and readability score >= 60 on Flesch-Kincaid; spot-check 5 samples for jargon |
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 audit trail template but relax strict schema enforcement. Use a simpler markdown-structured output instead of full JSON with required fields. Focus on capturing the conflict, resolution decision, and reasoning in a single pass without multi-step validation.
Replace the strict [OUTPUT_SCHEMA] with:
code## Conflict Record - **Claim**: [extracted claim] - **Sources**: [list with positions] - **Resolution**: [decision] - **Reasoning**: [brief explanation]
Watch for
- Missing traceability back to specific source passages
- Inconsistent field naming across audit records
- Resolution decisions without supporting reasoning
- Overly broad conflict descriptions that merge distinct disagreements

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