New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Write an on-call runbook for a service

On-Call Runbook Skill

by mohitagw15856 · MIT license · ★ 1,395 on GitHub · updated Sep 23

On-Call Runbook Skill cover

Write an on-call runbook for a service — covering alert definitions, escalation paths, common incident responses, and on-call handoff procedures. Use when asked to write an on-call guide, create alert runbooks, document escalation…

---
name: oncall-runbook
description: "Write an on-call runbook for a service — covering alert definitions, escalation paths, common incident responses, and on-call handoff procedures. Use when asked to write an on-call guide, create alert runbooks, document escalation procedures, or prepare an on-call handoff document. Produces a structured on-call runbook with per-alert response procedures, escalation matrix, diagnostic commands, and handoff template."
---

# On-Call Runbook Skill

Produce a complete on-call runbook for a service — giving the on-call engineer everything they need to respond confidently to alerts at 3am, without having to ask anyone for help.

A good on-call runbook reduces mean time to resolution (MTTR) by eliminating the "what do I do first?" problem. It is written for the on-call engineer who has just been paged and needs to act, not for someone calmly reading documentation.

## Where this sits — the spine's terminus

Last in the incident-response spine: **`/slo-error-budget` (frame) →
`/debugging-log-analyser` → `/incident-postmortem` → `oncall-runbook`**. It receives the
**contributing factors and action items** from `/incident-postmortem` and turns the
detection/mitigation learnings into an entry that makes the *next* responder minutes, not
hours — closing the loop so the same incident doesn't recur at full cost. *Runbook entry*,

Overview

Produce a complete on-call runbook for a service — giving the on-call engineer everything they need to respond confidently to alerts at 3am, without having to ask anyone for help.

Manual install (npx, ZIP)
Claude Codenpx skills add mohitagw15856/pm-claude-skills --skill oncall-runbook -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/mohitagw15856/pm-claude-skills/tar.gz/f6ca79348c55 \ | tar -xz -C ~/.claude/skills --strip-components=2 pm-claude-skills-f6ca79348c55/skills/oncall-runbook
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/affe8b21d1eeeb0ef62c/oncall-runbook.zip" -OutFile "$env:TEMP\oncall-runbook.zip"; Expand-Archive "$env:TEMP\oncall-runbook.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md13.4 KB
Read the files here
mohitagw15856/f6ca7931 file
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text409 lines

On-Call Runbook Skill

Produce a complete on-call runbook for a service — giving the on-call engineer everything they need to respond confidently to alerts at 3am, without having to ask anyone for help.

A good on-call runbook reduces mean time to resolution (MTTR) by eliminating the "what do I do first?" problem. It is written for the on-call engineer who has just been paged and needs to act, not for someone calmly reading documentation.

Where this sits — the spine's terminus

Last in the incident-response spine: /slo-error-budget (frame) → /debugging-log-analyser → /incident-postmortem → oncall-runbook. It receives the contributing factors and action items from /incident-postmortem and turns the detection/mitigation learnings into an entry that makes the next responder minutes, not hours — closing the loop so the same incident doesn't recur at full cost. Runbook entry, detection/mitigation time, and the loop are defined once in docs/craft/incident-response.md.

The loop

A runbook fails when it's written for a calm reader instead of a paged one at 3am. Phase 1 sets the audience; every later choice serves it.

  1. Write for the paged engineer, not the documentarian. The reader has just been woken and needs to act — so lead with the fastest safe mitigation, put copy-pasteable commands first, and defer background. Prose that explains before it acts fails at 3am. Done when: each alert's entry lets a non-expert take the first safe action within a minute of opening it, without reading theory.
  2. Turn postmortem learnings into per-alert procedures. For each known failure (the incident-postmortem's are the highest-value), write detect → mitigate → escalate: the exact checks, the copy-pasteable commands, the rollback, and when to page whom. Done when: every alert maps to a procedure with concrete commands and a clear mitigation, not just "investigate."
  3. Make escalation and handoff unambiguous. Who to page, when, and how to hand off mid-incident — because the second failure mode after "what do I do?" is "who do I wake, and when is it okay to?" Done when: the escalation matrix names people/rotations and the trigger for each, and the handoff template captures state so the next responder isn't starting cold.
  4. Close the loop back to prevention. Flag where a runbook step reveals a gap that should become monitoring or an /slo-error-budget action — the runbook is where the loop's learnings surface the next prevention. Done when: gaps found while writing the runbook are logged as detection/prevention improvements, not silently absorbed.

Required Inputs

Ask for these if not already provided:

  • Service name and what it does
  • Team and tech lead name
  • Alert list — names of alerts that currently page on-call
  • Monitoring setup — Datadog / Grafana / CloudWatch / PagerDuty / etc.
  • Common failure modes — what breaks most often, and what fixes it
  • Escalation contacts — who to call when on-call can't resolve it
  • Deployment setup — can on-call roll back? How?
  • Service dependencies — what does this service depend on, and what depends on it?

Output Format


On-Call Runbook: [Service Name]

Team: [Team name] | Tech lead: [Name] PagerDuty service: [Link] | Escalation policy: [Policy name] Last updated: [Date] | Next review: [Date + 90 days]

First time on-call for this service? Read the [developer onboarding doc] first — it covers the architecture and how things work. This runbook assumes you understand the service.


Quick Reference

Dashboard: [Link — the first thing to open when paged] Logs: [Link — where to find logs] Runbook index: Jump to the alert that paged you → [Alert list below] Can't resolve in 30 min? Escalate to: [Name] via [Slack / PagerDuty]

Rollback command (memorise this):

[rollback command — e.g. kubectl rollout undo deployment/[service-name]]

Escalation Matrix

Situation Escalate to How After how long
Can't diagnose the alert [Tech lead name] Slack DM / Phone 30 minutes
Alert requires infra change [Platform team] #platform Slack Immediately
Customer-facing impact [CSM / Support lead] #incidents Slack Immediately (P1)
Database issue [DBA or data team] Slack / PagerDuty Immediately
[Specific dependency] down [[Dependency] on-call] PagerDuty / Slack Immediately
Extended outage (>1 hour) [Engineering manager] Phone 1 hour

Contacts:

Name Role Slack Phone
[Name] Tech lead @[handle] [Number]
[Name] Engineering manager @[handle] [Number]
[Name] Platform / infra @[handle] [Number]
[Platform team] Infra on-call #platform PagerDuty

Service Architecture (Quick View)

[Upstream callers]
        │
        ▼
[This Service]
        │
        ├──→ [Primary Database]
        ├──→ [Cache — e.g. Redis]
        └──→ [Downstream Service / Queue]

If this service is down, these are affected: [List downstream consumers] If these are down, this service is affected: [List upstream dependencies]


Alert Runbooks

ALERT: [Alert Name 1 — e.g. HighErrorRate]

What it means: [Plain English — e.g. "More than 5% of API requests are returning 5xx errors in the last 5 minutes"] Severity: P1 / P2 / P3 SLO impact: Yes / No — [If yes: this alert means the error budget is burning at [X]× rate]

Step 1 — Acknowledge and assess

# Check current error rate
[query or dashboard link]

# Check which endpoints are erroring
[query or command]

Step 2 — Check recent changes

# Any deploys in the last hour?
[command or link to deployment log]

# Recent config changes?
[where to check]

Step 3 — Check dependencies

# Is the database healthy?
[health check command or link]

# Is [downstream service] healthy?
[health check command or link]

Step 4 — Diagnose

If you see It means Do this
[Error pattern 1] [Cause] [Action]
[Error pattern 2] [Cause] [Action]
[Error pattern 3] [Cause] [Action]
No clear pattern Unknown cause Escalate to [name]

Step 5 — Fix or mitigate

# If caused by bad deploy — roll back:
[rollback command]

# If caused by [specific issue]:
[fix command]

# If caused by upstream dependency:
[mitigation — e.g. enable circuit breaker, reduce traffic, etc.]

After resolving:

  • Confirm error rate has returned to baseline
  • Check no downstream services were affected
  • If P1: open a post-incident review — see [incident-postmortem skill]
  • Update #incidents with resolution summary

ALERT: [Alert Name 2 — e.g. HighLatency]

What it means: [e.g. "P99 response time has exceeded 1s for more than 3 consecutive minutes"] Severity: P1 / P2 / P3 SLO impact: Yes — latency SLO breach

Step 1 — Assess scope

# Check which endpoints are slow
[query or dashboard — broken down by endpoint]

# Check if latency is across all regions or localised
[query or command]

Step 2 — Common causes and fixes

Cause Signal Fix
Database slow queries DB latency spike on dashboard [Check slow query log: command]
Cache miss storm Cache hit rate drops on dashboard [command or action]
Memory pressure / GC High memory on service dashboard [command or action — e.g. restart, scale up]
Upstream service slow Trace shows time in external call Escalate to [service] on-call
Traffic spike Request rate spike on dashboard [Scale up: command]

Step 3 — Escalate if unresolved in 20 minutes Page [Tech lead] via PagerDuty / Slack.


ALERT: [Alert Name 3 — e.g. DatabaseConnectionPoolExhausted]

What it means: [e.g. "The service has used all available database connections — new requests will fail"] Severity: P1 SLO impact: Yes — will cause errors immediately

Immediate mitigation:

# Restart the service to flush stale connections
[restart command]

# Check current connection count
[DB connection query]

Diagnose root cause after stabilising:

# Check for long-running queries holding connections
[query]

# Check if a recent deploy changed connection pool config
[where to check]

Resolution: [e.g. "Increase pool size in config / kill long-running queries / scale the service"]


ALERT: [Alert Name 4 — e.g. QueueBacklogHigh / ConsumerLag]

What it means: [e.g. "The message queue backlog exceeds 10,000 messages — consumers are not keeping up"] Severity: P2 SLO impact: Depends — if queue backs up, downstream systems will receive delayed data

Step 1 — Check consumer health

# Are consumers running?
[command]

# Consumer error rate?
[dashboard or query]

Step 2 — Check message contents

# Are there poison messages causing retries?
[command to inspect dead-letter queue or failed messages]

Step 3 — Options

If Then
Consumers are down Restart consumers: [command]
Poison message in queue Move to DLQ: [command]
Consumers healthy but slow Scale consumers: [command]
Upstream producing too fast Escalate to [upstream service] owner

ALERT: [Add additional alerts following the same pattern]

Diagnostic Cheat Sheet

Common commands for quick diagnosis. Paste and run without modification.

# Service health
[health check command]

# Recent logs (last 100 lines)
[log command]

# Error logs only
[error log filter command]

# Current pod / instance status
[kubectl get pods / aws ecs describe-tasks / etc.]

# Restart the service
[restart command]

# Roll back to previous version
[rollback command]

# Database connection count
[DB query]

# Cache hit rate
[cache stats command]

# Current request rate
[metrics query]

Dashboard URL Use it to
Service overview [Link] First stop — error rate, latency, request rate
Database [Link] Connection count, slow queries, replication lag
Infrastructure [Link] CPU, memory, disk
Queue / consumers [Link] Backlog depth, consumer throughput
Upstream dependencies [Link] Dependency health at a glance

Incident Communication

When you declare an incident:

Post to #incidents immediately:

🔴 INCIDENT — [Service Name]
Status: Investigating
Impact: [Who is affected and how]
Paged: [Your name]
Next update: [Time — max 30 min from now]

Update every 30 minutes while active:

🔴 UPDATE — [Service Name] — [Time]
Status: [Investigating / Identified / Mitigating / Resolved]
Latest: [One sentence on what you found or did]
Next update: [Time]

On resolution:

✅ RESOLVED — [Service Name] — [Time]
Duration: [X minutes]
Impact: [Summary of who was affected]
Cause: [One sentence]
Follow-up: [PIR required? Yes/No — link when created]

On-Call Handoff

Use this template at the end of every on-call shift:

--- ON-CALL HANDOFF: [Service Name] ---
Date: [Date]
Outgoing: [Your name]
Incoming: [Next on-call name]

INCIDENTS THIS SHIFT:
- [Incident summary — date, duration, cause, resolution, follow-up required]

OPEN ISSUES TO WATCH:
- [Anything not fully resolved / trending in the wrong direction]

CHANGES SINCE LAST HANDOFF:
- [Deploys, config changes, infra changes that affect on-call awareness]

RUNBOOK GAPS FOUND:
- [Anything you had to figure out that isn't documented — please add it]

ANYTHING ELSE:
- [Notes for incoming on-call]

Quality Checks

  • Every alert that pages on-call has a runbook entry — no alert is missing
  • Rollback command is accurate and tested recently
  • Escalation contacts have current phone numbers and Slack handles
  • Diagnostic commands work — they have been run by at least one person recently
  • Handoff template is used at every shift change — not just during incidents
  • "Things I had to figure out that weren't documented" are added to this runbook after every incident

Anti-Patterns

  • Do not write alert runbooks with vague diagnostic steps like "check the logs" — every step must specify the exact command, dashboard link, or query to run
  • Do not include an alert in the runbook that has no specific on-call action — an alert that pages someone with no defined response path creates panic, not resolution
  • Do not leave the rollback command undocumented or untested — a rollback procedure that has never been run will fail when needed most
  • Do not list escalation contacts without phone numbers and Slack handles — email-only escalation paths are useless during a 3am incident
  • Do not write the runbook once and treat it as permanent — runbooks go stale after incidents; every incident must trigger a review of the relevant runbook entries
1---
2name: oncall-runbook
3description: "Write an on-call runbook for a service — covering alert definitions, escalation paths, common incident responses, and on-call handoff procedures. Use when asked to write an on-call guide, create alert runbooks, document escalation procedures, or prepare an on-call handoff document. Produces a structured on-call runbook with per-alert response procedures, escalation matrix, diagnostic commands, and handoff template."
4---
5 
6# On-Call Runbook Skill
7 
8Produce a complete on-call runbook for a service — giving the on-call engineer everything they need to respond confidently to alerts at 3am, without having to ask anyone for help.
9 
10A good on-call runbook reduces mean time to resolution (MTTR) by eliminating the "what do I do first?" problem. It is written for the on-call engineer who has just been paged and needs to act, not for someone calmly reading documentation.
11 
12## Where this sits — the spine's terminus
13 
14Last in the incident-response spine: **`/slo-error-budget` (frame) →
15`/debugging-log-analyser` → `/incident-postmortem` → `oncall-runbook`**. It receives the
16**contributing factors and action items** from `/incident-postmortem` and turns the
17detection/mitigation learnings into an entry that makes the *next* responder minutes, not
18hours — closing the loop so the same incident doesn't recur at full cost. *Runbook entry*,
19*detection/mitigation time*, and the loop are defined once in
20[`docs/craft/incident-response.md`](../../docs/craft/incident-response.md).
21 
22## The loop
23 
24A runbook fails when it's written for a calm reader instead of a paged one at 3am.
25Phase 1 sets the audience; every later choice serves it.
26 
271. **Write for the paged engineer, not the documentarian.** The reader has just been
28 woken and needs to *act* — so lead with the fastest safe mitigation, put copy-pasteable
29 commands first, and defer background. Prose that explains before it acts fails at 3am.
30 **Done when:** each alert's entry lets a non-expert take the first safe action within a
31 minute of opening it, without reading theory.
322. **Turn postmortem learnings into per-alert procedures.** For each known failure (the
33 incident-postmortem's are the highest-value), write detect → mitigate → escalate:
34 the exact checks, the copy-pasteable commands, the rollback, and when to page whom.
35 **Done when:** every alert maps to a procedure with concrete commands and a clear
36 mitigation, not just "investigate."
373. **Make escalation and handoff unambiguous.** Who to page, when, and how to hand off
38 mid-incident — because the second failure mode after "what do I do?" is "who do I
39 wake, and when is it okay to?"
40 **Done when:** the escalation matrix names people/rotations and the trigger for each,
41 and the handoff template captures state so the next responder isn't starting cold.
424. **Close the loop back to prevention.** Flag where a runbook step reveals a gap that
43 should become monitoring or an `/slo-error-budget` action — the runbook is where the
44 loop's learnings surface the next prevention.
45 **Done when:** gaps found while writing the runbook are logged as detection/prevention
46 improvements, not silently absorbed.
47 
48## Required Inputs
49 
50Ask for these if not already provided:
51- **Service name** and what it does
52- **Team** and tech lead name
53- **Alert list** — names of alerts that currently page on-call
54- **Monitoring setup** — Datadog / Grafana / CloudWatch / PagerDuty / etc.
55- **Common failure modes** — what breaks most often, and what fixes it
56- **Escalation contacts** — who to call when on-call can't resolve it
57- **Deployment setup** — can on-call roll back? How?
58- **Service dependencies** — what does this service depend on, and what depends on it?
59 
60## Output Format
61 
62---
63 
64# On-Call Runbook: [Service Name]
65 
66**Team:** [Team name] | **Tech lead:** [Name]
67**PagerDuty service:** [Link] | **Escalation policy:** [Policy name]
68**Last updated:** [Date] | **Next review:** [Date + 90 days]
69 
70> **First time on-call for this service?** Read the [developer onboarding doc] first — it covers the architecture and how things work. This runbook assumes you understand the service.
71 
72---
73 
74## Quick Reference
75 
76**Dashboard:** [Link — the first thing to open when paged]
77**Logs:** [Link — where to find logs]
78**Runbook index:** Jump to the alert that paged you → [Alert list below]
79**Can't resolve in 30 min?** Escalate to: [Name] via [Slack / PagerDuty]
80 
81**Rollback command (memorise this):**
82```bash
83[rollback command — e.g. kubectl rollout undo deployment/[service-name]]
84```
85 
86---
87 
88## Escalation Matrix
89 
90| Situation | Escalate to | How | After how long |
91|---|---|---|---|
92| Can't diagnose the alert | [Tech lead name] | Slack DM / Phone | 30 minutes |
93| Alert requires infra change | [Platform team] | `#platform` Slack | Immediately |
94| Customer-facing impact | [CSM / Support lead] | `#incidents` Slack | Immediately (P1) |
95| Database issue | [DBA or data team] | Slack / PagerDuty | Immediately |
96| [Specific dependency] down | [[Dependency] on-call] | PagerDuty / Slack | Immediately |
97| Extended outage (>1 hour) | [Engineering manager] | Phone | 1 hour |
98 
99**Contacts:**
100 
101| Name | Role | Slack | Phone |
102|---|---|---|---|
103| [Name] | Tech lead | @[handle] | [Number] |
104| [Name] | Engineering manager | @[handle] | [Number] |
105| [Name] | Platform / infra | @[handle] | [Number] |
106| [Platform team] | Infra on-call | `#platform` | PagerDuty |
107 
108---
109 
110## Service Architecture (Quick View)
111 
112```
113[Upstream callers]
114 │
115 ▼
116[This Service]
117 │
118 ├──→ [Primary Database]
119 ├──→ [Cache — e.g. Redis]
120 └──→ [Downstream Service / Queue]
121```
122 
123**If this service is down, these are affected:** [List downstream consumers]
124**If these are down, this service is affected:** [List upstream dependencies]
125 
126---
127 
128## Alert Runbooks
129 
130### ALERT: [Alert Name 1 — e.g. HighErrorRate]
131 
132**What it means:** [Plain English — e.g. "More than 5% of API requests are returning 5xx errors in the last 5 minutes"]
133**Severity:** P1 / P2 / P3
134**SLO impact:** Yes / No — [If yes: this alert means the error budget is burning at [X]× rate]
135 
136**Step 1 — Acknowledge and assess**
137```bash
138# Check current error rate
139[query or dashboard link]
140 
141# Check which endpoints are erroring
142[query or command]
143```
144 
145**Step 2 — Check recent changes**
146```bash
147# Any deploys in the last hour?
148[command or link to deployment log]
149 
150# Recent config changes?
151[where to check]
152```
153 
154**Step 3 — Check dependencies**
155```bash
156# Is the database healthy?
157[health check command or link]
158 
159# Is [downstream service] healthy?
160[health check command or link]
161```
162 
163**Step 4 — Diagnose**
164 
165| If you see | It means | Do this |
166|---|---|---|
167| [Error pattern 1] | [Cause] | [Action] |
168| [Error pattern 2] | [Cause] | [Action] |
169| [Error pattern 3] | [Cause] | [Action] |
170| No clear pattern | Unknown cause | Escalate to [name] |
171 
172**Step 5 — Fix or mitigate**
173```bash
174# If caused by bad deploy — roll back:
175[rollback command]
176 
177# If caused by [specific issue]:
178[fix command]
179 
180# If caused by upstream dependency:
181[mitigation — e.g. enable circuit breaker, reduce traffic, etc.]
182```
183 
184**After resolving:**
185- [ ] Confirm error rate has returned to baseline
186- [ ] Check no downstream services were affected
187- [ ] If P1: open a post-incident review — see [incident-postmortem skill]
188- [ ] Update `#incidents` with resolution summary
189 
190---
191 
192### ALERT: [Alert Name 2 — e.g. HighLatency]
193 
194**What it means:** [e.g. "P99 response time has exceeded 1s for more than 3 consecutive minutes"]
195**Severity:** P1 / P2 / P3
196**SLO impact:** Yes — latency SLO breach
197 
198**Step 1 — Assess scope**
199```bash
200# Check which endpoints are slow
201[query or dashboard — broken down by endpoint]
202 
203# Check if latency is across all regions or localised
204[query or command]
205```
206 
207**Step 2 — Common causes and fixes**
208 
209| Cause | Signal | Fix |
210|---|---|---|
211| Database slow queries | DB latency spike on dashboard | [Check slow query log: `command`] |
212| Cache miss storm | Cache hit rate drops on dashboard | [command or action] |
213| Memory pressure / GC | High memory on service dashboard | [command or action — e.g. restart, scale up] |
214| Upstream service slow | Trace shows time in external call | Escalate to [service] on-call |
215| Traffic spike | Request rate spike on dashboard | [Scale up: `command`] |
216 
217**Step 3 — Escalate if unresolved in 20 minutes**
218Page [Tech lead] via PagerDuty / Slack.
219 
220---
221 
222### ALERT: [Alert Name 3 — e.g. DatabaseConnectionPoolExhausted]
223 
224**What it means:** [e.g. "The service has used all available database connections — new requests will fail"]
225**Severity:** P1
226**SLO impact:** Yes — will cause errors immediately
227 
228**Immediate mitigation:**
229```bash
230# Restart the service to flush stale connections
231[restart command]
232 
233# Check current connection count
234[DB connection query]
235```
236 
237**Diagnose root cause after stabilising:**
238```bash
239# Check for long-running queries holding connections
240[query]
241 
242# Check if a recent deploy changed connection pool config
243[where to check]
244```
245 
246**Resolution:** [e.g. "Increase pool size in config / kill long-running queries / scale the service"]
247 
248---
249 
250### ALERT: [Alert Name 4 — e.g. QueueBacklogHigh / ConsumerLag]
251 
252**What it means:** [e.g. "The message queue backlog exceeds 10,000 messages — consumers are not keeping up"]
253**Severity:** P2
254**SLO impact:** Depends — if queue backs up, downstream systems will receive delayed data
255 
256**Step 1 — Check consumer health**
257```bash
258# Are consumers running?
259[command]
260 
261# Consumer error rate?
262[dashboard or query]
263```
264 
265**Step 2 — Check message contents**
266```bash
267# Are there poison messages causing retries?
268[command to inspect dead-letter queue or failed messages]
269```
270 
271**Step 3 — Options**
272 
273| If | Then |
274|---|---|
275| Consumers are down | Restart consumers: `[command]` |
276| Poison message in queue | Move to DLQ: `[command]` |
277| Consumers healthy but slow | Scale consumers: `[command]` |
278| Upstream producing too fast | Escalate to [upstream service] owner |
279 
280---
281 
282### ALERT: [Add additional alerts following the same pattern]
283 
284---
285 
286## Diagnostic Cheat Sheet
287 
288Common commands for quick diagnosis. Paste and run without modification.
289 
290```bash
291# Service health
292[health check command]
293 
294# Recent logs (last 100 lines)
295[log command]
296 
297# Error logs only
298[error log filter command]
299 
300# Current pod / instance status
301[kubectl get pods / aws ecs describe-tasks / etc.]
302 
303# Restart the service
304[restart command]
305 
306# Roll back to previous version
307[rollback command]
308 
309# Database connection count
310[DB query]
311 
312# Cache hit rate
313[cache stats command]
314 
315# Current request rate
316[metrics query]
317```
318 
319---
320 
321## Useful Dashboard Links
322 
323| Dashboard | URL | Use it to |
324|---|---|---|
325| Service overview | [Link] | First stop — error rate, latency, request rate |
326| Database | [Link] | Connection count, slow queries, replication lag |
327| Infrastructure | [Link] | CPU, memory, disk |
328| Queue / consumers | [Link] | Backlog depth, consumer throughput |
329| Upstream dependencies | [Link] | Dependency health at a glance |
330 
331---
332 
333## Incident Communication
334 
335When you declare an incident:
336 
337**Post to `#incidents` immediately:**
338```
339🔴 INCIDENT — [Service Name]
340Status: Investigating
341Impact: [Who is affected and how]
342Paged: [Your name]
343Next update: [Time — max 30 min from now]
344```
345 
346**Update every 30 minutes while active:**
347```
348🔴 UPDATE — [Service Name] — [Time]
349Status: [Investigating / Identified / Mitigating / Resolved]
350Latest: [One sentence on what you found or did]
351Next update: [Time]
352```
353 
354**On resolution:**
355```
356✅ RESOLVED — [Service Name] — [Time]
357Duration: [X minutes]
358Impact: [Summary of who was affected]
359Cause: [One sentence]
360Follow-up: [PIR required? Yes/No — link when created]
361```
362 
363---
364 
365## On-Call Handoff
366 
367Use this template at the end of every on-call shift:
368 
369```
370--- ON-CALL HANDOFF: [Service Name] ---
371Date: [Date]
372Outgoing: [Your name]
373Incoming: [Next on-call name]
374 
375INCIDENTS THIS SHIFT:
376- [Incident summary — date, duration, cause, resolution, follow-up required]
377 
378OPEN ISSUES TO WATCH:
379- [Anything not fully resolved / trending in the wrong direction]
380 
381CHANGES SINCE LAST HANDOFF:
382- [Deploys, config changes, infra changes that affect on-call awareness]
383 
384RUNBOOK GAPS FOUND:
385- [Anything you had to figure out that isn't documented — please add it]
386 
387ANYTHING ELSE:
388- [Notes for incoming on-call]
389```
390 
391---
392 
393## Quality Checks
394 
395- [ ] Every alert that pages on-call has a runbook entry — no alert is missing
396- [ ] Rollback command is accurate and tested recently
397- [ ] Escalation contacts have current phone numbers and Slack handles
398- [ ] Diagnostic commands work — they have been run by at least one person recently
399- [ ] Handoff template is used at every shift change — not just during incidents
400- [ ] "Things I had to figure out that weren't documented" are added to this runbook after every incident
401 
402## Anti-Patterns
403 
404- [ ] Do not write alert runbooks with vague diagnostic steps like "check the logs" — every step must specify the exact command, dashboard link, or query to run
405- [ ] Do not include an alert in the runbook that has no specific on-call action — an alert that pages someone with no defined response path creates panic, not resolution
406- [ ] Do not leave the rollback command undocumented or untested — a rollback procedure that has never been run will fail when needed most
407- [ ] Do not list escalation contacts without phone numbers and Slack handles — email-only escalation paths are useless during a 3am incident
408- [ ] Do not write the runbook once and treat it as permanent — runbooks go stale after incidents; every incident must trigger a review of the relevant runbook entries
409 
View all files on GitHub →

Details

Updated
Sep 23, 2026
License
MIT
Stars on the repo
★ 1,395
Checked
Source
mohitagw15856/pm-claude-skills ↗
Creator
mohitagw15856 · 193 listings
View creator

Made with oncall-runbook

On-Call Runbook Skill — Galaxy 3D — fly through all 1170 skills as a glowing constellation you orbit and click into (from the mohitagw15856/pm-claude-skills README)
On-Call Runbook Skill — Galaxy 3D — fly through all 1170 skills as a glowing constellation you orbit and click into (from the mohitagw15856/pm-claude-skills README)

by mohitagw15856

On-Call Runbook Skill — PM Skills Wrapped — your practice turned into a shareable, Spotify-Wrapped-style story (from the mohitagw15856/pm-claude-skills README)
On-Call Runbook Skill — PM Skills Wrapped — your practice turned into a shareable, Spotify-Wrapped-style story (from the mohitagw15856/pm-claude-skills README)

by mohitagw15856

Similar skills

See all →
SkillHand local work to a shared OpenClaw Gateway: startTeam handoffopenclaw/agent-skills · by openclawHand local work to a shared OpenClaw Gateway: start a worktree session there as yourself in one request, seeded with a handoff, and get the session URL back.★ 1.1k GitHub starsMCPStandardized templates for every type of agent-to-agent📋 NEXUS Handoff Templatesmsitarzewski/agency-agents · by msitarzewski> Standardized templates for every type of agent-to-agent handoff in the NEXUS pipeline. Consistent handoffs prevent context loss — the #1…★ 154k GitHub starsMCPThe Agency comprises specialized AI agents across every📑 NEXUS Executive Briefmsitarzewski/agency-agents · by msitarzewskiThe Agency comprises specialized AI agents across every division — engineering, design, marketing, security, GIS, product, testing, and…★ 154k GitHub starsMCPNEXUS-Micro | Duration: Minutes to hours | Agents: 3-8🚨 Runbook: Incident Responsemsitarzewski/agency-agents · by msitarzewski> Mode: NEXUS-Micro | Duration: Minutes to hours | Agents: 3-8★ 154k GitHub starsSkillCreate API handoff documentation for frontend developersBackend to frontend handoff docsdavila7/claude-code-templates · by davila7Create API handoff documentation for frontend developers. Use when backend work is complete and needs to be documented for frontend integration, or user says 'create handoff', 'document API', 'frontend handoff', or 'API documentation'.★ 32.3k GitHub starsSkillCreates comprehensive handoff documents for seamless AISession handoffdavila7/claude-code-templates · by davila7Creates comprehensive handoff documents for seamless AI agent session transfers. Triggered when: (1) user requests handoff/memory/context save, (2) context window approaches capacity, (3) major task milestone completed, (4) work session ending, (5) user says 'save state', 'create handoff', 'I need to pause', 'context is getting full', (6) resuming work with 'load handoff', 'resume from', 'continue where we left off'. Proactively suggests handoffs after substantial work (multiple file edits, complex debugging, architecture decisions). Solves long-running agent context exhaustion by enabling fresh agents to continue with zero ambiguity.★ 32.3k GitHub stars

More from mohitagw15856

SkillDesign a 360-degree feedback survey or write a structured360-Degree Feedback Template Skillmohitagw15856/pm-claude-skills · by mohitagw15856Design a 360-degree feedback survey or write a structured 360 feedback report. Use when asked to build a 360 feedback process, write 360 feedback for a colleague, design a feedback survey, or produce a feedback report. Produces either a complete survey instrument with rating scales and open-ended questions, or a structured narrative feedback report with themes, strengths, and development areas.★ 1.4k GitHub starsSkillDesign statistically rigorous A/B tests for product featuresA/B Test Planner Skillmohitagw15856/pm-claude-skills · by mohitagw15856Design statistically rigorous A/B tests for product features, UI changes, onboarding flows, and pricing experiments. Use when asked to set up an experiment, design an A/B test, calculate sample size, or interpret test results. Produces a complete test plan with hypothesis, variant definitions, sample size, duration estimate, guardrail metrics, and a results interpretation guide.★ 1.4k GitHub starsSkillGenerate a WCAG 2.2 accessibility audit checklistAccessibility Audit Skillmohitagw15856/pm-claude-skills · by mohitagw15856Generate a WCAG 2.2 accessibility audit checklist and remediation suggestions for any UI or design. Use when asked to audit for accessibility, check WCAG compliance, review a design for a11y issues, or create an accessibility remediation plan. Produces a prioritised checklist with pass/fail assessments and specific fixes.★ 1.4k GitHub starsSkillBuild a structured account plan for any key customerAccount Plan Skillmohitagw15856/pm-claude-skills · by mohitagw15856Build a structured account plan for any key customer or target account. Use when asked to create an account plan, key account strategy, strategic account review, or territory plan. Produces a complete account plan with relationship map, growth opportunities, risks, and 90-day action plan.★ 1.4k GitHub starsSkillOptimize an article for Answer Engine Optimization so AIAEO Optimizer Skillmohitagw15856/pm-claude-skills · by mohitagw15856Optimize an article for Answer Engine Optimization (AEO) so AI engines like ChatGPT, Perplexity, and Claude can extract, quote, and cite it. Use when asked to AEO-optimize, make content AI-readable, improve AI citation chances, or adapt an article for answer engines. Produces an AEO-optimised rewrite with question headings, 50–80 word answer capsules, a paragraph-length audit, and flagged trust signals.★ 1.4k GitHub starsSkillConduct a structured ethical review of an AI or ML featureAI Ethics Review Skillmohitagw15856/pm-claude-skills · by mohitagw15856Conduct a structured ethical review of an AI or ML feature, model, or product. Use when preparing to deploy an AI system, assessing algorithmic risk, auditing a model for bias, or producing a responsible AI impact assessment. Produces a structured ethics review covering fairness, transparency, privacy, safety, accountability, and societal impact with a risk tier score, pre-deployment checklist, and prioritised mitigations.★ 1.4k GitHub stars