AI & Advanced
ArchitectCode / policy labScenario sim

Incident Response as Code

Runbooks in version control, severity matrices that decide who gets paged, and postmortems that commit their own follow-ups.

55 min 240 XPSkills: Incident response, Runbooks, Severity

Brief

At 2am, an incident is run by whoever is awake, out of whatever document they can find. If the runbook lives in a wiki last edited during the previous incident, the response is archaeology. If severity is decided by how panicked the caller sounds, every incident is the worst incident.

Incident response as code treats the response itself as an artefact: runbooks in version control, severity declared from a matrix, the on-call rota as data, and the postmortem as a commit that changes the system.

The incident will not read your runbook. The responder will: if the runbook is findable, current, and has been executed before it mattered.

The runbook is a repo

A runbook in version control gains everything code gains: review on change, blame when a step is wrong, and a render pipeline that publishes the current version to the place responders actually look. The on-call rota sits beside it as YAML, so 'who do I page' is a lookup, not a rumour. And because every incident ends in a postmortem commit, the runbook improves under the same workflow as everything else you ship.

The test of a runbook is not whether it reads well. It is whether someone who has never run it can execute it at 2am and produce the same decisions as the person who wrote it.

A versioned runbooks repository rendered by CI into the incident channel page, with the severity matrix and on-call rota alongside, and a postmortem commit looping back into the repo.
The postmortem is a commit. If it does not change the repo, it changed nothing.

Severity is declared, not felt

Severity inflation is the default state of an undeclared process: the person reporting the incident is having a bad day, so it is a SEV1, and the org learns to ignore the word. A severity matrix replaces adrenaline with two axes, scope of impact and data sensitivity, and a lookup that says who gets paged and how fast.

Declared severity also gives you the audit trail: why this incident paged the CISO and that one waited until morning is a question an auditor, a regulator, or your own postmortem will eventually ask.

A four-by-four severity matrix crossing scope of impact with data sensitivity, with SEV1 to SEV4 cells and a note that declared severity drives the page.
Two axes, one lookup. Severity is a decision you can defend later.

Tasks

Answers are graded on the server: the answer key never reaches your browser.

Task 1: The 2am treasure hunt

Scenario sim+80 XP

Read the brief and answer both questions.

Incident brief

Production is down. The on-call engineer finds three runbooks: one in the team wiki (last edited 14 months ago), one in a Google Doc titled 'Runbook FINAL v2 USE THIS', and one pinned in Slack as a screenshot. They contradict each other on the rollback step. She guesses. The guess is wrong, and the outage doubles.

In the postmortem, the engineering manager says: 'The documentation failed us. Everyone should try harder to keep it updated.'

Term bank, not all of these are right

trying harderversion controlrunbooktribal knowledge

1.1Where should runbooks live so that every change is reviewed and the current version is unambiguous? (two words)

1.2What is the name for the per-system document a responder executes step by step during an incident?

Task 2: Everything is a SEV1

Scenario sim+80 XP

Read the brief and answer both questions.

Incident brief

Last quarter your org declared eleven SEV1 incidents. Reviewing them: three were single-team tooling outages, one was a typo on the marketing site. Meanwhile a genuine restricted-data exposure was declared SEV3 because the reporter 'didn't want to make a fuss', and the regulatory clock started two days late.

The VP says the answer is clear communication: 'Just tell people to be honest about severity.'

Term bank, not all of these are right

honestyseverity matrixdeclared severityescalation

2.1What tool replaces gut-feel severity with a lookup over impact scope and data sensitivity? (two words)

2.2What is the property called when severity comes from a defined table rather than the reporter's confidence? (two words)

Task 3: The postmortem that changed nothing

Scenario sim+80 XP

Read the brief and answer both questions.

Incident brief

The postmortem for the breach-response incident is excellent: forty pages, honest timeline, root cause nailed. It ends with 'lessons learned' and a list of ten recommendations. Six months later, the same failure recurs. The recommendations were never assigned; the document was never linked from the runbook; the 'blameless culture' was cited as the reason nobody owned the follow-ups.

'Blameless means we don't point fingers,' the director explains, 'so we deliberately kept recommendations impersonal.'

Term bank, not all of these are right

impersonal recommendationsaction itemblamelessroot cause

3.1What should every postmortem recommendation become, with an owner and a due date? (two words)

3.2What is the name for the culture that examines failure without punishing the people involved, which this company is using as an excuse?

Labs

90 bonus XP

Hands-on work. You edit the artefact, the server runs the checks: the expectations and the reference solution never reach your browser.

Lab 1 · YAML lab

Specify incident response as code

Briefing 50 XP

Three runbooks contradict each other, severity is decided by whoever sounds most alarmed, and the last postmortem's recommendations were 'kept impersonal', so nobody owned them. The on-call rota is a screenshot in the wiki.

Write the specification for response-as-code: versioned runbooks rendered to the incident channel, a declared severity matrix, the rota as data, and postmortems that land as tracked changes.

Current state (from the postmortem)

runbooks: wiki + google docs + slack screenshots (3 versions, contradictory)
severity: decided on the call, "based on impact"
on-call: wiki screenshot of a rota, updated manually
postmortems: 40-page docs; recommendations "impersonal", unowned
regulatory_clock: started 2 days late on the last restricted-data event

Checks

  • Runbooks live in version control with review
  • Current runbook is rendered where responders look
  • Severity comes from a declared matrix on two axes
  • On-call rota is machine-readable data
  • Postmortem recommendations become owned action items
  • The postmortem updates the runbook it exercised
  • Severity that triggers a regulatory clock is declared, not felt
Lab 2 · Triage lab

Triage the quarter's incident review

Briefing 40 XP

Eight lines came out of the quarterly incident review. The responder rotation wants the systemic failures ranked for the next engineering cycle, not the one-off bad days.

Separate the failures of the system from the failures of the week.

List only the lines that qualify, worst first. Severity is one of: critical | high | medium | low. Add or delete rows as needed.

incident review notes

I-1  restricted customer data exposed; severity felt 'low-key' on the call, so the regulatory clock started two days late
I-2  vendor breach notice sat in an unmonitored inbox for three days before anyone read it
I-3  two runbooks contradicted each other on rollback; the wrong guess doubled the outage
I-4  eleven SEV1s last quarter, three of them single-team tooling outages and one a marketing typo
I-5  a new engineer asked excellent questions during the SEV2 bridge
I-6  the incident wiki got record page views this quarter
I-7  the facilitator called the last exercise 'the most engaged session yet'
I-8  the coffee machine on floor four was broken during the SEV1

Checks

  • The right findings are raised
  • Benign lines are left out
  • Severity matches the actual exposure
  • Ranked worst first

Next on your path · AI & Advanced

Tabletop to Pipeline

An exercise finding without an owner never ships. Turn tabletop outcomes into tracked work that lands as controls, alerts and runbook edits.

Architect 45 min 195 XP
Start next room

Community

Discussion & writeups

Sign in to post

Share how you approached the room or ask where you got stuck. Never paste task answers or full lab solutions: write the reasoning, not the key.

Loading discussion…