Operational Runbook / Playbook
A runbook tells an on-call engineer how to operate a service and what to do when
it misbehaves — at 3am, tired, under pressure. Its job is to turn an alert into a
known set of diagnosis and recovery steps, cutting time-to-mitigate. Write for a
competent engineer who does not know this service's internals: every step
should be scannable, actionable, and ideally copy-pasteable.
When to use it
Write or update a runbook for any service that pages a human, has non-obvious
operational tasks, or whose recovery isn't self-evident from the code. Each alert
that can fire should link to the runbook entry that resolves it. Keep it living —
a stale runbook is worse than none because it misleads under pressure.
Canonical structure
Adapted from the Skelton-Thatcher run-book template and SRE on-call practice.
Include what applies; cut what doesn't.
- Service metadata (top of the page, always) — service name, owning team,
on-call rotation/contact, source repo, runtime/where it lives, related
services, SLOs/SLA.
- Overview — what the service does, in business and technical terms, and its
place in the system (a small diagram or dependency list helps).
- Dashboards & monitoring — direct links to the dashboards, log queries, and
health checks an on-call would open first, with the key metrics to watch.
- Alerts — for each alert: what it means, severity, likely causes,
diagnosis steps, and remediation. This is the heart of the runbook.
- Common operational tasks — deploy, roll back, restart, scale, drain,
rotate secrets, run a backfill — each as concrete, copy-pasteable steps with a
success check.
- Failure modes & troubleshooting — known ways it breaks and how to confirm
and fix each; include rollback procedures.
- Dependencies — upstream and downstream services, what breaks if each is
down, and how to tell.
- Recovery / DR — backup/restore and disaster-recovery procedures, with
expected RTO/RPO if defined.
- Escalation — who to page next, when, and how, if the steps above don't
resolve it.
Quality rubric
A strong runbook:
- Has clear triggers — a responder can instantly tell whether an entry
applies to the alert in front of them.
- Is actionable, not narrative — numbered steps and runnable commands, each
with a way to confirm it worked; not prose.
- Is wired to monitoring — live dashboard/log links and the exact metrics and
thresholds that matter.
- Includes rollback/safe-abort — every risky operation says how to undo it.
- Has an explicit escalation path — names who's next and when to escalate.
- Is current — reflects the system as it is today; last-reviewed date present.
Common pitfalls
- Prose descriptions instead of executable steps.
- Commands with no success/failure check, or no rollback.
- Dead dashboard links and stale thresholds.
- No escalation path — the on-call dead-ends.
- Writing it once and never revisiting it after the system changes.
Naming & storage
- Directory:
docs/runbooks/
- Filename:
<service-name>.md (one runbook per service), or
<service>-<scenario>.md for a focused incident playbook.
- Link each alert definition to its runbook entry.
Template
Copy templates/runbook.md and fill it in.
Sources
1---2name: runbook3description: Write or improve an operational runbook / playbook for a service — how to operate it, what its alerts mean, and how to troubleshoot and recover it. Use when the user wants a runbook, on-call playbook, operational guide, or step-by-step recovery procedures. Pairs with the rca skill (a runbook is the proactive twin of a postmortem).4---56# Operational Runbook / Playbook78A runbook tells an on-call engineer how to operate a service and what to do when9it misbehaves — at 3am, tired, under pressure. Its job is to turn an alert into a10known set of diagnosis and recovery steps, cutting time-to-mitigate. Write for a11competent engineer who does *not* know this service's internals: every step12should be scannable, actionable, and ideally copy-pasteable.1314## When to use it1516Write or update a runbook for any service that pages a human, has non-obvious17operational tasks, or whose recovery isn't self-evident from the code. Each alert18that can fire should link to the runbook entry that resolves it. Keep it living —19a stale runbook is worse than none because it misleads under pressure.2021## Canonical structure2223Adapted from the Skelton-Thatcher run-book template and SRE on-call practice.24Include what applies; cut what doesn't.25261. **Service metadata** (top of the page, always) — service name, owning team,27 on-call rotation/contact, source repo, runtime/where it lives, related28 services, SLOs/SLA.292. **Overview** — what the service does, in business and technical terms, and its30 place in the system (a small diagram or dependency list helps).313. **Dashboards & monitoring** — direct links to the dashboards, log queries, and32 health checks an on-call would open first, with the key metrics to watch.334. **Alerts** — for *each* alert: what it means, severity, likely causes,34 diagnosis steps, and remediation. This is the heart of the runbook.355. **Common operational tasks** — deploy, roll back, restart, scale, drain,36 rotate secrets, run a backfill — each as concrete, copy-pasteable steps with a37 success check.386. **Failure modes & troubleshooting** — known ways it breaks and how to confirm39 and fix each; include rollback procedures.407. **Dependencies** — upstream and downstream services, what breaks if each is41 down, and how to tell.428. **Recovery / DR** — backup/restore and disaster-recovery procedures, with43 expected RTO/RPO if defined.449. **Escalation** — who to page next, when, and how, if the steps above don't45 resolve it.4647## Quality rubric4849A strong runbook:5051- **Has clear triggers** — a responder can instantly tell whether an entry52 applies to the alert in front of them.53- **Is actionable, not narrative** — numbered steps and runnable commands, each54 with a way to confirm it worked; not prose.55- **Is wired to monitoring** — live dashboard/log links and the exact metrics and56 thresholds that matter.57- **Includes rollback/safe-abort** — every risky operation says how to undo it.58- **Has an explicit escalation path** — names who's next and when to escalate.59- **Is current** — reflects the system as it is today; last-reviewed date present.6061## Common pitfalls6263- Prose descriptions instead of executable steps.64- Commands with no success/failure check, or no rollback.65- Dead dashboard links and stale thresholds.66- No escalation path — the on-call dead-ends.67- Writing it once and never revisiting it after the system changes.6869## Naming & storage7071- Directory: `docs/runbooks/`72- Filename: `<service-name>.md` (one runbook per service), or73 `<service>-<scenario>.md` for a focused incident playbook.74- Link each alert definition to its runbook entry.7576## Template7778Copy `templates/runbook.md` and fill it in.7980## Sources8182- Skelton-Thatcher run-book template — https://github.com/SkeltonThatcher/run-book-template83- Christian Emmer, "An effective incident runbook template" — https://emmer.dev/blog/an-effective-incident-runbook-template/84- Google SRE Workbook, "On-call" — https://sre.google/workbook/on-call/