This prompt is designed for AI platform teams and MLOps engineers who are validating a model migration or upgrade. The core job-to-be-done is to ensure that a new model version does not introduce regressions in factual grounding when compared to the current production model. The ideal user has access to a holdout set of production traces, each containing the original user input, the retrieved context, and the output from the old model. The prompt systematically compares the new model's output against this baseline, flagging any new, unsupported claims that the old model correctly avoided.
Prompt
Model Upgrade Grounding Regression Test Prompt

When to Use This Prompt
Define the job, reader, and constraints for the Model Upgrade Grounding Regression Test Prompt.
Use this prompt when you are moving from one model version to another (e.g., gpt-4-turbo to gpt-4o, or claude-3-opus to claude-3.5-sonnet) and grounding fidelity is a critical success metric. It is appropriate for RAG applications, customer support bots, or any system where the model must synthesize answers strictly from provided evidence. The prompt requires a structured input: a set of traces with [OLD_MODEL_OUTPUT], [NEW_MODEL_OUTPUT], and the shared [RETRIEVED_CONTEXT]. It is not a general-purpose hallucination detector; it specifically isolates regressions introduced by the model change, not pre-existing issues in the retrieval pipeline.
Do not use this prompt for evaluating a single model in isolation, for real-time production guardrails, or for tasks where the output format is unstructured creative text. It is a batch evaluation tool for pre-release QA. The output is a structured regression report, not a conversational summary. If your workflow involves regulated content (e.g., medical, legal, or financial advice), the output of this prompt is a diagnostic signal, not a final compliance check. A human reviewer must still sign off on any critical grounding regressions before the new model is promoted to production. Proceed to the next section to copy the prompt template and adapt it to your specific trace schema and grounding criteria.
Use Case Fit
This prompt is designed for structured, pre-release model evaluation. It is not a real-time guardrail or a general-purpose hallucination detector.
Good Fit: Pre-Release Model Upgrades
Use when: You are migrating from one model version to another (e.g., GPT-4 to GPT-4o, Claude 3 to 3.5) and need to quantify grounding regressions before production rollout. Guardrail: Run this against a static, curated holdout set of traces, not live traffic.
Bad Fit: Real-Time Production Guardrails
Avoid when: You need a low-latency check on live user responses. This prompt performs a comparative, multi-step analysis that is too slow and token-intensive for synchronous production use. Guardrail: Use a lightweight, single-output eval prompt for online checks.
Required Inputs: Paired Trace Data
What to watch: The prompt fails silently if the old and new model outputs are not generated from the exact same retrieved context and user query. Guardrail: Validate that the [OLD_TRACE] and [NEW_TRACE] share identical trace_id, query, and retrieved document IDs before running the evaluation.
Operational Risk: Evaluation Drift
What to watch: The prompt itself can be sensitive to the new model's style. A more verbose model might be flagged for 'unsupported claims' simply for adding safe, conversational filler. Guardrail: Include a calibration step with a few hand-labeled examples to ensure the evaluator is judging factual grounding, not verbosity.
Operational Risk: High Token Cost
What to watch: Running a comparative analysis on thousands of trace pairs can become extremely expensive, as each evaluation requires both full traces in the context window. Guardrail: Implement a cost-aware sampling strategy. Run the regression test on a statistically significant sample of high-risk or high-traffic intent categories, not the entire firehose.
Bad Fit: Single-Model Debugging
Avoid when: You are trying to debug why a single model hallucinated on one specific query. This prompt is designed for comparative regression detection, not root-cause analysis of an isolated failure. Guardrail: Use a dedicated trace analysis prompt for deep-diving into a single session's retrieval and generation steps.
Copy-Ready Prompt Template
A reusable prompt for comparing old and new model outputs against the same retrieved context to detect grounding regressions.
This prompt template is designed to be executed programmatically as part of a model upgrade validation pipeline. It takes a single trace sample—containing the original user query, the retrieved context, and the outputs from both the old and new models—and produces a structured regression verdict. The core job is to identify whether the new model introduced unsupported claims that the old model avoided, making it a critical gate before promoting a model version in a RAG system.
textYou are a grounding regression analyst. Your task is to compare two model responses generated from the same user query and the same retrieved context. You must determine whether the [NEW_MODEL_NAME] response introduced any factual claims that are not supported by the provided context and that were not present in the [OLD_MODEL_NAME] response. ## INPUT **User Query:** [USER_QUERY] **Retrieved Context:** [RETRIEVED_CONTEXT] **Old Model Response ([OLD_MODEL_NAME]):** [OLD_MODEL_OUTPUT] **New Model Response ([NEW_MODEL_NAME]):** [NEW_MODEL_OUTPUT] ## INSTRUCTIONS 1. **Extract Atomic Claims:** From the [NEW_MODEL_NAME] response, extract every discrete factual claim. A claim is a statement that can be verified against the retrieved context. 2. **Ground Each Claim:** For each claim, determine if it is **Supported** (directly stated in the context), **Partially Supported** (context implies it but does not state it explicitly), or **Unsupported** (no evidence in the context). 3. **Compare to Old Model:** For each claim, check if a semantically equivalent claim was present in the [OLD_MODEL_NAME] response. 4. **Flag Regressions:** A regression is an **Unsupported** claim in the new model's output that was **not present** in the old model's output. Partially supported claims that introduce new speculative details are also regressions. 5. **Ignore Shared Hallucinations:** If both models made the same unsupported claim, flag it as a pre-existing issue, not a regression. ## OUTPUT FORMAT Return a single JSON object matching this schema: { "verdict": "PASS" | "REGRESSION_DETECTED" | "INCONCLUSIVE", "summary": "A one-sentence summary of the finding.", "new_model_claims": [ { "claim_text": "The exact claim from the new model.", "grounding_status": "Supported" | "Partially Supported" | "Unsupported", "closest_context_quote": "The most relevant sentence from the retrieved context, or null.", "present_in_old_model": true | false, "is_regression": true | false } ], "regression_details": [ { "unsupported_claim": "The regressed claim text.", "reason": "Why this claim is unsupported and new." } ] } ## CONSTRAINTS - Do not penalize the new model for better writing style, grammar, or fluency. - A claim is only a regression if it introduces new, unsupported factual content. - If the retrieved context is empty or irrelevant, state that grounding is impossible and set the verdict to "INCONCLUSIVE". - If the new model correctly abstained or expressed uncertainty where the old model did not, that is not a regression.
To adapt this template, replace the square-bracket placeholders with data from your trace store. For a batch regression run, iterate over a holdout set of traces, populating [USER_QUERY], [RETRIEVED_CONTEXT], [OLD_MODEL_OUTPUT], and [NEW_MODEL_OUTPUT] for each sample. The [OLD_MODEL_NAME] and [NEW_MODEL_NAME] placeholders should be set to the specific model identifiers (e.g., gpt-4-0613 and gpt-4-1106-preview) to help the evaluator model maintain context. For high-stakes migrations, ensure a human reviews all REGRESSION_DETECTED verdicts before blocking the upgrade, and log the full prompt and response for auditability.
Prompt Variables
Required inputs for the Model Upgrade Grounding Regression Test Prompt. Each variable must be populated from the holdout trace set to ensure a valid comparison between old and new model outputs.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[OLD_MODEL_OUTPUT] | The generated answer from the previous model version for a specific trace | The capital of France is Paris. It is known for the Eiffel Tower. | Must be a non-empty string. Compare length against [TRACE_ID] to confirm retrieval from correct trace record. |
[NEW_MODEL_OUTPUT] | The generated answer from the upgraded model for the same trace and context | Paris is the capital of France. It has a population of over 2 million. | Must be a non-empty string. Reject if identical to [OLD_MODEL_OUTPUT] without explicit instruction; this indicates a trace mismatch. |
[RETRIEVED_CONTEXT] | The full set of retrieved passages or documents provided to both models | Document 1: Paris is the capital of France. Document 2: The Eiffel Tower is in Paris. | Must be a non-empty string or structured list. Validate that context is identical for both model runs by comparing context hashes in the trace. |
[TRACE_ID] | Unique identifier for the trace record in the holdout set | trace_4a7b_20241021_001 | Must match the pattern defined in your trace store. Use to join outputs, context, and metadata. Reject if missing or malformed. |
[GROUNDING_RUBRIC] | The evaluation criteria defining what constitutes a supported vs unsupported claim | A claim is unsupported if it cannot be directly inferred from [RETRIEVED_CONTEXT]. | Must be a non-empty string. Schema check: confirm the rubric includes definitions for 'supported', 'unsupported', and 'partially supported' classifications. |
[EVALUATION_MODEL] | Identifier for the LLM Judge or evaluation function performing the grounding check | gpt-4o-2024-08-06 | Must be a valid model ID from your model registry. Reject if the model does not support structured output or JSON mode, as a parseable verdict is required. |
Implementation Harness Notes
How to wire the Model Upgrade Grounding Regression Test Prompt into an automated evaluation pipeline.
This prompt is designed to run as a batch evaluation step, not as a real-time user-facing call. It compares outputs from an old model version and a new model version against the same retrieved context captured in a holdout trace set. The implementation harness must feed both models the identical prompt, context, and generation parameters, then route the paired outputs into this evaluation prompt for structured comparison. The harness is responsible for ensuring that any differences in grounding are attributable to the model change, not to variations in retrieval, temperature, or system instructions.
The harness should iterate over a golden trace dataset where each record contains: the original user query, the retrieved context (documents, chunks, or passages), the old model's generated response, and the new model's generated response. For each record, inject these values into the prompt's [OLD_MODEL_OUTPUT], [NEW_MODEL_OUTPUT], and [RETRIEVED_CONTEXT] placeholders. Set [EVALUATION_CRITERIA] to a structured rubric that flags unsupported claims, citation mismatches, and factual additions. Run the evaluation with a low-temperature setting (0.0–0.2) to maximize consistency. Capture the structured output—ideally JSON with fields for regression_detected, unsupported_claims_added, supported_claims_removed, and severity—and write it to a results store for aggregation. Implement a retry wrapper: if the output fails to parse as valid JSON or is missing required fields, retry up to two times with a repair prompt before logging a parse failure and marking the record for human review.
For production-grade reliability, add a validation layer that checks the evaluation output against a set of invariants. For example, if regression_detected is true but unsupported_claims_added is empty, flag the record as inconsistent. Log every evaluation result with the trace ID, model version pair, timestamp, and raw evaluation output. This log becomes the audit trail for the model migration decision. Before promoting the new model, aggregate results across the full holdout set and apply a statistical threshold: if the regression rate exceeds a predefined tolerance (e.g., more than 2% of traces show new unsupported claims), block the migration and surface the worst-affected trace IDs for manual diagnosis. Do not rely on a single pass/fail from one trace—this prompt is a building block in a broader regression gate, not the gate itself.
Common Failure Modes
When validating model upgrades against grounding regression, these failures surface first. Each card identifies a specific risk and the operational guardrail to catch it before production impact.
Silent Claim Fabrication
What to watch: The new model generates factually incorrect claims that sound plausible and are not flagged by simple string-match diffs against the old output. The model's increased fluency masks fabrication. Guardrail: Implement a structured claim-extraction step that isolates atomic facts from both outputs and verifies each against the retrieved context captured in the trace, not just against the old model's answer.
Citation Drift Without Content Change
What to watch: The new model preserves the old answer's text but shifts citations to different or less relevant source passages, weakening auditability. Superficial output similarity hides the regression. Guardrail: Run a citation-to-source alignment audit on the holdout trace set that verifies each inline citation maps to a real document span and that the cited content actually supports the claim, independent of the old model's citation pattern.
Over-Confidence on Ambiguous Evidence
What to watch: The new model removes hedging language the old model included when retrieved context was insufficient or contradictory, presenting uncertain information as definitive fact. Guardrail: Compare certainty markers and abstention behavior between model versions using a rubric that scores appropriate uncertainty expression. Flag responses where the new model answers confidently but the trace shows low retrieval relevance scores or source conflicts.
Context Window Truncation Hallucination
What to watch: The new model handles context packing differently, causing critical evidence to be truncated that the old model retained. The model then fabricates content to fill the gap rather than abstaining. Guardrail: Correlate truncated passages in the trace with unsupported claims in the output. Add a pre-check that verifies all retrieved documents marked as high-relevance by the old pipeline are still present and complete in the new model's context window.
Source Conflict Resolution Regression
What to watch: When retrieved documents contradict each other, the new model picks one side and presents it as settled fact, where the old model acknowledged the disagreement or abstained. Guardrail: Include contradictory-source test cases in the holdout set. Score the new model on whether it acknowledges conflict, presents balanced evidence, or appropriately abstains. Flag any response that presents a single source as authoritative when the trace shows conflicting retrieved passages.
Attribution Span Boundary Errors
What to watch: The new model over-claims source support by extending attribution spans beyond what the cited passage actually contains, or under-claims by failing to cite a source that does support the statement. Guardrail: Run span-level precision and recall checks on the holdout set. Verify that each attribution span precisely covers only the claim the source supports, with no over-extension or missing citations. Flag spans where the boundary differs from the old model's correct alignment.
Evaluation Rubric
Use this rubric to test the Model Upgrade Grounding Regression Test Prompt against a holdout trace set. Each criterion checks whether the prompt reliably detects grounding regressions introduced by a new model version.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Unsupported Claim Detection | All claims flagged as unsupported by the new model are absent from the retrieved context in the trace | A flagged claim is actually present in the retrieved context span | Manually verify 10 flagged claims against the [RETRIEVED_CONTEXT] in the trace |
Old Model Baseline Accuracy | All claims correctly identified as supported in the old model output are verifiable in the trace context | A claim marked as supported in the old output cannot be found in the retrieved passages | Spot-check 10 supported claims from [OLD_MODEL_OUTPUT] against trace [RETRIEVED_CONTEXT] |
Regression Flag Precision | At least 90% of regression flags point to claims that are genuinely unsupported and were not present in the old output | More than 10% of regression flags are false positives where the old model also made the same unsupported claim | Compare regression flag list against a human-annotated ground truth for 20 trace samples |
Regression Flag Recall | No genuine grounding regression where the new model introduced an unsupported claim is missed | A human reviewer finds an unsupported claim in [NEW_MODEL_OUTPUT] that the prompt did not flag | Run the prompt on a seeded test set with 5 known regressions and verify all are caught |
Trace Event Reference Validity | Every flagged claim includes a valid trace event ID that resolves to the correct retrieval step | A trace event ID is null, malformed, or points to a tool-call event instead of a retrieval event | Parse all [TRACE_EVENT_ID] values and validate they exist in the trace and are retrieval-type events |
Severity Classification Consistency | Severity labels match the defined taxonomy: critical for safety/legal risk, major for factual error with user impact, minor for imprecise but not misleading | A claim with potential safety impact is labeled minor, or a trivial phrasing issue is labeled critical | Have two reviewers independently label 15 regression flags and measure inter-rater agreement with prompt output |
Output Schema Compliance | Output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present and correctly typed | JSON parse fails, a required field is missing, or a field contains an unexpected type | Validate output against the JSON Schema definition programmatically for all test traces |
Abstention Appropriateness | Prompt correctly identifies when the new model abstained but the old model answered with supported claims, flagging it as a regression | A legitimate abstention due to insufficient context is incorrectly flagged as a grounding regression | Include 3 traces with correct abstentions in the test set and verify they are not flagged |
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 holdout set (10-20 traces) and manual review. Replace [OLD_MODEL_OUTPUT] and [NEW_MODEL_OUTPUT] with raw text from each model. Skip automated scoring—just flag regressions by hand.
Watch for
- Over-reliance on a single reviewer's judgment
- Missing edge cases in the holdout set
- No baseline grounding score for the old model

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