This prompt is designed for verification pipeline builders who need to decompose unstructured text into discrete, verifiable factual claims and pair each claim with the most relevant evidence passage from a provided corpus. It is the first stage in a multi-step groundedness evaluation workflow, producing structured claim-evidence pairs that feed downstream scoring, fact-checking, or human review queues. Use this when you have a generated output or document and a set of source documents, and you need a machine-readable artifact that maps every assertion back to its supposed origin.
Prompt
Claim Extraction and Evidence Matching Prompt

When to Use This Prompt
Understand the job-to-be-done, ideal user, required context, and when not to use the Claim Extraction and Evidence Matching Prompt.
The ideal user is an AI engineer or evaluation lead building an automated groundedness pipeline for a RAG system, content generation product, or document verification workflow. You must provide both the text to be analyzed and the evidence corpus as inputs. The prompt expects the evidence to be pre-retrieved and supplied inline; it does not perform retrieval itself. The output is a structured list of claim-evidence pairs, each containing the extracted claim, the matched evidence passage, and a relevance indicator. This output is designed to be consumed programmatically by a downstream scoring prompt or a human review interface.
Do not use this prompt for open-domain question answering, real-time chat, or when no evidence corpus is provided. It is not a retrieval step and will hallucinate evidence if asked to operate without source material. Avoid using it for subjective or opinion-based content where factual verification is not the goal. For high-stakes domains such as healthcare, legal, or finance, the structured output should feed a human review queue rather than an automated pass/fail gate. If your evidence corpus is large, pre-filter it with a retrieval step before passing the top-k passages to this prompt to stay within context window limits.
Use Case Fit
Where the Claim Extraction and Evidence Matching prompt delivers reliable verification pipelines—and where it introduces risk that requires a different approach.
Strong Fit: Structured Verification Pipelines
Use when: you need to decompose an AI-generated or human-written text into discrete, verifiable claims and pair each with the most relevant evidence passage from a provided corpus. Guardrail: the prompt works best when the evidence corpus is pre-segmented and the output feeds directly into a downstream scoring or human-review step.
Weak Fit: Open-Domain Fact Checking
Avoid when: the system must search the open web or an unbounded knowledge base to find evidence. Risk: the prompt assumes evidence is already provided; without retrieval, the model may hallucinate supporting passages. Guardrail: pair this prompt with a retrieval step and treat missing evidence as a signal to abstain, not invent.
Required Inputs: Claims Source and Evidence Corpus
What to watch: the prompt requires two distinct inputs—the text containing claims to verify and a pre-retrieved set of evidence passages. Guardrail: validate that both inputs are present and non-empty before calling the model. Missing or truncated evidence is the most common cause of false negatives in claim matching.
Operational Risk: Evidence Granularity Mismatch
Risk: when evidence passages are too long or too short relative to the claims, the model either misses matches or over-attributes claims to irrelevant context. Guardrail: pre-chunk evidence into coherent, self-contained passages of 2–5 sentences. Log match confidence scores and flag low-confidence pairs for human review.
Operational Risk: Claim Splitting Failures
Risk: compound sentences containing multiple factual claims may be treated as a single claim, causing evidence mismatches where one sub-claim is supported but another is not. Guardrail: include explicit instructions and few-shot examples demonstrating how to split compound claims. Validate output claim count against input sentence complexity.
Not a Replacement for Human Judgment
Avoid when: the output directly drives high-stakes decisions without review. Risk: the model can produce plausible but incorrect claim-evidence pairings, especially for ambiguous or technical content. Guardrail: route low-confidence pairs, contradictory evidence, and unverifiable claims to a human review queue before any downstream action.
Copy-Ready Prompt Template
A production-ready prompt for extracting discrete factual claims from text and matching each to the most relevant evidence passage, returning structured JSON.
This prompt is the core instruction set for a claim extraction and evidence matching pipeline. It is designed to be dropped into an application that already has access to a source text and a corpus of evidence passages. The model's job is not to answer questions or summarize, but to atomize the input text into individual, verifiable factual claims and then find the single best supporting evidence passage for each claim. The output is a structured JSON array ready for downstream scoring, human review, or database ingestion.
textYou are a precise claim extraction and evidence matching engine. Your task is to read the provided text, decompose it into discrete, self-contained factual claims, and match each claim to the most relevant evidence passage from the provided corpus. # INPUT ## Text to Analyze [TEXT] ## Evidence Corpus [EVIDENCE_CORPUS] # INSTRUCTIONS 1. Extract every discrete factual claim from the text. A claim is a single, verifiable statement of fact. Break compound sentences into separate claims. 2. Ignore opinions, rhetorical questions, greetings, and purely stylistic language. 3. For each extracted claim, search the evidence corpus and identify the single passage that best supports or refutes it. 4. If no evidence passage is relevant to a claim, set the evidence field to null and set the match status to "UNSUPPORTED". 5. If evidence partially supports a claim, set the match status to "PARTIAL" and include a brief explanation in the match_reasoning field. 6. Do not modify or paraphrase the claim text. Quote it exactly as it appears in the input. 7. Do not introduce claims that are not present in the input text. # OUTPUT SCHEMA Return a valid JSON object with a single key "claims" containing an array of objects. Each object must have the following fields: - "claim_id": string, a unique identifier for the claim (e.g., "C1", "C2") - "claim_text": string, the exact text of the extracted claim - "evidence_passage": string or null, the most relevant passage from the evidence corpus, quoted exactly - "evidence_id": string or null, the identifier of the evidence passage if provided in the corpus - "match_status": string, one of "SUPPORTED", "PARTIAL", "UNSUPPORTED", or "CONTRADICTED" - "match_reasoning": string, a brief explanation of why the evidence was selected and how it relates to the claim # CONSTRAINTS - Return ONLY the JSON object. No markdown fences, no introductory text, no summaries. - Ensure all strings are properly escaped for JSON. - If the input text contains no factual claims, return {"claims": []}.
To adapt this prompt, replace the [TEXT] and [EVIDENCE_CORPUS] placeholders with your actual content at runtime. The evidence corpus should be pre-formatted as a string that includes passage identifiers if you want them reflected in the evidence_id field. For high-stakes domains like healthcare or legal review, add a [RISK_LEVEL] parameter that adjusts the match_reasoning verbosity and requires explicit uncertainty language. Always validate the output JSON against the schema before passing it downstream—malformed JSON is the most common failure mode. For production deployments, pair this prompt with a retry-and-repair harness that catches schema violations and re-prompts the model with the validation error.
Prompt Variables
Required and optional inputs for the Claim Extraction and Evidence Matching Prompt. Each variable must be populated before the prompt is assembled and sent to the model.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[SOURCE_TEXT] | The unstructured text from which discrete factual claims will be extracted | The company announced Q4 revenue of $2.3B, up 12% year-over-year, driven by strong cloud growth. | Must be non-empty string. Max 4000 tokens recommended. Check for null or whitespace-only input before prompt assembly. |
[EVIDENCE_CORPUS] | Array of evidence passages to match against extracted claims | ["Q4 revenue reached $2.3 billion, a 12% increase from prior year.", "Cloud segment grew 28% in Q4."] | Must be array with at least 1 passage. Each passage max 2000 tokens. Validate array structure and non-empty entries before prompt injection. |
[EVIDENCE_IDS] | Unique identifiers for each evidence passage in the corpus, aligned by index | ["doc-001-para-3", "doc-001-para-7", "doc-002-para-1"] | Must be array with same length as [EVIDENCE_CORPUS]. Each ID must be unique. Null IDs not allowed. Validate index alignment before prompt assembly. |
[EXTRACTION_GRANULARITY] | Controls whether claims are extracted at sentence, clause, or atomic fact level | atomic | Must be one of: sentence, clause, atomic. Default to atomic if not specified. Validate against allowed enum values. |
[MIN_CLAIM_CONFIDENCE] | Minimum confidence threshold for including an extracted claim in output | 0.7 | Must be float between 0.0 and 1.0. Claims below threshold are excluded from output. Validate range and type. Default 0.5 if not provided. |
[MAX_CLAIMS] | Upper limit on number of claims extracted from source text | 20 | Must be positive integer. Prevents unbounded output on long source texts. Validate type and minimum value of 1. Default 15 if not specified. |
[INCLUDE_UNMATCHED_CLAIMS] | Whether to include claims with no matching evidence in the output | Must be boolean. When true, unmatched claims appear with null evidence reference. When false, they are omitted. Validate boolean type. | |
[OUTPUT_SCHEMA_VERSION] | Schema version identifier for the output structure | 1.0 | Must be string matching supported schema version. Validate against known versions in your pipeline. Used for forward compatibility when schema evolves. |
Implementation Harness Notes
How to wire the claim extraction and evidence matching prompt into a production verification pipeline.
This prompt is designed to be a single step inside a larger verification pipeline, not a standalone chat interface. The typical harness wraps the prompt in a function that accepts unstructured text and a pre-retrieved evidence corpus, then returns structured claim-evidence pairs for downstream scoring. Because the output is a JSON array of objects, the harness must validate the schema before passing results to the next stage—malformed JSON or missing fields will break any automated groundedness scorer that follows.
Start by defining a strict output schema in your application code, not just in the prompt. Each claim-evidence pair should have at minimum: claim_id (string), claim_text (string), evidence_passage (string or null), evidence_index (integer or null), and match_confidence (float between 0 and 1). Validate these types after every model call. If the model returns evidence_passage as a string when no match exists, normalize it to null in post-processing. Use a JSON schema validator like jsonschema (Python) or zod (TypeScript) to reject malformed responses before they enter your scoring pipeline. For high-stakes verification workloads, add a requires_human_review boolean field set to true when match_confidence falls below a configurable threshold—typically 0.7 for factual claims in regulated domains.
Model choice matters here. This prompt requires strong instruction-following and structured output discipline. Prefer models with native JSON mode or constrained decoding (GPT-4o with response_format, Claude 3.5 Sonnet with tool-use-shaped output, or fine-tuned open-weight models with grammar-constrained generation). Avoid models that frequently drop fields or hallucinate evidence indices. Implement a retry loop with exponential backoff: if validation fails, re-prompt with the validation error message appended to [CONSTRAINTS]. Log every failure, the retry count, and the final output shape. For production observability, emit metrics on claim extraction rate (claims per input word), null evidence rate (claims with no match), and schema compliance rate. These metrics will surface drift when the model or input distribution changes.
The evidence corpus must be pre-segmented into indexable passages before this prompt runs. Each passage should have a stable integer index that the model can reference in evidence_index. If your retrieval system returns passages with unstable ordering, sort them by a deterministic key (e.g., document ID + chunk offset) before assigning indices. Never rely on the model to match evidence by content alone—the index is your audit trail. When the model returns evidence_index: null, log the unmatched claim for retrieval gap analysis. Over time, these null-evidence claims become a prioritized list for improving your retrieval pipeline or expanding your knowledge base.
Wire the output of this prompt directly into a downstream groundedness scorer or factuality classifier. The structured claim-evidence pairs are the input contract for those prompts. If you skip validation here, you will spend more time debugging hallucination false positives downstream. For CI/CD integration, run this prompt against a golden dataset of 50-100 annotated documents where claim extraction and evidence matching have been human-verified. Measure precision and recall of claim extraction, and accuracy of evidence-to-claim pairing. Set a minimum threshold (e.g., 90% pairing accuracy) before promoting a new prompt version. If pairing accuracy drops, inspect the null-evidence rate and the model's tendency to over-claim or under-claim before adjusting the prompt.
Expected Output Contract
Defines the strict JSON schema for claim-evidence pairs. Every downstream scoring or verification step depends on this contract being met. Validate each field before passing output to the next pipeline stage.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
claims | Array of objects | Must be a non-empty array. If no claims are extractable, return an array with a single object containing claim_text: 'NO_EXTRACTABLE_CLAIMS' and a null evidence array. | |
claims[].claim_id | String, UUID v4 format | Must be a unique UUID v4 string generated for each claim. Validate with regex: ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ | |
claims[].claim_text | String, 10-500 characters | Must be a self-contained, atomic factual assertion. Cannot be a question, opinion marker without a fact, or empty string. Parse check: sentence must be interpretable as true/false without additional context. | |
claims[].claim_type | Enum: 'factual', 'numerical', 'quote', 'attribution' | Must be one of the four allowed enum values. No free-text or null. Use 'factual' for general assertions, 'numerical' for claims with quantities, 'quote' for attributed speech, 'attribution' for source-ascribed claims. | |
claims[].evidence | Array of objects or null | If no evidence found, must be an empty array []. Never omit this field. Each object in the array must conform to the evidence sub-schema. | |
claims[].evidence[].passage_id | String or null | Must match an id from the provided [SOURCE_CORPUS] or be null if evidence is drawn from a source not in the corpus. Null requires a non-null external_source field. | |
claims[].evidence[].passage_text | String, 1-2000 characters | Must be a verbatim excerpt from the source. No paraphrasing. Validate by substring match against [SOURCE_CORPUS] if passage_id is provided. Truncation allowed only at sentence boundaries. | |
claims[].evidence[].relevance_score | Float, 0.0 to 1.0 | Must be a float between 0.0 and 1.0 inclusive. Represents the model's confidence that this passage directly supports the claim. Score of 0.0 means the passage is cited but does not support the claim. |
Common Failure Modes
Claim extraction and evidence matching pipelines break in predictable ways. These are the most common failure modes and the guardrails that catch them before they reach production.
Phantom Claims from Prompt Context
What to watch: The model extracts claims that appear in your system prompt, few-shot examples, or output schema descriptions rather than from the actual source text. This contaminates your verification pipeline with claims that were never in the original document. Guardrail: Strip all factual content from examples and schema descriptions. Use abstract placeholders like [CLAIM_TEXT] and [EVIDENCE_PASSAGE] in few-shot demonstrations. Validate that every extracted claim contains a verbatim or near-verbatim substring match against the source before accepting it.
Evidence-Cherrypicking and Partial Matching
What to watch: The model pairs a claim with a passage that shares keywords but doesn't actually support the claim's full meaning. A claim about 'revenue growth of 15% in Q3' gets matched to a passage mentioning '15% increase in customer acquisition' because both contain '15%'. Guardrail: Require the model to output an explicit entailment rationale for each claim-evidence pair. Add a secondary verification step that checks whether the evidence passage logically entails the claim, not just shares surface tokens. Use a strict entailment rubric with 'supports', 'partially supports', and 'does not support' categories.
Claim Fragmentation and Duplication
What to watch: A single factual statement gets split into multiple overlapping claims, or the same claim appears multiple times with slightly different wording. This inflates your claim count and creates inconsistent evidence assignments across duplicates. Guardrail: Add a deduplication pass after extraction that clusters claims by semantic similarity. Use a similarity threshold tuned to your domain. Require the extraction prompt to output claims at a consistent granularity level with explicit instructions to avoid splitting atomic facts across multiple claim entries.
Implicit Claim Blindness
What to watch: The model extracts only explicitly stated factual assertions and misses claims that are implied, presupposed, or embedded in subordinate clauses. A sentence like 'After the merger closed in January, the combined entity began restructuring' contains the implicit claim that a merger occurred in January, which the model may skip. Guardrail: Add explicit instruction to extract both explicit and strongly implied claims. Include few-shot examples showing extraction of presupposed facts. Run a recall check by having a human or separate model annotate a sample to measure your extraction recall rate against a ground-truth claim set.
Evidence Boundary Leakage
What to watch: The model uses its parametric knowledge to fill gaps when the provided evidence corpus is insufficient, producing claim-evidence pairs where the 'evidence' doesn't actually contain the supporting information. This is especially dangerous because the output looks well-structured and confident. Guardrail: Constrain the model to only cite evidence passages verbatim from the provided corpus. Require exact passage IDs and character offsets. Add a post-extraction validation step that checks every cited passage exists in the source corpus and contains the factual content it's claimed to support. Flag any pair where the evidence passage doesn't contain the claim's key entities.
Negation and Modality Stripping
What to watch: The model extracts a claim but drops negation, hedging, or modality markers, turning 'The company did not meet its revenue target' into 'The company met its revenue target' or 'may increase prices' into 'will increase prices'. Guardrail: Add explicit instruction to preserve negation, hedging language, and modal verbs in extracted claims. Include counterexamples in few-shot prompts showing incorrect stripping and correct preservation. Run a targeted validation check that scans extracted claims for negation mismatches against the source text using a simple pattern match on negation terms.
Evaluation Rubric
Use this rubric to test the quality of claim-evidence pairs before integrating the prompt into a verification pipeline. Each criterion targets a specific failure mode common in extraction and matching tasks.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Claim Atomicity | Each extracted claim contains exactly one verifiable fact | Multiple facts concatenated into a single claim string | Split output on delimiters; assert no claim contains 'and' or 'but' joining two independent clauses |
Claim Self-Containment | Every claim is understandable without referencing the source text | Claim contains unresolved pronouns, dangling references, or requires external context | Parse each claim; assert no unresolved [PRONOUN] or [REFERENCE] tokens remain |
Evidence Relevance | The matched evidence passage directly supports or refutes the specific claim | Evidence is topically related but does not address the claim's specific assertion | LLM-as-judge pairwise check: ask a separate model if the evidence logically entails the claim |
Evidence Span Precision | The evidence passage is the minimal contiguous span that supports the claim | Evidence includes large irrelevant sections or is truncated mid-sentence | Measure character length of evidence span; flag if >3x the claim length or ends with incomplete sentence |
Source Fidelity | The evidence text is a verbatim substring of the provided corpus | Evidence contains paraphrased, hallucinated, or altered source text | Exact string match against corpus; flag if substring not found or edit distance >0 |
Claim Coverage | All factual assertions in the source text are extracted as claims | Verifiable facts present in the source are missing from the claim list | Human-annotated gold set: measure recall of extracted claims against labeled ground truth claims |
Pair Completeness | Every extracted claim has exactly one matched evidence passage | Claims with null evidence or multiple conflicting evidence passages | Assert count(claims) equals count(evidence_pairs); flag any claim with null or >1 evidence assignment |
Hallucination Resistance | No claims are fabricated when the source text contains no factual assertions | Claims generated for opinion, speculative, or empty source passages | Test with intentionally non-factual input; assert output claim list is empty or marked as unverifiable |
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 claims and evidence. Skip strict JSON schema enforcement and accept markdown-wrapped JSON. Focus on verifying the extraction logic works before adding validation.
Prompt modification
- Remove or soften the
[OUTPUT_SCHEMA]constraint: "Return JSON if possible, otherwise a structured list." - Reduce
[CONSTRAINTS]to one or two rules. - Use a short
[CONTEXT]of 3-5 evidence passages.
Watch for
- Claims extracted without evidence pairings
- Evidence passages quoted verbatim instead of matched by ID
- Model returning prose instead of structured pairs

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