This prompt is a triage engine for production AI systems that manage multi-turn conversations. Its job is to take a list of previously detected, unanswered user questions and rank them by severity so that an agent planning loop or a human review queue can address the most critical item first. The ideal user is an AI engineer or product developer building a copilot, support agent, or task-oriented assistant where dropped questions are a known failure mode. You should use this prompt when you already have a structured list of pending questions—typically the output of a detection step like the Pending Question Detection Prompt Template—and you need to decide which one to action next.
Prompt
Unanswered Question Severity Scoring Prompt

When to Use This Prompt
Defines the job-to-be-done, ideal user, required context, and limitations for the Unanswered Question Severity Scoring Prompt.
The prompt evaluates each question across four concrete dimensions: blocking status (does this question prevent the user from completing their primary goal?), time sensitivity (is there an explicit or implied deadline?), user sentiment signals (does the user's language indicate frustration or urgency?), and downstream dependency impact (will answering this question unblock other pending tasks?). It produces a ranked list with severity scores and a recommended next action, making it suitable for injection into an agent's planning context or for sorting a human review queue. Do not use this prompt as a question detector. It assumes the input list is already accurate and will not catch false negatives from an upstream detection failure. Pair it with a re-surfacing or repair prompt, such as the Conversation Repair Prompt for Forgotten Questions, to close the loop after prioritization.
Before deploying, you must define what 'high severity' means for your specific product. A blocking question in a real-time support chat has different urgency than one in an asynchronous email assistant. Calibrate the scoring dimensions with a golden dataset of conversations where domain experts have ranked the questions. Run the prompt against this dataset and measure ranking alignment using a metric like Normalized Discounted Cumulative Gain (NDCG). If the prompt's rankings consistently diverge from expert judgment on a particular dimension, add a [CONSTRAINTS] section with domain-specific rules. For high-stakes domains like healthcare or finance, always route high-severity items to a human review queue and log the prompt's output as audit evidence for why that item was prioritized.
Use Case Fit
Where the Unanswered Question Severity Scoring Prompt delivers value and where it introduces risk.
Good Fit: Triage Queues
Use when: You have a backlog of unresolved questions from support tickets or chat logs and need to prioritize which to address first. Guardrail: The prompt excels at ranking by blocking status and time sensitivity, but always validate the top-N rankings against a human sample before automating downstream routing.
Good Fit: Agent Planning Injection
Use when: An autonomous agent needs to decide which pending question to tackle next. Guardrail: Inject the scored list directly into the agent's planning prompt. Ensure the agent's tool set includes a 'verify_question_still_relevant' function to avoid acting on stale severity scores.
Bad Fit: Real-Time Chat
Avoid when: You need to score a question's severity in a synchronous, low-latency user-facing chat loop. Guardrail: This prompt is designed for asynchronous analysis. For real-time use, implement a lightweight heuristic check first and reserve this prompt for post-turn or batch processing to avoid blocking the user.
Required Inputs
What to watch: The prompt requires a structured list of questions with turn references and user sentiment signals. Guardrail: Do not pass raw, unstructured transcripts. Pre-process the conversation with a 'Pending Question Detection' prompt first. Missing sentiment or dependency data will cause the severity score to default to a lower, potentially incorrect tier.
Operational Risk: Score Drift
What to watch: The model's interpretation of 'blocking' or 'time-sensitive' can drift across different conversations or model versions, leading to inconsistent prioritization. Guardrail: Implement a calibration step. Periodically run the prompt on a golden set of questions with known severities and compare scores. Use a few-shot example in the prompt to anchor the scoring rubric.
Operational Risk: Hallucinated Dependencies
What to watch: The model may infer a downstream dependency between questions that isn't explicitly stated, inflating a severity score. Guardrail: The output schema must require a separate evidence field for each dependency claim. A post-processing validator should flag any dependency without a direct citation from the input context for human review.
Copy-Ready Prompt Template
A reusable scoring prompt that ranks each unanswered question by severity so your triage system can prioritize what matters most.
This template is the core instruction you send to the model. It expects a list of unanswered questions and supporting conversation context, then returns a severity-ranked list with scores and justifications. Replace every square-bracket placeholder before calling the model. The prompt is designed to be self-contained: it defines the scoring dimensions, output schema, and constraints in one block so you can drop it into an existing agent planning or human-review pipeline without additional system instructions.
textYou are a conversation triage analyst. Your task is to score each unanswered question in the provided list for severity and produce a ranked output. ## INPUT - Unanswered Questions: [UNANSWERED_QUESTIONS_LIST] - Conversation Context: [CONVERSATION_CONTEXT] - User Sentiment Signals: [USER_SENTIMENT_SIGNALS] - Downstream Dependencies: [DOWNSTREAM_DEPENDENCIES] ## SCORING DIMENSIONS For each question, assign a score from 1 (lowest) to 5 (highest) on each dimension: 1. **Blocking Status**: Does this question block the user from completing their primary goal? (5 = completely blocked, 1 = purely informational) 2. **Time Sensitivity**: How urgently does this need an answer? Consider explicit deadlines, implied urgency from context, and conversation pacing. (5 = immediate deadline or active waiting, 1 = no time pressure) 3. **User Sentiment Impact**: How much frustration, anxiety, or escalation risk is associated with this question remaining unanswered? (5 = visible frustration or explicit escalation language, 1 = neutral or casual curiosity) 4. **Downstream Dependency Impact**: How many other tasks, decisions, or workflows depend on this answer? (5 = multiple dependent workflows blocked, 1 = isolated question with no dependencies) ## OUTPUT SCHEMA Return a JSON object with this exact structure: { "ranked_questions": [ { "rank": 1, "question_id": "string", "question_text": "string", "severity_scores": { "blocking_status": 1-5, "time_sensitivity": 1-5, "user_sentiment_impact": 1-5, "downstream_dependency_impact": 1-5 }, "composite_severity": 1-5, "justification": "string explaining the composite score with evidence from the conversation", "recommended_action": "answer_immediately | escalate_to_human | schedule_followup | defer" } ], "triage_summary": "string summarizing the overall severity landscape", "escalation_candidates": ["question_id"] } ## COMPOSITE SEVERITY CALCULATION composite_severity = max(blocking_status, time_sensitivity, user_sentiment_impact, downstream_dependency_impact) Rationale: The most critical dimension should drive priority. Do not average. ## CONSTRAINTS - Score every question in the input list. Do not skip any. - If a dimension cannot be determined from context, score it as 1 and note "insufficient context" in the justification. - Do not invent facts, deadlines, or user emotions not present in the input. - Rank by composite_severity descending. Break ties by blocking_status, then time_sensitivity. - recommended_action must be one of the four enumerated values. - Only include question_ids in escalation_candidates if composite_severity >= 4 AND user_sentiment_impact >= 4.
Adaptation guidance: Replace [UNANSWERED_QUESTIONS_LIST] with a structured array of question objects, each containing at minimum an id and text field. [CONVERSATION_CONTEXT] should include the last N turns or a session summary. [USER_SENTIMENT_SIGNALS] can be extracted from a prior sentiment detection pass or left as an empty string if unavailable. [DOWNSTREAM_DEPENDENCIES] should list known dependent workflows or tasks; if your system doesn't track dependencies, replace with "No dependency data available." The composite severity formula uses max rather than average to prevent a question with one critical dimension from being buried. If your triage logic requires a weighted formula instead, modify the calculation rule and document the change in your prompt version history.
Prompt Variables
Required inputs for the Unanswered Question Severity Scoring Prompt. Each variable must be populated before the prompt is assembled and sent to the model. Missing or malformed inputs are the most common cause of scoring errors in production.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[UNRESOLVED_QUESTIONS_LIST] | Array of question objects extracted from prior turns, each with id, text, turn_number, and asked_at timestamp | [{"id":"q1","text":"Can I get a refund?","turn_number":3,"asked_at":"2025-01-15T14:02:00Z"}] | Must be valid JSON array. Each object requires id (string), text (non-empty string), turn_number (positive integer). Null or empty array triggers no-op response. |
[CONVERSATION_SUMMARY] | Structured summary of the full conversation context including user intent, topic, and current state | {"intent":"refund_request","topic":"order_fulfillment","state":"awaiting_agent_response","turn_count":7} | Must be valid JSON object. Required fields: intent, topic, state. Missing fields cause severity misclassification on blocking-status dimension. |
[USER_SENTIMENT_SIGNALS] | Sentiment analysis output for the turns containing unresolved questions, including frustration markers and urgency language | {"q1":{"sentiment":"frustrated","urgency_markers":["need this resolved today"],"polarity_score":-0.6}} | Must be valid JSON object keyed by question id. Each value requires sentiment (string enum: neutral, frustrated, angry, anxious, urgent) and polarity_score (float -1.0 to 1.0). Null allowed if sentiment extraction unavailable. |
[DOWNSTREAM_DEPENDENCIES] | Map of question ids to downstream workflows, decisions, or agent actions that are blocked until the question is resolved | {"q1":["refund_processing","customer_notification"],"q2":[]} | Must be valid JSON object keyed by question id. Values are arrays of dependency labels (strings). Empty array means no known dependencies. Missing key treated as unknown dependency state. |
[CURRENT_TURN_NUMBER] | Integer indicating the current conversation turn, used to calculate question age and staleness | 12 | Must be a positive integer. Used to compute age = current_turn_number - question.turn_number. Missing or zero causes all questions to appear equally recent. |
[TIME_SENSITIVITY_CONTEXT] | Business rules or SLA context that defines time-critical thresholds for this conversation type | {"sla_hours":4,"business_hours_only":true,"escalation_threshold_hours":2} | Must be valid JSON object. Required fields: sla_hours (positive number), business_hours_only (boolean). Missing causes default conservative scoring that may over-prioritize non-urgent items. |
[SCORING_DIMENSIONS] | Ordered list of severity dimensions to score against, with weight and scale definition | [{"dimension":"blocking_status","weight":0.35,"scale":[1,5]},{"dimension":"time_sensitivity","weight":0.30,"scale":[1,5]}] | Must be valid JSON array. Each dimension requires name (string), weight (float 0-1, weights must sum to 1.0), and scale (array of two integers defining min and max). Missing or malformed causes fallback to default dimensions. |
Implementation Harness Notes
How to wire the severity scoring prompt into a production triage pipeline with validation, retries, and human review gates.
This prompt is designed to be called by a state management middleware layer, not directly by the end user. The middleware should maintain a structured list of unresolved questions (detected by a companion prompt like Pending Question Detection) and pass them into this scoring prompt as a batch. The output is a ranked list that downstream systems consume: an agent planner can inject the top-N blocked items into its next planning step, a support dashboard can highlight high-severity items for human agents, or a notification system can escalate time-sensitive questions that have exceeded their SLA. The prompt expects a JSON array of question objects as [UNRESOLVED_QUESTIONS] and a conversation summary or recent turn context as [CONVERSATION_CONTEXT] to ground severity judgments in actual user sentiment and workflow state.
Wire the prompt into an application pipeline with these concrete steps: (1) Input assembly: Collect unresolved questions from your state tracker and serialize them with fields id, question_text, turn_number, age_in_turns, and any existing tags. Include the last N turns of conversation context so the model can detect sentiment signals and blocking dependencies. (2) Model selection: Use a model with strong reasoning and structured output support (GPT-4o, Claude 3.5 Sonnet, or equivalent). This task requires cross-item comparison and multi-factor judgment, not simple classification. (3) Schema enforcement: Require the output to match the [OUTPUT_SCHEMA] defined in the prompt template—each scored item must include question_id, severity_score (1-5), blocking_status (boolean), time_sensitivity (low/medium/high/critical), sentiment_signal (neutral/concerned/frustrated/urgent), dependency_impact (none/low/medium/high), and a one-sentence rationale. Use structured output mode or a JSON schema validator post-generation. (4) Validation layer: After receiving the model output, validate that every input question ID appears in the output, severity scores are within range, and the ranked order is consistent with individual scores. Reject and retry if IDs are missing or scores are malformed. (5) Retry logic: On validation failure, re-invoke the prompt with the same input plus an [ERROR_CONTEXT] field describing the validation failure. Limit to 2 retries before falling back to a default FIFO ordering with a warning log. (6) Logging: Log the input question count, output ranking, validation status, retry count, and model latency. This data feeds prompt regression tests and cost monitoring.
For high-stakes workflows—such as healthcare triage, financial support, or legal intake—add a human review gate before the ranked list drives automated actions. Route items scored 4 or above to a review queue where a human confirms or adjusts the severity before the item blocks a workflow or triggers an escalation. For lower-stakes deployments, you can use the ranked list directly but should still monitor for severity inflation (the model scoring everything as high) or severity blindness (missing genuinely blocking items). Run periodic eval passes using a golden dataset of conversations with known dropped questions and expert-labeled severity scores. Compare model rankings against human rankings using NDCG or Kendall's tau. If the model consistently underperforms on time-sensitivity detection, consider augmenting the prompt with explicit SLA rules or adding a pre-processing step that computes age-in-minutes from timestamps rather than relying on the model to infer urgency from turn counts alone.
Expected Output Contract
Defines the JSON schema for the severity scoring output. Each field must be validated before the result is injected into agent planning or a human review queue.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
unresolved_questions | Array of objects | Must be a non-empty array if [UNRESOLVED_QUESTIONS] input is non-empty. Each element must match the UnresolvedQuestion schema. | |
unresolved_questions[].question_id | String | Must exactly match the | |
unresolved_questions[].severity_score | Integer | Must be an integer between 1 and 5 inclusive. A score of 5 indicates a blocking or critical issue. | |
unresolved_questions[].blocking_status | Boolean | Must be | |
unresolved_questions[].time_sensitivity | String (enum) | Must be one of: | |
unresolved_questions[].sentiment_signal | String (enum) | Must be one of: | |
unresolved_questions[].downstream_impact | Array of strings | If present, each string must reference a specific downstream system or workflow mentioned in [DOWNSTREAM_DEPENDENCIES]. Empty array is valid if no impact. | |
ranked_priority_list | Array of strings (question_id) | Must be a list of |
Common Failure Modes
Severity scoring prompts fail in predictable ways that can corrupt downstream triage and agent planning. These are the most common failure modes and how to guard against them.
Severity Inflation on Emotionally Charged Inputs
What to watch: The model over-weights sentiment signals (angry language, ALL CAPS, urgent phrasing) and assigns critical severity to questions that are emotionally heated but operationally low-impact. Guardrail: Require the prompt to separate sentiment severity from operational severity as distinct scoring dimensions, and validate that high-sentiment, low-blocking items don't crowd out genuinely blocking issues.
Downstream Dependency Blindness
What to watch: The model scores a question as low severity because it appears self-contained, but misses that three other pending tasks depend on its answer. The downstream queue starves. Guardrail: Include an explicit dependency-mapping step in the prompt that checks each question against the current pending-action inventory before assigning a final severity score.
Temporal Discounting of Older Unresolved Items
What to watch: Questions asked earlier in a long session receive lower severity scores simply because they're farther from the current turn, even when they remain blocking. Guardrail: Add a staleness penalty that increases severity for items approaching a deadline or exceeding a configurable age threshold, and test with sessions of varying lengths.
Implicit Question Miss Rate
What to watch: The severity scoring prompt only evaluates questions that were explicitly extracted, but the extraction step missed implicit questions (e.g., 'I can't log in' implies 'Why can't I log in?' and 'How do I fix it?'). Unscored questions never reach triage. Guardrail: Pair this prompt with a detection step that captures both explicit and implicit questions, and run a completeness check that flags transcripts where user frustration signals exist without corresponding scored questions.
Score Calibration Drift Across Model Versions
What to watch: A severity scoring prompt calibrated on one model produces consistently different score distributions after a model upgrade, breaking downstream thresholds and routing rules. Guardrail: Maintain a golden set of scored question examples with expected severity ranges, run regression tests on every model change, and use few-shot examples with anchored scores in the prompt to reduce distribution shift.
Context Window Truncation Drops Low-Scored Items
What to watch: When the conversation plus pending-item inventory exceeds the context window, the model silently drops lower-severity items from its output rather than flagging them as unevaluated. Guardrail: Require the output schema to include an explicit evaluated_count and total_pending_count field, and fail the response if they don't match. Log mismatches as a context-overflow signal for the application layer.
Evaluation Rubric
Use this rubric to evaluate the quality of the Unanswered Question Severity Scoring Prompt's output before deploying it to production. Each criterion targets a specific failure mode common in triage and prioritization systems.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Severity Score Calibration | Scores for [BLOCKING] items are always higher than [TIME_SENSITIVE] items, which are higher than [INFORMATIONAL] items, given equivalent other factors. | A rhetorical question is scored higher than a question blocking a user's next workflow step. | Run 10 hand-labeled examples with known severity ordering. Check that the output ranking preserves the expected ordinal relationship. |
Sentiment Signal Integration | Questions from turns with explicit negative sentiment markers (e.g., frustration, urgency) receive a higher severity score than identical questions without those markers. | A user's polite follow-up and an angry escalation of the same question receive identical scores. | Create a pair of transcripts differing only in sentiment cues. Verify the output score for the target question increases by at least one level in the high-sentiment variant. |
Downstream Dependency Detection | The output correctly identifies and flags any unresolved question that is a prerequisite for another pending action in [PENDING_ACTION_LIST]. | A question marked as [RESOLVED] is still listed as a dependency, or a genuine dependency is missed. | Provide a transcript with a clear dependency chain (e.g., 'What is the budget?' must be answered before 'Approve the vendor'). Verify the dependency field is populated and the severity score is elevated. |
Output Schema Compliance | The output is a valid JSON array where every object has the required fields: | The output is a markdown list, a plain text summary, or a JSON object with missing or misspelled keys. | Validate the raw output string against the [OUTPUT_SCHEMA] using a JSON schema validator. The test passes only if validation succeeds without errors. |
False Positive on Rhetorical Questions | Rhetorical questions, social niceties ('How are you?'), and answered questions are excluded from the output list. | The output includes 'How can I help you today?' from the assistant's greeting as an unanswered question. | Include 3 known rhetorical or social questions in the test transcript. Assert that none of them appear in the output array. |
Confidence-Weighted Ranking | Items with a | A high-severity item is missing a confidence score, or a low-confidence, high-severity item is not routed to the [REVIEW_QUEUE]. | Check the output for all items with |
Staleness Discounting | The severity score of an unanswered question is reduced if the conversation has clearly moved on to a new, unrelated topic, as indicated by [TOPIC_SHIFT_DETECTED] being true. | A question from the first turn about a canceled project is still ranked as the highest priority item at the end of the session. | Provide a transcript with a clear topic shift away from the original question's domain. Verify the stale question's score is lower than a new, active question of similar objective importance. |
Multi-Turn Reference Integrity | The | The output references a | Parse the output |
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
Use the base prompt with a single severity dimension (blocking/non-blocking) and a 1-3 scale. Skip dependency mapping and sentiment analysis. Run against a small set of hand-labeled conversation transcripts.
codeScore each unresolved question on a single severity scale from 1 (low) to 3 (high). Consider only whether the question blocks the user from completing their primary task. [UNRESOLVED_QUESTIONS]
Watch for
- Over-scoring rhetorical questions as severe
- Missing implicit questions that aren't phrased with a question mark
- Inconsistent scoring when the same question appears in different conversation contexts

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