Inferensys

Prompt

Incident Severity Classification Prompt

A practical prompt playbook for using the Incident Severity Classification Prompt in production incident response workflows. Standardize severity assignment by evaluating user impact, data loss risk, revenue exposure, and SLA breach potential against defined severity levels.
Risk analyst performing AI risk assessment on laptop, risk matrices visible, casual office risk session.
PROMPT PLAYBOOK

When to Use This Prompt

Understand the job-to-be-done, ideal user, required context, and when not to use this prompt for incident severity classification.

This prompt is designed for incident commanders and on-call engineers who need to assign a consistent severity level during an active incident. The primary job-to-be-done is to evaluate observable signals—such as user impact breadth, data loss or corruption risk, revenue exposure, and SLA breach potential—against your organization's predefined severity definitions. Use this prompt when the incident is declared and initial signals are available but before the incident response team commits to a severity-driven escalation path. The ideal user has access to monitoring dashboards, alert context, and the organization's severity matrix, and needs a structured, defensible classification to guide response urgency and resource allocation.

This prompt requires several concrete inputs to function correctly. You must provide [SEVERITY_DEFINITIONS] that clearly articulate each level's criteria (e.g., SEV1: complete outage affecting all users, SEV2: degraded performance for a subset, SEV3: minor cosmetic issue). You also need [OBSERVABLE_SIGNALS] describing the current incident's symptoms, including affected user count or percentage, geographic or tenant scope, error rates, latency degradation, and any data integrity concerns. Optionally, include [REVENUE_IMPACT] estimates and [SLA_CONTEXT] to strengthen the classification. The prompt does not diagnose root cause or suggest remediation steps; it classifies severity and provides justification plus escalation triggers.

Do not use this prompt when the incident is still a vague alert without confirmed user impact, when you lack a documented severity matrix, or when the primary need is root cause analysis rather than classification. This prompt is also inappropriate for post-incident review or postmortem analysis—it is designed for the active triage window. If your organization uses dynamic severity levels that shift based on business hours or affected customer tier, ensure those rules are embedded in [SEVERITY_DEFINITIONS] before invoking the prompt. Using this prompt without clear definitions will produce inconsistent, untrustworthy classifications that undermine incident response.

Before using this prompt, confirm that your severity definitions are current, mutually exclusive, and understood by the entire on-call rotation. If your definitions have gaps—such as no clear boundary between SEV2 and SEV3 for partial outages—resolve those gaps first. The prompt's output includes a severity recommendation, a structured justification mapping signals to criteria, and escalation triggers that indicate when to reclassify. Treat this output as a decision aid, not an automated command. In high-stakes incidents involving data loss or regulatory exposure, a human must review and approve the classification before it drives paging or external communications.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Incident Severity Classification Prompt delivers reliable, standardized results—and where it introduces operational risk that requires a different approach.

01

Good Fit: Structured Triage with Defined Levels

Use when: your organization has a documented severity matrix (SEV1–SEV5) with clear criteria for user impact, data loss, revenue exposure, and SLA breach. The prompt excels at mapping incident signals to predefined levels and producing consistent, auditable classifications. Guardrail: supply the full severity definitions in [SEVERITY_MATRIX] and require the model to cite which criteria triggered the classification.

02

Bad Fit: Novel Failure Modes Without Precedent

Avoid when: the incident involves a completely novel failure mode, cascading cross-service failures with unknown blast radius, or security breaches where the full scope is still unfolding. The prompt cannot reason about unknown unknowns and may under-classify ambiguous threats. Guardrail: escalate to human incident commander immediately; use the prompt only after initial blast-radius assessment is complete.

03

Required Inputs: Evidence Before Classification

Risk: classification without sufficient evidence produces confident-sounding but incorrect severity assignments. The prompt needs concrete signals, not vague descriptions. Guardrail: require [USER_IMPACT_EVIDENCE], [REVENUE_EXPOSURE_ESTIMATE], [DATA_LOSS_INDICATOR], and [SLA_BREACH_RISK] as structured inputs. If any field is unknown, the output must flag it as an assumption rather than a fact.

04

Operational Risk: Over-Classification During Alert Storms

Risk: during major incidents with multiple concurrent alerts, the prompt may classify every signal at maximum severity, causing alert fatigue and resource contention. Guardrail: implement a deduplication step before classification. Group related alerts by fingerprint and service, then classify the incident once rather than each alert individually. Add a [CORRELATED_INCIDENT_ID] field to prevent duplicate severity assignments.

05

Operational Risk: Stale Severity Definitions

Risk: severity matrices evolve as services mature, but prompt templates often lag behind, causing misclassification against outdated criteria. Guardrail: version-lock the [SEVERITY_MATRIX] input and include a [MATRIX_VERSION] field in the output. Add an automated check that rejects classifications using matrix versions older than the current approved version.

06

Boundary: When Human Judgment Is Required

Risk: the prompt cannot weigh reputational damage, regulatory exposure, or customer trust erosion unless those factors are explicitly quantified in the severity matrix. Guardrail: add an [ESCALATION_TRIGGER] field to the output that flags when any of these qualitative factors are present. Route flagged outputs to a human incident commander for final severity determination before the classification is committed to the incident record.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A copy-ready incident severity classification prompt that you can paste into your incident response tool or AI harness.

This prompt template standardizes severity assignment during active incidents. It evaluates user impact, data loss risk, revenue exposure, and SLA breach potential against your defined severity levels. Replace every square-bracket placeholder with live incident data before execution. The prompt is designed to produce a structured severity recommendation with justification and explicit escalation triggers, not a free-text opinion.

text
You are an incident severity classifier for [ORGANIZATION_NAME]. Your task is to assign a severity level to the active incident described below. Use only the severity definitions provided. Do not invent new severity levels.

## SEVERITY DEFINITIONS
[SEVERITY_DEFINITIONS]

## INCIDENT DATA
- Incident ID: [INCIDENT_ID]
- Title: [INCIDENT_TITLE]
- Start Time: [START_TIME]
- Detection Time: [DETECTION_TIME]
- Affected Services: [AFFECTED_SERVICES]
- User Impact Description: [USER_IMPACT]
- Error Rate (current vs baseline): [ERROR_RATE]
- Latency p95 (current vs baseline): [LATENCY_P95]
- Data Loss or Corruption Risk: [DATA_LOSS_RISK]
- Revenue Impact Estimate (hourly): [REVENUE_IMPACT]
- SLA Status: [SLA_STATUS]
- Workaround Available: [WORKAROUND_AVAILABLE]
- Recent Deploy or Config Change: [RECENT_CHANGE]
- Current Mitigation in Progress: [MITIGATION_IN_PROGRESS]

## OUTPUT SCHEMA
Return a single JSON object with these fields:
- severity_level: string (must match one of the defined severity levels)
- confidence: number (0.0 to 1.0)
- justification: string (cite specific evidence from the incident data)
- escalation_triggers: array of strings (conditions that would raise severity)
- recommended_responders: array of strings (teams or roles that should be paged)
- sla_breach_risk: string ("none", "warning", "imminent", "active")

## CONSTRAINTS
- If user impact is unclear or data is missing, set confidence below 0.7 and note what information is needed.
- If the incident meets criteria for multiple severity levels, choose the higher one.
- Do not downplay revenue impact or data loss risk.
- If a workaround exists but requires manual intervention, treat it as partial mitigation, not full resolution.

Before wiring this into a production harness, validate that your severity definitions are unambiguous and mutually exclusive. Ambiguous severity boundaries produce inconsistent classifications regardless of prompt quality. After each classification, log the prompt version, incident ID, model response, and the human-confirmed severity for audit and eval dataset construction. If the incident involves regulated data or safety-critical systems, require a human incident commander to confirm or override the classification before it becomes the official severity.

IMPLEMENTATION TABLE

Prompt Variables

Each placeholder required by the Incident Severity Classification Prompt, its purpose, an example value, and validation notes for wiring into an incident management harness.

PlaceholderPurposeExampleValidation Notes

[INCIDENT_TITLE]

Brief human-readable name for the incident

Checkout API 5xx Spike

Required. Non-empty string. Max 200 chars. Reject if contains only generic terms like 'issue' or 'problem'.

[INCIDENT_DESCRIPTION]

Free-text summary of symptoms, scope, and initial observations

Checkout service returning 503 errors for 40% of requests since 14:22 UTC. Payment provider upstream healthy.

Required. Non-empty string. Min 50 chars. Must contain at least one observable symptom and one temporal marker.

[SEVERITY_LEVELS]

Organization-defined severity definitions with criteria for each level

SEV1: Complete outage, revenue loss >$10K/min. SEV2: Major feature broken, no workaround. SEV3: Partial degradation, workaround exists. SEV4: Cosmetic or minor.

Required. Must be a valid JSON array of objects with 'level', 'label', and 'criteria' fields. At least 2 levels required. Reject if criteria are circular or unmeasurable.

[USER_IMPACT_SIGNALS]

Observable metrics describing current user harm

Error rate: 42%. Latency p99: 4500ms. Affected users: ~1200 in last 15min. Customer reports: 8 tickets.

Required. Must be a valid JSON object with numeric or boolean fields. At least one field must have a non-null value. Reject if all values are zero without explanation.

[REVENUE_IMPACT_ESTIMATE]

Estimated financial impact per minute or hour if known

$1,200/min based on checkout throughput and average order value of $85

Optional. If provided, must include unit (per minute or per hour) and basis for estimate. Accept null if unknown. Reject if value is negative.

[DATA_LOSS_RISK]

Assessment of whether customer or system data is at risk of corruption or loss

No data loss risk identified. Transactions failing before write. Queue buffering retries.

Required. Must be one of: 'none', 'low', 'medium', 'high', 'confirmed'. If 'confirmed' or 'high', escalation to SEV1 is mandatory regardless of other signals.

[SLA_WINDOW_REMAINING]

Time remaining before SLA breach if applicable

23 minutes until 99.9% monthly SLO breach at current burn rate

Optional. If provided, must include numeric value and unit (minutes or hours). Accept null if no SLA applies. Reject if value is negative without explanation.

[RECENT_CHANGES]

List of recent deployments, config changes, or infrastructure modifications

v2.4.1 deployed at 14:15 UTC. Config change: payment timeout reduced from 30s to 10s at 14:10 UTC.

Required. Must be a non-empty array of strings or explicit 'none identified'. Each entry should include timestamp or relative time. Reject if array is empty without 'none identified' sentinel.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Incident Severity Classification Prompt into an incident response application or workflow.

This prompt is designed to be the first deterministic step in an incident management pipeline, not a standalone chatbot. It should be called immediately after an incident is declared and before any remediation runbook is executed. The application layer must supply structured incident context—user impact counts, affected services, data loss indicators, and revenue exposure estimates—because the model cannot reliably infer these from raw alerts alone. Without this structured input, severity classification becomes guesswork and loses operational trust.

Wire the prompt into your incident response tool (e.g., PagerDuty, FireHydrant, or a custom Slack bot) as a synchronous API call with a strict timeout of 10 seconds. On success, parse the JSON output and validate that severity_level matches one of your predefined enum values (e.g., SEV1 through SEV5) and that confidence_score exceeds a configurable threshold—typically 0.7. If validation fails, retry once with the same payload; if it fails again, escalate to the human incident commander with the raw model output and validation errors logged. Log every classification attempt, including input context, model response, validation result, and final severity assignment, to an immutable audit table for postmortem review.

Model choice matters here. Use a model with strong instruction-following and JSON mode support, such as Claude 3.5 Sonnet or GPT-4o, because the output schema must be strictly parseable. Avoid smaller or older models that may drift the severity definitions or hallucinate escalation triggers. Do not use this prompt with streaming responses—the full structured output is required before any downstream automation acts on the severity. If your incident pipeline includes a RAG step for historical incident similarity, inject the retrieved similar incidents into the [CONTEXT] placeholder before calling the model, but keep the total prompt under 4,000 tokens to maintain low latency during active incidents.

IMPLEMENTATION TABLE

Expected Output Contract

Fields, types, validation rules, and pass/fail conditions for the incident severity classification output. Use this contract to validate model responses before routing to incident management tooling.

Field or ElementType or FormatRequiredValidation Rule

severity_level

enum: SEV1 | SEV2 | SEV3 | SEV4 | SEV5

Must match exactly one of the five defined severity labels. No free-text or invented levels allowed.

severity_justification

string (max 500 chars)

Must reference at least two of: user impact, data loss risk, revenue exposure, SLA breach potential. Parse check for empty or generic text.

confidence_score

float 0.0-1.0

Must be a number between 0 and 1. Values below 0.6 should trigger a human-review escalation flag in the harness.

escalation_triggers

array of strings

Each entry must match a known trigger from the defined catalog: [data_loss, sla_breach, revenue_impact, security_incident, multi_region, executive_visible]. Unknown triggers fail validation.

affected_services

array of strings

Must contain at least one service name. Null or empty array fails. Each entry should be validated against a known service registry if available.

recommended_responder_role

string

Must be one of: [incident_commander, sre_lead, service_owner, security_oncall, engineering_manager]. Free-text role names fail.

human_review_required

boolean

Must be true if confidence_score < 0.6 OR severity_level is SEV1. Harness should enforce this rule post-parse.

output_timestamp

ISO 8601 UTC string

Must parse as valid UTC datetime. Missing timezone offset or unparseable format fails. Harness should retry once on format failure before rejecting.

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when using an LLM to classify incident severity, and how to prevent misclassification before it reaches an on-call engineer.

01

Vague Impact Descriptions Produce Wrong Severity

What to watch: The model defaults to a higher severity when the input says 'users are affected' without quantifying scope. It hallucinates worst-case blast radius. Guardrail: Require a structured [INCIDENT_CONTEXT] input with explicit fields for affected_user_count, affected_service_pct, and revenue_impact_estimate. If fields are null, the prompt must ask for clarification instead of guessing.

02

Severity Drift Across Repeated Runs

What to watch: The same incident details produce SEV1 on one run and SEV3 on the next due to minor wording changes or model non-determinism. This erodes on-call trust. Guardrail: Pin the severity definitions in the prompt with explicit, non-overlapping criteria. Use a fixed temperature=0 and validate output against a schema that enforces exactly one severity level. Log every classification for audit.

03

Ignoring SLA and SLO Context

What to watch: The model classifies based on technical symptoms alone, missing that a 2% error rate on a 99.99% SLO service is a budget-burning emergency. Guardrail: Include the service's SLO targets and current error budget status in the prompt context. Add an eval check that verifies the justification references the SLO data when present.

04

Over-Classification Due to Urgency Language

What to watch: Input text containing 'urgent,' 'critical,' or 'customer screaming' biases the model toward SEV0/SEV1 regardless of actual blast radius. Guardrail: Instruct the model to ignore sentiment and urgency adverbs. Ground severity strictly in measurable impact dimensions: user count, data loss, revenue, and SLA breach. Add a sentiment-stripping pre-processing step before classification.

05

Missing Escalation Triggers for Borderline Cases

What to watch: When impact sits exactly on a severity boundary, the model picks one arbitrarily without flagging the ambiguity. The incident commander never knows a judgment call was needed. Guardrail: Require the output to include a borderline_risk boolean and an escalation_recommendation field. If confidence is below a threshold, the system must route to a human for final assignment.

06

Stale Severity Definitions in the Prompt

What to watch: The prompt contains severity definitions that drifted from the team's actual incident management policy. The model enforces outdated rules. Guardrail: Store severity definitions in a versioned configuration file, not hard-coded in the prompt. The prompt template pulls the latest policy at runtime. Add a regression test that compares classification output against a golden dataset whenever definitions change.

IMPLEMENTATION TABLE

Evaluation Rubric

Run these checks against a golden dataset of 20-30 incident scenarios with known severity labels before shipping the Incident Severity Classification Prompt to production.

CriterionPass StandardFailure SignalTest Method

Severity Label Accuracy

Exact match with golden label in >= 90% of test cases

Off-by-one errors on SEV1/SEV2 boundary or systematic misclassification of data-loss scenarios

Run prompt against golden dataset; compute exact-match accuracy and confusion matrix for adjacent severities

Justification Grounding

Every justification sentence references a specific observable from [INCIDENT_CONTEXT]

Justification contains hallucinated metrics, unsupported claims about user count, or generic statements without evidence

Parse justification field; verify each claim maps to a span in the input context using substring or embedding-based check

Escalation Trigger Correctness

Escalation flag is true when [INCIDENT_CONTEXT] contains data loss, PII exposure, or revenue-impact indicators

Escalation flag false when data loss is described; escalation flag true for cosmetic UI bug with no user impact

Create 10 positive and 10 negative escalation test cases; measure precision and recall against golden escalation labels

SLA Breach Detection

SLA breach field matches golden label when [INCIDENT_CONTEXT] includes latency or availability thresholds crossed

Missed SLA breach when error rate exceeds defined threshold in context; false SLA breach when metrics are within SLO

Extract SLA thresholds from [SEVERITY_DEFINITIONS]; compare prompt output against programmatic threshold check on context metrics

Output Schema Compliance

Valid JSON matching [OUTPUT_SCHEMA] on 100% of test runs; all required fields present with correct types

Missing severity_justification field; escalation_trigger returned as string instead of boolean; extra untyped fields

Validate output against JSON Schema for all golden dataset runs; fail if any parse error or schema violation occurs

Revenue Exposure Quantification

Revenue exposure estimate is within 20% of golden value or correctly flagged as unquantifiable when data is absent

Revenue exposure provided as precise number when context says 'unknown financial impact'; exposure omitted when context contains revenue data

Compare revenue_exposure field against golden range; check that unquantifiable flag is set when context lacks financial data

User Impact Scope Classification

User impact scope matches golden label (single-user, subset, all-users) in >= 85% of cases

Classifies all-users impact as single-user when context describes global outage; overestimates scope for feature-flag-gated issue

Extract user_impact_scope field; compute agreement with golden labels; analyze failure cases for scope boundary confusion

Confidence Calibration

Confidence score >= 0.8 for correct classifications; confidence score <= 0.5 for incorrect classifications

High confidence (>= 0.9) on misclassified severity; low confidence on straightforward SEV4 cosmetic issues

Bin outputs by confidence score; compute accuracy per bin; check that high-confidence bins have higher accuracy than low-confidence bins

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a frontier model and manual review of every classification. Remove strict output schema requirements initially—accept a structured paragraph instead of JSON. Focus on getting severity reasoning right before enforcing format.

Simplify the prompt:

  • Replace detailed severity level definitions with a short numbered list.
  • Remove escalation trigger logic; add it after the model consistently identifies severity.
  • Use a single example instead of few-shot.

Watch for

  • Over-classification to SEV1 when the model lacks confidence.
  • Inconsistent justification quality across runs.
  • Missing key signals like revenue impact or data loss risk because the prompt is too terse.
Prasad Kumkar

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.