This prompt is designed for a single, high-stakes job: scanning a block of model-generated text and identifying every factual assertion that cannot be supported by a provided context document. The ideal user is a developer or AI product builder integrating a factuality gate into a RAG pipeline, an editorial workflow, or a compliance review system. The prompt expects two inputs: the generated text to audit and the source context that should contain all supporting evidence. It is not a general-purpose hallucination detector for open-domain chat, nor is it a replacement for human editorial judgment in high-risk domains like medicine or law.
Prompt
Unsupported Statement Identification Prompt

When to Use This Prompt
Define the job, reader, and constraints for the Unsupported Statement Identification Prompt.
Use this prompt when you have a closed-context problem—meaning the model's output should be entirely derivable from a known set of source documents. Common deployment points include post-generation validation in RAG applications, automated report generation where every claim must be traceable to an input data feed, and content moderation pipelines that need to flag invented statistics or fabricated quotes before publication. The prompt is most effective when the source context is complete and well-structured. If the context is fragmented, contradictory, or incomplete, the prompt will correctly flag many statements as unsupported, but you will need a human review step to distinguish between model hallucination and gaps in your retrieval system.
Do not use this prompt when the model is expected to synthesize novel insights, apply external world knowledge, or generate creative content. It is also unsuitable for real-time chat moderation where latency constraints prevent a full context audit. In regulated industries, always route flagged outputs to a human reviewer and log the prompt's verdict alongside the evidence for auditability. Before deploying, test the prompt against a golden dataset of known supported and unsupported statements to calibrate your confidence thresholds and catch systematic false negatives where the model fails to flag a clear fabrication.
Use Case Fit
Where the Unsupported Statement Identification Prompt works, where it breaks, and the operational preconditions required before you wire it into a factuality pipeline.
Good Fit: RAG Output Sanitization
Use when: you have a generated response and the exact retrieved context chunks that were provided to the model. The prompt excels at comparing assertions against a closed evidence set. Guardrail: always pass the complete, unsummarized context—not a compressed version—to avoid false positives where evidence exists but was omitted from the comparison set.
Bad Fit: Open-Domain Fact Checking
Avoid when: you need to verify claims against the entire internet or a live knowledge base the model must query. This prompt only compares against provided context. Guardrail: if the evidence set is incomplete, route to a retrieval-augmented verification loop first, then use this prompt to compare claims against the retrieved results.
Required Input: Source-Output Pairing
Risk: running the prompt without explicit source-to-output mapping produces unreliable results. The model needs to know which context was available when generating each claim. Guardrail: always include a structured input harness with [GENERATED_TEXT], [SOURCE_CONTEXT], and [CONTEXT_METADATA] fields. Never pass only the output text alone.
Operational Risk: False Negatives on Implicit Claims
What to watch: the model may mark a claim as supported when the evidence only weakly implies it. For example, a source mentioning 'revenue growth' might be treated as supporting a specific percentage claim. Guardrail: add a confidence field to the output schema and route LOW confidence labels to human review before publication or database ingestion.
Operational Risk: Context Length Overflow
What to watch: long source documents combined with long generated text can exceed context windows, causing truncation and missed comparisons. Guardrail: chunk the generated text and run verification in parallel batches, or pre-filter source context to only the sections most relevant to each claim before comparison.
Not a Replacement for Human Editorial Judgment
Risk: teams treat the prompt output as a final publish/discard gate. The model can miss nuanced fabrications, especially in domain-specific language. Guardrail: always route UNSUPPORTED and LOW_CONFIDENCE labels to a human review queue. Log every removal decision with the claim text, source evidence, and reviewer identity for audit trails.
Copy-Ready Prompt Template
A reusable prompt template for identifying unsupported statements in model-generated text, with square-bracket placeholders for context, content, and output schema.
This prompt template is the core of the unsupported statement identification workflow. It instructs the model to act as a strict fact-checker, comparing every assertion in a piece of generated text against a provided evidence context. The output is a structured report that flags unsupported claims, assigns confidence levels, and recommends removal or human review. The template is designed to be copied directly into your prompt management system, with placeholders that you replace with your application's specific inputs, schemas, and constraints.
textYou are a strict fact-checking engine. Your task is to analyze the provided [CONTENT] and identify every factual assertion that lacks sufficient support in the [EVIDENCE_CONTEXT]. For each assertion in the [CONTENT], you must: 1. Determine if the assertion is a factual claim (not an opinion, question, or stylistic flourish). 2. Check if the claim is directly supported, indirectly supported, or unsupported by the [EVIDENCE_CONTEXT]. 3. Assign a confidence level: HIGH (clearly supported), MEDIUM (partially supported or requires inference), LOW (no supporting evidence found). 4. For LOW confidence claims, recommend an action: REMOVE or HUMAN_REVIEW. [CONSTRAINTS] - Do not flag opinions, subjective statements, or rhetorical questions as unsupported. - If the [EVIDENCE_CONTEXT] is empty or insufficient to verify any claims, flag all factual assertions as LOW confidence. - Do not invent evidence. If a claim cannot be verified, it is unsupported. - Preserve the original text of each flagged claim exactly as it appears in the [CONTENT]. [OUTPUT_SCHEMA] Return a JSON object with the following structure: { "analysis": { "total_claims_identified": <integer>, "supported_claims": <integer>, "unsupported_claims": <integer>, "claims": [ { "claim_text": "<exact text from content>", "claim_type": "factual", "support_status": "supported|partially_supported|unsupported", "confidence": "HIGH|MEDIUM|LOW", "evidence_reference": "<quote from evidence or null>", "recommended_action": "KEEP|REMOVE|HUMAN_REVIEW", "rationale": "<brief explanation of the determination>" } ] } } [EVIDENCE_CONTEXT] [INSERT_EVIDENCE_HERE] [CONTENT] [INSERT_CONTENT_TO_ANALYZE_HERE]
To adapt this template for your production system, replace the [EVIDENCE_CONTEXT] placeholder with the source documents, retrieved chunks, or ground-truth data that the model should use for verification. Replace [CONTENT] with the model-generated text you need to audit. If your application requires a different output format, modify the [OUTPUT_SCHEMA] block to match your downstream parser. For high-risk domains like healthcare or legal, add a [RISK_LEVEL] placeholder that adjusts the strictness of the confidence thresholds and always route LOW confidence claims to a human review queue before any automated removal.
Prompt Variables
Required inputs for the Unsupported Statement Identification Prompt. Each variable must be populated before the prompt is assembled and sent to the model. Missing or malformed inputs are the most common cause of false negatives in hallucination detection.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[MODEL_OUTPUT] | The generated text to scan for unsupported statements | The new policy reduces latency by 40% and was approved by the CTO in Q3. | Required. Must be non-empty string. Reject if only whitespace or under 20 characters. Truncation check: flag if output ends mid-sentence. |
[SOURCE_CONTEXT] | The ground-truth evidence against which claims are verified | Source doc 1: Q3 roadmap update. Source doc 2: Latency benchmark results from August. | Required. Must contain at least one source block with an identifier. Validate that source count matches expected retrieval count. Reject empty array or null. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score for flagging a statement as unsupported | 0.7 | Must be a float between 0.0 and 1.0. Default to 0.7 if not provided. Warn if below 0.5 or above 0.95. Reject non-numeric values. |
[OUTPUT_SCHEMA] | Expected structure for the verification report | JSON array of objects with fields: statement, confidence, source_match, recommendation | Required. Must be a valid JSON Schema or a plain-text description of expected fields. Validate that required fields include statement, confidence, and recommendation at minimum. |
[DOMAIN_GLOSSARY] | Optional list of domain-specific terms that should not be flagged as unsupported when they appear in source context | ["Q3", "CTO", "latency benchmark"] | Optional. If provided, must be a JSON array of strings. Terms are used for fuzzy matching during verification. Null allowed. |
[MAX_FLAGGED_STATEMENTS] | Upper limit on number of unsupported statements to return to avoid overwhelming downstream review queues | 15 | Optional. Must be a positive integer. Default to 20 if not provided. Cap at 50 to prevent runaway output. Null allowed. |
[REVIEW_ESCALATION_RULES] | Conditions that trigger mandatory human review regardless of confidence score | Escalate if statement involves financial figures, legal obligations, or patient data. | Optional. If provided, must be a non-empty string or structured rules object. Used to override automated removal recommendations. Null allowed. |
Implementation Harness Notes
How to wire the Unsupported Statement Identification Prompt into a production application with validation, retries, and human review gates.
This prompt is designed to operate as a post-generation filter in a factuality pipeline. The typical integration pattern is: (1) a primary model generates content from retrieved context, (2) this prompt receives both the generated content and the source context as inputs, and (3) the output is a structured audit report that downstream systems can act on. The prompt expects two required inputs: the model-generated text to audit and the source context that should support all claims. Without both inputs, the prompt cannot perform its core function of cross-referencing assertions against evidence.
Wire this prompt into your application as a synchronous validation step before content reaches users or databases. The implementation harness should include: input validation that rejects requests missing either the generated text or source context fields; structured output parsing that expects a JSON array of statement objects with statement, support_status, confidence, and recommendation fields; retry logic with a maximum of 2 retries if the output fails to parse as valid JSON or if required fields are missing; and logging that captures the prompt version, input hashes, output structure, and any parse failures for observability. For high-risk domains like healthcare, legal, or finance, add a human review gate that routes any statement flagged with support_status: "unsupported" and confidence: "high" to a review queue before the content is published or stored.
Model choice matters for this workflow. Use a model with strong instruction-following and JSON output capabilities, such as GPT-4o, Claude 3.5 Sonnet, or Gemini 1.5 Pro. Avoid smaller or older models that may struggle with the dual task of claim decomposition and evidence matching. If your pipeline processes long documents, chunk the generated text and source context into segments that fit within the model's context window, run the prompt on each segment, and merge the results with deduplication logic. Do not use this prompt as a real-time user-facing filter without caching—the latency of a full factuality audit is typically 2-5 seconds per segment, which is unsuitable for sub-second response requirements.
Testing this harness requires a golden dataset of known supported and unsupported claims. Create test cases where the generated text contains: (a) claims fully grounded in the source context, (b) claims partially grounded with missing details, (c) claims entirely fabricated, and (d) claims that are true but not present in the provided context (the hardest case). Measure precision (did the prompt flag only unsupported claims?) and recall (did it catch all unsupported claims?). A common failure mode is the prompt missing claims that are factually true but unsupported by the provided context—this is a false negative that can erode trust in the filter. Calibrate the confidence thresholds in your harness based on your tolerance for false positives versus false negatives.
For production deployment, implement a circuit breaker that stops processing if the prompt returns malformed output on more than 10% of requests in a rolling window. This prevents a prompt degradation event from silently passing unsupported content through. Additionally, store the full prompt input and output for every request where support_status: "unsupported" appears—this audit trail is essential for debugging false positives, refining the prompt, and demonstrating due diligence to compliance reviewers. Never silently discard unsupported statements; always log the removal decision with the statement text, support status, and confidence score for downstream observability.
Common Failure Modes
What breaks first when identifying unsupported statements and how to guard against it.
False Negatives: Missing Unsupported Claims
What to watch: The model overlooks subtle fabrications, especially when the hallucinated text uses language that sounds plausible or mirrors the source's style. This is common with speculative connectors like 'therefore' or 'suggests that' which introduce new, ungrounded logic. Guardrail: Pair this prompt with a second-pass verification that specifically targets inferred claims and logical leaps. Use a lower confidence threshold for statements containing speculative language.
False Positives: Flagging Paraphrased Content
What to watch: The model incorrectly flags a statement as unsupported when the same fact is expressed using different vocabulary or sentence structure than the source text. This breaks trust in the filter and creates unnecessary review work. Guardrail: Add explicit instructions to match on semantic equivalence, not just keyword overlap. Include few-shot examples of valid paraphrases that should not be flagged.
Context Boundary Confusion
What to watch: The model uses its own pre-training knowledge to 'support' a statement instead of strictly limiting verification to the provided context. This defeats the purpose of grounding checks in RAG systems. Guardrail: Use a strict system instruction that forbids external knowledge. Add a self-audit step where the model must quote the exact source sentence for every claim marked as 'supported.'
Confidence Score Inflation
What to watch: The model assigns high confidence to its own unsupported statement detection, even when the relationship between claim and source is ambiguous. A confidently wrong verdict is worse than an uncertain one because it bypasses human review. Guardrail: Calibrate confidence by requiring the model to output a specific reason for each score. Route all 'medium' confidence verdicts to a human review queue.
Granularity Mismatch in Claim Extraction
What to watch: The model extracts claims that are too broad ('The system is secure') or too fragmented ('The', 'system', 'is') to be usefully verified. Overly broad claims are hard to ground, while fragmented ones lose meaning. Guardrail: Define a clear claim extraction contract upfront. Specify that each claim must be a single, self-contained, verifiable atomic fact. Use a validator to reject outputs with claims over a maximum word count.
Ignoring Negative or Absent Evidence
What to watch: The model treats the absence of contradicting evidence as supporting evidence. A statement like 'The report did not mention any risks' might be flagged as supported simply because no risks are found, even if the source is silent on the topic. Guardrail: Add a specific instruction to distinguish between 'explicitly supported,' 'contradicted,' and 'not mentioned.' Create a separate label for claims where the source is silent to prevent them from being marked as supported.
Evaluation Rubric
Use this rubric to test the Unsupported Statement Identification Prompt before shipping. Each criterion targets a known failure mode in factuality verification workflows.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Claim Recall | All factual assertions in [MODEL_OUTPUT] appear in the extracted claims list | A verifiable claim from the source text is missing from the output | Diff claim list against a human-annotated golden set of 20 assertions |
Source Grounding Accuracy | Every claim labeled 'supported' has a valid [SOURCE_ID] and quoted evidence span | A claim is marked supported but the quoted evidence does not contain the claim | Spot-check 10 supported claims; verify quoted text exists in source and substantiates the claim |
Hallucination Detection | All invented claims are flagged as 'unsupported' with confidence >= 0.8 | An invented claim is labeled 'supported' or given confidence < 0.5 | Insert 5 known-fabricated assertions into input; verify all are caught |
Confidence Calibration | Confidence scores correlate with evidence strength: direct quotes > paraphrases > inferences | A claim with a direct source quote receives a lower confidence score than an inferred claim | Rank 10 claims by human-judged evidence strength; compare to model confidence ordering |
False Positive Rate | Fewer than 5% of supported claims are incorrectly flagged as unsupported | A claim with clear source evidence is flagged for human review or removal | Run on 50 claims with known ground-truth support; count false positives |
Partial Match Handling | Claims partially supported by evidence are labeled 'partially_supported' with missing elements noted | A claim missing one of three sub-facts is labeled 'supported' without qualification | Test with 5 claims that are 50-70% supported; verify partial label and missing-element annotation |
Output Schema Compliance | Every claim object includes all required fields: claim_text, support_status, confidence, source_id, evidence_span, recommendation | Output is missing evidence_span or recommendation fields on some claims | Validate output against [OUTPUT_SCHEMA] with a JSON schema validator; reject on missing required fields |
Edge Case: Empty Input | Returns an empty claims array when [MODEL_OUTPUT] contains no factual assertions | Returns claims, errors, or hallucinates assertions when input has no facts | Provide a purely opinion-based or procedural input with zero factual claims |
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
Use the base prompt with a small set of test documents and manual review. Skip strict schema enforcement initially—focus on whether the model correctly distinguishes supported from unsupported statements. Start with a single [CONTEXT] block and 3–5 [STATEMENTS] to calibrate behavior.
codeYou are a factuality auditor. Given [CONTEXT] and a list of [STATEMENTS], label each statement as SUPPORTED, UNSUPPORTED, or PARTIALLY_SUPPORTED. Return a JSON array with "statement", "label", and "explanation" fields.
Watch for
- Over-flagging: model marks paraphrased statements as unsupported because wording differs from source
- Under-flagging: model accepts plausible-sounding claims without checking source
- Missing PARTIALLY_SUPPORTED nuance—model treats partial matches as fully supported

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