This prompt is designed for incident management and platform reliability teams that need a consistent, repeatable method for classifying tool failures into severity tiers: critical, major, minor, or cosmetic. The core job-to-be-done is translating raw error telemetry, user impact signals, and recovery timeline estimates into a structured severity label that triggers the correct response SLA and escalation policy. Use this prompt when you have already instrumented your tool calls with error codes, latency metrics, and user-facing impact data, and you need to remove human variability from the initial triage step. The ideal user is an SRE, on-call engineer, or incident commander who is building or refining an automated incident response pipeline where tool failures must be classified before they reach a human responder or an automated remediation runbook.
Prompt
Tool Error Severity Classification Rubric Prompt

When to Use This Prompt
Defines the job-to-be-done, required inputs, and operational boundaries for classifying tool errors into severity levels that map directly to incident response SLAs.
Do not use this prompt for real-time agent decision loops where sub-millisecond classification latency is required; the model inference time makes it unsuitable for inline circuit-breaker decisions or per-request routing. This prompt also fails when the error context is too sparse—if you cannot provide at least an error type, a user impact description, and a recovery estimate, the classification will be unreliable and should default to a human triage step. The prompt assumes you have a defined SLA framework with clear response time targets per severity level. If your organization lacks these definitions, the output will be a severity label without an operational contract, which undermines the entire purpose. Wire this prompt into your incident pipeline as a post-detection classification step, not as a replacement for error detection itself.
Before deploying this prompt, ensure your error telemetry pipeline can populate the required input placeholders with structured data. The prompt expects concrete values for error characteristics (e.g., HTTP 503, timeout, partial response), user impact scope (e.g., single user, entire region, read-only vs. write failure), and recovery timeline (e.g., self-healing within seconds, requires manual intervention, unknown duration). If any of these inputs are missing or inferred, the classification confidence drops, and you should route the incident to a human for review. The next section provides the copy-ready prompt template with all required placeholders and adaptation guidance.
Use Case Fit
Where this prompt works and where it does not.
Good Fit: Incident Triage Automation
Use when: standardizing severity classification across on-call teams. Why: The rubric maps error characteristics to response SLAs, reducing subjective severity debates during incidents.
Good Fit: Tool Reliability Dashboards
Use when: feeding structured severity labels into monitoring systems. Why: Consistent classification enables accurate aggregation of tool health metrics and circuit breaker thresholds.
Bad Fit: Real-Time Critical Path Decisions
Avoid when: the classification itself must execute in under 100ms on the critical path. Why: LLM inference latency is unsuitable for inline request processing. Classify asynchronously or pre-compute.
Required Inputs
Must provide: error type, affected user count or percentage, recovery time estimate, and data consistency impact. Guardrail: If any required field is missing, the prompt must return an insufficient_data classification rather than guessing.
Operational Risk: Severity Drift
What to watch: different on-call engineers getting different severity labels for the same incident. Guardrail: Run calibration tests with borderline cases weekly and track inter-rater agreement across shifts.
Operational Risk: Over-Classification
What to watch: the model defaulting to critical when evidence is ambiguous, causing alert fatigue. Guardrail: Require explicit evidence for each severity level and default to major when confidence is low.
Copy-Ready Prompt Template
A reusable prompt template for classifying tool errors into severity levels with clear response SLAs and calibration guidance.
This prompt template standardizes how your incident management team classifies tool errors. Replace each square-bracket placeholder with your specific incident data before sending it to the model. The template produces a severity classification (critical, major, minor, cosmetic) based on error characteristics, user impact, and recovery timeline, mapped to your team's response SLAs. Use this when you need consistent, defensible severity decisions across on-call rotations and incident responders.
textYou are an incident severity classifier for a production AI system. Your job is to assign a severity level to a tool error based on the evidence provided. You must follow the classification rubric exactly and explain your reasoning. ## CLASSIFICATION RUBRIC **CRITICAL (P0)** - Complete tool unavailability affecting all users - Data loss, corruption, or unauthorized access confirmed or suspected - Recovery timeline unknown or exceeds 4 hours - No viable fallback or workaround exists - Response SLA: Immediate escalation, page on-call, begin incident within 5 minutes **MAJOR (P1)** - Significant degradation affecting >25% of requests - Partial feature loss with user-visible errors - Recovery expected within 1-4 hours - Fallback available but degraded (stale data, reduced functionality) - Response SLA: Escalate within 15 minutes, begin incident within 30 minutes **MINOR (P2)** - Intermittent errors affecting <25% of requests - Latency increase within 2x baseline but still functional - Recovery expected within 1 hour - Workaround available with minimal user impact - Response SLA: Create ticket, address within business hours or next 4 hours **COSMETIC (P3)** - Error messages visible but no functional impact - Deprecation warnings, non-breaking schema changes - Recovery not time-sensitive - No user-visible degradation - Response SLA: Log for review, address in next maintenance window ## INPUT DATA **Error Details:** [ERROR_TYPE] [ERROR_MESSAGE] [HTTP_STATUS_CODE] [TOOL_NAME] [ERROR_FREQUENCY] [ERROR_DURATION] **User Impact:** [AFFECTED_USER_COUNT_OR_PERCENTAGE] [USER_VISIBLE_SYMPTOMS] [WORKAROUND_AVAILABLE] **Recovery Information:** [ESTIMATED_RECOVERY_TIME] [FALLBACK_TOOL_AVAILABLE] [DATA_INTEGRITY_STATUS] **Additional Context:** [DEPENDENCY_GRAPH_NOTES] [RECENT_CHANGES] [HISTORICAL_PATTERN] ## OUTPUT SCHEMA Return a JSON object with this exact structure: { "severity": "critical|major|minor|cosmetic", "confidence": 0.0-1.0, "rationale": "Brief explanation mapping evidence to rubric criteria", "response_sla": "The SLA action from the matched severity level", "borderline_considerations": ["Any factors that nearly pushed this to a different severity"], "recommended_immediate_action": "What the responder should do first" } ## CONSTRAINTS - If evidence spans multiple severity levels, choose the highest applicable level - If data integrity status is unknown or suspect, default to CRITICAL - If user impact cannot be determined, state this in rationale and flag for human review - Do not downgrade severity based on recovery optimism unless recovery is confirmed - If error frequency is unknown, assume worst case for the error type ## BORDERLINE CALIBRATION CASES Use these examples to calibrate your judgment: **Case 1: Partial outage with fast recovery** - 30% error rate, recovery confirmed within 30 minutes, no data loss - Classification: MAJOR (not critical because recovery is imminent; not minor because impact exceeds 25%) **Case 2: Silent data corruption** - 2% error rate, but data integrity checks failing, recovery unknown - Classification: CRITICAL (data integrity concern overrides low error rate) **Case 3: Cosmetic error during peak traffic** - Deprecation warning on 100% of requests, no functional impact, users complaining about log noise - Classification: COSMETIC (no functional impact, but note user sentiment in borderline_considerations) Now classify the error in the INPUT DATA section above.
After copying the template, replace each placeholder with data from your monitoring systems, error logs, and incident context. The [ERROR_TYPE] should use a consistent taxonomy (e.g., timeout, 5xx, connection_refused, schema_mismatch). The [DATA_INTEGRITY_STATUS] field is especially important—if you cannot confirm data integrity, leave it as unknown and the prompt will default to CRITICAL. The calibration cases at the bottom of the prompt help the model handle borderline situations consistently. If your team uses different severity names or SLA timings, edit the rubric section directly rather than trying to override it with additional instructions.
Before deploying this prompt into an automated classification pipeline, test it against at least 10 historical incidents where you know the correct severity. Pay special attention to cases where error frequency is low but data integrity is at risk, and cases where recovery is fast but user impact is high. These are the situations where human responders often disagree, and the prompt's calibration cases are designed to produce consistent decisions. If the model's confidence score falls below 0.7, route the classification to a human for review rather than auto-escalating.
Prompt Variables
Each placeholder must be populated before the rubric prompt is invoked. Missing or null variables will cause misclassification, especially in borderline severity cases.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[ERROR_PAYLOAD] | Raw error object, status code, and response body from the failed tool call | {"status": 503, "body": {"error": "upstream pool timeout"}, "tool": "payment-capture"} | Must be valid JSON string or structured object. Reject if empty or only contains a stack trace without an error code. |
[TOOL_NAME] | Identifier of the tool that produced the error | "payment-capture" | Must match a registered tool name in the agent's tool registry. Reject if null or not a string. |
[TOOL_CATEGORY] | Functional category of the tool for blast-radius and dependency analysis | "payment-processing" | Must be one of the predefined categories in the service catalog. Reject if unmapped. |
[USER_IMPACT_DESCRIPTION] | Plain-language description of how the failure affects the current user journey | "User cannot complete checkout; cart is preserved but payment is blocked" | Must be a non-empty string. Reject if generic phrases like 'it broke' are used without specific user-facing consequence. |
[RETRY_STATE] | Current retry count, budget remaining, and whether idempotent retry is safe | {"attempts": 3, "budget_remaining": 2, "idempotent": true} | Must include integer attempts and boolean idempotent flag. Reject if retry budget is negative. |
[DEPENDENCY_GRAPH] | Upstream and downstream tool dependencies for the failing tool | {"upstream": ["auth-service"], "downstream": ["order-confirmation", "inventory-reserve"]} | Must be a valid JSON object with upstream and downstream arrays. Empty arrays are allowed for isolated tools. |
[RECOVERY_ESTIMATE_SECONDS] | Estimated time to recovery in seconds, or null if unknown | 300 | Must be a positive integer or null. Reject negative values. If null, the rubric must treat recovery timeline as unknown. |
[SLA_WINDOW_SECONDS] | Maximum acceptable recovery time in seconds for this tool's criticality tier | 600 | Must be a positive integer. Reject if zero or missing. Used to classify severity when recovery estimate exceeds SLA. |
Implementation Harness Notes
How to wire the severity classification prompt into an incident management workflow with validation, retries, and human review gates.
This prompt is designed to be called programmatically as part of an incident management pipeline, not as a standalone chat interaction. The typical integration point is a webhook receiver or event bus consumer that fires when a new tool error event is ingested. The harness should construct the prompt by injecting the error payload into the [ERROR_LOG] placeholder, the affected service's dependency map into [DEPENDENCY_GRAPH], the current incident state into [ACTIVE_INCIDENT_CONTEXT], and the organization's SLA definitions into [RESPONSE_SLA_TABLE]. The model call should be made with temperature=0 and a strict JSON mode enabled to ensure the output matches the expected severity classification schema without creative drift.
Before the classification result is acted upon, the harness must run a validation layer. Check that the returned severity_level is one of the allowed enum values (critical, major, minor, cosmetic), that the confidence_score is a float between 0.0 and 1.0, and that the evidence_summary array contains at least one entry mapped to a specific log line or metric. If validation fails, retry once with the same payload and an explicit instruction appended to the retry prompt: Your previous output failed schema validation for field [FIELD_NAME]. Return a valid JSON object. If the retry also fails, route the event to a human triage queue rather than silently defaulting to a lower severity. For critical and major classifications where confidence_score < 0.85, the harness should automatically escalate to a human on-call reviewer via your incident management platform's API (e.g., PagerDuty, Opsgenie) and attach the full classification payload as a note to the incident.
Log every classification call as a structured event with the input error signature, the model's raw response, the validated output, and the routing decision. This audit trail is essential for calibrating the rubric over time. Run weekly evaluations against a golden dataset of 50-100 manually classified error events, paying special attention to borderline cases where major and critical overlap—these are where the model is most likely to misclassify and where human review gates should be tightest. Avoid wiring this prompt directly to automated remediation actions (like circuit breaker flips or service restarts) without a human-in-the-loop approval step for any severity above minor.
Expected Output Contract
Validation rules for the Tool Error Severity Classification Rubric Prompt response. Use this contract to parse, validate, and route the model's JSON output before acting on the severity classification.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
severity | enum: critical | major | minor | cosmetic | Must match one of the four allowed enum values exactly. Case-sensitive. Reject and retry if missing or invalid. | |
severity_score | integer 1-100 | Must be an integer between 1 and 100 inclusive. Higher values indicate greater severity. Validate range; reject if float, string, or out of bounds. | |
rationale_summary | string <= 280 chars | Must be present and non-empty. Length must not exceed 280 characters. Reject if null, empty, or whitespace-only. | |
error_category | string | Must be a non-empty string drawn from the provided error taxonomy. Validate against the allowed category list in the prompt. Reject unknown categories. | |
user_impact_statement | string | Must describe the observable user impact in plain language. Reject if it contains only internal technical details with no user-facing consequence. | |
recovery_sla_minutes | integer or null | Must be a positive integer representing minutes, or null if severity is cosmetic. If severity is critical, major, or minor, null is not allowed. Validate conditional null logic. | |
requires_immediate_escalation | boolean | Must be true or false. If severity is critical, this field must be true. If severity is cosmetic, this field must be false. Validate boolean type and conditional constraints. | |
calibration_confidence | float 0.0-1.0 | Must be a float between 0.0 and 1.0 representing the model's confidence in the classification. Reject if below the configured confidence threshold (default 0.7) and route for human review. |
Common Failure Modes
Tool error severity classification fails when edge cases blur the lines between critical and minor. These are the most common failure patterns and how to prevent them before they reach production.
Severity Inflation Under Pressure
What to watch: The model classifies every timeout or 5xx as 'critical' during high-traffic incidents, overwhelming on-call teams with false alarms. This happens when the prompt lacks explicit calibration against user impact and blast radius. Guardrail: Include a mandatory 'user impact count' field in the classification schema and require the model to estimate affected users before assigning severity. Add a calibration test case where a 503 error affecting 3 internal test users must classify as 'minor.'
Recovery Timeline Overconfidence
What to watch: The model assigns 'minor' severity to errors with unknown recovery timelines, assuming the tool will self-heal. This masks cascading failures when a dependency stays degraded. Guardrail: Add a 'recovery confidence' field to the output schema. If the model cannot estimate recovery time with high confidence, cap the severity at no lower than 'major' and require a human escalation flag. Test with errors that have no historical recovery pattern.
Borderline Case Inconsistency
What to watch: The same error signature gets classified differently across runs—sometimes 'major,' sometimes 'minor'—because the rubric lacks anchoring examples for boundary cases. This erodes trust in automated incident routing. Guardrail: Embed 3-5 few-shot examples of borderline cases directly in the prompt, each showing the error characteristics, the correct classification, and the reasoning. Run the prompt 10 times against each borderline case and require 90%+ classification agreement before shipping.
Ignoring Downstream Dependency Impact
What to watch: The model classifies a tool error based only on the direct error response, ignoring that the failing tool is a dependency for 12 downstream services. A 'minor' authentication error becomes a critical outage when the blast radius is invisible to the classifier. Guardrail: Require a dependency graph as input context and instruct the model to traverse it before assigning severity. Add a validation check: if the tool has downstream dependents and the error blocks calls, severity must be at least 'major.'
Cosmetic Error Misclassification as Functional
What to watch: The model classifies a malformed but harmless log message or a deprecated header warning as 'major' because it matches error-like patterns in the response body. This creates noise that desensitizes responders. Guardrail: Add a pre-classification step that distinguishes 'functional impact' from 'cosmetic anomaly.' Require the model to answer: 'Does this error prevent the user from completing their task?' before assigning severity. Test with cosmetic errors like deprecation notices and verbose debug headers.
SLA Mapping Drift Across Teams
What to watch: The model produces severity labels that don't map cleanly to the team's actual response SLAs—'critical' means 5-minute response for one team and 30-minute for another. The classification becomes operationally useless. Guardrail: Include the team's specific SLA definitions as part of the prompt context, with concrete time thresholds for each severity level. Validate output by checking that the assigned severity triggers the correct SLA timer in a dry-run incident pipeline before deployment.
Evaluation Rubric
Use this rubric to test the Tool Error Severity Classification Prompt before production deployment. Each criterion validates a specific failure mode common to severity classification systems.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Severity Level Assignment Accuracy | Correctly classifies critical, major, minor, and cosmetic errors per the defined SLA mapping in at least 90% of test cases | Misclassifies a critical error as minor or cosmetic; assigns severity without referencing user impact or recovery timeline | Run 20 labeled error scenarios through the prompt and compare output severity to ground truth labels; flag any critical-major inversions |
Borderline Case Calibration | Handles ambiguous severity boundaries (e.g., major vs critical) with consistent rationale that references the rubric's tie-breaking rules | Produces inconsistent severity for similar borderline cases; rationale contradicts the rubric's own escalation criteria | Feed 5 calibrated borderline cases (e.g., partial outage with workaround, slow degradation with no user impact) and check for consistent classification logic across runs |
Evidence Grounding in Error Characteristics | Every severity classification cites specific error characteristics (status code, latency, error body, dependency state) from the input | Assigns severity based on generic assumptions without referencing actual error data; hallucinates error details not present in input | Parse output for citation markers; verify each cited characteristic exists in the input payload; flag any fabricated error codes or metrics |
SLA Mapping Correctness | Maps each severity level to the correct response SLA (acknowledgment time, resolution target, escalation path) as defined in the prompt's SLA table | Maps a severity to wrong SLA tier; omits SLA fields; invents SLA values not present in the rubric | Validate output SLA fields against the prompt's embedded SLA reference table; check for field completeness and value accuracy |
Recovery Timeline Realism | Estimated recovery timeline aligns with the error type and historical patterns referenced in the input context | Produces recovery estimates that are unrealistically optimistic (e.g., 5 minutes for database failover) or contradict known dependency recovery characteristics | Compare recovery timeline against a reference table of realistic recovery windows per error category; flag estimates outside ±50% of expected range |
User Impact Quantification | Quantifies user impact with specific metrics (affected user count, degraded feature scope, workaround availability) when provided in input | Describes user impact in vague terms ("some users affected") when input contains specific metrics; fails to distinguish between partial and total outage | Feed inputs with explicit user impact data and verify output preserves specificity; test with missing impact data to confirm appropriate uncertainty language |
Multi-Tool Dependency Cascade Recognition | Identifies when an error in one tool creates cascading severity risk for dependent tools and flags this in the classification | Treats a dependency-chain error as isolated when input shows multiple downstream tools affected; misses blast radius implications | Provide error scenarios with explicit dependency graphs; verify output mentions cascading risk when ≥2 dependent tools show correlated failures |
Incident Commander Actionability | Output includes a clear recommended next action that an incident commander can execute without additional interpretation | Produces vague recommendations ("investigate further") without specific diagnostic steps, escalation targets, or mitigation actions | Have an SRE reviewer rate actionability on a 1-5 scale across 10 outputs; require average ≥4 with no single score below 3 |
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 rubric and a single severity dimension (e.g., user impact). Use a simple 3-tier scale (Critical, Non-Critical, Cosmetic) instead of the full 4-tier classification. Skip SLA mapping and calibration tests initially. Run the prompt against 10-15 historical errors to validate basic classification consistency before adding complexity.
Watch for
- Overly broad severity definitions causing everything to land in 'Major'
- Missing edge cases where error characteristics conflict (e.g., high user impact but fast recovery)
- Prompt producing prose instead of structured classification output

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