incident-response · git:20260928.a142223 · 2026-09-28 · sha256 c5f594f3a0e93013
incident-response git:20260928.a142223A
Immutable. This exact content never changes and is served at /api/v1/blob/c5f594f3a0e93013.
--- name: incident-response description: Diagnose and resolve production incidents where users are already affected. Use when something is broken in production, error rates spiked, an outage or degraded service is reported, a deploy went wrong, customers report failures, or the user asks to roll back, hotfix, or restore service. Pairs with systematic-debugging for the root cause but owns the live-impact and mitigation path. --- # Incident Response When users are already affected, the first job is to stop the bleeding, not to understand the code. Stabilize, then diagnose, then fix properly. ## Severity First Classify before acting. Ask only what is needed to classify; do not block on a perfect answer. - **SEV1** — widespread outage, data loss or corruption, or security breach. Every mitigation path is fair, including rollback. - **SEV2** — major feature unavailable or severely degraded for a large share of users. - **SEV3** — limited impact, workaround exists. Say which one you believe it is and why. If unsure, state the assumption and proceed with the safer action. ## Stabilize First In order, prefer the fastest path to safety: 1. **Roll back** the most recent deploy or change if it correlates with onset. A rollback restores service faster than a diagnosis. 2. **Disable the feature** behind a flag, or kill the failing job, process, or consumer. 3. **Reduce load** — shed traffic, rate-limit, or pause a job hammering a struggling dependency. 4. **Restore data** only if corruption is confirmed, and only from a known-good backup or replay. Announce the mitigation and its expected effect before performing it. Never perform a destructive mitigation on an uncertain target without explicit approval. ## Then Diagnose After service is stable, work the cause with `systematic-debugging`. Establish: - **Timeline** — when did it start, and what changed immediately before that: deploy, config change, migration, dependency update, traffic shift, or data change? - **Blast radius** — which users, tenants, regions, or endpoints are affected? What is the actual error rate, not an impression? - **Evidence** — logs, traces, metrics, and error reports. Read them; do not guess from the symptom description. - **Reproducibility** — can it be reproduced outside production? If not, say so explicitly rather than claiming a fix is verified. Prefer correlation with a concrete change over speculation about an unknown cause. "Started 14:02, deploy finished 13:58" is a finding. "Might be a race condition" is a hypothesis, and must be labeled as one. ## Communicate Report concisely and factually: - what is affected and how badly - what was done to stabilize it - what is still unknown - the next action Never present a mitigation as a fix. Never claim the cause is known when it is a hypothesis. ## Fix Properly After stabilizing, treat the incident as real work, not a patch: - Fix the root cause with `systematic-debugging`; do not weaken or disable a failing check to make it pass. - Add or extend a regression test with `test-strategy` so the same failure is caught automatically next time. - If the fix requires a risky change, stage it: flag, canary, or partial rollout, per `deployment-readiness`. - Record the incident, timeline, root cause, and the fix in the Knowledge Vault. An incident whose cause is not written down will recur. ## Hotfix Rules A hotfix is a deliberate exception to normal rigor, and it is temporary: - Keep it minimal and surgical; do not refactor while stabilizing. - Record it immediately in `attempts/` with why the full fix was not safe to ship at that moment. - Track the follow-up to completion. An untracked hotfix becomes permanent accidental architecture. ## Ownership Keep live-impact assessment, mitigation, rollback decisions, timeline, and hotfix discipline here. Use `systematic-debugging` for root cause, `deployment-readiness` for the ship decision on the fix, `database-review` for data corruption and recovery, `security-review` for a suspected breach, `backend-review` and `integration-review` for the failing code path, and `security-review` again before closing if credentials or personal data were involved.