This prompt is designed for compliance officers, governance teams, and verification pipeline architects who need a machine-readable, human-reviewable audit trail explaining why a specific claim was classified as UNSUPPORTED. It is not a detection prompt; it is a post-classification documentation tool. Use it after your detection prompt has flagged a claim as lacking sufficient evidence. The primary job-to-be-done is to create an immutable, structured record that can be stored in a verification log, attached to a compliance packet, or surfaced during an external audit. The output must serve downstream traceability, not conversational disclosure to end users.
Prompt
Unsupported Statement Audit Trail Generation Prompt Template

When to Use This Prompt
Defines the job-to-be-done, ideal user, required context, and clear boundaries for deploying the Unsupported Statement Audit Trail Generation prompt in a production verification pipeline.
The ideal user is building or operating an automated fact-checking system where every verification decision must be defensible. Required context includes the original claim text, the evidence search history (queries executed and sources retrieved), the final classification verdict, and any reviewer notes. Do not use this prompt for real-time, user-facing explanations; its output is verbose, structured, and designed for internal systems of record. It is also inappropriate for claims that were successfully verified or contradicted—this prompt is specifically scoped to the UNSUPPORTED state, where the absence of evidence is the critical finding.
Before wiring this into your pipeline, ensure you have a reliable upstream detection step that correctly distinguishes UNSUPPORTED from CONTRADICTED and VERIFIED. A common failure mode is generating audit trails for claims that were simply misclassified due to a retrieval failure. The audit trail will faithfully document a broken process if the input classification is wrong. Always validate the upstream verdict before invoking this prompt, and consider adding a human review step for high-severity unsupported claims before the audit record is finalized and stored.
Use Case Fit
Where this prompt delivers value and where it breaks down in production verification pipelines.
Good Fit: Compliance Audit Trails
Use when: governance or compliance teams require a traceable, structured record of why a claim was marked unsupported, including evidence search history and decision rationale. Guardrail: ensure the audit record includes search scope, sources consulted, and reviewer context before finalizing.
Bad Fit: Real-Time Claim Verification
Avoid when: latency budgets are under 500ms or the system must make instant supported/unsupported decisions. Audit trail generation adds reasoning overhead. Guardrail: use a lightweight classification prompt for real-time decisions and generate the audit trail asynchronously post-decision.
Required Inputs
Risk: incomplete audit trails when inputs are missing. Guardrail: require the original claim text, the evidence set searched, the search strategy used, the final classification, and the reviewer identity. Validate all fields are present before generating the trail.
Operational Risk: Stale Audit Records
What to watch: audit trails generated once and never updated when new evidence emerges or classifications change. Guardrail: implement versioning on audit records with update timestamps and change rationale fields. Link audit records to live claim status.
Operational Risk: Incomplete Search Documentation
What to watch: audit trails that claim exhaustive search but omit failed queries, zero-result searches, or sources excluded by policy. Guardrail: require explicit documentation of search scope boundaries, excluded sources with reasons, and queries that returned no results.
Scale Limit: High-Volume Claim Batches
What to watch: generating full audit trails for every claim in a batch of 10,000+ creates storage and cost problems. Guardrail: tier audit detail by severity—full trails for high-risk claims, summary trails for low-risk, and aggregate reports for bulk processing with spot-check sampling.
Copy-Ready Prompt Template
Paste this prompt into your verification pipeline after a claim has been flagged as unsupported. Replace square-bracket placeholders with live data from your system.
This template generates a structured, audit-ready record explaining why a specific claim was marked as unsupported. It captures the evidence search history, the decision rationale, and the reviewer context required for compliance and governance teams. The output is designed to be stored as an immutable record in your verification log, providing traceability from claim to verdict.
textYou are an audit trail generator for a fact-checking pipeline. Your task is to produce a structured record explaining why a claim was marked UNSUPPORTED. Do not re-evaluate the claim. Document the process that led to the unsupported verdict. ## CLAIM [CLAIM_TEXT] ## CLAIM ID [CLAIM_ID] ## VERIFICATION CONTEXT - Source Document: [SOURCE_DOCUMENT_REFERENCE] - Extraction Timestamp: [EXTRACTION_TIMESTAMP] - Pipeline Stage: [PIPELINE_STAGE] ## EVIDENCE SEARCH HISTORY [EVIDENCE_SEARCH_LOG] ## VERDICT UNSUPPORTED ## CONSTRAINTS - Do not invent evidence or sources not present in the search history. - If the search history is empty or incomplete, state that explicitly. - Use precise language: distinguish between 'no evidence found' and 'evidence is insufficient.' - Do not speculate on why evidence is missing. ## OUTPUT SCHEMA Return a single JSON object with the following fields: { "audit_record_id": "string, unique identifier for this audit entry", "claim_id": "string, the provided claim ID", "verdict": "UNSUPPORTED", "decision_rationale": "string, a concise explanation of why the claim is unsupported based on the evidence search history", "evidence_search_summary": { "sources_consulted": ["string, list of sources searched"], "queries_executed": ["string, list of search queries used"], "total_results_reviewed": "number", "relevant_results_found": "number", "search_timestamp_start": "ISO 8601 string", "search_timestamp_end": "ISO 8601 string" }, "evidence_gap_description": "string, specific description of what evidence would be needed to verify this claim", "reviewer_context": { "pipeline_version": "string", "model_version": "string", "reviewer_notes": "string or null, any additional context for human reviewers" }, "compliance_checks": { "evidence_exhaustion_declared": "boolean, was the search formally declared complete?", "human_review_required": "boolean, does this claim require human review?", "policy_version_applied": "string, version of the verification policy used" }, "generated_at": "ISO 8601 timestamp" }
To adapt this template, replace each square-bracket placeholder with live data from your pipeline. The [EVIDENCE_SEARCH_LOG] should contain the raw output of your retrieval system, including queries, sources, and timestamps. If your system uses a structured evidence store, serialize it into the log field. For high-compliance environments, ensure the compliance_checks block is populated by a separate policy engine, not by the model's own judgment. After generation, validate the JSON schema, confirm that no sources were invented by cross-referencing the sources_consulted list against your actual search index, and append the record to your immutable audit log before any human review step.
Prompt Variables
Every placeholder this prompt expects, why it matters, and how to validate it before injection. Use this table to build a safe injection harness that prevents empty fields, malformed evidence, and missing traceability metadata from reaching the model.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CLAIM_TEXT] | The exact claim statement being evaluated for evidence sufficiency | The Q3 revenue increased by 12% year-over-year according to the earnings call | Non-empty string required. Reject null or whitespace-only input. Log original text before any normalization for audit trail fidelity |
[EVIDENCE_SET] | Array of retrieved evidence objects with source metadata, content, and retrieval scores | [{"source_id": "doc-451", "content": "Q3 revenue reached $4.2B...", "retrieval_score": 0.89, "source_type": "transcript"}] | Must be valid JSON array. Each object requires source_id, content, and source_type fields. Reject empty arrays with a NO_EVIDENCE_AVAILABLE flag rather than passing to model |
[SEARCH_HISTORY] | Ordered list of search queries executed during evidence retrieval with timestamps and result counts | [{"query": "Q3 2024 revenue earnings call", "timestamp": "2025-01-15T14:22:00Z", "results_returned": 24}] | Must be valid JSON array with timestamp in ISO 8601 format. Each entry requires query, timestamp, and results_returned. Missing search history should trigger a retrieval replay before audit generation |
[VERIFICATION_POLICY] | Organizational policy document defining evidence sufficiency thresholds and unsupported claim handling rules | Policy v2.3: Claims require minimum 2 corroborating sources from primary documents. Single-source claims marked UNSUPPORTED. | Non-empty string or structured policy object required. Validate policy version and effective date. Reject expired or deprecated policy references. Log policy version in audit trail |
[REVIEWER_CONTEXT] | Metadata about the human reviewer or review team assigned to this verification task | {"reviewer_id": "rev-782", "team": "compliance-verification", "expertise_level": "senior", "workload_score": 0.4} | Optional but recommended. If provided, must include reviewer_id. Null allowed when auto-verification is configured. Validate reviewer_id against active directory if human-in-the-loop is required |
[TRACE_ID] | Unique identifier linking this audit record to the upstream verification pipeline run | trace-2025-01-15-14-22-00-abc123 | Required. Must be non-empty UUID or structured trace identifier. Validate format against pipeline trace ID schema. Reject duplicate trace IDs to prevent audit record collisions |
[OUTPUT_SCHEMA] | Expected structure for the audit trail output including required fields and compliance metadata | {"required_fields": ["claim_id", "verdict", "evidence_summary", "decision_rationale", "reviewer_attestation"], "compliance_standard": "SOC2-TypeII"} | Must be valid JSON schema definition. Validate that required_fields array is non-empty. Reject schemas missing decision_rationale or reviewer_attestation when compliance mode is active |
[COMPLIANCE_CHECKLIST] | List of regulatory or governance requirements this audit record must satisfy | ["Evidence chain must be reproducible", "Decision rationale must cite specific policy sections", "Reviewer attestation required for all UNSUPPORTED verdicts"] | Must be valid JSON array of strings. Each checklist item should be a verifiable requirement. Empty array allowed for non-regulated workflows. Log which checklist items were satisfied vs. deferred in audit output |
Implementation Harness Notes
How to wire the Unsupported Statement Audit Trail Generation prompt into a production verification pipeline with retry logic, validation, and storage.
The audit trail prompt is a high-stakes component in a compliance pipeline. Its output is not a user-facing answer but a machine-readable record that must be stored, indexed, and potentially reviewed by auditors. The implementation harness must therefore treat the prompt as a record producer, not a conversational agent. The primary integration points are: a claim intake queue, a verification evidence store, the prompt execution service, a structured output validator, a retry/recovery layer, and an audit log database. Each claim that enters the pipeline should carry a unique claim_id and a verification_run_id to ensure every audit trail record is traceable back to its originating workflow.
The harness should enforce a strict validate-then-store contract. After the model returns a response, the first step is schema validation against the expected JSON output shape. Use a JSON Schema validator to confirm the presence and types of required fields: claim_id, verdict, evidence_search_summary, decision_rationale, reviewer_context, and traceability_metadata. If validation fails, do not store a partial record. Instead, route the failure to a retry queue with the original prompt, the validation error message, and a retry_count. Implement a maximum of 3 retries with exponential backoff. If all retries are exhausted, log the failure to a dead-letter queue and create a manual review ticket with the full prompt context and raw model output attached. This prevents silent data loss in the audit trail.
For storage, write each validated audit trail record as an immutable append-only entry in a dedicated audit_trail table or collection. The record should include the full prompt template used, the model version, the timestamp, and the validated output. Never update an audit trail record in place. If a claim is re-verified later, create a new record with a new verification_run_id and a reference to the previous record. This preserves the full decision history. Additionally, the harness should emit a structured log event for every verification attempt, including successful validations, retries, and dead-letter escalations, so that operations teams can monitor pipeline health and audit trail completeness in real time.
Model choice matters for this workflow. Use a model with strong instruction-following and structured output capabilities, such as gpt-4o or claude-3.5-sonnet, and set temperature=0 to maximize determinism. The prompt template includes a [RISK_LEVEL] parameter; when this is set to high, the harness should automatically flag the output for mandatory human review before the audit trail record is finalized. In this case, the record is written with a status: pending_review and a notification is sent to the designated review queue. Only after a human reviewer approves the record does its status change to final. This gating mechanism ensures that high-risk unsupported claims receive appropriate oversight without blocking the entire pipeline.
Finally, integrate the audit trail generation step into your broader verification workflow orchestration. The prompt should fire after evidence retrieval and sufficiency scoring are complete, and only when the claim has been classified as UNSUPPORTED. Do not generate audit trails for VERIFIED or CONTRADICTED claims unless your compliance policy explicitly requires it, as this will bloat storage and create noise. Use the traceability_metadata field to include the evidence search query history, the list of sources consulted, and the timestamp of the evidence exhaustion declaration. This ensures the audit trail is a self-contained record that an auditor can review without accessing external systems.
Expected Output Contract
The exact JSON schema, field types, and pass/fail validation rules your system should enforce for the Unsupported Statement Audit Trail Generation prompt.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
audit_id | string (UUID v4) | Must match UUID v4 regex. Reject if missing or malformed. | |
claim_text | string | Must be non-empty and exactly match the input claim. Reject on truncation or alteration. | |
verification_status | enum: UNSUPPORTED | UNVERIFIABLE | Must be one of the allowed enum values. Reject any other status. | |
evidence_search_history | array of objects | Array must contain at least 1 search attempt. Each object must have query, source, timestamp, and results_count fields. | |
decision_rationale | string | Must be non-empty, minimum 50 characters. Reject if it contains only generic phrases like 'no evidence found' without specific reasoning. | |
reviewer_context | object | Must contain reviewer_id, review_timestamp, and review_notes fields. reviewer_id must be non-empty. | |
compliance_checklist | array of objects | Array must contain at least 3 checklist items. Each item must have item_id, description, and passed (boolean) fields. | |
traceability_metadata | object | Must contain pipeline_version, model_id, and processing_timestamp fields. pipeline_version must follow semver format. |
Common Failure Modes
What breaks first when generating audit trails for unsupported statements and how to guard against it.
Silent Evidence Omission
What to watch: The model generates a clean audit trail but omits key search queries or sources that returned zero results, creating a false impression of thoroughness. Guardrail: Require explicit search_attempts and null_result_sources fields in the output schema. Validate that every declared evidence gap maps to at least one logged search action.
Decision-Justification Mismatch
What to watch: The model correctly flags a claim as UNSUPPORTED but provides a rationale that contradicts the evidence log or invents plausible-sounding but false reasons. Guardrail: Implement a post-generation consistency check that verifies every sentence in the decision_rationale field is traceable to a logged search_result or source_absence record. Flag mismatches for human review.
Premature Exhaustion Declaration
What to watch: The model declares evidence search complete after only one or two queries, missing obvious alternative search paths and producing an incomplete audit trail. Guardrail: Enforce a minimum search diversity threshold in the harness—require at least N distinct query formulations or source types before accepting an exhaustion declaration. Log violations as incomplete audits.
Temporal Context Drift
What to watch: The audit trail references evidence sources without capturing their publication dates or the time window searched, making it impossible to determine if the search was temporally adequate. Guardrail: Require search_time_range and per-source publication_date fields in the audit schema. Validate that the declared search window covers the claim's relevant time period.
Confidence Inflation on Thin Evidence
What to watch: The model assigns moderate or high confidence to an UNSUPPORTED verdict despite sparse search activity, misleading downstream systems that rely on confidence scores for routing. Guardrail: Implement a confidence suppression rule: if search_attempts < threshold or sources_consulted < minimum, automatically cap the confidence score and append a low-effort caveat to the audit record.
Reviewer Context Starvation
What to watch: The generated audit trail is technically complete but lacks the narrative context a human reviewer needs to understand why specific search paths were chosen or abandoned. Guardrail: Include a required search_strategy_summary field that explains the search logic in plain language. Validate that this summary references the actual queries executed, not generic descriptions.
Evaluation Rubric
Run these checks on a golden dataset of 20-50 known unsupported claims before shipping the audit trail prompt to production. Each criterion targets a specific failure mode observed in audit trail generation.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Audit Record Completeness | Every required field in [OUTPUT_SCHEMA] is present and non-null for all 50 test claims | Missing decision_rationale, evidence_search_history, or reviewer_context fields in any record | Schema validation script checks field presence across batch output; flag any record with null required fields |
Evidence Search Traceability | evidence_search_history contains at least one search action with timestamp, query, and sources_consulted for every claim | Empty search history array or missing timestamp/query/sources_consulted fields | Parse each audit record; assert evidence_search_history.length >= 1; assert each entry has non-empty timestamp, query, and sources_consulted |
Decision Rationale Specificity | decision_rationale references specific evidence gaps, not generic statements like 'insufficient evidence' | Rationale contains only boilerplate phrases without naming specific missing evidence types or sources | Keyword exclusion check for banned phrases: 'insufficient evidence', 'not enough information', 'cannot verify' without further detail; require at least one specific gap named |
Reviewer Context Packaging | reviewer_context includes claim text, source document reference, and evidence gap summary for all 50 claims | Missing claim text, source reference, or gap summary in reviewer_context | Field presence check on reviewer_context sub-fields; assert claim_text, source_document, and gap_summary are all present and non-empty |
Timestamp and Trace ID Presence | Every audit record has a unique trace_id and ISO 8601 timestamp in audit_metadata | Duplicate trace_ids across records or missing/malformed timestamps | Uniqueness check on trace_id across batch; regex validation on timestamp format against ISO 8601 pattern |
Compliance Checklist Completeness | compliance_checklist contains all required items from [COMPLIANCE_REQUIREMENTS] with pass/fail/not_applicable values | Missing checklist items or items left without a status value | Compare compliance_checklist keys against [COMPLIANCE_REQUIREMENTS] schema; assert every required item present with value in [pass, fail, not_applicable] |
Unsupported Classification Consistency | All 50 known-unsupported claims receive unsupported classification; no false supported verdicts | Any known-unsupported claim classified as supported or verified | Golden dataset label comparison; assert classification field equals 'unsupported' for all 50 test claims; flag any deviation |
Human Review Flag Accuracy | human_review_required is true for claims meeting escalation criteria defined in [ESCALATION_RULES]; false otherwise | Escalation-required claims missing review flag or low-risk claims incorrectly flagged | Apply [ESCALATION_RULES] programmatically to each claim; compare expected human_review_required value against generated value; require exact match |
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 compliance framework (e.g., SOC 2). Use a lightweight JSON schema for the audit record but skip strict enum validation. Run against 5-10 known unsupported claims and manually review output shape.
Watch for
- Missing traceability fields like [SEARCH_QUERIES] or [SOURCES_CONSULTED]
- Decision rationale that paraphrases the claim instead of explaining the evidence gap
- Timestamps rendered as prose instead of ISO 8601

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