ALAI Client Incident Response — Runbook
ALAI Client Incident Response — Runbook
Purpose: What to do when a client-facing incident happens — classify, respond, communicate, escalate. This is the condensed operational runbook; the full process (RCA methodology, post-mortem template, GDPR breach templates) lives in ~/ALAI/processes/incident-management.md. For diagnosing ALAI's own infrastructure alerts (tunnel/daemon/Docker), see ~/system/docs/runbooks/incident-response-playbook.md.
Audience: John (primary), Alem (P1 escalation), FlowForge/CodeCraft/Securion (delegated fixes)
Last updated: 2026-07-28
Step 1 — Classify Severity Immediately
| Severity | Description | Response Time | Resolution Target | Who's Notified |
|---|---|---|---|---|
| P1 CRITICAL | Service completely down, active data breach, revenue impact, legal/regulatory violation | 15 min | 4 hours | Alem + Client + Datatilsynet (if GDPR) |
| P2 HIGH | Major feature broken, client blocked, significant perf degradation, security vulnerability | 1 hour | 8 hours | John + Tech Lead + Client |
| P3 MEDIUM | Minor feature broken, workaround exists, non-critical service impaired | 4 hours | 24 hours | John + relevant agent |
| P4 LOW | Cosmetic issue, no business impact | 24 hours | 5 days | Assigned agent |
When in doubt, escalate up — better to downgrade a P1 to P2 than to underestimate a critical incident.
P1 triggers include: any production service unavailable to users, data loss/corruption, active breach, GDPR breach (72h Datatilsynet deadline), financial system down (invoicing/payment), contractual SLA breach.
Step 2 — Triage & Open the Incident Record
Owner: John, within the response-time window above.
- Acknowledge the reporter (client email, Mattermost, monitoring alert).
- Classify severity (Step 1).
- Assign an owner — route to the right specialist company (see
~/system/agents/specialist-mapping.json; infra → FlowForge, security → Securion, backend bug → CodeCraft). - Create the incident record from
~/ALAI/processes/templates/OPERATIONS/incident-report.md, ID formatINC-YYYY-MM-DD-NNN. - Open a Mattermost thread in
#incidents.
node ~/system/tools/mc.js add "INC-<date>-<n>: <summary>" --priority H --owner john
Step 3 — Investigate (timeboxed by severity)
- P1/P2: fix plan within 1h (P1) / 4h (P2), even before root cause is fully known — mitigate in parallel.
- P1/P2: mandatory detailed RCA (5 Whys / Fishbone / Timeline). P3: RCA only if recurring or security-related. P4: brief root-cause note.
- Gather evidence: logs, metrics, screenshots, curl/docker output — verify by live evidence, not by assumption (ZAKON NULA — no claim without tool-verified evidence).
If this is an ALAI infrastructure alert (tunnel down, daemon crashed, Docker container dead) rather than a client-reported bug, go straight to the Alert Triage Matrix in incident-response-playbook.md — it has the exact diagnostic commands (curl -I, docker ps, launchctl list, etc.) per alert type.
Step 4 — Resolve & Verify
- Deploy fix per normal deploy protocol — ZAKON PI2 applies: no deploy without the 6 hard checks (pre-flight curl + git log + CI health, post-deploy curl 200 + screenshot + new revision serving 100%).
- Verification window: 1–24h post-fix depending on severity — confirm the client-visible symptom is actually gone (curl 200 != works — check the real workflow).
Step 5 — Communicate with the Client
Use the templates in ~/ALAI/processes/incident-management.md §6:
- 6.4 Initial notification — sent as soon as a P1/P2 is confirmed and classified.
- 6.5 Progress update — sent per severity cadence (P1: hourly or on material change; P2: every 4h).
- 6.6 Resolution confirmation — sent once verification (Step 4) is complete.
- 6.7 / 6.8 GDPR breach + data-subject notification — mandatory if personal data was exposed; 72h Datatilsynet deadline starts at detection, not confirmation.
Never send a client communication without Alem's awareness on P1 — phone first, Slack second, per the escalation table below.
Step 6 — Escalation Path
| Incident Type | Escalate To | When | Method |
|---|---|---|---|
| Public surface down > 5 min | Alem | Immediately | Slack DM + Phone +47 404 74 251 |
| Revenue event (payment failing) | Alem | Immediately | Phone first, Slack second |
| Security breach / suspicious activity | Alem + Securion | Immediately | Slack #ops + Email [email protected] |
| GDPR / legal / regulatory issue | Alem | Within 1 hour | Phone + Email |
| Client contractual SLA breach | Alem | Immediately | Phone + Email |
| Builder agent repeated failures (3+/hour) | Petter Graff | Within 1 hour | Slack #ops → delegate fix |
| Non-critical daemon down | John (self-fix) | Within 15 min | Investigate + restart |
If John is offline, all P0/P1 alerts route to Alem via email ([email protected]).
Step 7 — Post-Mortem & Closure
- P1/P2: post-mortem required, using the template in
~/ALAI/processes/incident-management.md§7 (or~/ALAI/processes/templates/OPERATIONS/post-mortem.md). P3: optional. - Closure requires: fix verified live, client notified (if applicable), post-mortem filed, lessons logged.
- Log the lesson:
discover.js memoryentry or feedback memory if the root cause reveals a repeatable gap — don't let the same incident recur silently.
Hard Rules
- Classify before you act — no fix attempt without a severity label; the label sets the response clock.
- No claim without evidence — verify fixes with live curl/screenshot/enumeration, not a green build (ZAKON NULA).
- No deploy without ZAKON PI2's 6 checks, even mid-incident.
- P1 always reaches Alem — phone first. Never sit on a P1 to "confirm root cause first."
- GDPR clock starts at detection — 72h to Datatilsynet, not at RCA completion.
- Client comms use the approved templates — don't freelance the wording on data-loss or breach notices; legal risk.
- Every P1/P2 gets a post-mortem — no exceptions, no "fixed already, skip write-up."
References
- Full incident process (classification detail, RCA methodology, all 8 communication templates, GDPR forms):
~/ALAI/processes/incident-management.md - Infra alert diagnostics (tunnel/daemon/Docker triage matrix):
~/system/docs/runbooks/incident-response-playbook.md - Incident report template:
~/ALAI/processes/templates/OPERATIONS/incident-report.md - Post-mortem template:
~/ALAI/processes/templates/OPERATIONS/post-mortem.md - SLA report template:
~/ALAI/processes/templates/OPERATIONS/sla-report.md