This prompt is designed for the handoff point between an automated guardrail detection system and a human review queue. Its job is to eliminate the 'context hunt' that slows down human adjudicators. When a detection system flags a violation, the raw signal is often just a score and a snippet. A reviewer needs the full conversation history, the specific policy clause that was violated, the severity classification, and a structured recommendation to make a fast, consistent decision. This prompt assembles those disparate pieces into a single, reviewer-ready evidence package, ensuring the human can adjudicate the violation without opening five other systems.
Prompt
Evidence Package Assembly Prompt for Human Review

When to Use This Prompt
Defines the operational context for assembling an adjudication packet, including the ideal user, required inputs, and scenarios where this prompt should not be used.
The ideal user is a trust and safety engineer, compliance officer, or operations lead who is building a human-in-the-loop (HITL) escalation pipeline. The required inputs are a structured violation detection record (containing the violating excerpt and severity), the full conversation context, and the relevant policy library. The prompt enforces a completeness validation step, refusing to produce a package if critical evidence is missing. This prevents 'under-evidenced' escalations that waste reviewer time and erode trust in the automation. It is designed to be wired into a middleware layer that fetches context from your database and policy store before calling the LLM.
Do not use this prompt for real-time blocking decisions where latency is measured in milliseconds. Evidence assembly adds a non-trivial delay and is meant for asynchronous review queues. Similarly, do not use it when the violation is pre-authorized for automated remediation (e.g., a hard block on known malicious patterns). If you skip the human review step, you are generating a structured packet that no one will read, wasting compute. Finally, avoid using this prompt if your detection system does not reliably capture the violating excerpt; the prompt's completeness check will cause it to fail closed, which is safe but will stall your pipeline.
Use Case Fit
Where the Evidence Package Assembly Prompt works and where it introduces risk. Use this to decide if the prompt fits your review queue workflow.
Good Fit: Automated Detection to Human Review Pipelines
Use when: You have an automated guardrail or detection system that flags content and you need a structured, auditable packet for a human reviewer to adjudicate. Guardrail: Ensure the detection system provides a stable identifier, violation type, and raw excerpt before calling this prompt.
Bad Fit: Real-Time User-Facing Interventions
Avoid when: The system must block or warn a user synchronously. This prompt is designed for asynchronous review queues, not for generating instant user-facing explanations. Guardrail: Use a lightweight classification prompt for real-time blocks and reserve this for the post-event review packet.
Required Inputs: Source Excerpts and Policy References
What to watch: The prompt will hallucinate or produce a vague package if given only a violation label without the raw conversation or document excerpt. Guardrail: Always provide the full, unredacted source text and the specific policy clause that was violated as input variables.
Operational Risk: Under-Evidenced Escalations
What to watch: The model may assemble a package that looks complete but lacks a direct quote or misattributes the policy. This trains reviewers to trust low-quality evidence. Guardrail: Implement a post-generation completeness validator that checks for the presence of a direct quote and a policy citation before the case enters the queue.
Operational Risk: Normalization of Deviance in Review Scores
What to watch: If the prompt always suggests a "Medium" severity for ambiguous cases, reviewers may stop applying independent judgment. Guardrail: The prompt must instruct the model to explicitly separate the evidence summary from the suggested remediation, and the UI should ask the reviewer to confirm or override the severity, not just the action.
Variant: Remediation-First Assembly
Use when: The review queue is owned by a content moderation team that needs to act, not just adjudicate. Guardrail: Modify the prompt template to prioritize the "Suggested Remediation" section, generating the specific content removal, user warning, or appeal instructions before the full policy analysis.
Copy-Ready Prompt Template
A production-ready prompt that assembles a complete, validated evidence package for human review of a guardrail violation.
This prompt template is the core instruction set for an AI system that must transition from detection to adjudication. It takes raw violation data and transforms it into a structured, reviewer-ready case file. The template is designed to be pasted directly into your system prompt or a dedicated API call, with square-bracket placeholders representing the dynamic data your application must inject at runtime. The strict JSON output contract ensures the resulting evidence package can be parsed and routed into a review queue without manual reformatting.
textYou are a precise evidence package assembler for a trust and safety review queue. Your task is to compile a complete, structured adjudication packet from the provided violation data. You must not add, assume, or infer any information not present in the input. If required evidence is missing, you must flag it explicitly rather than fabricate it. ## INPUT DATA - Violation Record: [VIOLATION_JSON] - Conversation/Event Log: [FULL_CONTEXT_LOG] - Relevant Policy Document: [POLICY_TEXT] - User/Account Metadata: [USER_METADATA_JSON] ## OUTPUT SCHEMA You must output a single, valid JSON object conforming to this exact schema: { "case_id": "string (from Violation Record)", "status": "ready_for_review", "violation_summary": { "policy_violated": "string (exact policy name)", "severity": "string (CRITICAL | HIGH | MEDIUM | LOW)", "detection_timestamp": "string (ISO 8601)", "violation_type": "string (e.g., 'toxic_output', 'prompt_injection')" }, "evidence_package": { "conversation_excerpt": { "pre_context": ["string (3-5 messages before violation)"], "violating_content": "string (the exact message or action)", "post_context": ["string (2-3 messages after violation)"] }, "policy_citation": { "relevant_clause": "string (verbatim text from policy)", "clause_reference": "string (e.g., 'Section 3.2 - Harmful Content')" }, "key_entities": [ { "entity_type": "string (e.g., 'user_id', 'session_id')", "entity_value": "string" } ] }, "suggested_remediation": "string (one clear, actionable next step based on policy)", "completeness_check": { "all_required_fields_present": true, "missing_evidence": ["string (list any missing items, empty if complete)"] } } ## CONSTRAINTS - Do not include any text outside the JSON object. - The `violating_content` must be a verbatim copy from the log. - If the policy text does not contain a clear citation, set `relevant_clause` to "No exact match found in provided policy" and flag this in `missing_evidence`. - If the severity in the input is not one of the four allowed values, default to "HIGH" and note the discrepancy in `missing_evidence`.
To adapt this template, replace the placeholders with your system's live data. The [VIOLATION_JSON] should be the structured output from your upstream detection prompt. The [FULL_CONTEXT_LOG] is the raw, unedited interaction that triggered the detection. The [POLICY_TEXT] must be the canonical policy document, not a summary, to enable accurate citation. The [USER_METADATA_JSON] provides reviewer context like account standing. After the model returns the JSON, your application harness must validate it against the schema before posting it to the review queue. If the completeness_check.missing_evidence array is not empty, the case should be flagged for pre-review enrichment, not sent directly to a human adjudicator.
Prompt Variables
Every placeholder the Evidence Package Assembly Prompt expects, with its purpose, a concrete example, and actionable validation rules to prevent under-evidenced escalations.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[VIOLATION_RECORD] | Structured output from the upstream guardrail detection prompt, containing the violation type, severity, and raw evidence. | { "type": "POLICY_VIOLATION", "severity": "HIGH", "evidence": "...", "policy_id": "PII-003" } | Schema check: must contain |
[CONVERSATION_EXCERPT] | The specific user and assistant message turns immediately surrounding the violation, with timestamps. | USER [2024-01-01T00:00:00Z]: What is John's SSN? ASSISTANT [2024-01-01T00:00:01Z]: It is 123-45-6789. | Parse check: must contain at least one USER and one ASSISTANT turn. Timestamps must be ISO 8601. Null allowed only if the violation occurred outside a conversation context. |
[POLICY_CITATION] | The exact text of the internal policy, safety guideline, or regulatory requirement that was violated. | Section 4.2: PII Redaction. All outputs containing Social Security Numbers must be blocked before reaching the user. | Citation check: must be a non-empty string. If the policy source is a document, include the document ID and section number. Reject if the citation is a hallucinated or generic statement. |
[REMEDIATION_SUGGESTION] | A proposed corrective action generated by the AI to resolve the violation or prevent recurrence. | Redact the SSN from the response and re-prompt the model with a stricter PII filter instruction. | Content check: must be a non-empty string. Must not be a generic placeholder like 'fix the issue'. Human review required before execution if the remediation involves a write operation. |
[ADJUDICATION_OPTIONS] | A predefined list of decision paths available to the human reviewer, formatted as an array of strings. | ["Uphold violation and apply remediation", "Dismiss as false positive", "Escalate to legal review"] | Schema check: must be a non-empty array of strings. Each option must be a complete sentence describing an action. Reject if the array is empty or contains only generic labels like 'Yes' or 'No'. |
[COMPLETENESS_CHECKLIST] | A list of boolean flags confirming that each required component of the evidence package is present and valid. | { "violation_record": true, "excerpt": true, "citation": true, "remediation": false } | Schema check: must be a JSON object with boolean values. All keys must correspond to the required evidence components. Escalate for human review if any value is |
[CONFIDENCE_SCORE] | The model's self-assessed confidence (0.0 to 1.0) that the evidence package is complete and correctly maps to the cited policy. | 0.92 | Threshold check: must be a float between 0.0 and 1.0. If below 0.85, flag the package for a secondary review before sending to the human adjudication queue. |
[ESCALATION_TIMESTAMP] | The UTC timestamp when the evidence package was assembled and escalated. | 2024-01-01T12:00:00Z | Format check: must be ISO 8601 UTC. Reject if the timestamp is in the future or older than the violation record's timestamp. |
Implementation Harness Notes
How to wire the Evidence Package Assembly prompt into a production review queue with validation, retry, logging, and human-review routing.
The Evidence Package Assembly prompt is not a standalone artifact; it is a critical component in a human-in-the-loop adjudication pipeline. Its output must be treated as a structured data payload that feeds directly into a review queue system. The primary goal of the harness is to guarantee that every escalation presented to a human reviewer is complete, well-formed, and actionable, preventing the waste of reviewer time on under-evidenced or malformed packets. This means the application code wrapping the prompt is responsible for input sanitization, output validation, and state management, not the prompt itself.
Validation and the Retry Loop: Before an evidence package ever reaches a human, the application must validate the model's output against a strict schema. Use a library like jsonschema in Python or zod in TypeScript to enforce the presence of required fields: violation_id, policy_citation, conversation_excerpt, severity_classification, and suggested_remediation. If validation fails, do not immediately escalate. Instead, implement a retry loop with error forwarding. Re-invoke the model, appending the raw output and the specific validation error (e.g., 'Missing required field: policy_citation') to the prompt as a correction instruction. Limit this loop to a maximum of 2 retries to control latency and cost. If validation still fails after retries, log the raw output as a malformed_escalation event and create a minimal manual-review ticket for an on-call engineer, as this indicates a systemic prompt or model failure.
Logging, Auditing, and Human Routing: Every step of this process must be logged for governance and debugging. Capture the input guardrail trigger, the model's raw response, the validation result, and the final adjudication outcome in an immutable audit log. When the package is valid, the harness should push it to a human review queue with a structured payload that includes the validated evidence package and a set of decision options (e.g., OVERRIDE_AND_CONTINUE, SUSPEND_ACTION, FALSE_POSITIVE). The routing logic can use the severity_classification field to assign priority. For high-severity violations, the harness should trigger an immediate notification (e.g., PagerDuty alert) in addition to the queue entry. Avoid the temptation to let the model make the final decision; the harness's job is to prepare the perfect packet for a human judge, not to automate the verdict.
Expected Output Contract
The fields, types, and validation rules the assembled evidence packet must satisfy before entering the human review queue. Use this contract to build a server-side validator that rejects incomplete or malformed packets before they reach a reviewer.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
packet_id | string (UUID v4) | Must parse as valid UUID v4. Reject on mismatch. | |
violation_type | enum from [VIOLATION_TYPE_CATALOG] | Must match an allowed enum value exactly. Case-sensitive check. | |
severity | enum: CRITICAL | HIGH | MEDIUM | LOW | Must be one of the four allowed values. Reject unknown severities. | |
policy_reference | string (policy_id:section) | Must match pattern ^[A-Z]+-[0-9]+:[0-9]+.[0-9]+$. Reject on format mismatch. | |
conversation_excerpt | array of {role: string, content: string} | Array length >= 1 and <= 10. Each role must be 'user', 'assistant', or 'tool'. Content must be non-empty string. | |
violation_evidence | string (plain text) | Length >= 50 characters and <= 2000 characters. Must contain the quoted text that triggered detection. | |
suggested_remediation | string (plain text) | Length >= 20 characters and <= 1000 characters. Null not allowed. Empty string rejected. | |
detection_confidence | number (float 0.0-1.0) | Must be a float between 0.0 and 1.0 inclusive. Values below [CONFIDENCE_THRESHOLD] should trigger a separate low-confidence path. | |
detector_version | string (semver) | Must match semver pattern ^[0-9]+.[0-9]+.[0-9]+$. Reject on missing or malformed version. | |
timestamp_utc | string (ISO 8601) | Must parse as valid ISO 8601 UTC datetime. Reject non-UTC or unparseable timestamps. |
Common Failure Modes
Evidence packages fail when they are incomplete, biased, or impossible to adjudicate. These are the most common production failure modes and how to prevent them.
Missing Evidence Gaps
What to watch: The prompt assembles a package that references a policy violation but omits the specific conversation excerpt or tool log that proves it. The reviewer sees a conclusion with no supporting data. Guardrail: Add a completeness validator that checks for required fields (excerpt, timestamp, policy ID) and rejects the package back to the assembly prompt with a structured retry request before it reaches the human queue.
Confirmation Bias in Assembly
What to watch: The prompt cherry-picks evidence that supports the detection signal while ignoring exculpatory context from the same conversation. The package looks damning but is materially incomplete. Guardrail: Require the prompt to explicitly include a 'Contrary Evidence' section. If none is found, it must state that explicitly. A second-pass review prompt can audit the package for balance before routing.
Policy-Context Mismatch
What to watch: The prompt cites a policy that is outdated, deprecated, or applies to a different jurisdiction than the user's context. The reviewer makes a decision based on the wrong rule. Guardrail: Bind the prompt to a specific policy version and jurisdiction tag at runtime. Include the policy's effective date and scope in the evidence package header so the reviewer can immediately spot a mismatch.
Over-Assembly and Reviewer Fatigue
What to watch: The prompt dumps the entire conversation history, every tool log, and multiple policy documents into the package to be 'thorough.' The reviewer is overwhelmed and misses the critical signal. Guardrail: Enforce a strict context budget. The prompt must include a 'Summary for Reviewer' section limited to three sentences, with the full excerpt capped at the last N turns. A pre-flight check should truncate and warn if the package exceeds a token limit.
Unscoped Remediation Suggestions
What to watch: The prompt suggests a remediation action (e.g., 'suspend account') that the reviewer is not authorized to take or that violates a separate operational policy. The suggestion creates confusion or liability. Guardrail: Provide the prompt with a closed list of allowed remediation actions mapped to the reviewer's role. The prompt must only suggest from that list and must not invent actions. A post-assembly validator can strip unauthorized suggestions.
Stale or Hallucinated Citations
What to watch: The prompt generates a plausible-sounding policy citation or evidence reference that does not exist in the provided source material. The reviewer trusts the citation and makes an ungrounded decision. Guardrail: Require the prompt to quote the policy text verbatim and include a source pointer (e.g., section header, document ID). A grounding check prompt should verify that every citation string appears in the supplied policy documents before the package is sent.
Evaluation Rubric
Run these checks against a golden dataset of 50+ labeled violation records before shipping the Evidence Package Assembly Prompt to production. Each criterion validates a specific failure mode observed in under-evidenced escalations.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Completeness: Required Fields | All required fields in [OUTPUT_SCHEMA] are present and non-null for every record | Missing [violation_excerpt], [policy_citation], or [severity_classification] in output | Schema validation script checks field presence across all 50+ golden records; fail if any required field is null or absent |
Evidence Sufficiency | Output contains at least one verbatim excerpt from [CONVERSATION_LOG] that directly supports the violation claim | Excerpt is paraphrased, truncated mid-sentence, or references a turn that does not exist in the input | Manual review of 20 sampled outputs verifies excerpt exists verbatim in source; automated substring match against [CONVERSATION_LOG] |
Policy Citation Accuracy | Cited policy ID matches the correct policy from [POLICY_LIBRARY] for the violation type in the golden label | Policy citation references a non-existent policy ID or a policy unrelated to the actual violation | Compare [policy_id] in output to golden label's expected policy; measure exact-match accuracy across all records |
Severity Classification Consistency | Severity level matches golden label within ±1 level on the defined severity scale | Severity is off by 2+ levels or defaults to a single severity for all inputs regardless of content | Cohen's kappa between output severity and golden label severity across 50+ records; target kappa > 0.8 |
Remediation Suggestion Relevance | Suggested remediation addresses the specific violation type and policy cited, not a generic action | Remediation is identical across all outputs or suggests an action that contradicts the cited policy | LLM-as-judge pairwise comparison: output remediation vs. golden remediation rated on relevance scale 1-5; mean score > 4.0 |
No Hallucinated Evidence | All claims in the evidence summary are directly supported by [CONVERSATION_LOG] or [POLICY_LIBRARY] | Output invents user messages, policy clauses, or timestamps not present in input | Human annotator flags any unsupported claim in 30 sampled outputs; hallucination rate must be < 2% |
Handoff Readiness | Output contains all fields required for a human reviewer to make a decision without re-reading the full conversation log | Reviewer survey indicates they needed to consult original source material for > 20% of decisions | Timed decision task with 3 reviewers on 10 outputs; measure time-to-decision and self-reported need to consult source; target < 15% source consultation rate |
Output Format Compliance | Output is valid JSON matching [OUTPUT_SCHEMA] with correct types, enums, and no extra fields | Output is malformed JSON, uses wrong enum values, or includes fields not defined in schema | JSON Schema validator run against all 50+ outputs; 100% parse success and schema conformance required |
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 simple checklist validator. Focus on getting the structure right before adding strict schema enforcement. Use a single policy reference and a flat severity scale (Low/Medium/High).
codeYou are assembling an evidence package for human review. Include: - [VIOLATION_TYPE] - [SEVERITY] - [EXCERPT] - [POLICY_REFERENCE] - [SUGGESTED_REMEDIATION] Output as markdown with these headings.
Watch for
- Missing fields in the output because the prompt doesn't enforce completeness
- Overly broad excerpts that dump entire conversations instead of relevant snippets
- No validation step, so malformed packages reach the review queue

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