Inferensys

Prompt

Reflection Prompt for Postmortem Drafting

A practical prompt playbook for using Reflection Prompt for Postmortem Drafting in production AI workflows.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

When to Use This Prompt

Define the job, reader, and constraints for the Reflection Prompt for Postmortem Drafting.

Use this prompt when an incident analyst or SRE has completed a first draft of a blameless postmortem and needs a structured self-critique before the document goes to wider review. The prompt acts as a second-pass reasoning layer that examines the draft for missing contributing factors, weak or cosmetic action items, hindsight bias, and gaps in the causal timeline. It is designed for engineering teams that treat postmortems as learning artifacts, not compliance paperwork, and who want to catch shallow analysis before it becomes the official record.

This prompt is not a replacement for human review, a postmortem authoring tool, or a root-cause analysis engine. It does not write the postmortem; it critiques an existing draft. Do not use it when the incident is still active, when the timeline is incomplete, or when the author has not yet committed to a blameless framing. The prompt assumes the draft contains a timeline, a description of contributing factors, and proposed action items. If those sections are missing, the critique will be noisy and unhelpful. For high-severity incidents with regulatory or legal exposure, always route the output through human counsel before finalizing.

Wire this prompt into your postmortem workflow as a pre-review gate. After the draft is written, run the reflection prompt and attach the critique to the document. Use the critique to revise the draft before sending it to peer reviewers. This catches the most common failure modes—hindsight bias, single-cause narratives, and action items that sound good but don't prevent recurrence—while the author still has context fresh in mind. Avoid using the reflection output as a score or grade; it is a revision aid, not a performance metric.

PRACTICAL GUARDRAILS

Use Case Fit

Where the reflection prompt for postmortem drafting works, where it fails, and what you need before you start.

01

Good Fit: Structured Incident Write-Ups

Use when: You already have a draft postmortem with a timeline, contributing factors, and action items. The reflection prompt adds a second pass that catches missing causal links and weak remediation. Avoid when: The incident is still active or the timeline is incomplete.

02

Bad Fit: Live Incident Response

Avoid when: The incident is ongoing and facts are still changing. Reflection prompts assume a stable draft to critique. Risk: Running reflection mid-incident produces critiques based on stale or partial information, adding noise when responders need clarity.

03

Required Inputs

Must have: A complete draft postmortem with timeline entries, labeled contributing factors, and proposed action items. Nice to have: Chat transcripts, monitoring graphs, and deployment records to ground the critique. Guardrail: Validate that the draft contains all required sections before invoking reflection.

04

Operational Risk: Hindsight Bias Amplification

What to watch: The model may reinforce the draft author's hindsight bias instead of challenging it. Guardrail: Include explicit instructions to flag statements that assume outcomes were obvious at the time of the incident. Run a second reviewer check on bias-sensitive findings.

05

Operational Risk: Overconfident Causal Claims

What to watch: The reflection may propose causal links that sound plausible but lack evidence in the timeline. Guardrail: Require every causal claim in the critique to cite a specific timeline entry or evidence source. Flag unsupported claims for human review.

06

Scale Fit: Single Incident, Not Fleet-Wide

Use when: You are drafting one postmortem for one incident. Avoid when: You need pattern analysis across multiple incidents. Guardrail: For cross-incident analysis, use a separate synthesis prompt. Reflection prompts work best on a single, complete narrative.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt template for generating a structured self-critique of a draft postmortem, with placeholders for the incident timeline, draft document, and evaluation criteria.

This prompt template is designed to be dropped into an AI harness that feeds a draft postmortem and a verified incident timeline to a model. The model's job is not to rewrite the postmortem but to produce a structured critique that identifies gaps in contributing factors, weak or cosmetic action items, and instances of hindsight bias. The output is a machine-readable critique that can be reviewed by a human before the postmortem is finalized.

text
You are an incident analysis reviewer. Your task is to critique a draft postmortem for completeness, causal depth, and actionability. You do not rewrite the postmortem. You produce a structured analysis that a human reviewer will use to improve the document.

## INPUTS

[DRAFT_POSTMORTEM]

[VERIFIED_TIMELINE]

[SEVERITY_LEVEL]

[OUTPUT_SCHEMA]

[CONSTRAINTS]

## INSTRUCTIONS

1. Parse the [DRAFT_POSTMORTEM] and the [VERIFIED_TIMELINE]. The timeline is the ground truth for event sequencing and durations.
2. Identify every contributing factor mentioned in the draft. For each factor, check whether the timeline supports, contradicts, or is silent about it. Flag contradictions.
3. Identify contributing factors present in the timeline but absent from the draft. These are missing factors.
4. For each action item in the draft, classify it as:
   - **Specific and Preventative**: directly addresses a contributing factor with a concrete owner and completion criterion.
   - **Vague or Cosmetic**: uses language like "investigate," "monitor," or "improve" without a measurable outcome.
   - **Missing**: a contributing factor has no corresponding action item.
5. Scan the draft for hindsight bias markers: language that assumes the incident was obviously preventable given information that was only available after the fact. Flag each instance with the sentence and an explanation.
6. Check whether the draft distinguishes between contributing factors that were known at the time of the incident and those discovered during the investigation. Flag conflation.
7. Assess whether the severity classification in [SEVERITY_LEVEL] is consistent with the impact described in the draft and timeline. Flag discrepancies.
8. Produce your output strictly according to [OUTPUT_SCHEMA].
9. Adhere to all [CONSTRAINTS].

## OUTPUT

Return only valid JSON conforming to [OUTPUT_SCHEMA]. Do not include commentary outside the JSON structure.

To adapt this template, replace each square-bracket placeholder with the concrete values for your incident review workflow. [DRAFT_POSTMORTEM] should contain the full text of the draft. [VERIFIED_TIMELINE] must be a chronologically ordered list of events with timestamps, derived from monitoring data, chat logs, and deployment records—not from the draft itself. [SEVERITY_LEVEL] should map to your organization's severity definitions (e.g., SEV1, SEV2). [OUTPUT_SCHEMA] must be a strict JSON schema defining the expected structure of the critique, including arrays for missing factors, action item classifications, and hindsight bias flags. [CONSTRAINTS] should specify any domain-specific rules, such as required sections, prohibited language, or compliance requirements.

Before integrating this prompt into a production pipeline, validate it against at least five historical postmortems where you know the ground truth. Compare the critique output against what a skilled human reviewer would flag. Measure precision (flagged items that are genuine issues) and recall (genuine issues the prompt missed). If recall is low, add explicit examples of subtle failure patterns to [CONSTRAINTS] or include few-shot examples in the prompt. If precision is low, tighten the classification definitions. Always route the critique to a human reviewer before the postmortem is finalized—this prompt is an accelerator, not a replacement for engineering judgment in incident analysis.

IMPLEMENTATION TABLE

Prompt Variables

Placeholders required by the Reflection Prompt for Postmortem Drafting. Replace each with concrete values before sending the prompt. Validation notes describe how to check that the input is well-formed before the model sees it.

PlaceholderPurposeExampleValidation Notes

[DRAFT_POSTMORTEM]

The full text of the initial blameless postmortem draft to be critiqued

Title: Payment Gateway Timeout Incident Date: 2025-03-15 Authors: ops-team

Summary: ...

Must be non-empty string. Minimum 200 characters to provide enough context for meaningful critique. Check for presence of standard postmortem sections (timeline, impact, root cause, action items).

[INCIDENT_TIMELINE]

Structured timeline of events with timestamps, actions, and observed effects

[{"timestamp": "2025-03-15T14:03:00Z", "event": "Payment gateway latency exceeded 5s threshold", "source": "datadog-monitor"}, ...]

Must be valid JSON array. Each entry requires timestamp (ISO 8601), event description, and source field. Minimum 3 entries. Validate JSON parse before prompt assembly. Missing timestamps or sources should trigger a pre-prompt warning.

[SYSTEM_ARCHITECTURE_CONTEXT]

Description of relevant system components, dependencies, and failure domains

Payment service depends on: Stripe API (primary), Adyen API (fallback). Circuit breaker configured at 30s timeout. Cache layer: Redis cluster us-east-1.

Must be non-empty string. Should include upstream/downstream dependencies, timeout/retry configs, and failover paths. Null allowed if architecture is unknown, but critique quality will degrade. Warn if null.

[KNOWN_CONTRIBUTING_FACTORS]

List of factors already identified in the draft as contributing to the incident

["Database connection pool exhaustion", "Missing alert on connection pool saturation", "Deploy at 13:45 UTC removed read-replica config"]

Must be valid JSON array of strings. Can be empty array if draft identifies no factors. Each factor should be a complete sentence. Validate array structure. Empty array is a valid signal that the draft may be incomplete.

[ACTION_ITEMS]

List of proposed action items from the draft postmortem

[{"id": "AI-001", "description": "Add connection pool monitoring dashboard", "owner": "db-team", "due": "2025-04-01"}, ...]

Must be valid JSON array of objects. Each object requires id, description, and owner fields. Due field optional. Validate JSON parse. Empty array signals draft may lack remediation planning. Check for duplicate IDs.

[SEVERITY_LEVEL]

The severity classification of the incident (e.g., SEV1, SEV2, SEV3)

SEV2

Must match allowed enum: SEV1, SEV2, SEV3. SEV1 triggers additional scrutiny on action item urgency and customer impact analysis. Validate against enum before prompt assembly. Reject unknown values.

[CUSTOMER_IMPACT_SUMMARY]

Description of how customers were affected, including duration and scope

Approximately 12% of payment attempts failed between 14:03 and 14:47 UTC. Affected customers saw timeout errors during checkout. No data loss.

Must be non-empty string for SEV1 and SEV2 incidents. Should include percentage affected, duration, and error type. Null allowed for SEV3 or internal-only incidents. Validate severity-to-impact consistency: SEV1 with null impact should trigger a pre-prompt warning.

[POSTMORTEM_AUTHOR_ROLE]

Role of the person who wrote the draft, used to detect potential bias blind spots

On-call SRE from platform team

Must be non-empty string. Used by the reflection prompt to identify perspective gaps (e.g., author from platform team may underweight application-layer factors). Validate string length > 0. Null degrades bias-detection quality.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the reflection prompt into a production postmortem drafting workflow with validation, retries, and human review gates.

The reflection prompt is not a standalone generator—it is a critique step that sits between an initial draft and a final human review. Wire it into your postmortem pipeline as a second-pass analysis: the system first generates a draft postmortem from incident data, then passes that draft to the reflection prompt for structured self-critique. The output is a list of identified gaps, weak action items, and hindsight-bias flags that the original draft missed. This critique should be surfaced alongside the draft, not used to auto-rewrite it without human oversight. The reflection step adds the most value when the initial draft was produced by the same model or a less-capable model, because it catches the model's own blind spots before a human reviewer spends time on them.

Build the harness with three explicit stages: draft generation, reflection critique, and human review merge. In the reflection stage, pass the full draft text as [DRAFT] and the incident timeline as [TIMELINE]. Use a structured output schema that enforces the critique fields: missing_contributing_factors (array of strings), weak_action_items (array of objects with action_item and weakness fields), hindsight_bias_flags (array of objects with statement and bias_type fields), and causal_gaps (array of objects with claimed_cause, missing_evidence, and suggested_investigation fields). Validate the output against this schema before surfacing it. If the model returns malformed JSON or omits required fields, retry once with a stricter format instruction appended to the prompt. After two failures, flag the draft for full human review and log the failure for prompt debugging.

For model choice, use a model with strong reasoning capabilities—GPT-4o, Claude 3.5 Sonnet, or equivalent—because the reflection task requires detecting subtle logical gaps and counterfactual reasoning. Set temperature to 0.2 or lower to reduce variance in critique quality across runs. If your incident volume is high, consider batching drafts through the reflection step asynchronously and surfacing critiques in your postmortem tool as inline annotations rather than separate documents. Always log the full prompt, draft, and critique output for auditability. The reflection output should never auto-close a postmortem; it should feed into a human review queue where an incident analyst accepts, rejects, or modifies each critique finding. This keeps the human accountable for the final postmortem while using the model to reduce the cognitive load of catching their own oversights.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the required fields, types, and validation rules for the structured reflection output. Use this contract to parse and validate the model's self-critique before presenting it to the incident analyst or feeding it into a revision loop.

Field or ElementType or FormatRequiredValidation Rule

critique_id

string (UUID v4)

Must parse as a valid UUID v4. Reject if missing or malformed.

target_postmortem_id

string

Must match the ID of the draft postmortem being critiqued. Reject on mismatch.

missing_contributing_factors

array of objects

Each object must contain 'factor' (string, non-empty) and 'evidence_gap' (string, non-empty). Array must not be empty; if none found, use a single object with factor 'None identified' and evidence_gap 'N/A'.

weak_action_items

array of objects

Each object must contain 'original_item' (string), 'weakness' (enum: 'vague', 'unmeasurable', 'unowned', 'low_impact'), and 'suggestion' (string). Reject if 'weakness' value is not in the enum.

hindsight_bias_indicators

array of strings

Each string must be a direct quote or close paraphrase from the source postmortem. Reject if any string is a generic statement not traceable to the source text.

timeline_consistency_issues

array of objects

Each object must contain 'event_a' (string), 'event_b' (string), and 'inconsistency' (string). Reject if 'event_a' and 'event_b' are identical.

causal_completeness_score

integer (1-5)

Must be an integer between 1 and 5 inclusive. Reject if outside range or not an integer.

causal_completeness_rationale

string

Must be at least 50 characters. Reject if shorter, indicating a non-substantive rationale.

PRACTICAL GUARDRAILS

Common Failure Modes

Reflection prompts for postmortem drafting are powerful but brittle. These are the most common failure modes when asking a model to critique an incident analysis, along with practical mitigations to keep the output useful and blameless.

01

Hindsight Bias Contamination

What to watch: The model treats the incident outcome as inevitable, producing critiques like 'the team should have known' or 'the alert clearly indicated the root cause.' This undermines the blameless culture and produces unactionable action items. Guardrail: Explicitly instruct the model to evaluate the draft using only information available before the incident was resolved. Add a constraint: 'Do not use knowledge of the final root cause to judge decisions made during the incident.'

02

Vague Action Item Proposals

What to watch: The reflection prompt generates generic action items such as 'improve monitoring' or 'add more tests' without specifying what to monitor, which tests, or who owns the work. These survive review and create false closure. Guardrail: Require the output schema to include an owner, success_criterion, and detection_method for every proposed action item. Validate that no action item is fewer than 20 words.

03

Timeline Inconsistency Drift

What to watch: The model reorders, misattributes, or fabricates timeline entries when critiquing the draft, especially when the original timeline is long or has overlapping events. This corrupts the causal chain and misleads reviewers. Guardrail: Ground the reflection by requiring the model to cite specific line numbers or timestamps from the original timeline for every critique point. Add a validator that checks whether cited events exist in the source draft.

04

Causal Oversimplification

What to watch: The model converges on a single root cause and ignores contributing factors such as deployment pressure, tooling gaps, or organizational process failures. The postmortem becomes a single-barrier fix rather than a systemic improvement. Guardrail: Require the reflection to identify at least three contributing factors across different categories (technical, process, human-factors). Add an eval that flags critiques with fewer than two distinct causal categories.

05

Blameless Language Violation

What to watch: The model introduces accusatory phrasing such as 'the on-call engineer failed to' or 'the developer should not have merged.' This is especially common when the draft itself uses passive voice and the model attempts to assign agency. Guardrail: Add a policy instruction: 'Use only systems-language. Replace all references to individual actions with team, system, or process descriptions.' Run a post-generation keyword scan for names, roles paired with negative verbs, and personal pronouns in critique text.

06

Missing Detection Gap Analysis

What to watch: The reflection focuses entirely on what happened after detection but ignores the gap between when the incident started and when it was detected. The most valuable action items often come from shrinking this gap. Guardrail: Add a dedicated section in the output schema for 'Detection Gap Assessment' that requires the model to estimate time-to-detect and propose specific alerting or observability improvements that would have reduced it.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to evaluate the quality of a reflection prompt's output before integrating it into a production postmortem pipeline. Each criterion targets a specific failure mode in self-critique generation.

CriterionPass StandardFailure SignalTest Method

Hindsight Bias Detection

Critique explicitly identifies at least one statement in the draft that assumes the incident was more predictable than it was.

Critique accepts the draft's narrative without flagging any 'knew-it-all-along' language.

Parse critique for keywords like 'hindsight', 'predictable', 'obvious in retrospect'. Flag if absent.

Contributing Factor Coverage

Critique identifies at least one missing contributing factor (e.g., process, tooling, or organizational) not mentioned in the draft.

Critique only comments on factors already present in the draft or suggests none are missing.

Diff the set of factors in the draft against the set in the critique. Require a non-empty difference.

Action Item Weakness Identification

Critique flags at least one action item as vague, unmeasurable, or unlikely to prevent recurrence.

Critique approves all action items as sufficient or only suggests cosmetic rewording.

Check critique for terms like 'vague', 'unmeasurable', 'insufficient', 'does not address'. Require at least one match.

Timeline Consistency Check

Critique notes any chronological gaps or logical inconsistencies in the incident timeline.

Critique ignores timeline gaps or accepts an incomplete sequence of events.

Provide a known-bad timeline with a gap. Assert critique output contains 'gap', 'missing', or 'inconsistent'.

Causal Completeness

Critique identifies a broken causal link where an effect is stated without a preceding cause.

Critique treats all cause-effect pairs as valid without questioning any missing links.

Inject a draft with a non-sequitur. Assert critique output contains 'cause', 'missing link', or 'unexplained'.

Blameless Language Adherence

Critique flags any language that attributes fault to an individual or team rather than a system or process.

Critique does not flag a statement like 'the engineer made a mistake' as problematic.

Include a blameful sentence in the test draft. Assert critique output matches a regex for 'blame', 'individual', or 'finger-pointing'.

Actionable Revision Suggestion

For every weakness identified, the critique provides a concrete, directional suggestion for improvement.

Critique identifies problems but offers only generic advice like 'improve this' without specifics.

Count critique items. Assert that each 'weakness' or 'gap' statement has a corresponding 'suggest' or 'recommend' clause within 2 sentences.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base reflection prompt with a single-pass critique. Remove structured output requirements and let the model produce free-text feedback. Accept the first response without retry or validation.

Watch for

  • Hindsight bias in the critique (judging decisions with outcome knowledge)
  • Overly broad feedback without specific line references
  • Missing causal chain analysis
  • No distinction between contributing factors and root causes
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.