This prompt is designed for community platforms, social networks, and content moderation systems that need to implement progressive enforcement. Instead of a binary allow/block decision, this prompt generates tiered responses that escalate from an informal reminder to a formal warning and finally to a temporary restriction. Each tier explains the specific behavior that triggered the warning, cites the relevant policy, and states the consequences of continued violation. Use this prompt when your platform needs to track user warning state across sessions, apply consistent escalation logic, and produce user-facing messages that are firm but not punitive on first contact.
Prompt
Graduated Warning Escalation Prompt Template

When to Use This Prompt
Define the job-to-be-done, ideal user, required context, and when not to use this graduated warning escalation prompt.
This prompt is not a replacement for a full content moderation pipeline. It assumes an upstream classifier or rule engine has already identified a policy violation and assigned a severity level. The prompt's job is to generate the correct user-facing message for the current escalation tier based on the user's violation history. You must provide the user's current warning tier, the specific policy violated, and the evidence of the violation. The prompt will not decide whether a violation occurred or what tier the user should be on—those decisions belong to your application logic. The output is a structured message payload ready for rendering in your notification system, email, or in-app messaging surface.
Do not use this prompt for real-time chat moderation where latency is critical and a simple block message suffices. Do not use it for legal or financial compliance notices that require exact regulatory language reviewed by counsel. Do not use it when the violation is severe enough to warrant immediate permanent suspension—this prompt handles graduated escalation, not zero-tolerance enforcement. If your platform lacks a user warning state store or you cannot reliably track violation history across sessions, implement that infrastructure first. The prompt's escalation logic depends on accurate tier input; feeding it incorrect tier data will produce messages that are either too lenient or disproportionately harsh, undermining user trust and policy credibility.
Use Case Fit
Where the Graduated Warning Escalation Prompt Template works, where it fails, and the operational risks to manage before deploying it in a community platform.
Good Fit: Multi-Strike Community Platforms
Use when: your platform has a defined content policy with escalating consequences for repeat violations. Why: the template structures tiered responses (informal reminder → formal warning → temporary restriction) with clear behavior-policy-consequence mapping, reducing moderator inconsistency and user confusion about enforcement progression.
Bad Fit: Zero-Tolerance Policy Domains
Avoid when: your policy requires immediate permanent action for certain violation categories (e.g., CSAM, violent threats, doxxing). Why: graduated escalation implies the user gets multiple chances, which contradicts zero-tolerance enforcement and creates legal and safety exposure. Use a single-action refusal or ban prompt instead.
Required Inputs: Warning State and Policy Map
What you need: a structured user warning state object (current tier, prior violation timestamps, active restrictions) and a policy-to-tier mapping that defines which behaviors trigger which escalation step. Guardrail: validate both inputs before prompt assembly—stale or missing state causes incorrect tier assignment and undermines enforcement credibility.
Operational Risk: State Drift Across Sessions
What to watch: warning state stored in a separate system may not reflect the most recent moderator action or automated enforcement, causing the prompt to generate an outdated tier response. Guardrail: implement a state freshness check with a configurable TTL before the prompt runs; if state is stale, route to human review instead of generating an automated warning.
Operational Risk: Tone Escalation Mismatch
What to watch: the model may escalate tone (e.g., from neutral to confrontational) faster than the tier structure intends, or fail to escalate tone when a user has reached the final warning stage. Guardrail: include explicit tone calibration per tier in the system prompt and run eval checks comparing generated tone against expected tier tone before deployment.
Operational Risk: Consequence Over-Promise
What to watch: the model may describe a consequence (e.g., 'your account will be suspended for 7 days') that your platform cannot actually enforce automatically or that contradicts your actual enforcement tooling. Guardrail: constrain consequence language to only actions your system can execute; use a post-generation validator that flags any consequence not present in an approved consequence registry before the message is sent.
Copy-Ready Prompt Template
A reusable prompt template for generating tiered enforcement responses based on a user's current warning state and the severity of the latest violation.
This prompt template is the core instruction set for a graduated warning escalation system. It is designed to be populated with data from your moderation pipeline and user state store before being sent to the model. The template uses square-bracket placeholders for all dynamic inputs, ensuring a clean separation between the static enforcement logic and the variable data of each specific incident. The goal is to produce a consistent, policy-grounded response that reflects the user's history without requiring the model to track state across sessions.
codeSYSTEM: You are a content moderation assistant for [PLATFORM_NAME]. Your task is to generate a user-facing enforcement message based on a specific policy violation and the user's current warning state. You must strictly adhere to the defined escalation tiers and never deviate from the prescribed tone and structure for each tier. USER: Generate an enforcement response using the following data: [USER_WARNING_STATE] Current Warning Tier: [CURRENT_TIER] (Possible values: NONE, INFORMAL_REMINDER, FORMAL_WARNING, TEMPORARY_RESTRICTION) Previous Violation Count: [VIOLATION_COUNT] Date of Last Violation: [LAST_VIOLATION_DATE] [VIOLATION_DETAILS] Violating Content: "[VIOLATING_CONTENT_EXCERPT]" Violated Policy Name: [POLICY_NAME] Violated Policy Clause: "[POLICY_CLAUSE_TEXT]" Violation Severity: [SEVERITY] (Possible values: LOW, MEDIUM, HIGH, CRITICAL) [ESCALATION_RULES] - If CURRENT_TIER is NONE and SEVERITY is LOW or MEDIUM, the new tier is INFORMAL_REMINDER. - If CURRENT_TIER is NONE and SEVERITY is HIGH or CRITICAL, the new tier is FORMAL_WARNING. - If CURRENT_TIER is INFORMAL_REMINDER, the new tier is FORMAL_WARNING. - If CURRENT_TIER is FORMAL_WARNING, the new tier is TEMPORARY_RESTRICTION. - If CURRENT_TIER is TEMPORARY_RESTRICTION, the new tier remains TEMPORARY_RESTRICTION. [RESPONSE_TEMPLATES] For INFORMAL_REMINDER: "Hi [USERNAME], we noticed [VIOLATING_CONTENT_EXCERPT] and wanted to send a quick reminder about our [POLICY_NAME] policy: '[POLICY_CLAUSE_TEXT]'. This is just a heads-up, and no action has been taken on your account. Please review our community guidelines. Thanks for being part of [PLATFORM_NAME]." For FORMAL_WARNING: "Hi [USERNAME], your recent content '[VIOLATING_CONTENT_EXCERPT]' violates our [POLICY_NAME] policy: '[POLICY_CLAUSE_TEXT]'. This is a formal warning. Further violations may lead to temporary account restrictions. You can review our full policy here: [POLICY_URL]." For TEMPORARY_RESTRICTION: "Hi [USERNAME], due to repeated violations, including '[VIOLATING_CONTENT_EXCERPT]' which violates our [POLICY_NAME] policy, your account has been temporarily restricted from [RESTRICTED_ACTIONS] for [RESTRICTION_DURATION]. If you believe this is an error, you can appeal here: [APPEAL_URL]." [OUTPUT_SCHEMA] You must output a single JSON object with the following keys: - "new_tier": The calculated new warning tier for the user. - "message": The fully populated user-facing message string. - "internal_note": A brief, non-user-facing note for moderators explaining the escalation decision.
To adapt this template, replace each bracketed placeholder with data from your application's state store and moderation pipeline. The [ESCALATION_RULES] and [RESPONSE_TEMPLATES] sections are defined inline for clarity but can be moved to a separate, cacheable system prompt prefix in production to reduce per-request token usage. The [OUTPUT_SCHEMA] enforces a structured JSON response, which is critical for the implementation harness to parse the new tier and update the user's state. Before deploying, test this prompt against a golden dataset of violations and user states to ensure the escalation logic is followed exactly and that the response templates are populated without hallucination.
Prompt Variables
Inputs the prompt needs to work reliably. All placeholders must be populated from your moderation pipeline and user state store before calling the model.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[USER_MESSAGE] | The raw user input that triggered the moderation review. | You're all idiots. I'll just make a new account. | Required. Non-empty string. Must be the original, unredacted text for accurate context. |
[VIOLATED_POLICY_CLAUSE] | The specific, human-readable policy rule that was violated. | 3.2 Harassment and Hate Speech | Required. Must exactly match a clause from the active policy document. Null not allowed. |
[CURRENT_ESCALATION_TIER] | The user's current warning level, used to select the response template. | FORMAL_WARNING | Required. Must be one of the predefined enum values: INFORMAL_REMINDER, FORMAL_WARNING, FINAL_WARNING, TEMPORARY_RESTRICTION. |
[USER_WARNING_HISTORY_SUMMARY] | A brief, structured summary of the user's prior violations and warnings in this session or time period. | 1 prior informal reminder for spam (2 days ago). | Required. Can be 'No prior warnings.' if history is empty. Must be a concise string, not a raw JSON blob. |
[NEXT_ESCALATION_CONSEQUENCE] | A clear description of what will happen if the user violates the policy again. | A 24-hour temporary restriction on posting and commenting. | Required. Must be a concrete, enforceable action. Cannot be a vague statement like 'further action may be taken'. |
[APPEAL_PROCESS_LINK] | A URL or clear instruction for the user to appeal the decision. | Required. Must be a valid, pre-verified URL or a null value if no appeal process exists. Check for broken links. | |
[HUMAN_REVIEW_QUEUE_ID] | An identifier for the internal review queue if the case is flagged for human escalation. | queue-harassment-tier2 | Nullable. If not null, must match a valid, active queue ID in the case management system. Used for logging and routing. |
Implementation Harness Notes
How to wire the graduated warning prompt into a production moderation pipeline with state tracking, validation, and logging.
The graduated warning prompt template is not a standalone artifact; it is a decision and generation step inside a larger moderation pipeline. The application layer is responsible for maintaining user warning state across sessions, injecting the correct [WARNING_TIER] and [PRIOR_VIOLATIONS] context into each prompt call, and acting on the escalation decisions the model returns. The prompt itself produces a structured output—typically a JSON object containing the warning message, the new tier, and any recommended enforcement action—but the application must validate that output before surfacing it to the user or updating internal state. This separation ensures the model handles natural-language reasoning while the application enforces deterministic rules such as maximum escalation caps, cooldown periods, and mandatory human review thresholds.
To wire this into production, implement a stateful moderation service that queries a user violation store before each prompt call. The service should inject the user's current warning tier (0 through N), a timestamped list of prior violations with policy references, and the current violation context into the prompt's [PRIOR_VIOLATIONS] and [WARNING_TIER] placeholders. After receiving the model response, validate the output against a strict schema: the new_tier field must be an integer within the configured escalation range, the action field must be one of the allowed enforcement actions (none, warn, restrict, suspend, escalate_to_human), and the message field must be non-empty and under the platform's character limit. If validation fails, retry with a repair prompt or fall back to a deterministic template for that tier. Log every prompt call with the input state, raw model output, validation result, and final action taken for audit and regression testing.
The highest-risk failure mode in this pipeline is state drift: the application believes a user is at tier 2 but the model generates a tier 1 warning because of stale or missing context injection. Mitigate this by making the application the authoritative source of truth for warning tier and only allowing the model to recommend escalation, never de-escalation, unless explicitly configured for a cooldown policy. For platforms with legal or safety obligations, route any escalate_to_human recommendation to a review queue immediately and do not allow automated enforcement beyond temporary restrictions without human approval. Before deploying, build a regression test suite that verifies correct tier progression across simulated violation sequences, validates that the model never skips tiers without explicit instruction, and confirms that the audit log captures every state transition with the responsible model version and prompt template hash.
Expected Output Contract
Fields, format, and validation rules for the model response. Reject any response that does not conform to this contract.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
escalation_tier | enum: ['informal_reminder', 'formal_warning', 'temporary_restriction'] | Must match one of the allowed tier values exactly. Reject response if missing or invalid. | |
user_message | string | Must be non-empty, under 500 characters. Must not contain personally identifiable information (PII) placeholders. Tone must match [TONE_PROFILE]. | |
policy_reference | string | Must match a policy ID from [POLICY_CATALOG]. Reject if policy ID is not found in the provided catalog. | |
behavior_description | string | Must reference specific behavior from [USER_VIOLATION_LOG]. Must not fabricate incidents not present in the log. | |
consequence_statement | string | Must describe the consequence for continued violation as defined in [ESCALATION_POLICY]. Must be non-threatening and factual. | |
internal_audit_record | object | Must contain timestamp (ISO 8601), user_id, session_id, warning_count, and risk_score. Schema validation required. | |
next_step_instruction | string or null | If tier is 'temporary_restriction', must be non-null and describe how to appeal or regain access. Otherwise, can be null. | |
escalation_threshold_breach | boolean | Must be true if [USER_WARNING_COUNT] exceeds [ESCALATION_LIMIT]. Used to trigger downstream human review queue. |
Common Failure Modes
What breaks first when deploying graduated warning escalation in production and how to guard against each failure mode.
Tier Misclassification
What to watch: The model assigns an informal reminder when a formal warning is warranted, or escalates to restriction for a minor first offense. Severity misjudgment erodes enforcement credibility. Guardrail: Provide explicit tier criteria with behavioral examples in the prompt. Implement a confidence threshold that routes low-confidence classifications to human review before delivery.
Warning State Drift Across Sessions
What to watch: The user's accumulated warning count, prior tier, and escalation history are lost or incorrectly injected between sessions, causing repeat first-offense treatment for serial violators. Guardrail: Maintain an external warning state store keyed to user ID. Inject the full history object into the prompt as [WARNING_STATE] and validate it is present before every generation. Never rely on the model to remember prior state.
Policy Citation Hallucination
What to watch: The model fabricates policy clause numbers, invents consequences not in the actual enforcement policy, or cites a policy that does not exist. Users appeal based on false information. Guardrail: Restrict the prompt to cite only from a provided [POLICY_DOCUMENT] with exact clause references. Add a post-generation validation step that checks each cited clause against the source document and strips unverifiable citations.
Escalation Without Evidence
What to watch: The warning message states a violation occurred but provides no specific reference to the offending behavior, making the enforcement feel arbitrary and generating support disputes. Guardrail: Require the prompt to output an [EVIDENCE] field containing a direct quote or timestamped reference from the user's content. Suppress the warning if no evidence can be grounded in the provided [USER_CONTENT].
Tone Escalation Leakage
What to watch: The model's tone becomes increasingly hostile, sarcastic, or punitive across tiers rather than remaining firm and procedural. This escalates user resentment and triggers unnecessary appeals. Guardrail: Include explicit tone constraints per tier in the prompt (e.g.,
Consequence Promise Drift
What to watch: The model promises a specific future consequence (e.g., "your account will be suspended in 24 hours") that is not actually configured in the enforcement system, creating a broken commitment. Guardrail: Restrict consequence language to only the pre-approved actions defined in [ENFORCEMENT_ACTIONS]. Use constrained decoding or strict output validation to block any consequence text not matching the allowed action set.
Evaluation Rubric
Run these checks against a golden dataset of violation scenarios across all tiers. Each criterion validates a specific property of the graduated warning output.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Tier Assignment Accuracy | Output tier matches the expected tier for the given [USER_HISTORY] and [CURRENT_VIOLATION] in the golden dataset | Tier is too severe or too lenient relative to the labeled ground truth | Compare output tier field against golden dataset label for each scenario; measure exact-match accuracy across all tiers |
Policy Reference Correctness | The specific policy clause cited in the warning matches the violation category in the test case | Policy reference is missing, cites the wrong clause, or fabricates a non-existent policy | Extract [POLICY_REFERENCE] from output; validate against allowed policy list; flag any hallucinated policy names or clause numbers |
Consequence Statement Clarity | The consequence for continued violation is stated explicitly and matches the tier's prescribed consequence | Consequence is vague, omitted, or promises an action outside the escalation policy | Parse consequence statement; check for presence of specific action, timeframe, and condition; verify against tier-to-consequence mapping table |
Behavior Description Grounding | The warning describes the violating behavior using only evidence present in [CURRENT_VIOLATION] | Description invents details not in the input, makes assumptions about user intent, or references prior violations incorrectly | Extract behavior description; run fact-verification against [CURRENT_VIOLATION] input; flag any claim without direct textual support |
Tone Consistency Across Tiers | Tone shifts appropriately from informal-reminder to formal-warning to restriction-notice as tier escalates | Higher tier uses casual language, lower tier uses threatening language, or tone is flat across all tiers | Run tone classifier on output for each tier; verify formality score increases monotonically with tier level; check for threatening language in Tier 1 |
User History Integration | Warning references prior violations from [USER_HISTORY] only when relevant and accurate | Ignores relevant history, fabricates prior incidents, or references history for a first-time violation | Compare history references in output to [USER_HISTORY] input; flag any mention of prior incidents not present in the input; verify first-time violations do not reference history |
Next-Step Actionability | Output includes a clear, concrete action the user can take to avoid escalation, appropriate to the tier | Next step is missing, generic beyond usefulness, or suggests an action the platform does not support | Parse next-step field; verify it contains a verb phrase describing a specific action; validate action against platform capability list |
Escalation Path Transparency | Output communicates what will happen if violation continues, with tier-appropriate specificity | Escalation path is omitted, misleading about consequences, or promises review that does not exist | Check for presence of conditional escalation statement; verify it references the next tier or final action correctly; test edge case at highest tier for final-consequence clarity |
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 template and a hardcoded user state object. Use a single model call with no external state tracking. Replace [USER_WARNING_STATE] with a static JSON blob representing a first-time offender. Skip the session persistence harness and focus on getting tiered language right.
codeYou are a community moderator. The user's current warning state is: [USER_WARNING_STATE] The user just posted: "[USER_POST]" Based on the violation severity and warning history, generate the appropriate tier response.
Watch for
- The model escalating too quickly when history is empty
- Tier 1 reminders sounding like formal warnings
- No way to test state transitions without the harness

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