Files
awoooi/docs/evaluations/service_health_failure_notification_policy_2026-06-05.json
Your Name a5934edb72
All checks were successful
CD Pipeline / tests (push) Successful in 1m28s
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / build-and-deploy (push) Successful in 4m22s
CD Pipeline / post-deploy-checks (push) Successful in 1m54s
fix(governance): 收斂前端 redaction 語彙
2026-06-11 21:27:32 +08:00

304 lines
10 KiB
JSON
Raw 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.
{
"schema_version": "service_health_failure_notification_policy_v1",
"generated_at": "2026-06-05T16:20:00+08:00",
"source_service_health_matrix_ref": "docs/evaluations/service_health_gap_matrix_2026-06-05.json",
"source_refs": [
"docs/evaluations/service_health_gap_matrix_2026-06-05.json",
"docs/schemas/service_health_failure_notification_policy_v1.schema.json",
"docs/HARD_RULES.md",
"docs/ai/AI_AGENT_AUTOMATION_WORKLIST_2026-06-04.md",
"apps/api/tests/test_telegram_message_templates.py"
],
"program_status": {
"overall_completion_percent": 100,
"current_priority": "P1",
"current_task_id": "P1-007",
"next_task_id": "P2-004",
"read_only_mode": true
},
"rollups": {
"total_rules": 7,
"by_decision": {
"suppress_immediate_success": 2,
"create_action_required": 2,
"escalate_immediate": 3
},
"immediate_escalation_rule_ids": [
"production_api_health_failed",
"ollama_provider_health_action_required",
"security_scanner_health_blocked"
],
"suppressed_success_rule_ids": [
"service_health_verified",
"endpoint_freshness_verified"
],
"action_required_rule_ids": [
"stale_endpoint_detected",
"health_gap_requires_owner_review"
],
"notification_send_allowed_count": 0
},
"notification_channels": [
{
"channel_id": "awooop_operator_event",
"purpose": "承載需人工處理、incident 或 approval evidence 的 operator-visible event。",
"immediate_allowed": true,
"success_immediate_allowed": false,
"requires_operator_action": true
},
{
"channel_id": "telegram_ops",
"purpose": "只承載 failure、blocked、critical action-required 即時升級;成功與一般 verified 狀態不得即時送出。",
"immediate_allowed": true,
"success_immediate_allowed": false,
"requires_operator_action": true
},
{
"channel_id": "governance_readonly_ui",
"purpose": "顯示 committed policy、evidence refs、next action 與禁止事項;不發送通知。",
"immediate_allowed": false,
"success_immediate_allowed": false,
"requires_operator_action": false
},
{
"channel_id": "daily_status_summary",
"purpose": "成功與非緊急狀態只進每日摘要,避免 Telegram / AwoooP 成功洗版。",
"immediate_allowed": false,
"success_immediate_allowed": false,
"requires_operator_action": false
}
],
"policy_rules": [
{
"rule_id": "service_health_verified",
"event_kind": "service_health_target_verified",
"service_state": "verified",
"severity": "info",
"decision": "suppress_immediate_success",
"channels": [
"governance_readonly_ui",
"daily_status_summary"
],
"owner_agent": "hermes",
"requires_incident": false,
"requires_approval_record": false,
"message_contract": "健康目標已驗證時只更新治理頁與每日摘要;不得送 Telegram / AwoooP 即時成功訊息。",
"evidence_refs": [
"docs/evaluations/service_health_gap_matrix_2026-06-05.json"
]
},
{
"rule_id": "endpoint_freshness_verified",
"event_kind": "endpoint_freshness_verified",
"service_state": "verified",
"severity": "info",
"decision": "suppress_immediate_success",
"channels": [
"governance_readonly_ui",
"daily_status_summary"
],
"owner_agent": "hermes",
"requires_incident": false,
"requires_approval_record": false,
"message_contract": "端點 freshness 已對齊時只更新 committed evidence 與每日摘要;不得即時洗版。",
"evidence_refs": [
"docs/evaluations/service_health_gap_matrix_2026-06-05.json"
]
},
{
"rule_id": "stale_endpoint_detected",
"event_kind": "service_health_stale_endpoint",
"service_state": "action_required",
"severity": "warning",
"decision": "create_action_required",
"channels": [
"awooop_operator_event",
"governance_readonly_ui",
"daily_status_summary"
],
"owner_agent": "openclaw",
"requires_incident": false,
"requires_approval_record": false,
"message_contract": "過期端點先建立 action-required必須帶 stale ref、current truth、evidence ref 與下一步;不得直接改 endpoint。",
"evidence_refs": [
"docs/evaluations/service_health_gap_matrix_2026-06-05.json"
]
},
{
"rule_id": "health_gap_requires_owner_review",
"event_kind": "service_health_gap_requires_owner_review",
"service_state": "action_required",
"severity": "high",
"decision": "create_action_required",
"channels": [
"awooop_operator_event",
"governance_readonly_ui",
"daily_status_summary"
],
"owner_agent": "openclaw",
"requires_incident": false,
"requires_approval_record": true,
"message_contract": "健康缺口需 owner review 時建立 action-required 與 approval evidence不得 live probe 或重啟。",
"evidence_refs": [
"docs/evaluations/service_health_gap_matrix_2026-06-05.json"
]
},
{
"rule_id": "production_api_health_failed",
"event_kind": "production_api_health_failed",
"service_state": "failed",
"severity": "critical",
"decision": "escalate_immediate",
"channels": [
"awooop_operator_event",
"telegram_ops",
"governance_readonly_ui"
],
"owner_agent": "openclaw",
"requires_incident": true,
"requires_approval_record": false,
"message_contract": "正式 API health 失敗才可升級;訊息必須包含 target、last committed evidence、stage、next action 與 blocked reason不得夾帶 secret。",
"evidence_refs": [
"docs/evaluations/service_health_gap_matrix_2026-06-05.json"
]
},
{
"rule_id": "ollama_provider_health_action_required",
"event_kind": "ai_provider_health_action_required",
"service_state": "failed",
"severity": "critical",
"decision": "escalate_immediate",
"channels": [
"awooop_operator_event",
"telegram_ops",
"governance_readonly_ui"
],
"owner_agent": "openclaw",
"requires_incident": true,
"requires_approval_record": true,
"message_contract": "AI provider 健康關鍵失敗才升級;必須顯示 provider lane、fallback impact、evidence ref 與人工批准需求,不得切 provider。",
"evidence_refs": [
"docs/evaluations/service_health_gap_matrix_2026-06-05.json",
"docs/evaluations/ai_provider_route_matrix_2026-06-05.json"
]
},
{
"rule_id": "security_scanner_health_blocked",
"event_kind": "security_scanner_health_blocked",
"service_state": "blocked",
"severity": "critical",
"decision": "escalate_immediate",
"channels": [
"awooop_operator_event",
"telegram_ops",
"governance_readonly_ui"
],
"owner_agent": "openclaw",
"requires_incident": true,
"requires_approval_record": true,
"message_contract": "安全掃描健康阻擋才升級;必須保留 Kali / scanner 只讀邊界,不得觸發 active scan 或 /execute。",
"evidence_refs": [
"docs/evaluations/service_health_gap_matrix_2026-06-05.json"
]
}
],
"message_template_contract": {
"required_fields": [
"stage",
"next_action",
"blocked_reason",
"auto_or_manual",
"target_id",
"severity",
"evidence_ref"
],
"forbidden_fields": [
"secret_value",
"token",
"authorization_header",
"private_key",
"database_password",
"work_window_transcript",
"codex_user_message",
"prompt_text",
"chain_of_thought",
"session_id",
"browser_context"
],
"success_message_policy": "成功與 verified 狀態不得即時送 Telegram / AwoooP只能進治理頁與每日摘要。",
"failure_message_policy": "critical failed / blocked 或 high action-required 才可升級,但本 snapshot 不授權實際發送。"
},
"agent_roles": [
{
"agent_id": "openclaw",
"role": "判斷 service health failure / action-required 是否需要 incident、approval 與 operator event。",
"allowed_actions": [
"只讀仲裁嚴重度",
"整理 message contract",
"拒絕成功即時洗版"
],
"blocked_actions": [
"送出 Telegram / AwoooP 訊息",
"live probe",
"重啟或修改 endpoint"
]
},
{
"agent_id": "hermes",
"role": "整理每日摘要、治理頁文字與 evidence refs。",
"allowed_actions": [
"只讀整理證據",
"標示摘要欄位",
"更新 committed policy"
],
"blocked_actions": [
"發送通知",
"讀取 secret payload",
"改排程或 workflow"
]
}
],
"operation_boundaries": {
"read_only_policy_allowed": true,
"notification_send_allowed": false,
"telegram_test_message_allowed": false,
"awooop_event_write_allowed": false,
"live_probe_allowed": false,
"external_health_probe_allowed": false,
"service_restart_allowed": false,
"endpoint_change_allowed": false,
"workflow_trigger_allowed": false,
"runtime_execution_allowed": false,
"secret_plaintext_allowed": false
},
"approval_boundaries": {
"notification_send_approved": false,
"telegram_test_message_approved": false,
"awooop_event_write_approved": false,
"live_probe_approved": false,
"service_restart_approved": false,
"endpoint_change_approved": false,
"runtime_execution_approved": false
},
"display_redaction_contract": {
"frontend_display_policy": "前端只顯示已提交政策證據、規則摘要與已脫敏訊息合約;不得顯示未核准內部內容、未脫敏操作紀錄或工作階段脈絡。",
"allowed_frontend_fields": [
"已提交證據參照",
"政策規則摘要",
"決策彙總",
"通道邊界",
"下一步",
"阻擋操作摘要"
],
"forbidden_frontend_content": [
"未核准內部內容",
"未脫敏操作紀錄",
"未核准決策細節",
"工作階段脈絡",
"機密 / 權杖 / 授權標頭"
],
"conversation_transcript_display_allowed": false,
"redaction_required": true
}
}