The Strict Runbook-Attached Rule

Every alert has a runbook URL or it doesn't ship. Enforcement.

The strict rule

The rule is uncompromising. No alert ships to paging without a runbook URL (not a wiki landing page; a specific runbook for this alert); CI checks the URL is present and returns 200, PR fails if either check fails; stub runbooks (“investigate the issue”) are rejected in review because the runbook must list the first 3 actions.

What the runbook contains

The runbook has three required sections. Confirmation (how to verify the alert is real, not a false positive, with specific commands or queries); first actions (what to do in the first 5 minutes: restart, failover, page someone else); escalation (when to page the next person and who they are, with team and timezone).

Keeping runbooks current

Runbooks rot, so the maintenance loop must close. Quarterly review by the owning team (update the runbook or retire the alert); after every incident, update the runbook with what was actually done because the runbook is the cumulative knowledge of the team; block PR approvals on stale runbook reviews when alerts fire.

How to review a runbook

The review checklist is short and concrete. Could a new on-call execute it without asking questions (if not, it’s not a runbook); are the commands current (tools and APIs change, commands break silently); is the escalation path correct (team names change, schedules change, people leave).

How to enforce

Enforcement makes the rule real. Linter on the alert config repo with required runbook_url field and CI running curl -fsS against the URL; quarterly audit of all runbook URLs that files tickets for broken URLs; runbook quality as part of the alert review with “Reviewer approved that the runbook is sufficient” as a checkbox.