This prompt is for assistant product teams that need to analyze user correction episodes at scale. When a user corrects the assistant, the correction can invalidate downstream claims, state updates, and tool outputs that depended on the original error. This prompt produces a structured audit record that traces the original error, the correction itself, every downstream state change triggered by the correction, and any dependent claims that were left uncorrected. Use this prompt when you need to prove that your correction-handling logic is complete, identify gaps in cascade repair, or generate evidence for compliance reviews.
Prompt
Correction Cascade Audit Record Prompt

When to Use This Prompt
Understand the job-to-be-done, the ideal user, and the operational boundaries for the Correction Cascade Audit Record Prompt.
This is not a prompt for handling corrections in real time. It is an offline analysis prompt that operates on a completed conversation segment. It assumes you already have a correction episode identified and need a traceable record of what happened and what might have been missed. The prompt requires a fully serialized conversation segment containing the user correction turn, the assistant's acknowledgment, and all subsequent turns where state or claims may have been affected. Without this complete segment, the audit record will be incomplete and may produce false negatives for missed dependent claims.
Do not use this prompt for live correction handling, real-time state repair, or user-facing apology generation. Those workflows require different prompts that operate on the current turn with access to tool outputs and state mutation logic. This prompt is designed for post-hoc analysis, QA sampling, and compliance evidence generation. Before running it, ensure you have extracted the correction episode boundaries correctly—including the original error turn, the correction turn, and all turns up to the point where the cascade should have been resolved. Missing turns will produce an audit record that underreports uncorrected dependencies.
Use Case Fit
Where the Correction Cascade Audit Record prompt delivers reliable value and where it introduces unacceptable risk. Use these cards to decide if this prompt fits your workflow before integrating it into your audit pipeline.
Good Fit: Post-Session Correction Analysis
Use when: you have a complete, closed conversation transcript containing one or more user corrections and need a structured record of the original error, the correction, and all downstream state changes. Guardrail: run the prompt on finalized sessions only; live mid-session analysis risks incomplete cascade detection.
Bad Fit: Real-Time Correction Prevention
Avoid when: you need to prevent correction cascades during an active conversation. This prompt is an audit tool, not a guardrail. Guardrail: pair with a separate in-session correction handler that updates state immediately; use this prompt afterward to verify completeness.
Required Inputs: Full Turn History with Metadata
Risk: incomplete or truncated transcripts produce false negatives for dependent claims left uncorrected. Guardrail: require the full conversation from session start to the turn after the last correction, including assistant tool calls, retrieved evidence, and state mutation records if available.
Operational Risk: Missed Dependent Claims
Risk: the model may identify the direct correction target but miss downstream claims that relied on the corrected fact. Guardrail: include explicit eval criteria for cascade completeness; run a secondary verification pass that asks 'what other claims in this session depended on the corrected statement?'
Operational Risk: Hallucinated Correction Records
Risk: the model may fabricate correction events that did not occur or misattribute the source of a correction. Guardrail: require turn-level grounding with exact turn indices; validate that every recorded correction maps to an actual user turn containing correction language before accepting the audit record.
Scale Limit: Single-Session Scope Only
Avoid when: you need cross-session correction pattern analysis or aggregate correction statistics. This prompt operates on one session at a time. Guardrail: batch process sessions individually, then aggregate the structured outputs in your application layer; do not ask the model to compare across sessions.
Copy-Ready Prompt Template
A copy-ready prompt for generating a structured audit record of a user correction episode, including the original error, the correction, all downstream state changes, and any uncorrected dependent claims.
The following prompt template is designed to be pasted directly into your audit pipeline. It instructs the model to act as a conversation state auditor, analyzing a sequence of turns where a user corrected the assistant. The goal is to produce a single, structured JSON record that captures the full cascade of the correction event. This record is essential for compliance, debugging, and measuring the robustness of your assistant's state management. Before using this prompt, ensure you have the full conversation segment, the system's internal state objects from before and after the correction, and a clear definition of what constitutes a 'dependent claim' in your domain.
textYou are a Conversation State Auditor. Your task is to analyze a user correction episode and produce a structured audit record. **INPUTS** - Conversation History: [CONVERSATION_HISTORY] - Pre-Correction State: [PRE_CORRECTION_STATE] - Post-Correction State: [POST_CORRECTION_STATE] - Domain Claim Definitions: [DOMAIN_CLAIM_DEFINITIONS] **TASK** 1. Identify the turn where the user issued a correction. 2. Identify the assistant's original claim or action that was corrected. 3. List all downstream state changes that occurred as a direct result of the correction. 4. Identify any dependent claims (as defined in [DOMAIN_CLAIM_DEFINITIONS]) that were based on the original error and were NOT updated after the correction. **OUTPUT_SCHEMA** Produce a single JSON object conforming to this schema: { "correction_episode_id": "string, unique identifier for this episode", "correction_turn_index": "integer, the turn number where the user correction occurred", "original_error": { "turn_index": "integer, the turn where the error was made", "claim": "string, the original incorrect claim or action", "state_before": "object, the relevant part of the pre-correction state" }, "user_correction": "string, the user's exact correction message", "cascade_changes": [ { "state_field_path": "string, path to the changed state field", "value_before": "any", "value_after": "any", "change_reason": "string, explanation linking the change to the user correction" } ], "missed_dependent_claims": [ { "claim": "string, the dependent claim that was not corrected", "dependency_path": "string, how this claim depends on the original error", "risk": "string, brief assessment of the risk posed by this uncorrected claim" } ], "audit_notes": "string, any additional observations about the correction cascade" } **CONSTRAINTS** - Base all findings strictly on the provided [CONVERSATION_HISTORY] and state objects. Do not infer or assume information not present. - If no dependent claims were missed, the `missed_dependent_claims` array must be empty. - If the user correction is ambiguous, note this in `audit_notes` and flag the episode for human review. - The `state_field_path` should use dot-notation (e.g., `booking.flight_number`).
To adapt this template, replace the square-bracket placeholders with your actual data. [CONVERSATION_HISTORY] should be a serialized list of turns with speaker roles. [PRE_CORRECTION_STATE] and [POST_CORRECTION_STATE] are snapshots of your application's state object. The most critical adaptation is [DOMAIN_CLAIM_DEFINITIONS]. This should be a concise, structured definition of what types of claims in your system are considered 'dependent' on others. For example, in a travel booking assistant, a claim about a 'return flight date' is dependent on a claim about the 'departure flight date'. Providing this domain-specific logic is what makes the audit record actionable rather than generic. After generating the record, you must run the provided eval checks to validate cascade completeness before the record is stored or reviewed.
Prompt Variables
Required inputs for the Correction Cascade Audit Record Prompt. Each placeholder must be populated before the prompt is assembled. Validation notes describe how to verify the input is well-formed before sending it to the model.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CONVERSATION_TRANSCRIPT] | Full conversation history including the user correction episode and all turns before and after the correction | User: The price is $49.99. Assistant: The price is $59.99. User: No, it's $49.99. Assistant: Understood, the price is $49.99. I've updated the invoice. | Must be a non-empty string with at least 3 turns. Parse check: verify turn boundaries are delimited by newline or speaker label. Reject if the correction turn is missing or ambiguous. |
[CORRECTION_TURN_INDEX] | Zero-based index of the user turn where the correction occurs, used to anchor the audit analysis | 2 | Must be a non-negative integer less than the total turn count. Parse check: confirm the turn at this index contains a user utterance that contradicts a prior assistant claim. Reject if index points to an assistant turn or a non-correction user turn. |
[SYSTEM_POLICIES] | Active system instructions, behavioral constraints, and output contracts in effect during the conversation | Assistant must cite sources for all factual claims. Assistant must not guess prices. Assistant must confirm state changes before applying them. | Must be a non-empty string or structured policy list. Schema check: each policy should be a declarative constraint. Reject if policies are missing or contain only generic instructions like 'be helpful'. |
[STATE_SCHEMA] | JSON Schema or structured description of the conversation state object that the assistant manages, defining all mutable fields | {"type": "object", "properties": {"invoice_total": {"type": "number"}, "customer_name": {"type": "string"}}, "required": ["invoice_total"]} | Must be valid JSON Schema or a structured field list with types. Parse check: validate JSON parse succeeds. Schema check: confirm at least one mutable field is defined. Reject if schema is empty or unparseable. |
[STATE_CHANGE_LOG] | Structured log of state mutations applied by the assistant across turns, including field, old value, new value, and turn index | [{"turn": 1, "field": "invoice_total", "old_value": null, "new_value": 59.99}, {"turn": 3, "field": "invoice_total", "old_value": 59.99, "new_value": 49.99}] | Must be a JSON array of state mutation objects. Schema check: each entry must have turn, field, old_value, and new_value keys. Parse check: validate JSON array parse. Reject if log is empty or missing the correction turn's mutation. |
[DEPENDENCY_GRAPH] | Map of which state fields depend on which other fields, used to detect uncorrected dependent claims | {"invoice_total": ["line_item_sum", "tax_amount"], "tax_amount": ["invoice_total", "tax_rate"]} | Must be a JSON object where keys are field names and values are arrays of dependent field names. Parse check: validate JSON parse. Reject if graph is empty or contains circular dependencies without explicit handling instructions. |
[OUTPUT_SCHEMA] | Expected JSON schema for the audit record output, defining required fields and their types | {"type": "object", "properties": {"original_error": {"type": "object"}, "correction": {"type": "object"}, "cascade_changes": {"type": "array"}, "uncorrected_dependents": {"type": "array"}}, "required": ["original_error", "correction", "cascade_changes", "uncorrected_dependents"]} | Must be valid JSON Schema. Parse check: validate JSON parse. Schema check: confirm required fields include original_error, correction, cascade_changes, and uncorrected_dependents. Reject if schema is missing or lacks cascade-completeness fields. |
Implementation Harness Notes
How to wire the Correction Cascade Audit Record prompt into a reliable batch pipeline with validation, retries, and immutable audit logging.
This prompt is designed for a batch audit pipeline, not a real-time chat handler. It expects a complete conversation segment containing a user correction episode and produces a structured JSON audit record. In your harness, treat the model's output as a candidate audit artifact that must pass schema validation before it is stored. The prompt's value is in surfacing dependent claims that may have been left uncorrected—this is a detection signal, not a repair action. Do not use this prompt's output to automatically trigger state repairs in your production system. The output is an audit record; if you need automated repair, build a separate product workflow that consumes these audit records after human review.
Validation and retry logic is essential. After receiving the model response, validate the output against your expected JSON schema—check that all required fields are present, that correction_turn_number is an integer, that dependent_claims is an array, and that each claim in the cascade has a corrected boolean. If validation fails, retry once by appending the validation errors to the prompt as additional constraints (e.g., 'Your previous output failed validation with the following errors: [ERRORS]. Please correct your response to match the required schema.'). If the retry also fails, log the failure and flag the record for human review. For regulated domains, store three artifacts together as an immutable audit bundle: the raw prompt sent to the model, the raw model response, and the validated output JSON. Each audit record must carry a unique audit_id, the originating session_id, the correction_turn_number, and a UTC timestamp.
Model choice matters for this workflow. Use a model with strong structured output capabilities and a context window large enough to hold the full correction episode plus the prompt instructions. If your conversation segments are long, consider pre-filtering to include only the turns relevant to the correction cascade—the original error turn, the correction turn, and any subsequent turns where dependent claims may have been affected. Do not truncate mid-cascade. Human review is required for any audit record where the model flags uncorrected dependent claims with confidence above 0.7. These records represent potential state corruption in your assistant and should be reviewed before any downstream repair workflow is triggered. Log every audit record, including those that pass validation cleanly, so you can track correction cascade frequency and severity over time.
Expected Output Contract
Fields, format, and validation rules for the Correction Cascade Audit Record. Use this contract to validate the model output before storing or reviewing the audit record.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
correction_episode_id | string (UUID v4) | Must match the input episode identifier. Reject on mismatch or missing field. | |
original_error | object | Must contain turn_index (integer >= 0), claim_text (non-empty string), and error_type (enum: factual_error | policy_violation | hallucination | stale_context | other). Reject if claim_text is empty or error_type is not in enum. | |
user_correction | object | Must contain turn_index (integer > original_error.turn_index), correction_text (non-empty string), and correction_type (enum: explicit_correction | implicit_disagreement | clarification). Reject if turn_index is not after the error turn. | |
downstream_state_changes | array of objects | Each object must have turn_index (integer), state_field (non-empty string), old_value (any, null allowed), new_value (any, null allowed), and change_trigger (enum: direct_correction | cascade | user_override). Array must not be empty. Reject if any object is missing state_field. | |
dependent_claims | array of objects | Each object must have turn_index (integer), claim_text (non-empty string), dependency_on_error (enum: direct | indirect | none), and correction_status (enum: corrected | uncorrected | partially_corrected | not_applicable). Reject if dependency_on_error is none and correction_status is not not_applicable. | |
uncorrected_dependents_flag | boolean | Must be true if any dependent_claim has correction_status of uncorrected or partially_corrected. Reject on mismatch between flag and array contents. | |
cascade_completeness_score | number (0.0 to 1.0) | Must be a float between 0.0 and 1.0 inclusive. Reject if out of range or not a number. Score represents proportion of dependent claims that were corrected. | |
audit_timestamp | string (ISO 8601 UTC) | Must be a valid ISO 8601 datetime string in UTC. Reject on parse failure or non-UTC timezone. |
Common Failure Modes
Correction cascade audits are brittle when the model misses downstream dependencies, hallucinates state changes, or fails to distinguish user corrections from clarifications. These cards cover the most common production failure modes and how to guard against them.
Missed Dependent Claims
What to watch: The model identifies the directly corrected claim but fails to trace downstream claims that were derived from it, leaving stale or contradictory information in the audit record. Guardrail: Include a dedicated 'dependency traversal' step in the prompt that explicitly asks the model to list all claims that referenced or relied on the corrected claim, then verify each for consistency.
Hallucinated State Changes
What to watch: The model invents state mutations that never occurred in the actual conversation, especially when the correction was implicit or the user only hinted at dissatisfaction. Guardrail: Require turn-level evidence citations for every claimed state change. Add a validator that checks each cited turn exists and contains the claimed content before accepting the audit record.
Correction vs. Clarification Confusion
What to watch: The model treats user clarifications or follow-up questions as corrections, inflating the correction count and triggering unnecessary cascade analysis. Guardrail: Add a classification gate before cascade analysis that distinguishes 'user disagrees with prior output' from 'user asks for more detail' using explicit criteria and confidence thresholds.
Incomplete Cascade Termination
What to watch: The audit stops tracing dependencies too early, missing second-order effects where a corrected claim invalidated a claim that invalidated another claim. Guardrail: Implement iterative dependency resolution with a fixed depth limit and a completeness check that flags any claim with unresolved upstream corrections for human review.
Temporal Ordering Errors
What to watch: The audit record places state changes in the wrong chronological order, making it impossible to reconstruct what the system believed at each turn. Guardrail: Require each state change entry to include the turn number and a sequence index. Add a post-processing sort and a validator that rejects records with out-of-order timestamps.
Over-Reporting Minor Adjustments
What to watch: The model treats every minor user preference tweak as a full correction cascade, producing noisy audit records that overwhelm reviewers with low-signal entries. Guardrail: Add a materiality threshold in the prompt that distinguishes 'user changed their mind about a preference' from 'user corrected a factual error,' and only trigger cascade analysis for the latter.
Evaluation Rubric
How to test output quality before shipping this prompt into your audit pipeline. Each criterion targets a specific failure mode in correction cascade records.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Cascade completeness | All downstream state changes triggered by the correction are listed with turn references and change descriptions | Missing state changes that logically depend on the corrected claim; cascade stops at first-order correction only | Run against 10 known correction episodes with manually mapped full cascades; compare record length and coverage |
Dependent claim detection | All assistant claims in subsequent turns that relied on the original error are flagged as [DEPENDENT_CLAIM] with the dependency path noted | Dependent claims present in conversation but absent from the record; claims flagged as dependent without evidence of reliance on the error | Inject synthetic corrections with known dependent claims at turns +1, +3, and +5; verify all are captured with correct dependency paths |
Uncorrected dependent claim flagging | Any dependent claim not explicitly corrected by the user or assistant is marked [UNCORRECTED] with a risk note | Uncorrected dependent claims marked as [CORRECTED] or missing entirely; false positives on claims that were independently grounded | Use conversations where user corrects only the root error but not downstream claims; verify [UNCORRECTED] flag appears on all dependents |
Original error attribution | The record identifies the exact turn, claim text, and error type (factual, reasoning, policy, tool, or reference) for the original error | Error attributed to wrong turn; error type misclassified; original claim text paraphrased instead of quoted exactly | Spot-check 20 records against source conversations; require exact turn number match and claim text match within 5-character edit distance |
Correction trigger classification | The record classifies the correction trigger as [USER_EXPLICIT], [USER_IMPLICIT], [ASSISTANT_SELF], or [TOOL_FEEDBACK] with evidence | Trigger misclassified; [USER_IMPLICIT] used for explicit corrections; missing trigger evidence citation | Test with conversations containing each trigger type; verify classification accuracy and evidence field is non-empty |
State change ordering | All state changes in the cascade are ordered by turn sequence with timestamps or turn indices monotonically increasing | Out-of-order state changes; missing timestamps on changes that span multiple turns; duplicate entries for the same change | Parse output JSON; validate turn index ordering with a monotonicity check; flag any duplicate change IDs |
Schema compliance | Output matches the required JSON schema with all required fields present and no extra top-level keys | Missing required fields; null values where non-nullable; extra fields that violate the output contract | Validate against the JSON schema with a strict validator; reject any output that fails schema.parse() |
Evidence grounding | Every state change and dependent claim includes a [SOURCE_TURN] reference and a [RATIONALE] that cites specific conversation content | Hallucinated state changes with no source turn; rationale that paraphrases rather than cites; source turns that don't contain the referenced content | For each state change, retrieve the cited source turn and verify the change is supported; flag unsupported changes for human review |
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
Start with the base prompt and a single correction episode. Use a lightweight JSON schema with only the core fields: original_error, user_correction, state_changes, and uncorrected_dependents. Skip the cascade graph and timestamp ordering checks initially.
codeYou are analyzing a user correction episode. Given the conversation segment below, produce a JSON record with: - original_error: what the assistant got wrong - user_correction: what the user said to correct it - state_changes: list of downstream fields or claims that were updated - uncorrected_dependents: list of claims that depended on the error but were NOT updated [CONVERSATION_SEGMENT]
Watch for
- Missing dependent claims because the model only looks at adjacent turns
- Overly broad
state_changesthat include unrelated updates - No distinction between explicit corrections and implicit state mutations

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