计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
oncall-handoff【效率与协作】Produces a complete on-call shift handoff note - shift summary, open incidents, watch items with paging thresholds, silenced alerts, in-flight changes, and escalation contacts - checked against a completeness checklist. Use when someone asks "write my on-call handoff", "what should I tell the next on-call", "my shift ends in an hour, help me hand ove…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
A handoff note transfers your mental model, not just your ticket queue. The incoming engineer should be able to respond to the next alert without asking you anything - because at 3am, "ask the previous on-call" is not an option, and the most expensive handoff failure is the one-line "quiet shift, nothing to report" that omits the silenced alert or the half-finished migration that pages them four hours later.
Pull these before writing - memory alone misses exactly the items that matter:
The order is deliberate: the reader triages the note the same way they triage a page - summary first, active fires second, smoke third.
1. Shift summary (2-3 lines). SEV count by level, total pages received, one-sentence characterization. "Quiet - 2 SEV4 tickets, no pages." or "Rough - 1 SEV2 that took 4 hours to resolve, system is stable now."
2. Open incidents. For each open or partially resolved incident: ticket/incident ID and title; current status and last action taken; what you expect to happen next and by when; who owns it if not on-call. If there are none, say so explicitly: "No open incidents." Silence is ambiguous; the explicit line is not.
3. Watch items (limit 3-5). Things that are not incidents yet but could become one. For each: the signal, why it is concerning, and - critically - the threshold that should trigger paging, plus the dashboard link. Example: "Payment latency at p99 = 820ms, normal is under 400ms. No SLO breach yet. If it crosses 1s for 10 minutes, page the payments team. Link: [dashboard]." A watch item without a numeric threshold delegates a judgment call to someone with less context than you.
4. Silenced and modified alerts. Every alert currently silenced, snoozed, or with a temporarily raised threshold: which alert, why, and when the silence expires or should be lifted. If a silence has no expiry, set one now - before handing off.
5. Recent changes (last 24h). Deploys, config changes, migrations, infra changes. These are the first suspects when the next alert fires. One line each: [Time] [Service] [What changed] [Who made it] [Rollback? Y/N]. The rollback flag matters most - it is the difference between a 5-minute mitigation and a 2-hour investigation.
6. Context and notes. Anything needed that fits nowhere above: vendor communications in progress, scheduled maintenance windows, a known flaky alert, a fix pending review. Bullet points only. If a service involved has unusual architecture, add one sentence of context rather than assuming shared jargon.
7. Escalation contacts (only if non-standard). If a vendor ticket is open or an unusual escalation path is active, list the contact and reference number. Omit the standard rotation - it is in the paging tool.
Do not send until every box is checked:
Post the note before your shift ends, not after the next person has started - and offer a 5-minute synchronous overlap if any open incident is active. Written notes carry facts; the overlap carries the hunches.
ON-CALL HANDOFF - [FILL: rotation name] - [FILL: date] - [FILL: your name] → [FILL: incoming name]
SHIFT SUMMARY
[FILL: e.g. "Moderate - 1 SEV3 (resolved), 6 pages total, 4 were the flaky
disk alert on db-replica-2."]
OPEN INCIDENTS
[FILL: "INC-4312 - checkout errors for EU users. Mitigated by failing over to
eu-west-2 at 14:20; root cause unknown. Expect networking team update by 09:00.
Owner: networking (Dana), not on-call." - or "No open incidents."]
WATCH ITEMS (max 5, each with a threshold + link)
1. [FILL: "Payment p99 latency at 820ms, normal <400ms. No SLO breach. Page
payments team if >1s for 10 min. Dashboard: <link>"]
SILENCED / MODIFIED ALERTS
[FILL: "disk-usage-warn on db-replica-2 silenced until Tue 10:00 - known noisy
after Friday's compaction change, tracking in OPS-889." - or "None."]
RECENT CHANGES (last 24h)
[FILL: "16:40 | billing-svc | v2.14 deploy (invoice rounding fix) | Marco |
Rollback: Y"]
CONTEXT / NOTES
- [FILL: vendor tickets, maintenance windows, pending fixes, flaky alerts]
NON-STANDARD ESCALATION
[FILL: "AWS support case #8834412001 open re: NAT gateway - respond via the
case, not the TAM." - or "None."]
Produce a posted handoff note in the seven-section order above, with every checklist box passing, delivered before shift end, plus a synchronous overlap offer when any incident is open.
A handoff is done when the incoming engineer could handle the next page without contacting you: every live thread has a link, an owner, and an expected next step; every threshold is a number, not an adjective; and the note reads in under three minutes.
When a resolved incident needs a write-up, hand it to postmortem-writer - the handoff note is continuity, not analysis. During an active incident, severity and mobilization decisions belong to sev-triage. Recurring noisy alerts surfacing in every handoff are an alert-tuning problem; route them there instead of re-documenting them each shift.