This prompt is designed for summarization and synthesis quality teams who need to catch a specific, insidious class of hallucination: meaning changes introduced during paraphrasing. Unlike outright fabrication, paraphrase drift occurs when a model re-expresses a source concept but subtly alters its intensity, scope, or core claim. The primary job-to-be-done is to compare a generated paraphrase or summary sentence against its source evidence span and flag any semantic drift that would mislead a downstream reader. The ideal user is an AI output validation engineer or a quality assurance lead building an automated guardrail that sits between content generation and user delivery.
Prompt
Paraphrase Drift Hallucination Check Prompt Template

When to Use This Prompt
Define the job, ideal user, and constraints for the Paraphrase Drift Hallucination Check prompt.
Use this prompt when your application generates summaries, rewrites, or synthesized answers from source material and you need to verify that the output remains faithful to the original evidence. It is particularly valuable in high-stakes domains—legal summarization, clinical note synthesis, financial report generation—where a slight shift in wording can alter meaning with material consequences. The prompt expects two inputs: the original source span and the generated paraphrase. It returns a structured drift assessment with a severity scale, making it suitable for integration into automated evaluation pipelines, CI/CD checks for prompt changes, or human review queues where flagged outputs are escalated.
Do not use this prompt for detecting complete fabrications or checking whether a statement is supported by any evidence at all. Those jobs belong to sibling playbooks like Unsupported Statement Detection or Fabricated Detail Detection. This prompt assumes the generated text is grounded in the provided source—it only checks whether the grounding has warped during rewording. Also avoid using it for long-form outputs where source-to-sentence alignment hasn't been established first; run a sentence-level grounding verification step before applying drift checks. If your risk tolerance is zero for meaning alteration, always pair this automated check with human review for outputs flagged at moderate severity or above.
Use Case Fit
Where the Paraphrase Drift Hallucination Check fits and where it introduces risk. Use this to decide whether to deploy this prompt in your pipeline.
Good Fit: Summarization Quality Gates
Use when: you are running a summarization pipeline and need to verify that the summary does not alter the meaning of the source. Guardrail: Insert this check after summary generation and before the response reaches the user. Flag summaries with a drift severity score above 'minor' for human review.
Bad Fit: Creative Rewriting
Avoid when: the task is intentional creative rewriting, tone adjustment, or marketing copy adaptation where semantic changes are desired. Risk: The prompt will flag legitimate stylistic changes as drift, generating false positives that block valid outputs. Use a tone or style adherence check instead.
Required Inputs
Must provide: a [SOURCE_SPAN] containing the original text and a [GENERATED_PARAPHRASE] to compare against. Guardrail: Without both inputs clearly delineated, the model cannot perform a reliable comparison. Ensure your harness extracts exact source spans before invoking this check.
Operational Risk: High-Volume Pipelines
What to watch: Running this check on every output in a high-volume pipeline can introduce latency and cost. Guardrail: Implement a pre-filter to only check outputs that have passed a basic relevance or length threshold. Use this prompt for a sampled audit rather than a synchronous block if latency is critical.
Bad Fit: Short, Factoid Answers
Avoid when: the output is a short, extracted fact like a date or a name. Risk: The prompt's severity scale is designed for multi-sentence paraphrases. Applying it to atomic facts will produce noisy, unreliable drift scores. Use an exact-match or entity-level verification prompt for these cases.
Operational Risk: Source Span Ambiguity
What to watch: If the [SOURCE_SPAN] is too long or contains multiple ideas, the model may struggle to align it with the paraphrase, leading to false positives. Guardrail: Pre-process source documents to extract the specific sentences or paragraph that the paraphrase is meant to represent before calling this check.
Copy-Ready Prompt Template
A reusable prompt template for detecting semantic drift when a generated paraphrase alters, exaggerates, or omits meaning from the original source text.
This prompt template is designed to compare a generated paraphrase or summary against its source span and flag instances where the meaning has shifted. It is built for integration into automated output validation pipelines where summarization and synthesis quality must be verified before responses reach users. The template uses square-bracket placeholders for all variable inputs, making it straightforward to adapt for different source materials, risk tolerances, and output schemas.
textYou are a precise semantic auditor. Your task is to compare a generated paraphrase against its original source text and detect any meaning changes, exaggerations, omissions, or fabrications introduced during paraphrasing. ## INPUT **Original Source Text:** [SOURCE_TEXT] **Generated Paraphrase:** [PARAPHRASE_TEXT] ## INSTRUCTIONS 1. Read the original source text carefully to understand its precise meaning, scope, and limitations. 2. Read the generated paraphrase and identify every claim, statement, or implication it contains. 3. For each claim in the paraphrase, determine whether it is: - **FULLY SUPPORTED**: The claim matches the source's meaning exactly, even if wording differs. - **DRIFTED**: The claim alters, exaggerates, softens, or shifts the source's meaning in any way. - **FABRICATED**: The claim introduces information not present in or inferable from the source. - **OMITTED**: Material information from the source is absent from the paraphrase. 4. For each DRIFTED or FABRICATED claim, assign a severity level: - **MINOR**: Cosmetic wording change that does not materially alter understanding. - **MODERATE**: Meaning shift that could mislead or change interpretation. - **CRITICAL**: Meaning shift that reverses, contradicts, or dangerously misrepresents the source. 5. For each OMITTED item, assess whether the omission changes the overall message. ## CONSTRAINTS - Do not flag stylistic differences or synonym substitutions that preserve meaning. - Do flag any shift in certainty, scope, attribution, causality, or quantification. - If the paraphrase adds qualifiers (e.g., "might," "possibly") where the source was definite, flag it as DRIFTED. - If the paraphrase removes qualifiers where the source was uncertain, flag it as DRIFTED. - If the source contains [DOMAIN_TERMS], pay special attention to domain-specific precision. ## OUTPUT_SCHEMA Return a JSON object with the following structure: { "overall_drift_score": <float between 0.0 and 1.0, where 0.0 = no drift and 1.0 = complete meaning reversal>, "drift_detected": <boolean>, "findings": [ { "paraphrase_span": "<exact text from paraphrase>", "source_span": "<corresponding text from source or null if fabricated>", "finding_type": "DRIFTED | FABRICATED | OMITTED", "severity": "MINOR | MODERATE | CRITICAL", "explanation": "<precise description of the semantic difference>" } ], "summary": "<one-sentence overall assessment>" } ## EXAMPLES [EXAMPLES] ## RISK_LEVEL [RISK_LEVEL]
To adapt this template, replace each square-bracket placeholder with your specific inputs. [SOURCE_TEXT] and [PARAPHRASE_TEXT] are required for every invocation. [DOMAIN_TERMS] should be populated with a comma-separated list of domain-specific terminology that requires precise handling—for example, medical terms, legal phrases, or technical specifications. [EXAMPLES] should contain one to three few-shot demonstrations showing correct drift detection across different severity levels, which significantly improves model calibration. [RISK_LEVEL] accepts values like LOW, MEDIUM, HIGH, or CRITICAL and should be used to adjust the strictness of detection—higher risk levels should trigger more conservative flagging behavior. When wiring this into a production pipeline, always validate the output JSON against the schema before accepting results, and consider running multiple passes with different temperature settings to catch borderline drift cases.
Prompt Variables
Required inputs for the Paraphrase Drift Hallucination Check prompt. Each placeholder must be populated before the prompt is sent. Validation notes describe how to verify the input is well-formed.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[ORIGINAL_SOURCE_SPAN] | The exact text from the source document that was paraphrased | The patient presented with mild intermittent headaches over a two-week period. | Must be a verbatim excerpt from the source. Validate by string-matching against the source document. Null or empty input must abort the check. |
[GENERATED_PARAPHRASE] | The model-generated text that claims to represent the source span | The patient reported experiencing occasional mild headaches for the past two weeks. | Must be the complete generated sentence or passage being checked. Validate that it is not identical to [ORIGINAL_SOURCE_SPAN]; identical text skips the check and returns a no-drift result. |
[DRIFT_SEVERITY_SCALE] | The severity levels used to classify detected drift | NONE, MINOR, MODERATE, MAJOR, CRITICAL | Must be a defined enum with at least 3 levels. Validate that the scale is present and each level has a clear definition in the prompt instructions. Default scale is provided in the template. |
[DRIFT_DIMENSIONS] | The specific types of semantic drift to check for | Meaning change, Exaggeration, Omission, Addition, Tone shift | Must be a list of 3-7 named dimensions. Validate that each dimension has a definition in the prompt. Omission of this field should trigger use of the default dimensions: Meaning Change, Exaggeration, Omission, Addition. |
[OUTPUT_SCHEMA] | The expected JSON structure for the drift check result | See output contract table for full schema definition | Must be a valid JSON Schema or a structured description of required fields. Validate by parsing the schema before prompt assembly. Schema mismatch with downstream parser is a blocking error. |
[CONFIDENCE_THRESHOLD] | Minimum confidence score required before flagging drift as actionable | 0.7 | Must be a float between 0.0 and 1.0. Validate range. Values below 0.5 produce high false-positive rates. Values above 0.9 may miss real drift. Default 0.7 is recommended for initial deployment. |
[SOURCE_DOCUMENT_ID] | Identifier linking the source span to its origin document for traceability | doc-2024-0031-section-4.2 | Must be a non-empty string. Validate that the ID resolves to a real document in the retrieval or knowledge base system. Used for audit trail and downstream citation verification. |
Implementation Harness Notes
How to wire the Paraphrase Drift Hallucination Check into a production validation pipeline.
The Paraphrase Drift Hallucination Check prompt is designed to operate as a post-generation guardrail within a summarization or synthesis pipeline. It should be invoked after the primary model generates a summary or paraphrase, receiving both the generated output and the original source span as inputs. The prompt is not a real-time streaming interrupter; it works best on complete text segments where semantic drift can be assessed holistically. In a typical RAG or document-processing architecture, this check sits between the generation step and the final response delivery, ensuring that meaning-preserving rewrites are not incorrectly flagged as hallucinations while genuine distortions are caught before they reach the user.
To integrate this prompt into an application, build a dedicated validation service that accepts a source_span and a generated_paraphrase as inputs. The service should call the LLM with the prompt template, requesting a structured JSON output that includes a drift_detected boolean, a drift_severity score (e.g., none, minor, material, severe), a drift_type classification (e.g., exaggeration, omission, meaning_change, fabrication), and a drift_explanation string. Validation of the validator is critical here: implement a second-pass check that verifies the JSON schema is well-formed and that the drift_severity label is consistent with the explanation provided. If the model returns a severe drift but the explanation describes only a minor synonym substitution, flag this inconsistency for human review rather than blocking the output automatically. For high-stakes domains like medical or legal summarization, always route material and severe drift detections to a human review queue before taking action.
Model choice matters for this check. Use a capable instruction-following model (such as GPT-4, Claude 3.5 Sonnet, or Gemini 1.5 Pro) because the task requires fine-grained semantic comparison. Smaller or faster models often over-flag stylistic paraphrasing as drift or, conversely, miss subtle meaning alterations. Set temperature=0 to maximize consistency across repeated checks. Implement a retry strategy for malformed JSON outputs: if the response fails to parse against the expected schema, retry once with the same prompt and a stronger schema reminder. If the second attempt also fails, log the raw output and escalate to a human operator rather than silently passing the content. For observability, log every drift check result—including the source span, generated text, drift severity, and the validator model's response—into your tracing system. This data becomes invaluable for tuning retrieval precision, adjusting generation prompts, and identifying systematic drift patterns across document types or model versions.
Expected Output Contract
Defines the structured output schema, field types, and validation rules for the Paraphrase Drift Hallucination Check. Use this contract to parse and validate the model's response before downstream consumption.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
drift_analysis | Array of objects | Must be a non-empty array. Each element must conform to the drift_analysis_item schema. | |
drift_analysis[].source_span | String | Must be a non-empty string exactly as extracted from [SOURCE_DOCUMENT]. Must be a verbatim substring matchable in the source. | |
drift_analysis[].generated_paraphrase | String | Must be a non-empty string exactly as extracted from [GENERATED_SUMMARY]. Must be a verbatim substring matchable in the generated text. | |
drift_analysis[].drift_detected | Boolean | Must be true if semantic drift is present, false otherwise. Cannot be null. | |
drift_analysis[].drift_severity | String (enum) | Must be one of: 'none', 'minor', 'moderate', 'major', 'critical'. If drift_detected is false, this must be 'none'. | |
drift_analysis[].drift_type | String (enum) | Must be one of: 'exaggeration', 'understatement', 'omission', 'addition', 'distortion', 'none'. If drift_detected is false, this must be 'none'. | |
drift_analysis[].explanation | String | Must be a non-empty string explaining the nature of the drift if drift_detected is true. If drift_detected is false, must be an empty string or a confirmation of no drift. | |
overall_drift_score | Number (float 0.0-1.0) | Must be a float between 0.0 and 1.0 inclusive. Represents the proportion of analyzed spans exhibiting drift. Calculated as (count of items with drift_detected=true) / (total count of drift_analysis items). |
Common Failure Modes
Paraphrase drift is subtle and dangerous because it produces fluent, plausible text that silently alters meaning. These are the most common failure modes when using a paraphrase drift hallucination check prompt, along with practical guardrails to catch them before they reach users.
Synonym Substitution That Shifts Meaning
What to watch: The model replaces a source term with a near-synonym that carries a different connotation, severity, or scope (e.g., 'concern' becomes 'crisis,' or 'may cause' becomes 'causes'). The output reads naturally but changes the factual claim. Guardrail: Include a domain-specific controlled vocabulary or glossary in the prompt. Instruct the model to flag any term substitution that alters the intensity, certainty, or scope of the original claim, and require a justification when a synonym is used.
Omission of Qualifiers and Hedging Language
What to watch: The paraphrase drops critical qualifiers such as 'potentially,' 'in some cases,' 'preliminary evidence suggests,' or 'may indicate.' The output becomes more definitive and confident than the source supports, creating a hallucinated level of certainty. Guardrail: Add an explicit instruction to preserve all hedging language, uncertainty markers, and scope limiters from the source. Use a post-check step that extracts qualifiers from the source and verifies their presence in the paraphrase before accepting the output.
Structural Reordering That Changes Causal Direction
What to watch: The model reorders sentences or clauses in a way that reverses cause and effect, implies a different temporal sequence, or creates a false logical dependency (e.g., 'A happened after B' becomes 'A caused B'). Guardrail: Instruct the model to preserve the original logical and temporal structure unless explicitly asked to reorganize. Add a validation step that extracts causal and temporal relationships from both source and paraphrase and compares them for directional consistency.
Amplification Through Unsupported Generalization
What to watch: The paraphrase broadens a specific finding into a general rule (e.g., 'in this study of 50 patients' becomes 'patients experience'). The output overgeneralizes the evidence scope, making claims the source cannot support. Guardrail: Require the model to preserve explicit scope boundaries—sample sizes, populations, conditions, and timeframes. Add a scope-comparison check that flags any generalization beyond the source's stated limits. When in doubt, instruct the model to retain the original specificity.
False Coherence Across Multiple Sources
What to watch: When paraphrasing across multiple evidence passages, the model synthesizes a smooth narrative that conflates distinct claims, merges contradictory findings, or invents a connecting thread not present in any single source. The output feels coherent but is unfaithful to the evidence. Guardrail: Require per-source attribution in the paraphrase output. Instruct the model to flag any synthesized claim that cannot be traced to a single source span. Use a source-separation check that verifies each paraphrased statement maps to exactly one source passage before synthesis is accepted.
Drift Severity Underestimation by the Model
What to watch: The model's own drift severity assessment is miscalibrated—it rates a meaning-altering paraphrase as 'minor' or 'acceptable' because the surface similarity is high. This is especially common when the model generated the paraphrase itself and then self-evaluates. Guardrail: Use a separate, independent model call for the drift check rather than self-evaluation within the same generation. Calibrate the severity scale with annotated examples showing clear boundaries between 'cosmetic rewording,' 'minor nuance shift,' and 'material meaning change.' Run periodic human correlation checks on severity labels.
Evaluation Rubric
Use this rubric to test the Paraphrase Drift Hallucination Check prompt before shipping. Each criterion targets a specific failure mode where paraphrasing introduces meaning changes, exaggerations, or omissions. Run these checks against a golden dataset of source-paraphrase pairs with known drift labels.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Semantic Equivalence Detection | Prompt correctly labels semantically equivalent paraphrases as 'No Drift' with 95%+ accuracy on a held-out set of 50 human-verified equivalent pairs. | False positive rate exceeds 5% on known-equivalent pairs; prompt flags acceptable rewording as drift. | Run prompt against 50 source-paraphrase pairs labeled 'equivalent' by two human reviewers. Measure false positive rate. |
Meaning-Altering Drift Detection | Prompt flags meaning changes (e.g., negation, subject-object swap, scope shift) with 90%+ recall on a set of 30 known meaning-altering pairs. | Recall below 90% on known meaning-altering pairs; prompt misses substantive semantic changes. | Curate 30 pairs where paraphrase alters the core claim. Run prompt and compare detected drift against ground truth. Calculate recall. |
Exaggeration Detection | Prompt identifies exaggerations (e.g., 'some' to 'most', 'may' to 'will') with 85%+ precision on a set of 20 exaggerated paraphrases. | Precision below 85%; prompt over-flags minor intensifiers as exaggeration or misses clear overstatements. | Create 20 pairs with known exaggerations. Run prompt and measure precision of 'Exaggeration' severity label against ground truth. |
Omission Detection | Prompt detects material omissions (dropped conditions, qualifiers, or key entities) with 85%+ recall on a set of 20 omission pairs. | Recall below 85%; prompt fails to flag paraphrases that drop essential constraints or qualifiers. | Build 20 pairs where critical information is omitted. Run prompt and measure recall of 'Omission' drift type against ground truth. |
Drift Severity Classification | Prompt assigns correct severity level (Minor, Moderate, Critical) within one adjacent level of ground truth on 90%+ of flagged drifts. | Severity misclassification rate exceeds 10% by more than one level; prompt labels critical drift as minor or vice versa. | Use 30 pairs with known severity labels from human annotators. Compare prompt-assigned severity to ground truth. Measure exact match and adjacent-match rates. |
Source Span Alignment | Prompt correctly identifies the specific source span that was altered in 80%+ of detected drift cases, with span overlap (token-level) of 0.7+ against ground truth. | Span overlap below 0.7 on average; prompt cites wrong source segment or returns vague span boundaries. | Annotate ground-truth source spans for 20 drift cases. Run prompt and compute token-level overlap between reported span and ground truth. Measure average overlap. |
Null Input Handling | Prompt returns a valid structured output indicating 'No source provided' or equivalent when [SOURCE_SPAN] is empty or null, without fabricating drift. | Prompt hallucinates drift findings or returns malformed JSON when source is missing. | Pass empty string and null as [SOURCE_SPAN] in 5 test runs. Verify output schema validity and absence of fabricated drift flags. |
Output Schema Compliance | Prompt output validates against the defined JSON schema on 100% of test runs with valid inputs. | Schema validation fails on any valid input; missing required fields, wrong types, or extra fields present. | Run prompt on 50 diverse source-paraphrase pairs. Validate each output against the expected JSON schema using a programmatic validator. Count failures. |
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
Wrap the prompt in a validation harness that enforces the output schema (drift_detected, severity, source_span, paraphrase_span, explanation). Add retry logic with a repair prompt if JSON parsing fails. Log every check with trace ID, source hash, and drift score for observability. Implement a confidence threshold below which outputs route to a human review queue.
Watch for
- Silent format drift when the model returns markdown-wrapped JSON
- False negatives on subtle meaning changes (hedging removal, intensifier addition)
- Latency budget when running this check on every generated sentence in a long summary

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