Docs & Code Guide

Stale runbooks are an incident risk: the wrong doc at 3am costs more than every review you skipped

A stale runbook is not a documentation problem, it is a latent incident amplifier, because it fails exactly when following it costs the most. At 3am, mid-outage, the on-call engineer has no way to distinguish a wrong step from a right one; the document is trusted precisely because there is no time to verify it. This page makes the risk case with math and the public record. The repair loops live in the two how-to guides, for incident runbooks and for runbooks tracking infrastructure.

7 min readFor on-call engineers and the people who write their runbooks

See it as a diagram

Everything below, as a diagram you can edit. Describe yours and see it in seconds.

223/20003 credits left
Try:

No account needed · Editable canvas, not a picture

The MTTR math

Price the risk with three numbers: your cost per outage minute, how long a wrong runbook step burns, and how often runbooks are consulted. A single wrong step mid-incident typically costs twenty to forty minutes: execute it, watch it fail or make things stranger, unwind it, then improvise the correct action under pressure, often waking the one person who knows. If an outage minute costs your business hundreds of dollars, which is modest for anything revenue-facing, one wrong step is a four to five figure event.

Against that, the prevention is a quarterly verification pass at fifteen to thirty minutes per runbook. The asymmetry is stark: a year of verifying one runbook costs about two engineer-hours, less than a single wrong step burns in the middle of a Sev1. Staleness reviews look optional only because the invoice arrives during an incident, itemized under MTTR where nobody attributes it to the doc. The broader accounting, including the questions-and-onboarding terms, is in the cost of outdated documentation.

What the public record shows

The clearest public illustration is GitLab's database outage of January 31, 2017. Their published postmortem records that when the team reached for recovery, none of their five backup and replication mechanisms was working reliably, a fact discovered during the incident rather than before it. Documented procedures existed; what did not exist was recent evidence that they worked. Recovery ran on a copy of the database that happened to exist for other reasons, and hours of production data were lost.

The general lesson from postmortem culture is the same one the SRE literature draws about backups: a procedure that has not been exercised recently is not a procedure, it is a hypothesis. Written-but-unverified is the exact state a stale runbook occupies, and incident reviews across the industry keep finding it because nothing in normal operation ever tests the document. The failure surfaces only when the document is load-bearing.

Last-verified stamps and drills

The counter-measure is to make verification visible and scheduled. Stamp every runbook with a last_verified date and the name of the person who verified it, in front matter where a CI check can read it, and hold the hard line on what verified means: someone executed every step against staging and each behaved as written. A read-through does not reset the stamp, because plausibility is exactly what stale runbooks are good at.

Drills are how the stamps stay honest. A quarterly game day where on-call engineers execute runbooks literally, ideally engineers who did not write them, converts 3am discoveries into 10am findings. A drill that fails is a success: the runbook was wrong, and you found out on a calendar instead of a pager. Wire the stamp ages into a CI freshness gate so a runbook sliding past its window fails a build instead of failing an incident.

---
service: payments-api
scope: Sev1-Sev2 database failover
last_verified: 2026-07-03
verified_by: dana
next_drill: 2026-10-01
---
# Payments API: primary database failover
#
# "Verified" means every step below was executed against staging
# and behaved as written. A read-through does not reset the date.

The post-incident review is the update mechanism

Every incident is a free, brutal verification pass, and most postmortem templates waste it. Add two questions: did the runbook match reality, and which step was missing, wrong, or ambiguous. Any gap becomes an action item with an owner and a date, exactly like a code fix, and the runbook edit ships while the memory is fresh. Teams that run this loop get runbooks verified by their most realistic possible test, an actual incident, at zero additional cost.

The same review should ask whether the supporting material held up, because a runbook is more than its numbered steps: the diagram at the top, the dashboard links, the escalation names all rot on their own schedules. An escalation pointing at someone who left, or a dashboard link that 404s, burns the same minutes a wrong step does.

The diagram inside the runbook

The topology diagram is the runbook component most likely to be silently wrong, because it changes when infrastructure changes, not when procedures do, and nobody re-exports a wiki image after a Terraform merge. An on-call engineer navigating a failover with a diagram showing last year's replica layout is being misled by the most authoritative-looking thing on the page.

The fix is to stop pasting exports: embed the diagram by URL so the runbook shows the current version, within minutes of an edit, and put regeneration one command away with an agent connected to the Datadef MCP server that redraws it from what the repository declares. Two honest limits: live embeds require the project to be shared public, so runbooks for confidential systems should instead pair an exported image with its own last_verified stamp, and nothing watches the repo for you: regenerating after infra merges is a CI job or a review habit, which is exactly the kind of trigger the drill calendar already gives you.

This page is the why

For the how, use the two process guides: keep incident runbooks up to date for the review loop and drill design, and keep runbooks in sync with infrastructure for tracking the systems underneath.

FAQ

Why are stale runbooks dangerous?

Because they fail during incidents, the one moment they are trusted without verification. A wrong step mid-outage typically burns twenty to forty minutes on execution, confusion, and rollback, which at ordinary outage costs makes one wrong step more expensive than years of the quarterly reviews that would have caught it. GitLab's public 2017 postmortem is the canonical example of documented recovery procedures turning out not to work when finally exercised.

How often should runbooks be verified?

Quarterly at minimum for incident-facing runbooks, by executing them against staging rather than reading them, plus an update pass after every incident in which they were used. Stamp each runbook with a last_verified date and enforce the window with a CI check so a runbook cannot silently slide past its review date.

What counts as verifying a runbook?

Executing every step in a realistic environment and confirming each behaves as written, ideally by an engineer who did not author the runbook. Reading it and finding it plausible does not count: plausibility is the failure mode, since a stale runbook looks exactly like a current one until a step is executed.

What is a runbook drill or game day?

A scheduled exercise where on-call engineers execute a runbook literally against staging, treating it as if the incident were real. A failed drill is a finding, not an embarrassment: it means the runbook was wrong and the team discovered it on a calendar instead of during an outage. Quarterly drills paired with last-verified stamps keep the verification honest.

How do you keep the diagrams in runbooks accurate?

Embed them by URL instead of pasting exported images, so the runbook always shows the current version of the diagram, and regenerate the diagram after infrastructure changes with an agent connected to a diagram MCP server, triggered from CI or as a review habit. For confidential systems where a public embed is not acceptable, keep the exported image but give it its own last-verified stamp and include it in drills.