SkyWaysThe agentic manual

Postmortems for AI incidents: find the missing control

Five layers of defence were claimed. None was enforced. The hour that followed produced a typed cap, a confirmation token, a lower autonomy level and six new test cases.

6 minutesIntermediateLesson 13 of 13Updated By

On this page
  1. Sound familiar?
  2. Why ask for the missing control?
  3. Run the postmortem, step by step
  4. Where you'll use it
  5. Why it matters
  6. Try it
  7. Key takeaways
  8. FAQ
  9. Apply it in your role
  10. Sources and credits
All lessonsStart here

Getting started

  1. What is the agentic PDLC?
  2. How this tutorial works

Agentic PDLC fundamentals

  1. The evolution of the PDLC
  2. Why agentic AI projects fail
  3. P0 · Frame
  4. P1 · Design & Spec
  5. The one hard gate
  6. P2 · Build & Prove
  7. P3 · Run & Learn
  8. The eight loops
  9. The evidence pack

Methods decoded

  1. AI-DLC vs AIDD vs agentic SDLC
  2. What is AI-DLC?
  3. What is AIDD?
  4. What is the BMAD Method?
  5. What is spec-driven development?
  6. One lifecycle for every method
  7. How much process a change needs

Running delivery

  1. How to run an agentic AI project
  2. Bolts vs sprints
  3. A board for agentic work
  4. Cut delivery from months to weeks
  5. Review AI code by risk
  6. How accurate must an agent be?
  7. Prove the agent meets its bar
  8. Shadow mode and cut-over
  9. Why the AI bill is 4× the estimate
  10. Guardrails that hold
  11. The five governance gates
  12. Catch AI drift
  13. AI incident postmortems

By role

  1. For product managers
  2. For program managers
  3. For solution architects
  4. For engineers
  5. For forward-deployed engineers
  6. For QA
  7. For DevOps and platform
  8. For business sponsors
  9. For executives

Teams and organisation

  1. Team structure for agentic AI
  2. Measuring AI productivity
  3. The maturity model
  4. Rolling it out in 90 days

Practice

  1. The SkyWays case study
  2. The operating rhythm
  3. The workbench
  4. Twelve exercises

Interviews and careers

  1. What is an FDE?
  2. Six answer frameworks
  3. AI PM interview questions
  4. FDE interview questions
  5. GenAI engineer questions
  6. Agentic engineer questions
  7. AWS GenAI questions

In short

A postmortem for an AI incident starts from one question: which enforced control, if it had been present, would have made this impossible? It classifies every claimed layer of defence as enforced, a request or absent, and fixes the one that closes the path in code with a test. It lowers the action's autonomy until evidence restores it, and leaves as a brief for the next P0.

The postmortemfinds the missing controlAsk onequestionthe missingcontrol?1Classify layersenforced in code,a request, absent2Close the pathin code, with tests3Lower theautonomyand name whatrestores it4Feed it forwardgolden cases, anADR, the next P0briefA postmortem that produced a name has not finished. The finding is the control that would have made the incidentimpossible.

The postmortem finds the missing control

  1. 1Ask one questionthe missing control?
  2. 2Classify layersenforced in code, a request, absent
  3. 3Close the pathin code, with tests
  4. 4Lower the autonomyand name what restores it
  5. Feed it forwardgolden cases, an ADR, the next P0 brief

A postmortem that produced a name has not finished. The finding is the control that would have made the incident impossible.

In this lesson you'll learn:

  • the one question that turns a postmortem from a search for a person into a search for a control;
  • how to classify every layer of defence honestly, with evidence;
  • the four artefacts that must leave the room for the incident loop to close.

Sound familiar?#

  • The action list says "remind staff of the refund policy" and "update the prompt".
  • The postmortem ended with a name, and the same incident recurred a month later with a different one.
  • Every layer of defence in the design document was "in place", and the incident happened anyway.

A postmortem that ends in a name, a reminder or a prompt edit has changed nothing that a model, or a person under pressure, cannot get past again.

Why ask for the missing control?#

Because people and models both fail, and a system that depends on neither failing will fail. The question who was careless? produces a name; the question which enforced control would have made this impossible? produces a system change. That is the principle of blameless postmortems, and for agentic systems it has a sharper edge: most controls that "failed" were never enforced at all. They were sentences in a prompt.

Run the postmortem, step by step#

Step 1 · Ask the one question, first#

Write it on the wall before anything else: which enforced control, if it had been present, would have made this impossible? Keep bringing the room back to it. The hour has worked if it produces a system, not a name.

Step 2 · Classify every layer#

List every layer of defence the design claimed and mark each one, with evidence:

LayerClaimedRealityWould it have stopped the money?
Input marked as datayesabsentNo
The prompt's policyyesa requestNo
A $400 capyesa request: in the prompt onlyYes
A named approveryesa request: in the prompt onlyYes
An alert on the traceyesabsentNo, it reports afterwards

That was SkyWays on day 82, when a $2,000 refund went out that was not owed: five layers claimed, none enforced, the cap and the approver written only in the prompt. The last column is the one that matters: with either of the two enforced in the tool's signature, the refund is impossible; injection defence and traces change the odds and the visibility, not the outcome. Every "enforced" must have a file, a line that raises, and a test beside it.

the five layers the design claimedday 82$2,000 refundinput markedas dataabsentthe prompt'spolicyonly a requesta $400 capa request:prompt onlya namedapprovera request:prompt onlyan alert onthe traceabsent; it reportsafterwards$2,000paid outeither would have stopped itday 82: a $2,000 refundinput marked as dataabsentthe prompt's policyonly a requesta $400 capa request: prompt onlya named approvera request: prompt onlyan alert on the traceabsent; it reports afterwardseither would have stopped it$2,000 paid out
On day 82 a $2,000 refund passed five claimed defences; either of two, in the tool's signature, would have made it impossible.

Step 3 · Choose the fix that closes the path#

Pick the control that makes the incident impossible rather than less likely (a cap as a typed parameter that raises, a confirmation token only a person's approval can create) and write the test that reproduces the incident. The test of the fix: the incident is now a test that was red an hour ago.

Step 4 · Lower the autonomy level, and say what restores it#

Drop the action one autonomy level (refunds from acting alone to needing an approver) and write the evidence that would restore it. At SkyWays refunds stayed one level down until a fourteen-day shadow run re-earned the level.

Step 5 · Feed it forward#

Four artefacts must leave the room: new golden cases built from the incident (SkyWays added six), an amended decision record, the postmortem record itself, and a brief for the next P0 with a pain, the evidence, the missing control, the fix and its value. Without the brief, the incident loop has not closed. The eight loops

Where you'll use it#

  • After every incident, including near-misses caught by a person.
  • After every drift alert that reveals a behaviour the design did not intend.
  • In a quarterly review, re-reading the layer tables to check that each "enforced" is still enforced.

Why it matters#

A postmortem that ends in a name leaves every other path open, and the incident recurs with a different name. One that ends in an enforced control closes the path for everyone, permanently, and the brief means the next framing starts from what the incident taught.

Try it#

A draft postmortem action list reads: (1) retrain the operations team; (2) add "double-check refunds" to the system prompt; (3) add a test that issue_refund raises above $400; (4) review refund logs weekly. Which action closes the path?

Show the answer

Only (3), and only once the cap is actually in the refund tool's signature, so the test passes because the tool refuses. (1) and (2) are requests: training and a prompt line both lower a probability. (4) finds the next breach after the money has left. Add a confirmation token for refunds above the cap, lower the refund autonomy level until a shadow run re-earns it, and turn the incident into golden cases and a P0 brief.

Key takeaways#

  1. One question: which enforced control would have made this impossible, never who was careless.
  2. Classify every layer as enforced, a request or absent, with a file and a line for every "enforced".
  3. Four artefacts leave the room: golden cases, a decision record, the record, and a brief for the next P0.

FAQ#

How do you run a postmortem for an AI incident?#

Ask which enforced control would have prevented it, classify every claimed layer of defence as enforced, a request or absent, fix the gap with a control in code and a test that reproduces the incident, lower the affected action's autonomy until evidence restores it, and turn the incident into new test cases and a brief for the next cycle.

What is a blameless postmortem?#

A review of an incident that looks for the conditions and missing controls that allowed it rather than for a person to blame, on the principle that people and systems both fail and only system changes prevent recurrence. The practice is described in Google's Site Reliability Engineering.

Why isn't updating the prompt a fix?#

Because a prompt is a request: it lowers the probability of the behaviour but cannot prevent it, and anything the model reads can argue against it. A fix closes the path: a limit in the tool's signature, or an approval the model cannot produce for itself.

Should an AI agent lose autonomy after an incident?#

For the affected action, yes, one level down, with the evidence that would restore it written in the record, such as a clean shadow run over a fixed window. That keeps the system useful while the fix earns trust, and makes restoring the level a decision with evidence rather than a date.

Apply it in your role#

If you are…Do thisThe AI-augmented shortcut
A forward-deployed engineerRun the customer's first postmortem yourself (ask for the missing control, not the person) and leave the template behind.Ask a model to draft the timeline from the logs and traces.
A product manager or FDPMTurn the incident into the next P0 brief: what the agent may now do, and what evidence restores it.Have a model draft the brief from the postmortem.
A GenAI or agentic AI engineerFix the one control that closes the path, in code, with a test, and add golden cases for the incident.Ask a coding agent to write the regression test from the incident's trace.

Across the enterprise. Share missing-control findings across teams. The same missing cap is usually sitting in three other agents.

The ten-minute workflow. Classify every layer before anyone names a person:

Here is the incident: <timeline, trace, the action taken>. List every layer that was supposed to stop
it (prompt, tool signature, identity, approval, monitoring) and classify each as enforced, a request,
or absent. Then name the one enforced control that would have made it impossible, and write its test.

Sources and credits#

IdeaOriginSource
Blameless postmortemsBorrowedBeyer, B., Jones, C., Petoff, J. & Murphy, N. R. (2016). Site Reliability Engineering. O'Reilly
Layered defences that fail when the holes line upBorrowedReason, J. (2000). Human error: models and management. BMJ 320
The missing-control question, the layer table and the four artefactsOriginal: this manualHow to run a missing-control postmortem
The SkyWays incidentIllustrative: a fictional airlineThe workbench

Prefer GitHub? This track is on the wiki, and this lesson is markdown. Found a mistake? Edit this lesson, or say so.