Inferensys

Prompt

Reference-Backed Claim Verification Prompt Template

A production-ready prompt playbook for verifying claims against reference material with source-level evidence, confidence scoring, and escalation rules.
Wide-angle shot of a modern WeWork open floor plan with creative walls covered in AI system architecture diagrams, product team collaborating in standing desk area with industrial lighting.
PROMPT PLAYBOOK

When to Use This Prompt

Defines the ideal job-to-be-done, user, and context for the Reference-Backed Claim Verification Prompt, and clarifies when not to use it.

This prompt is built for teams embedding automated verification into content pipelines where every factual assertion must be traced to a source. Use it when you have a model-generated output or human-authored content that needs claim-by-claim auditing against a known reference document. The ideal user is an AI engineer, QA lead, or compliance reviewer who is integrating a verification gate into a CI/CD pipeline, a content management system, or a regression test suite. The required context is a complete, authoritative reference document and a target text to audit. The job-to-be-done is not to generate new answers, but to produce a structured, evidence-backed audit report that measures deviation from a known source of truth.

This is not a RAG answer-generation prompt. It is a post-hoc verification tool. Do not use it when you need the model to synthesize an answer from multiple retrieved documents, when no single authoritative reference exists, or when the goal is open-ended creative generation. It is also a poor fit for real-time chat moderation where latency constraints preclude a detailed claim-by-claim analysis. If your workflow requires evaluating whether a response is helpful, tonally appropriate, or stylistically consistent without a ground-truth reference, use a rubric-based LLM judge instead. This prompt assumes that deviation from the reference is measurable and that unsupported claims are failures.

Before wiring this into a production pipeline, ensure you have a reliable method for providing the reference document in the prompt context. If the reference is too long for a single context window, you must implement a chunking and reconciliation strategy outside the prompt. The output of this prompt should feed into a structured logging system, a human review queue for flagged claims, or an automated gate that blocks publication when the confidence score falls below a defined threshold. Start by running this against a golden dataset of known-correct and known-incorrect claim sets to calibrate your confidence thresholds before relying on it in production.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Reference-Backed Claim Verification Prompt Template delivers reliable, auditable results—and where it creates risk, cost, or operational drag without the right supporting infrastructure.

01

Good Fit: Evidence-Heavy Content Pipelines

Use when: you are generating or reviewing content where every factual claim must be traceable to a source document. Guardrail: Require the prompt to output claim-level source spans, not just document-level citations, so downstream reviewers can verify without re-reading entire documents.

02

Good Fit: Pre-Publication Fact-Checking

Use when: human editors need a structured audit trail before content goes live. Guardrail: Route all claims flagged with confidence: low or evidence: insufficient to a human review queue before publication. Never auto-publish unverified claims.

03

Bad Fit: Real-Time Chat Without Source Access

Avoid when: the model must respond in sub-second latency without a pre-loaded reference corpus. Risk: The prompt will either hallucinate citations or produce evidence: insufficient for most claims, degrading user experience. Guardrail: Use a lighter factuality check or abstention prompt instead.

04

Bad Fit: Subjective or Opinion-Based Content

Avoid when: the output is analysis, interpretation, or creative work without a single authoritative reference. Risk: The prompt will penalize legitimate interpretation as unsupported or force false precision. Guardrail: Switch to a rubric-based evaluation prompt that scores reasoning quality rather than reference alignment.

05

Required Inputs: Reference Document and Claim Set

What you must provide: a complete reference text and the claims to verify. Partial references produce false negatives. Guardrail: Validate that the reference is loaded in full before invoking the prompt. Truncated context is the top cause of incorrect unsupported flags.

06

Operational Risk: Reference Drift Over Time

What to watch: reference documents change, but verification prompts may run against stale versions. Guardrail: Version-lock references with a hash or timestamp, and trigger re-verification when the source document updates. Stale references produce audit failures that look like model errors.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A production-ready prompt template for verifying claims against reference evidence with confidence scores and human-review flags.

This template is designed to be dropped directly into your evaluation harness. It instructs the model to extract every factual claim from a target text, locate supporting or contradicting evidence in a provided reference, and produce a structured audit report. The output includes per-claim verdicts, explicit source spans, confidence scores, and a clear flag for claims that require human review. Replace every square-bracket placeholder with your actual inputs before sending this to the model. The template assumes you have already retrieved or provided the reference material; it does not perform retrieval itself.

text
You are a meticulous claim verification auditor. Your task is to compare a target text against a reference document and produce a structured audit report.

## INPUT

**Target Text:**
[INPUT_TEXT]

**Reference Document:**
[REFERENCE_TEXT]

## INSTRUCTIONS

1. Extract every discrete factual claim from the Target Text. A claim is a statement that can be verified as true, false, or unverifiable against the Reference Document.
2. For each claim, search the Reference Document for evidence that supports, contradicts, or fails to address the claim.
3. Assign a verdict to each claim:
   - **SUPPORTED**: The Reference Document contains explicit evidence confirming the claim.
   - **CONTRADICTED**: The Reference Document contains explicit evidence that conflicts with the claim.
   - **UNVERIFIABLE**: The Reference Document does not contain sufficient evidence to confirm or contradict the claim.
4. Assign a confidence score from 0.0 to 1.0 for each verdict, where 1.0 means the evidence is unambiguous and directly on point.
5. For SUPPORTED and CONTRADICTED claims, include the exact source span from the Reference Document that serves as evidence.
6. Flag any claim for human review if:
   - The confidence score is below [CONFIDENCE_THRESHOLD]
   - The claim involves [HIGH_RISK_DOMAINS]
   - The evidence is ambiguous or requires specialized interpretation

## OUTPUT FORMAT

Return a JSON object with the following structure:

{
  "audit": {
    "target_text_id": "[TEXT_ID]",
    "reference_document_id": "[REF_ID]",
    "total_claims_extracted": <integer>,
    "claims": [
      {
        "claim_id": <integer>,
        "claim_text": "<exact claim from target text>",
        "verdict": "SUPPORTED | CONTRADICTED | UNVERIFIABLE",
        "confidence": <float 0.0-1.0>,
        "evidence_span": "<exact quote from reference> | null",
        "evidence_location": "<section or paragraph reference> | null",
        "reasoning": "<brief explanation of verdict>",
        "requires_human_review": <boolean>,
        "human_review_reason": "<reason if flagged> | null"
      }
    ],
    "summary": {
      "supported_count": <integer>,
      "contradicted_count": <integer>,
      "unverifiable_count": <integer>,
      "human_review_count": <integer>,
      "overall_reliability_score": <float 0.0-1.0>
    }
  }
}

## CONSTRAINTS

- Do not fabricate evidence. If the Reference Document does not address a claim, mark it UNVERIFIABLE.
- Do not omit claims. Extract every factual assertion, including implicit ones.
- Do not paraphrase claim_text. Use the exact wording from the Target Text.
- If the Target Text contains no factual claims, return an empty claims array with total_claims_extracted set to 0.
- If the Reference Document is empty or missing, mark all claims as UNVERIFIABLE with confidence 0.0.

Adaptation guidance: Replace [INPUT_TEXT] with the content you want to audit, and [REFERENCE_TEXT] with your ground-truth document. Set [CONFIDENCE_THRESHOLD] to a value like 0.7 for moderate sensitivity or 0.9 for high precision. [HIGH_RISK_DOMAINS] should be a comma-separated list such as medical advice, legal interpretation, financial projections. The [TEXT_ID] and [REF_ID] fields are for your own traceability. If your model does not reliably produce valid JSON, pair this prompt with a structured output API parameter or a post-generation JSON repair step. For regulated domains, always route flagged claims to a human reviewer before any downstream action.

IMPLEMENTATION TABLE

Prompt Variables

Each placeholder must be populated before the prompt is sent to the model. Validation notes describe what the model expects and how to prevent common input failures.

PlaceholderPurposeExampleValidation Notes

[CLAIM_TEXT]

The full text containing assertions to verify against the reference

The new pricing model reduces costs by 15% for enterprise customers.

Must be non-empty string; max 5000 chars; strip leading/trailing whitespace; reject if only punctuation or whitespace

[REFERENCE_DOCUMENT]

The authoritative source text against which claims are checked

Q3 2024 Pricing Update: Enterprise tier base cost reduced from $100/seat to $85/seat effective November 1.

Must be non-empty string; should contain factual statements; flag if reference is shorter than claim text; reject if identical to claim text

[CLAIM_SCHEMA]

JSON schema defining the expected output structure for each extracted claim

{"claim_id": "string", "claim_text": "string", "verification_status": "enum", "evidence_span": "string", "confidence": "float"}

Must be valid JSON; must include verification_status enum with values SUPPORTED, UNSUPPORTED, CONTRADICTED, UNVERIFIABLE; must include confidence field with range 0.0-1.0

[CONFIDENCE_THRESHOLD]

Minimum confidence score required before a claim can be auto-marked as verified

0.85

Must be float between 0.0 and 1.0; values below 0.7 produce high false-positive rates; values above 0.95 may cause excessive human-review flags; default 0.8 if not specified

[MAX_CLAIMS]

Upper limit on number of claims extracted from the input text

15

Must be positive integer; recommended range 5-25; exceeding 25 risks token overflow in evidence-span extraction; set lower for latency-sensitive pipelines

[REQUIRE_EVIDENCE_SPAN]

Boolean flag controlling whether the model must quote the exact reference text supporting each claim

Must be boolean true or false; when true, model must return exact substring from reference; when false, model may paraphrase evidence location; set true for audit and compliance workflows

[HUMAN_REVIEW_TRIGGERS]

Array of conditions that force a claim into a human-review queue regardless of confidence

["CONTRADICTED", "UNVERIFIABLE", "confidence < 0.7"]

Must be valid JSON array of strings; allowed values: SUPPORTED, UNSUPPORTED, CONTRADICTED, UNVERIFIABLE, or confidence threshold expressions; empty array disables forced review; null defaults to CONTRADICTED and UNVERIFIABLE only

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Reference-Backed Claim Verification prompt into an application or evaluation pipeline with validation, retries, and human review gates.

The Reference-Backed Claim Verification prompt is designed to operate as a structured audit step inside a content pipeline, not as a standalone chat interaction. The typical integration point is after a model generates content and before that content reaches a human reviewer or end user. The harness must supply the prompt with a complete [CLAIMS_LIST] extracted from the generated output, a [REFERENCE_TEXT] containing the authoritative source material, and a [VERIFICATION_SCHEMA] that defines the expected JSON output shape. The prompt returns a claim-level audit with confidence scores, evidence spans, and flags for human review. This output should be treated as a machine-readable signal, not a final decision.

Validation and retry logic is critical because the prompt produces structured JSON that downstream systems consume. Implement a JSON schema validator that checks for required fields (claim_id, verdict, confidence, evidence_span, explanation, requires_human_review) and correct types before accepting the response. If validation fails, retry up to two times with the same inputs and an added instruction to fix the specific schema error. After two retries, escalate the entire batch to a human review queue. For high-throughput pipelines, consider batching claims into groups of 5-10 to keep individual prompt calls fast and retry scope small. Log every verification attempt with the model name, prompt version, input claims, raw output, validation result, and retry count for auditability.

Model choice and tool integration depend on the risk level of the content domain. For low-risk content (e.g., internal documentation drafts), a fast model like GPT-4o-mini or Claude Haiku with temperature set to 0 is sufficient. For regulated domains (e.g., clinical summaries, financial reports, legal content), use a more capable model like GPT-4o or Claude Sonnet, set temperature=0, and route all requires_human_review: true claims to a dedicated review interface. If your pipeline already uses retrieval-augmented generation, the [REFERENCE_TEXT] should be the same retrieved context that the generation model used, ensuring consistency between what the model saw and what gets verified. Do not use this prompt as a substitute for source retrieval—it verifies claims against provided evidence, it does not search for evidence independently.

Human review integration is the most important architectural decision. Claims flagged with requires_human_review: true and confidence below 0.7 should appear in a review queue with the original claim, the reference evidence span, and the model's explanation pre-filled. The reviewer should be able to confirm, overturn, or amend the verdict with a single click, and that human decision should be logged as ground truth for future eval calibration. Over time, track the rate of human overrides by claim type and evidence source to identify systematic weaknesses in either the generation model or the verification prompt. If the override rate exceeds 15% for any category, that's a signal to update the verification prompt, improve the reference material, or add few-shot examples for that claim type.

Evaluation and monitoring should run continuously, not just at deployment time. Maintain a golden dataset of 50-100 claim-reference pairs with known-correct verdicts, and run the verification prompt against this dataset weekly or on every prompt version change. Measure precision, recall, and F1 for each verdict category (SUPPORTED, UNSUPPORTED, CONTRADICTED). Track confidence calibration by comparing predicted confidence against actual correctness—a well-calibrated prompt should have high confidence for correct verdicts and low confidence for errors. Set an alert if F1 drops below 0.85 or if the human override rate spikes after a model or prompt update. This prompt is a product component, and it needs the same operational rigor as any other production service.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the structured JSON payload the model must return for each claim verification. Use this contract to validate responses before they enter downstream pipelines or human review queues.

Field or ElementType or FormatRequiredValidation Rule

verification_id

string (UUID v4)

Must match regex pattern for UUID v4. Reject if missing or malformed.

claim_text

string

Must be a non-empty string exactly matching the claim under review. Reject if null or empty.

verification_status

enum: supported | contradicted | unsupported | partially_supported

Must be one of the four allowed enum values. Reject on any other string or null.

confidence_score

number (0.0 to 1.0)

Must be a float between 0.0 and 1.0 inclusive. Reject if out of range, non-numeric, or null. Flag for human review if below 0.7.

source_evidence

array of objects

Must be a non-empty array if status is supported or partially_supported. Each object must contain source_id, excerpt, and relevance fields. Reject if array is empty when evidence is required.

source_evidence[].source_id

string

Must match a source_id provided in the [REFERENCE_SOURCES] input. Reject if source_id is not found in the input set.

source_evidence[].excerpt

string

Must be a non-empty string containing the verbatim text from the source. Reject if empty or if excerpt cannot be located in the referenced source via substring match.

source_evidence[].relevance

enum: direct | indirect | contextual

Must be one of the three allowed enum values. Reject on any other string or null.

contradiction_details

object or null

Required when status is contradicted. Must contain conflicting_excerpt and explanation fields. Allow null for non-contradicted claims. Reject if present but missing required sub-fields.

missing_information

array of strings

List of specific facts or context missing from sources that prevented full verification. Allow empty array. Reject if contains null or non-string elements.

human_review_required

boolean

Must be true if confidence_score is below [CONFIDENCE_THRESHOLD] or if verification_status is unsupported. Reject if false when conditions for escalation are met.

review_reason

string or null

Required when human_review_required is true. Must contain a non-empty explanation of why escalation is needed. Allow null when human_review_required is false.

PRACTICAL GUARDRAILS

Common Failure Modes

Reference-backed claim verification fails in predictable ways. These are the most common production failure modes and the practical checks that catch them before they reach users.

01

Source-claim misalignment

What to watch: The model cites a source that exists but doesn't actually support the claim. The citation looks plausible but the evidence span is about a different topic, a different entity, or a different time period. Guardrail: Require span-level grounding in the prompt—ask the model to quote the exact sentence from the source that supports each claim. Run a secondary groundedness check comparing the claim to the quoted span.

02

Confidence inflation on weak evidence

What to watch: The model assigns HIGH confidence to claims backed by thin, tangential, or outdated sources. This happens when the prompt rewards finding any source rather than finding the right source. Guardrail: Add explicit confidence calibration rules to the prompt—require the model to assess source authority, recency, and directness before assigning confidence. Log cases where confidence is HIGH but source quality is LOW for human review.

03

Silent omission of unsupported claims

What to watch: The model drops claims it can't verify instead of flagging them as UNVERIFIED. The output looks clean but hides information gaps that the user needed to know about. Guardrail: Structure the output schema to require an explicit entry for every input claim, even when no evidence is found. Use a required status field with values like VERIFIED, UNVERIFIED, CONTRADICTED, and NO_EVIDENCE_FOUND.

04

Hallucinated source metadata

What to watch: The model fabricates plausible-looking titles, authors, dates, or URLs when it can't find a real source. This is especially dangerous in regulated domains where fabricated citations create audit trail problems. Guardrail: Require the model to mark whether each source was provided in the input context or retrieved externally. For externally retrieved sources, run a separate verification step that checks existence before the output reaches the user.

05

Context window truncation breaking verification

What to watch: Long documents or many claims push the reference material out of the context window mid-verification. The model starts verifying claims against nothing or against stale context, producing confident but wrong results. Guardrail: Chunk the verification task by claim group rather than processing all claims in one request. Add a context-presence check at the start of each chunk to confirm the reference material is still in-window before verification begins.

06

Ambiguous claims passing verification

What to watch: Vague or poorly scoped claims match loosely against reference material because the model interprets both generously. A claim like 'the system is fast' matches a source saying 'response times improved' even though no speed measurement exists. Guardrail: Add a claim specificity pre-check before verification. Reject or flag claims that lack measurable criteria, specific entities, or time boundaries. Require the model to state what specific evidence would be needed to verify the claim before searching for it.

IMPLEMENTATION TABLE

Evaluation Rubric

Criteria for testing the Reference-Backed Claim Verification prompt before production deployment. Each row defines a pass standard, a failure signal to watch for, and a concrete test method.

CriterionPass StandardFailure SignalTest Method

Claim Extraction Completeness

All factual claims in [INPUT_TEXT] are extracted; no claim is invented

Extracted claims include statements not present in the source text

Diff extracted claims against a human-annotated claim list for 20 samples

Source Evidence Grounding

Every claim marked as VERIFIED includes a direct quote from [REFERENCE_MATERIAL] that supports it

VERIFIED claim has a quote that is paraphrased, tangential, or from a different source

Spot-check 10 VERIFIED claims per output; confirm quote exists verbatim in reference

Unsupported Claim Detection

Claims without evidence in [REFERENCE_MATERIAL] are marked UNSUPPORTED, not VERIFIED or REFUTED

Claim with no reference evidence is incorrectly marked VERIFIED

Inject 5 claims absent from reference into test input; check all are flagged UNSUPPORTED

Refutation Accuracy

Claims directly contradicted by [REFERENCE_MATERIAL] are marked REFUTED with the contradicting evidence quoted

REFUTED claim cites evidence that does not actually contradict the claim

Insert 3 claims with known contradictions; verify REFUTED label and quote accuracy

Confidence Score Calibration

CONFIDENCE scores of 0.9+ only appear when evidence is explicit and unambiguous

CONFIDENCE of 0.95 assigned to a claim supported by weak or ambiguous evidence

Run 50 claims with known evidence quality; check correlation between score and evidence strength

Output Schema Compliance

Output is valid JSON matching [OUTPUT_SCHEMA] with all required fields present and correctly typed

Missing claims array, malformed confidence field, or extra unexpected top-level keys

Validate output against JSON Schema in CI; reject any parse failure or schema violation

Abstention on Non-Factual Content

Opinions, speculation, and subjective statements are marked EXCLUDED or omitted from claims list

Opinion statement extracted as a factual claim and assigned a VERIFIED or REFUTED label

Include 5 opinion sentences in test input; verify none appear as factual claims in output

Human Review Escalation

Claims with CONFIDENCE below [ESCALATION_THRESHOLD] appear in human_review_queue with reason

Low-confidence claim missing from human_review_queue or present without explanation

Set threshold to 0.7; verify all claims below threshold appear in queue with non-empty reason field

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Start with the base template and a small set of 5–10 known claims. Remove the [OUTPUT_SCHEMA] block and ask for a simple JSON list of claim, verdict, and evidence_summary. Use a single reference document passed inline.

code
Verify each claim in [CLAIMS_LIST] against [REFERENCE_TEXT].
Return JSON: [{"claim": "...", "verdict": "supported|unsupported|contradicted", "evidence_summary": "..."}]

Watch for

  • Missing schema checks leading to inconsistent JSON shapes
  • Overly broad instructions that produce narrative instead of structured output
  • No confidence scoring, making it hard to triage borderline cases
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.