Write status updates during production incidents: severity framing that informs without panicking, update cadence people can rely on, what to say when you genuinely do not know, and turning the incident thread into a postmortem summary afterward. Use when an outage or degradation needs a status page update, when customers need to hear something and nobody knows what to say, or when an incident thread needs to become a postmortem.
./install.sh incident_commsname: "incident_comms" description: "Write status updates during production incidents: severity framing that informs without panicking, update cadence people can rely on, what to say when you genuinely do not know, and turning the incident thread into a postmortem summary afterward. Use when an outage or degradation needs a status page update, when customers need to hear something and nobody knows what to say, or when an incident thread needs to become a postmortem."
When production breaks, the communication is what customers actually experience. They do not see the remediation. They see whether you told them, how fast, and whether the update was honest. This skill produces status updates that say what is broken in user terms, who it affects, what you are doing, and when the next update lands. It is scoped to writing updates, not to running the incident (see incident_response for the full process: roles, mitigation, postmortem with owned action items).
Do not open with the internal severity code and stop. Customers decide whether they care from the impact sentence. Lead with impact, tag severity as a fact.
Pattern: <what is broken in user terms> for <who it affects> (SEVn).
Good: "Logins are failing for all users in the EU region (SEV1)." Bad: "SEV1 incident declared." / "Some users may be experiencing intermittent issues."
Severity framing without panic means describing exactly the current observed scope, no adjectives beyond what the facts support. Say "30% of checkout attempts fail", not "checkout is severely degraded". If the scope is unknown, say so: "We are still measuring impact; current reports are limited to the EU region."
Resist severity inflation. If everything is SEV0, nothing is. One wrong call is cheap to fix: downgrade publicly in the next update rather than leaving it inflated.
Nearly every status page convention uses the same four stages. Each answers one question:
| Stage | Question | Content | |---|---|---| | Investigating | Do you know? | Confirm the symptom in user terms. Commit to a next update time. No cause, no ETA. | | Identified | Do you know why? | What is broken, who it affects. A fix is underway. Still no promised ETA unless you are certain. | | Monitoring | Is it fixed? | The fix is deployed and you are watching. Say what recovery looks like so users can verify. | | Resolved | Is it over? | Confirm normal service. State duration and scope. Say whether a postmortem follows. |
The stage most teams get wrong is Investigating. It feels empty to post "we are looking into it", so they wait until they have something substantial, and customers guess for forty minutes. The first update is not there to inform. It is there to tell people they do not need to open a support ticket. Post it within 5-15 minutes of detection, even with zero diagnosis.
Do not skip Monitoring and jump to Resolved. If the fix regresses and you reopen an incident you declared over, the credibility cost is far larger than one more update.
| Severity | Update every | Where | |---|---|---| | SEV0 / SEV1 | 30 minutes | Status page, email subscribers, in-app | | SEV2 | 1 hour | Status page, subscribers | | SEV3 | On meaningful change only | Status page | | SEV4 | Direct to affected customer | Support channel, not the status page |
Cadence is the promise you are actually making. The content matters less than posting when you said you would.
Three templates for honest ignorance:
Never speculate on cause in the first update. Early theories are usually wrong, and correcting a public diagnosis costs more trust than twenty minutes of not naming one. Saying "we do not know yet" paired with a concrete next-update time is a complete, professional answer.
For SEV2 and above, publish a postmortem. Mine the update thread for its skeleton: it already has the timeline.
Postmortem summary structure:
Say what happened plainly, without minimizing it or performing contrition. One sentence of apology, then facts. Customers deciding whether to keep trusting you are looking for evidence you understand why, and precision is what earns that.
Given: severity, symptom in user terms, affected scope, current stage, and what is known/unknown.
Produce: a status page update (title, body, stage label) that a comms lead can paste with no editing, plus the next-update time. For Resolved stage, produce the postmortem-summary skeleton with the timeline filled from the thread.
Hard requirements on every update:
references/templates.md for the security-incident variant.references/templates.md. Adapt them rather than pasting verbatim. A template's value is stopping you from composing prose at 3am, not that the sentences are optimal for your product.publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.