{
  "schema_version": "1.0",
  "baseline": "V4",
  "updated_at": "2026-04-22",
  "owner_session": "B",
  "phase": "Phase 12E — Alerting Model",
  "purpose": "Four-level alerting ladder + escalation paths + lifecycle statuses. Consumed by every dashboard that has thresholds + by Case Issues Portal. A-owned alert pipeline implements the contract (PagerDuty/Slack/LINE channels per CLAUDE.md Phase 6).",
  "hard_rules": [
    "4 levels are mutually exclusive: monitor < watchlist < flagship < incident",
    "Level promotion is explicit · no silent auto-escalation without threshold breach",
    "Sensitive-surface (PDPA · biometric · financial · emotional · legal) always fires at ≥watchlist and requires dual approval to resolve",
    "Every alert cites a dashboard + metric + threshold_tier from city_health_contract OR dashboard_contract",
    "Quiet hours (23:00–06:00 Asia/Bangkok) apply to monitor + watchlist only; flagship + incident ignore quiet hours"
  ],
  "levels": [
    {
      "id":"level-monitor",
      "label_th":"เฝ้าดู (monitor)","label_en":"Monitor","label_zh":"监视",
      "severity_rank": 1,
      "definition_th":"ค่า metric อยู่ใน watch band · ไม่ถึง breach · ดูแลโดย analyst",
      "definition_en":"Metric is in the watch band but not in breach · analyst-level attention",
      "definition_zh":"指标处于观察区间但未违反阈值 · 分析师级关注",
      "notified": ["analyst","dashboard-subscribers"],
      "channels": ["in-app-banner","Slack #metrics-watch"],
      "quiet_hours_apply": true,
      "trigger_examples": [
        "vs-fever at 7.0–7.9 (watch band)",
        "vs-heartbeat 60–74% occupancy",
        "vs-blood-density down 10–20%"
      ],
      "typical_dashboards": ["db-city-vital-signs","db-tourist-pulse","db-sentiment-polarity"]
    },
    {
      "id":"level-watchlist",
      "label_th":"รายการเฝ้าระวัง (watchlist)","label_en":"Watchlist","label_zh":"观察清单",
      "severity_rank": 2,
      "definition_th":"ค่า metric breach threshold ของ source · ต้องมี owner + action plan",
      "definition_en":"Metric has breached a source-defined threshold · requires owner + action plan",
      "definition_zh":"指标突破源头阈值 · 需指定负责人 + 行动计划",
      "notified": ["assigned-owner","city-manager","staff-reviewer"],
      "channels": ["in-app-banner","Slack #metrics-alert","email"],
      "quiet_hours_apply": true,
      "trigger_examples": [
        "vs-fever < 7/10 (CONCEPT-005 verbatim action trigger)",
        "vs-heartbeat < 60% (CONCEPT-005 verbatim)",
        "vs-pressure +30% (CONCEPT-005 verbatim)"
      ],
      "typical_dashboards": ["db-city-vital-signs","db-sentiment-polarity","db-incident-response-gauge"],
      "auto_case_creation": false,
      "auto_case_creation_note_th": "ถ้า watchlist ยังไม่ acknowledge ภายใน 2 ชม. → promote ไป flagship",
      "auto_case_creation_note_en": "If watchlist unacknowledged within 2h → promote to flagship",
      "auto_case_creation_note_zh": "若 2 小时内未确认，升级为 flagship"
    },
    {
      "id":"level-flagship",
      "label_th":"หัวหอก (flagship)","label_en":"Flagship","label_zh":"旗舰告警",
      "severity_rank": 3,
      "definition_th":"ประเด็นสำคัญที่ยกระดับความสนใจของ city-manager · อาจส่งผลต่อภาพลักษณ์เมือง",
      "definition_en":"High-attention issue raised to city-manager level · may affect city reputation",
      "definition_zh":"提升至市经理层的重大问题 · 可能影响城市声誉",
      "notified": ["city-manager","staff-reviewer","anchor-partner (if zone-localised)"],
      "channels": ["in-app-banner","Slack #alert-flagship","LINE Notify","SMS"],
      "quiet_hours_apply": false,
      "trigger_examples": [
        "vs-pressure +50% or higher",
        "sensitive-surface CASE-* opens",
        "anchor partner incident",
        "ripple across ≥3 zones"
      ],
      "typical_dashboards": ["db-incident-response-gauge","db-case-pipeline-timeline","db-anchor-partner-network"],
      "auto_case_creation": true,
      "auto_case_creation_rule_th": "สร้าง case อัตโนมัติ · assign city-manager + reviewer · 3h acknowledge SLA",
      "auto_case_creation_rule_en": "Auto-creates case · assigns city-manager + reviewer · 3h acknowledge SLA",
      "auto_case_creation_rule_zh": "自动创建案例 · 分派市经理 + 审核员 · 3 小时确认 SLA"
    },
    {
      "id":"level-incident",
      "label_th":"เหตุฉุกเฉิน (incident)","label_en":"Incident","label_zh":"事件",
      "severity_rank": 4,
      "definition_th":"เหตุร้ายที่กำลังเกิด · ต้องเข้าสู่ 5-step immune response ทันที · อาจเป็น sensitive-surface",
      "definition_en":"Active crisis · enters 5-step immune response immediately · may be sensitive-surface",
      "definition_zh":"正在发生的危机 · 立即进入 5 步免疫响应 · 可能属敏感面",
      "notified": ["city-manager","staff-reviewer","external-reviewer (sensitive)","PagerDuty on-call"],
      "channels": ["PagerDuty P0/P1","Slack #incident","LINE Notify","SMS","phone call (sensitive)"],
      "quiet_hours_apply": false,
      "trigger_examples": [
        "vs-fever < 5/10 (Claude-derived critical · requires review)",
        "AQI > 200 (claude_derived critical)",
        "sensitive-surface + legal/PDPA violation",
        "multi-zone crisis",
        "AI faithfulness-floor breach on sensitive endpoint"
      ],
      "typical_dashboards": ["db-incident-response-gauge","db-city-vital-signs","db-mission-activity-funnel"],
      "auto_case_creation": true,
      "auto_case_creation_rule_th": "สร้าง case · P0 incident · dual approval ถ้า sensitive · escalation อัตโนมัติ",
      "auto_case_creation_rule_en": "Auto-creates case · P0 incident · dual approval when sensitive · auto-escalation",
      "auto_case_creation_rule_zh": "自动创建案例 · P0 事件 · 敏感时双重审批 · 自动升级",
      "requires_human_review": true,
      "honest_note": "Critical thresholds for fever <5/10 and AQI >200 are Claude-derived · tune after pilot"
    }
  ],
  "escalation_paths": [
    {"from":"level-monitor","to":"level-watchlist","rule":"threshold breach detected by A-owned rule engine"},
    {"from":"level-watchlist","to":"level-flagship","rule":"unacknowledged within 2h OR severity_rank escalation triggered"},
    {"from":"level-flagship","to":"level-incident","rule":"manual promotion by city-manager OR severity hits critical threshold OR sensitive-surface"}
  ],
  "lifecycle_statuses": [
    {"id":"st-new","label_th":"ใหม่","label_en":"New","label_zh":"新建","desc_th":"เพิ่งสร้าง · ยัง assign ไม่เสร็จ","desc_en":"Just created · not yet fully assigned","desc_zh":"刚创建 · 尚未完全分配"},
    {"id":"st-acknowledged","label_th":"รับทราบแล้ว","label_en":"Acknowledged","label_zh":"已确认","desc_th":"owner ยอมรับว่ารับผิดชอบ","desc_en":"Owner accepted responsibility","desc_zh":"负责人已确认"},
    {"id":"st-investigating","label_th":"กำลังสืบ","label_en":"Investigating","label_zh":"调查中","desc_th":"Detect+Triage ของ 5-step immune","desc_en":"Detect+Triage of 5-step immune","desc_zh":"5 步免疫中的侦测 + 分诊"},
    {"id":"st-mitigating","label_th":"กำลังประคอง","label_en":"Mitigating","label_zh":"缓解中","desc_th":"Stabilise ของ 5-step immune","desc_en":"Stabilise step of 5-step immune","desc_zh":"5 步免疫的稳定阶段"},
    {"id":"st-recovering","label_th":"กำลังฟื้นฟู","label_en":"Recovering","label_zh":"复原中","desc_th":"Rehabilitate ของ 5-step immune","desc_en":"Rehabilitate step of 5-step immune","desc_zh":"5 步免疫的复原阶段"},
    {"id":"st-resolved","label_th":"แก้ไขแล้ว","label_en":"Resolved","label_zh":"已解决","desc_th":"ปัญหาจบ · ยังไม่ vaccinate","desc_en":"Issue closed · not yet vaccinated","desc_zh":"问题已关闭 · 尚未疫苗化"},
    {"id":"st-vaccinated","label_th":"ป้องกันแล้ว","label_en":"Vaccinated","label_zh":"已疫苗化","desc_th":"Vaccinate ขั้นสุด · มี prevention rule ใหม่","desc_en":"Vaccinate step · new prevention rule in place","desc_zh":"疫苗化步骤 · 已部署新预防规则"},
    {"id":"st-reopened","label_th":"เปิดใหม่","label_en":"Reopened","label_zh":"重新打开","desc_th":"ปัญหากลับมา · recurrence event","desc_en":"Issue returned · recurrence event","desc_zh":"问题复发"},
    {"id":"st-breached","label_th":"SLA ละเมิด","label_en":"SLA breached","label_zh":"SLA 违约","desc_th":"ขั้นตอบสนองเกิน SLA · ส่ง governance review","desc_en":"Response exceeded SLA · sent to governance review","desc_zh":"响应超过 SLA · 交治理审查"}
  ],
  "measures": [
    {"id":"response_velocity","label_en":"Response velocity","label_th":"ความเร็วตอบสนอง","label_zh":"响应速度","formula":"st-new → st-acknowledged duration"},
    {"id":"resolution_velocity","label_en":"Resolution velocity","label_th":"ความเร็วแก้ไข","label_zh":"解决速度","formula":"st-new → st-resolved duration"},
    {"id":"vaccination_velocity","label_en":"Vaccination velocity","label_th":"ความเร็ว vaccinate","label_zh":"疫苗化速度","formula":"st-resolved → st-vaccinated duration"},
    {"id":"recurrence_count","label_en":"Recurrence count","label_th":"จำนวน recurrence","label_zh":"复发次数","formula":"count of st-reopened for same underlying cause"},
    {"id":"breach_rate","label_en":"SLA breach rate","label_th":"อัตราละเมิด SLA","label_zh":"SLA 违约率","formula":"breached / total incidents in window"}
  ],
  "phase_linkage": {
    "12F_sub1_navigator": "Generated Assets Navigator surfaces a case when AI-faithfulness-floor breach escalates to incident level",
    "12F_sub3_enterprise": "Enterprise tenant alerts inherit this ladder · per-tenant thresholds overridable",
    "case_issues_portal": "Every auto-created case cites alert level + lifecycle status"
  }
}
