This prompt is designed for governance teams and compliance engineers who need to produce structured, auditable decision records from human review queue items. Use it when a reviewer has made a decision on a flagged item and the system must capture a complete audit trail that includes the rationale, evidence considered, alternatives rejected, and reviewer identity. The primary job-to-be-done is transforming a reviewer's action and notes into a machine-readable, human-auditable artifact that can be stored in a system of record and retrieved during internal audits or regulatory examinations. It is appropriate for regulated industries, internal policy enforcement, and any workflow where downstream auditors or regulators may need to reconstruct why a specific action was taken.
Prompt
Review Item Decision Audit Trail Prompt for Compliance Records

When to Use This Prompt
Defines the ideal scenario, user, and prerequisites for generating a compliance-grade audit trail from a human reviewer's decision.
The ideal user is a compliance engineer integrating this prompt into a review queue application. Required context includes the original flagged item, the reviewer's decision and notes, any evidence or policy documents referenced, and the reviewer's authenticated identity. This prompt is not a replacement for a legal review process or a system of record; it is the formatting layer that turns a reviewer's action into a compliance artifact. Do not use this prompt to make the decision itself—it assumes a human has already adjudicated the item. It is also not suitable for generating real-time alerts or for cases where the decision logic must be kept secret from the model provider.
Before using this prompt, ensure you have a reliable method for capturing the reviewer's identity from your authentication layer and injecting it into the [REVIEWER_IDENTITY] placeholder. The output should be validated against a defined schema before being committed to your audit log. If the review item involves multiple reviewers or a multi-step approval chain, use this prompt for each individual decision point rather than attempting to summarize the entire workflow in one record. For high-stakes domains, always pair this prompt with a human-in-the-loop confirmation step before the audit record is finalized.
Use Case Fit
Where the Review Item Decision Audit Trail Prompt delivers value and where it introduces unacceptable risk.
Good Fit: Regulated Review Workflows
Use when: You need a structured, auditable record of a human decision on an AI-generated review item. Guardrail: The prompt excels at capturing rationale, evidence considered, and alternatives rejected, making it ideal for compliance-mandated review trails in finance, healthcare, or legal operations.
Bad Fit: Real-Time Autonomous Decisions
Avoid when: The system must act immediately without human intervention. Guardrail: This prompt is designed for post-hoc or pre-action human review records, not for generating decisions in a low-latency autonomous loop. Use a confidence-threshold escalation prompt instead.
Required Inputs: Complete Review Context
Risk: An incomplete audit trail is worse than no trail, creating a false sense of security. Guardrail: The prompt requires the full review item, all evidence attachments, the reviewer's identity, and the final decision. Do not call this prompt if any of these inputs are missing; use a missing-information interruption prompt first.
Operational Risk: Rationale Hallucination
What to watch: The model may invent plausible-sounding but false justifications for a decision, especially when evidence is sparse. Guardrail: Implement an eval check that verifies every sentence in the rationale is directly grounded in a provided evidence source. Flag unsupported statements for human correction before the record is finalized.
Operational Risk: Immutable Record Integrity
What to watch: The generated audit trail is a compliance record and must be protected from post-hoc alteration. Guardrail: The application layer, not the prompt, must write the output to an append-only, immutable data store with a timestamp and a hash. The prompt's job is to structure the content; the system's job is to preserve it.
Bad Fit: Low-Stakes, High-Volume Triage
Avoid when: You are processing thousands of low-risk items where a simple pass/fail log is sufficient. Guardrail: The overhead of generating a full structured rationale for every item will slow down reviewers and waste token budget. Reserve this prompt for high-severity, high-impact, or regulated decisions that require a detailed paper trail.
Copy-Ready Prompt Template
A copy-ready prompt template for generating a structured, auditable decision record from a human reviewer's action on a queued item.
This prompt template is designed to be the single source of truth for generating a compliance-grade audit trail. It ingests the raw details of a review item and the human reviewer's final action, then produces a structured record that captures not just the decision, but the rationale, evidence considered, and alternatives rejected. The primary goal is to make the decision explainable to an auditor months later, without requiring the original reviewer to recall the context.
codeYou are an audit record generator for a compliance system. Your task is to produce a structured decision record from a human reviewer's action on a queued item. The record must be self-contained, evidence-based, and suitable for external audit. ## INPUTS - [REVIEW_ITEM]: The full, unredacted content of the item that was reviewed. - [REVIEWER_ACTION]: The action taken by the human reviewer (e.g., APPROVED, REJECTED, ESCALATED, REQUESTED_CHANGES). - [REVIEWER_NOTES]: Any unstructured notes, comments, or annotations provided by the reviewer during the decision. - [REVIEWER_IDENTITY]: A unique identifier for the reviewer (e.g., email, employee ID). - [POLICY_CONTEXT]: The specific policy, regulation, or internal standard against which the item was reviewed. ## OUTPUT_SCHEMA Generate a JSON object conforming to this exact schema: { "audit_record": { "record_id": "string, a unique ID for this decision record", "timestamp": "string, ISO 8601 timestamp of the decision", "reviewer": { "identity": "string, from [REVIEWER_IDENTITY]", "action": "string, from [REVIEWER_ACTION]" }, "item_summary": "string, a one-sentence summary of the [REVIEW_ITEM]", "decision_rationale": { "primary_reason": "string, the single most important reason for the decision, synthesized from [REVIEWER_NOTES] and [POLICY_CONTEXT]", "evidence_considered": [ { "source": "string, a reference to a specific part of the [REVIEW_ITEM]", "finding": "string, what the evidence showed and how it influenced the decision" } ], "policy_alignment": "string, an explanation of how the decision aligns with or deviates from the [POLICY_CONTEXT]" }, "alternatives_rejected": [ { "alternative_action": "string, another possible action that was not taken", "rejection_reason": "string, why this alternative was rejected, based on evidence and policy" } ], "completeness_check": { "all_required_evidence_reviewed": "boolean, true if the rationale covers all critical parts of the [REVIEW_ITEM]", "missing_context_note": "string or null, a note if any standard context was missing from the review packet" } } } ## CONSTRAINTS - Do not fabricate evidence. If the [REVIEWER_NOTES] or [REVIEW_ITEM] do not support a finding, do not invent one. - If the reviewer's rationale is unclear from the notes, set the `primary_reason` to "RATIONALE_NOT_DOCUMENTED" and flag the record for human review. - The `alternatives_rejected` array must contain at least one alternative, even if it is a generic "DO_NOTHING" option. - The output must be valid JSON. Do not include any text outside the JSON object.
To adapt this template, start by mapping your system's existing data fields to the placeholders. The [REVIEW_ITEM] should be a serialized object containing all context the reviewer saw, not just a database ID. The [POLICY_CONTEXT] is critical for audit defensibility; it should be a stable reference to a specific policy version. Before deploying, run this prompt against a set of historical decisions where you know the expected rationale. Use an LLM-as-judge eval to check if the generated primary_reason and policy_alignment fields are faithful to the reviewer's notes and the cited policy. A common failure mode is the model hallucinating a plausible-sounding but incorrect policy alignment, so a strict evaluation against your policy documents is essential.
Prompt Variables
Required inputs for the Review Item Decision Audit Trail Prompt. Each placeholder must be populated before the prompt is assembled. Missing or invalid inputs will cause the audit trail to fail completeness checks.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[REVIEW_ITEM] | The complete work item requiring a decision, including all evidence, context, and prior actions taken by the AI system. | {"item_id": "REV-2025-00412", "summary": "Flagged transaction exceeding threshold", "evidence": [{"source": "tx_log", "content": "..."}]} | Must be a valid JSON object with item_id, summary, and evidence array. Reject if evidence is empty or item_id is missing. |
[DECISION_OPTIONS] | The set of possible decisions available to the reviewer, each with a label, description, and consequence summary. | ["approve", "reject", "request_more_info", "escalate_to_compliance_officer"] | Must contain at least two options. Each option must have a unique label. Reject if options are ambiguous or overlapping. |
[REVIEWER_IDENTITY] | The identifier of the human reviewer making the decision, captured from the authenticated session. | "reviewer-uuid-789" or {"id": "jane.doe@company.com", "role": "compliance_analyst"} | Must be non-empty string or object with id field. Null not allowed. Validate against active reviewer directory if available. |
[DECISION_TIMESTAMP] | The ISO 8601 timestamp when the reviewer submitted their decision, captured at submission time. | "2025-03-15T14:22:31Z" | Must parse as valid ISO 8601 UTC timestamp. Reject future timestamps beyond 5-minute clock skew tolerance. Reject timestamps older than review item creation date. |
[EVIDENCE_CONSIDERED] | The list of evidence items the reviewer actually evaluated, with annotations on which were dispositive and which were discarded. | [{"evidence_id": "tx_log_001", "considered": true, "dispositive": true, "notes": "Amount clearly exceeds policy limit"}] | Must be an array with at least one item. Each item must reference an evidence_id present in [REVIEW_ITEM]. Dispositive flag must be true for at least one item. |
[ALTERNATIVES_REJECTED] | The list of decision options the reviewer considered but did not select, with a brief rationale for rejection. | [{"option": "escalate_to_compliance_officer", "rejection_rationale": "Policy is clear; escalation would add unnecessary delay"}] | Must reference options from [DECISION_OPTIONS] that were not selected. Each rejected alternative requires a non-empty rejection_rationale. Null allowed if no alternatives were considered. |
[RATIONALE_STATEMENT] | The reviewer's free-text explanation of why the selected decision was chosen, referencing specific evidence and policy. | "Transaction REV-2025-00412 exceeds the $10,000 threshold defined in Policy FIN-2024-03. Evidence tx_log_001 confirms amount of $12,450. No exemptions apply." | Must be non-empty string with minimum 50 characters. Must reference at least one evidence_id or policy citation. Reject if rationale is generic or contains only the decision label repeated. |
[OVERRIDE_FLAG] | Boolean indicating whether the reviewer is overriding an AI recommendation. If true, additional override justification fields are required. | Must be boolean true or false. If true, [OVERRIDE_REASON] and [OVERRIDE_POLICY_REFERENCE] become required. Reject if override is true but justification is missing. |
Implementation Harness Notes
How to wire the audit trail prompt into a compliance review workflow with validation, retries, and evidence grounding.
The Review Item Decision Audit Trail Prompt is designed to sit at the final stage of a human review workflow, after a reviewer has made a decision on a queued item. The prompt takes the review item, the decision, the reviewer's rationale, and any supporting evidence and produces a structured, auditable record. This record becomes the compliance artifact that governance teams, auditors, and internal reviewers can search, replay, and verify. The prompt is not a decision-maker; it is a record-formatter that enforces completeness and traceability.
Wire this prompt into your application as a synchronous post-decision step. When a reviewer submits their decision, the application should assemble the [REVIEW_ITEM], [DECISION], [REVIEWER_ID], [RATIONALE], and [EVIDENCE_SOURCES] inputs and call the model. The output must be validated against the [OUTPUT_SCHEMA] before being written to the audit log. Implement a strict JSON schema validator that checks for required fields: decision_id, timestamp, reviewer, decision, rationale_summary, evidence_considered, alternatives_rejected, and compliance_flags. If validation fails, retry once with the validation errors appended to the prompt as [PREVIOUS_ERRORS]. If the second attempt also fails, log the raw output, flag the record for manual audit review, and alert the compliance engineering channel. Do not silently accept malformed audit records.
For model choice, prefer a model with strong instruction-following and structured output capabilities. If your compliance requirements prohibit sending review data to external APIs, use a local or private deployment. The prompt's [RISK_LEVEL] parameter should be set based on the review item's regulatory sensitivity. For high-risk items, consider adding a second-pass verification: run the generated audit record through a separate fact-checking prompt that verifies the evidence_considered fields are actually present in the source [REVIEW_ITEM] and that the rationale_summary does not introduce claims absent from the reviewer's [RATIONALE]. This two-stage harness catches hallucinated evidence references before they enter the permanent audit log.
Log every step: the input assembly, the model request, the raw response, the validation result, any retries, and the final stored record. Include the prompt version and model identifier in the log. This traceability is essential for demonstrating to auditors that the audit trail generation process itself is controlled and reproducible. Avoid wiring this prompt into asynchronous fire-and-forget pipelines where a failure might go unnoticed. The audit record is the compliance artifact; treat its generation with the same reliability engineering you would apply to a financial transaction log.
Expected Output Contract
Validate the structure and content of the audit trail record before it is written to the compliance system. Each field must satisfy the stated validation rule or the output must be rejected and retried.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
decision_id | string (UUID v4) | Must parse as valid UUID v4; reject if missing or malformed | |
review_item_id | string | Must match the [REVIEW_ITEM_ID] input exactly; reject on mismatch | |
reviewer_identity | object | Must contain reviewer_id and reviewer_role; both non-empty strings; reject if absent or blank | |
decision | enum: [APPROVED, REJECTED, NEEDS_INFO, ESCALATED] | Must be exactly one of the allowed enum values; reject any other string | |
rationale_summary | string | Must be 50-500 characters; reject if shorter or longer; must not be identical to [REVIEW_ITEM_CONTEXT] | |
evidence_considered | array of objects | Must contain at least 1 item; each item must have source_id (string) and relevance (enum: [DIRECT, SUPPORTING, BACKGROUND]); reject empty array or missing relevance | |
alternatives_rejected | array of strings | If present, each string must be 10-200 characters; null allowed; reject if array contains non-string elements | |
confidence_level | enum: [HIGH, MEDIUM, LOW] | Must be exactly one of the allowed enum values; reject if missing or invalid | |
timestamp | string (ISO 8601 UTC) | Must parse as valid ISO 8601 datetime in UTC; reject if unparseable or non-UTC offset |
Common Failure Modes
What breaks first when generating compliance audit trails and how to guard against it.
Rationale Drift Toward Generic Language
What to watch: The model produces vague justifications like 'decision was appropriate' or 'evidence supported the conclusion' without citing specific facts, clauses, or document sections. This fails audit requirements for traceable reasoning. Guardrail: Require the prompt to output a rationale field with explicit references to evidence IDs, clause numbers, or timestamped source excerpts. Add an eval check that rejects rationale strings under 100 characters or lacking at least one concrete evidence pointer.
Missing or Incomplete Reviewer Identity Capture
What to watch: The audit record is generated without a verified reviewer identifier, timestamp, or approval mechanism, making the trail legally insufficient. The model may hallucinate a reviewer name or omit the field entirely. Guardrail: Never let the model generate the reviewer identity. Inject reviewer_id, review_timestamp, and approval_status from the application layer after human action. Validate that these fields are non-null and match an active directory before the record is committed.
Alternatives Considered Are Fabricated or Empty
What to watch: The alternatives_rejected section is either an empty array or contains plausible-sounding but fictional options the model invented to satisfy the schema. Auditors will flag fabricated alternatives as a record integrity failure. Guardrail: Constrain the prompt to only list alternatives that were explicitly surfaced in the review item's options array. If no alternatives were presented, the field must be an empty array with a null_reason explanation. Validate that every rejected alternative maps to a known option ID from the input.
Evidence-to-Conclusion Gap
What to watch: The model cites evidence that does not actually support the stated conclusion, or draws inferences that go beyond what the source material contains. This creates a false audit trail that appears grounded but fails under scrutiny. Guardrail: Add a post-generation verification step that extracts each evidence citation and checks for semantic entailment between the cited passage and the conclusion claim. Flag records where entailment confidence is below threshold for human re-review before the audit record is finalized.
Temporal Inconsistency in Decision Records
What to watch: The model generates a decision rationale that references information, policies, or events that were not available at the time the decision was actually made. This creates an anachronistic audit trail that fails temporal integrity checks. Guardrail: Provide a decision_timestamp and a knowledge_cutoff in the prompt context. Instruct the model to only reference evidence and policies dated before the decision timestamp. Add a validation rule that flags any citation with a date after the decision window.
Schema Drift Under Edge-Case Inputs
What to watch: When the review item contains unusual fields, missing evidence, or conflicting sources, the model abandons the required output schema and produces free-text or malformed JSON. This breaks downstream audit record ingestion. Guardrail: Use a strict JSON schema with required fields and enum constraints in the prompt. Implement a schema validator in the application layer that rejects non-conforming outputs and triggers a retry with the validation error message injected into the retry prompt. Escalate to human draft if retries exceed limit.
Evaluation Rubric
Criteria for testing whether the audit trail output is complete, grounded, and ready for compliance review before shipping the prompt.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Decision record completeness | All required fields present: decision_id, reviewer_identity, timestamp, decision, rationale, evidence_considered, alternatives_rejected | Missing any required field; null or empty string in a non-nullable field | Schema validation against [OUTPUT_SCHEMA]; parse check for all required keys |
Reviewer identity capture | reviewer_identity field contains a non-empty identifier traceable to an authenticated user or system principal | reviewer_identity is null, 'unknown', 'system', or a generic placeholder | Regex check for non-empty, non-generic value; audit log correlation test |
Rationale sufficiency | rationale field contains at least 3 substantive sentences explaining why the decision was reached, referencing specific evidence items | rationale is fewer than 3 sentences, uses vague language without evidence reference, or restates the decision without reasoning | LLM-as-judge eval with rubric: minimum sentence count, evidence mention count, causal connector presence |
Evidence grounding | Every claim in rationale maps to at least one item in evidence_considered array; evidence items include source identifier and excerpt | Claim in rationale with no corresponding evidence item; evidence item missing source or excerpt | Claim-to-evidence alignment check: extract claims from rationale, verify each has a matching evidence_considered entry by source_id |
Alternatives rejected documentation | alternatives_rejected array contains at least one entry with alternative description and rejection reason | alternatives_rejected is empty, null, or contains entries without rejection reasons | Array length check; field completeness check per alternative entry |
Timestamp validity | timestamp is ISO 8601 format and falls within the review session window | timestamp is malformed, in the future, or predates the review item creation | ISO 8601 parse check; bounds check against review_item_created_at and current_time |
Decision field constrained values | decision field matches one of the allowed enum values: [APPROVED, REJECTED, ESCALATED, NEEDS_INFO] | decision value outside allowed enum; null or empty string | Enum membership check against allowed values list |
Audit immutability markers | Output includes a content_hash or version field enabling downstream tamper detection | No hash or version field present; hash does not match payload content | Hash recalculation and comparison; field presence check |
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 audit trail template and a single decision type. Use a lightweight JSON schema without strict enum constraints. Run against 10–20 historical decisions to see where the model omits fields or fabricates evidence references.
code[SYSTEM]: You are an audit recorder. For the decision below, produce a JSON record with fields: decision_id, decision, rationale, evidence_considered, alternatives_rejected, reviewer_identity. [DECISION]: [DECISION_TEXT]
Watch for
- Missing
alternatives_rejectedwhen the decision was obvious - Fabricated
evidence_consideredentries that don't appear in the source material reviewer_identitypopulated with placeholder values when no identity was provided

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