Files
iAOP/templates/ti-cl4/dashboard/alarm_panel.ti.yaml
bot_dev1 8e5ae96839 feat(#52): 报警看板配置化(阈值/规则外置,PRD 5.5 告警面板配置化)
把 alarm_panel 组件的展示语义外置为模板配置资产,使「切换行业模板零改前端代码」
(PRD 5.5 验收口径)覆盖到告警面板:

- core/cockpit/alarm_config.py:AlarmPanelConfig 配置点
  - severityColors(P0/P1/P2 三级 fg/bg/icon/border,覆盖主题默认告警色;
    P0 fg 即驾驶舱红色告警 PRD 5.3 ③ 场景A)
  - rulesSource / thresholdsSource(asset 资产路径 或 inline 内联规则,
    阈值/规则外置 JSON,PRD line 152/171)
  - showSop(PRD 场景A LLM 报警解释 + 值班长确认是否展开 SOP)
  - requireAck / ackTimeoutS(高利害人工确认,PRD line 333;超时升级)
  - muteLower / groupBy / sortBy / maxItems(静默下限 + 大屏展示策略)
  - validate_alarm_config(聚合全部字段级错误,沿用 #50 风格)
  - load_alarm_config(校验失败抛 AlarmConfigError 携带错误清单)
  - render_alarm_panel_props(编译为 alarm_panel 组件 props,#51 渲染层合并即可)
  - filter_alarms_by_mute(验证 muteLower 配置点真实驱动展示策略)
- core/cockpit/__init__.py:导出 #52 告警面板配置 API(#50/#51 合入后合并导出)
- templates/ti-cl4/dashboard/alarm_panel.ti.yaml:氯化车间/海绵钛告警面板配置资产
- core/cockpit/scripts/verify_alarm_config.py:验收脚本(4 能力点,exit 0)
- core/cockpit/tests/test_alarm_config.py:28 用例(校验/加载/渲染/过滤/负例)
- core/cockpit/README.md:模块说明与用法

零运行时依赖(仅标准库);与 #50/#51 解耦,不 import 未合入分支。
测试:python -m unittest discover -s tests -p test_alarm_config.py(28 OK)
2026-08-05 02:57:10 +08:00

51 lines
2.3 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
# 氯化车间/海绵钛驾驶舱 · 告警面板配置资产(iAOP-Template-Ti 一期)。
#
# 对齐 PRD 5.5「⑤ 配置化驾驶舱」+ 5.3 ③ 场景A(异常检测 → 驾驶舱红色告警 +
# LLM 生成"原因+处置建议" → 值班长确认):把告警面板的「严重度配色 / 规则源 /
# SOP 联动 / 确认与静默 / 分组排序」外置为模板配置(issue #52)。
#
# 切换到其他行业模板(如树脂)= 换一份本文件,告警面板前端代码零改动
# (PRD 5.5 验收口径「切换模板零改码」覆盖到告警面板)。
#
# $schema 对应 core/cockpit/alarm_config.py 的 ALARM_CONFIG_SCHEMA_ID。
$schema: iAOP-cockpit-alarm-panel-v1
# severityColors:P0/P1/P2 三级展示配色(覆盖主题默认告警色)。
# P0=红色(驾驶舱红色告警,PRD 场景A)、P1=黄色(加强监控)、P2=蓝色(提示)。
severityColors:
- severity: P0
fg: "#ff3b30" # 红色前景(告警文本 / 图标)
bg: "rgba(255,59,48,0.12)"
icon: alert-octagon
border: "#ff3b30"
- severity: P1
fg: "#f5a623" # 黄色
bg: "rgba(245,166,35,0.12)"
icon: alert-triangle
border: "#f5a623"
- severity: P2
fg: "#3aa0ff" # 蓝色(提示)
bg: "rgba(58,160,255,0.10)"
icon: info
# rulesSource:告警面板订阅哪份规则资产(阈值/规则外置)。
# 指向 issue #72 落地的炉层杂质预警规则模板(templates/ti-cl4/impurity-forecast/
# config/alert_rules.template.yaml,在其 feature 分支上推进;此处先按规划路径绑定)。
rulesSource:
kind: asset
ref: ti-cl4/impurity-forecast/config/alert_rules.template.yaml
# thresholdsSource:阈值可与规则同源,这里显式独立声明,便于配置台单独维护。
thresholdsSource:
kind: asset
ref: ti-cl4/impurity-forecast/config/alert_rules.template.yaml
# SOP 联动:在面板里展开处置 SOP(PRD 场景A:LLM 报警解释 + 值班长确认)。
showSop: true
# 关键告警强制人工确认(PRD line 333:高利害人工确认,不直接联动执行机构)。
requireAck: true
ackTimeoutS: 300 # 5 分钟未确认自动升级 severity
# 静默下限:低于 P2 的不展示(Ti 一期 P0/P1/P2 全展示)。
muteLower: P2
# 分组 / 排序 / 最大条数:大屏展示策略外置。
groupBy: severity
sortBy: severity
maxItems: 50