feat(governance): 新增報表 runtime 啟動前閘門
Some checks failed
CD Pipeline / tests (push) Successful in 1m35s
Code Review / ai-code-review (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Successful in 6m19s
CD Pipeline / post-deploy-checks (push) Successful in 1m30s

This commit is contained in:
Your Name
2026-06-12 11:34:15 +08:00
parent 1da56ac56c
commit b17a28c293
17 changed files with 1602 additions and 15 deletions

View File

@@ -85,7 +85,7 @@
"completion_percent": 100,
"operator_meaning": "已定義 AI Agent 日報、週報、月報、每個 Agent 工作量、圖表化報告、AI 分析建議與高/中/低風險自動化政策;尚未排程實發或啟動中低風險 runtime worker。",
"source_of_truth": "ai_agent_report_automation_review_v1",
"next_gate": "P2-403K 中低風險自動處理 runtime guard。"
"next_gate": "P2-403K SRE 戰情室路由收斂後,接 P2-403L 報表 runtime 啟動前閘門。"
},
{
"level_id": "learning_growth",

View File

@@ -32,7 +32,7 @@
"live_medium_low_auto_execution_count_24h": 0,
"high_risk_requires_approval": true,
"live_auto_optimization_count_24h": 0,
"truth_note": "目前已能在治理頁看到日/週/月報表、Agent 工作量與風險分級建議;但排程發送、報告讀取後 AI 自動分析、以及中低風險自動優化仍需 P2-403K runtime guard、Telegram receiptverifier 通過後才可啟動。"
"truth_note": "目前已能在治理頁看到日/週/月報表、Agent 工作量與風險分級建議;但排程發送、報告讀取後 AI 自動分析、以及中低風險自動優化仍需 P2-403K SRE 路由收斂與 P2-403L runtime guard、Telegram receiptverifier 通過後才可啟動。"
},
"report_cadences": [
{

View File

@@ -0,0 +1,455 @@
{
"schema_version": "ai_agent_report_runtime_readiness_v1",
"generated_at": "2026-06-12T04:35:00+08:00",
"program_status": {
"overall_completion_percent": 86,
"current_priority": "P2",
"current_task_id": "P2-403L",
"next_task_id": "P2-403M",
"read_only_mode": true,
"runtime_authority": "report_runtime_readiness_only_no_live_delivery_or_optimization",
"status_note": "P2-403L 已建立日週月報派送、Telegram Gateway queue、讀報回執、AI 讀報後分析、中低風險自動處理、高風險審核與 post-action verifier 的啟動前閘門;目前仍未啟動 live 派送、queue write、AI runtime worker 或生產優化。"
},
"source_refs": [
"docs/evaluations/ai_agent_report_automation_review_2026-06-12.json",
"docs/evaluations/ai_agent_report_truth_actionability_review_2026-06-12.json",
"docs/evaluations/ai_agent_telegram_receipt_approval_package_2026-06-11.json",
"docs/evaluations/ai_agent_runtime_write_gate_review_2026-06-12.json",
"docs/evaluations/ai_agent_runtime_verifier_evidence_review_2026-06-12.json",
"docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md"
],
"activation_truth": {
"report_scheduler_contract_ready": true,
"telegram_gateway_queue_contract_ready": true,
"telegram_delivery_receipt_contract_ready": true,
"ai_readback_analysis_contract_ready": true,
"medium_low_auto_guard_contract_ready": true,
"high_risk_approval_gate_contract_ready": true,
"live_report_delivery_enabled": false,
"live_report_delivery_count_24h": 0,
"telegram_gateway_queue_write_enabled": false,
"telegram_gateway_queue_write_count_24h": 0,
"report_read_receipt_write_enabled": false,
"report_read_receipt_count_24h": 0,
"ai_analysis_runtime_enabled": false,
"ai_analysis_runtime_count_24h": 0,
"medium_low_auto_worker_enabled": false,
"medium_low_auto_execution_count_24h": 0,
"production_optimization_enabled": false,
"production_optimization_count_24h": 0,
"high_risk_auto_execution_enabled": false,
"high_risk_auto_execution_count_24h": 0,
"truth_note": "報表制度、風險政策與可視化已完成P2-403L 補齊啟動前 runtime 閘門。下一步只能先做 dry-run / queue draft / readback verifier不得直接發 Telegram 或改正式環境。"
},
"runtime_lanes": [
{
"lane_id": "report_scheduler",
"display_name": "日週月報排程器",
"owner_agent": "hermes",
"risk_tier": "low",
"target_runtime": "report_run snapshot generator",
"contract_status": "ready_for_owner_review",
"current_live_count_24h": 0,
"enablement_required": [
"idempotent report_run_id",
"dry-run output hash",
"no external delivery in first run",
"daily / weekly / monthly cadence collision check"
],
"blocked_actions": [
"CronJob apply",
"Telegram send",
"AwoooP work item write"
]
},
{
"lane_id": "telegram_gateway_queue",
"display_name": "Telegram Gateway queue 草案",
"owner_agent": "hermes",
"risk_tier": "medium",
"target_runtime": "Telegram Gateway queue draft",
"contract_status": "ready_for_owner_review",
"current_live_count_24h": 0,
"enablement_required": [
"SRE_GROUP_CHAT_ID injection verified",
"Gateway path only",
"failure-only immediate policy",
"daily digest noise budget"
],
"blocked_actions": [
"direct Telegram Bot API",
"bot logOut",
"secret payload read"
]
},
{
"lane_id": "telegram_delivery_receipt",
"display_name": "報表送達與讀報回執",
"owner_agent": "hermes",
"risk_tier": "medium",
"target_runtime": "delivery receipt read model",
"contract_status": "ready_for_owner_review",
"current_live_count_24h": 0,
"enablement_required": [
"message_id redaction",
"ack timeout rule",
"retry ceiling",
"governance receipt readback"
],
"blocked_actions": [
"DB migration",
"live callback write",
"Telegram retry loop"
]
},
{
"lane_id": "ai_post_report_analysis",
"display_name": "AI 讀報後分析",
"owner_agent": "openclaw",
"risk_tier": "medium",
"target_runtime": "post-report analysis worker",
"contract_status": "ready_for_owner_review",
"current_live_count_24h": 0,
"enablement_required": [
"sanitized report packet",
"OpenClaw risk arbitration",
"Hermes evidence dossier",
"NemoTron replay lane for non-live evaluation"
],
"blocked_actions": [
"production optimization",
"provider switch",
"private reasoning display"
]
},
{
"lane_id": "medium_low_auto_guard",
"display_name": "中低風險自動處理 guard",
"owner_agent": "openclaw",
"risk_tier": "high",
"target_runtime": "guarded medium / low auto worker",
"contract_status": "ready_for_owner_review",
"current_live_count_24h": 0,
"enablement_required": [
"allow-list generated from risk policy",
"dry-run first",
"post-action verifier",
"rollback / no-op evidence",
"failure-only Telegram report"
],
"blocked_actions": [
"production write",
"service restart",
"workflow change",
"package upgrade"
]
},
{
"lane_id": "high_risk_approval",
"display_name": "高風險統帥審核",
"owner_agent": "openclaw",
"risk_tier": "high",
"target_runtime": "HITL approval packet",
"contract_status": "ready_for_owner_review",
"current_live_count_24h": 0,
"enablement_required": [
"owner response",
"maintenance window when needed",
"rollback owner",
"post-deploy verification plan"
],
"blocked_actions": [
"auto approval",
"auto merge",
"production route change"
]
},
{
"lane_id": "post_action_verifier",
"display_name": "處理後 verifier 與回滾 lane",
"owner_agent": "nemotron",
"risk_tier": "high",
"target_runtime": "post-action verifier readback",
"contract_status": "blocked_by_runtime_gate",
"current_live_count_24h": 0,
"enablement_required": [
"canonical readback target",
"NemoTron replay regression",
"rollback work item template",
"verifier failure Telegram draft"
],
"blocked_actions": [
"live verifier execution",
"rollback work item write",
"cluster readback"
]
}
],
"automation_policies": [
{
"risk_id": "low",
"display_name": "低風險",
"approval_required": false,
"auto_allowed_after_guard": true,
"current_execution_enabled": false,
"required_guards": [
"idempotency key",
"no production write",
"dry-run hash",
"daily digest report"
],
"reporting_rule": "成功可進日報摘要;失敗或異常才即時告警。"
},
{
"risk_id": "medium",
"display_name": "中風險",
"approval_required": false,
"auto_allowed_after_guard": true,
"current_execution_enabled": false,
"required_guards": [
"OpenClaw risk arbitration",
"post-action verifier",
"rollback / no-op evidence",
"failure-only Telegram"
],
"reporting_rule": "成功進日報 / 週報verifier 失敗、重試耗盡或資料不一致才升級。"
},
{
"risk_id": "high",
"display_name": "高風險",
"approval_required": true,
"auto_allowed_after_guard": false,
"current_execution_enabled": false,
"required_guards": [
"統帥審核",
"owner response",
"回滾計畫",
"正式驗證"
],
"reporting_rule": "AI 只能提出方案與風險,不得自動執行。"
},
{
"risk_id": "critical",
"display_name": "關鍵阻擋",
"approval_required": true,
"auto_allowed_after_guard": false,
"current_execution_enabled": false,
"required_guards": [
"break-glass 明確批准",
"secret redaction",
"audit trail",
"人工值班窗口"
],
"reporting_rule": "預設禁止自動執行,僅能產生批准包。"
}
],
"report_delivery_cadence_gates": [
{
"cadence_id": "daily",
"display_name": "AI Agent 日報",
"scheduler_source": "daily_report_scheduler_contract",
"telegram_digest_policy": "action-required + failure-only immediate",
"recipient_room": "AwoooI SRE 戰情室",
"dry_run_required": true,
"current_delivery_enabled": false,
"live_delivery_count_24h": 0
},
{
"cadence_id": "weekly",
"display_name": "AI Agent 週報",
"scheduler_source": "weekly_report_scheduler_contract",
"telegram_digest_policy": "weekly owner packet",
"recipient_room": "AwoooI SRE 戰情室",
"dry_run_required": true,
"current_delivery_enabled": false,
"live_delivery_count_24h": 0
},
{
"cadence_id": "monthly",
"display_name": "AI Agent 月報",
"scheduler_source": "monthly_report_scheduler_contract",
"telegram_digest_policy": "monthly strategy packet",
"recipient_room": "AwoooI SRE 戰情室",
"dry_run_required": true,
"current_delivery_enabled": false,
"live_delivery_count_24h": 0
}
],
"telegram_route_readiness": {
"canonical_room": "AwoooI SRE 戰情室",
"secret_ref": "SRE_GROUP_CHAT_ID",
"gateway_required": true,
"direct_bot_api_allowed": false,
"bot_log_out_allowed": false,
"legacy_routes_must_converge": true,
"telegram_gateway_queue_write_enabled": false,
"e2e_delivery_verified": false,
"delivery_receipt_write_enabled": false,
"blocked_route_count": 3
},
"agent_post_report_actions": [
{
"agent_id": "openclaw",
"display_name": "OpenClaw",
"after_report_responsibility": "讀取報表後進行風險仲裁、判斷哪些方案只能提批准包、哪些中低風險可在 guard 通過後自動處理。",
"allowed_without_approval": [
"產出風險評分",
"整理高風險批准包",
"拒收不符合 guard 的自動化提案"
],
"blocked_until_approval": [
"production write",
"provider route change",
"high risk execution"
],
"live_action_count_24h": 0
},
{
"agent_id": "hermes",
"display_name": "Hermes",
"after_report_responsibility": "整理日週月報、生成 Telegram 摘要草案、彙整工作量與處置回執。",
"allowed_without_approval": [
"產出報表草案",
"更新只讀治理 snapshot",
"彙整告警摘要"
],
"blocked_until_approval": [
"Telegram queue write",
"KM canonical write",
"workflow change"
],
"live_action_count_24h": 0
},
{
"agent_id": "nemotron",
"display_name": "NemoTron",
"after_report_responsibility": "對報表建議做離線 replay、回歸測試與失敗模式標籤作為是否升級到 runtime 的證據。",
"allowed_without_approval": [
"sanitized replay 評估",
"fixture regression 標籤",
"候選模型比較摘要"
],
"blocked_until_approval": [
"live verifier execution",
"production route",
"paid API call"
],
"live_action_count_24h": 0
}
],
"operator_decisions": [
{
"decision_id": "report_scheduler_dry_run",
"display_name": "允許日週月報排程 dry-run",
"risk_tier": "low",
"owner_agent": "hermes",
"approval_required": false,
"status": "ready_for_review",
"why_it_matters": "先讓系統產生可重放的 report_run snapshot統帥才能每天看見 Agent 工作量與風險變化。",
"next_safe_step": "建立 no-delivery dry-run runbook 與 hash readback。"
},
{
"decision_id": "telegram_gateway_queue_dry_run",
"display_name": "批准 Telegram Gateway queue dry-run",
"risk_tier": "medium",
"owner_agent": "hermes",
"approval_required": true,
"status": "approval_required",
"why_it_matters": "Telegram 是告警必到通道,但任何 queue write 都可能造成訊息洗版或錯群。",
"next_safe_step": "只寫 dry-run queue preview不送 Bot API並驗證 SRE_GROUP_CHAT_ID 注入。"
},
{
"decision_id": "delivery_receipt_read_model",
"display_name": "批准讀報回執 read model",
"risk_tier": "medium",
"owner_agent": "hermes",
"approval_required": true,
"status": "approval_required",
"why_it_matters": "統帥要知道 AI Agent 是否真的發出、送達、讀過報告;但回執寫入需避免暴露 chat / message raw payload。",
"next_safe_step": "先建立 redacted receipt schema 與 API readback不接 live callback。"
},
{
"decision_id": "ai_post_report_analysis_worker",
"display_name": "批准 AI 讀報後分析 worker dry-run",
"risk_tier": "medium",
"owner_agent": "openclaw",
"approval_required": true,
"status": "approval_required",
"why_it_matters": "AI Agent 必須在看完報告後提出方案,而不是只顯示圖表;但第一階段只能用 sanitized packet。",
"next_safe_step": "以 committed report snapshot 做 offline worker dry-run不寫 production。"
},
{
"decision_id": "medium_low_auto_worker_no_write",
"display_name": "批准中低風險自動處理 no-write worker",
"risk_tier": "high",
"owner_agent": "openclaw",
"approval_required": true,
"status": "approval_required",
"why_it_matters": "中低風險將來可自動處理,但啟動 worker 本身是 runtime 能力,必須先限制為 no-write / dry-run。",
"next_safe_step": "建立 allow-list、idempotency key、post-action verifier 與 failure-only Telegram 草案。"
},
{
"decision_id": "sre_room_route_convergence",
"display_name": "批准 SRE 戰情室路由收斂",
"risk_tier": "high",
"owner_agent": "openclaw",
"approval_required": true,
"status": "approval_required",
"why_it_matters": "所有正式告警與報表應進 AwoooI SRE 戰情室,旁路 chat / direct send 會讓送達證據失真。",
"next_safe_step": "只建立批准包,不改 Alertmanager / Telegram route。"
},
{
"decision_id": "post_action_verifier_live_readback",
"display_name": "批准 post-action verifier live readback",
"risk_tier": "high",
"owner_agent": "nemotron",
"approval_required": true,
"status": "blocked_by_runtime_gate",
"why_it_matters": "沒有 verifier 就不能讓自動處理真正修改正式環境;但 live readback 會觸碰 canonical runtime target。",
"next_safe_step": "先完成 fixture replay 與 read-only canonical target 清單。"
}
],
"display_redaction_contract": {
"redaction_required": true,
"raw_report_payload_display_allowed": false,
"private_reasoning_display_allowed": false,
"secret_value_display_allowed": false,
"work_window_transcript_display_allowed": false,
"allowed_display_fields": [
"已提交 snapshot 摘要",
"runtime lane 狀態",
"風險分級與批准需求",
"Telegram 路由邊界",
"live count 彙總"
],
"blocked_display_fields": [
"內部對話逐字稿",
"prompt 或思考鏈",
"secret / token / authorization header",
"raw Telegram payload",
"未遮蔽 message_id / chat_id"
]
},
"rollups": {
"runtime_lane_count": 7,
"report_cadence_gate_count": 3,
"operator_decision_count": 7,
"automation_policy_count": 4,
"ready_contract_count": 6,
"blocked_contract_count": 1,
"approval_required_decision_ids": [
"ai_post_report_analysis_worker",
"delivery_receipt_read_model",
"medium_low_auto_worker_no_write",
"post_action_verifier_live_readback",
"sre_room_route_convergence",
"telegram_gateway_queue_dry_run"
],
"current_enabled_count": 0,
"live_report_delivery_count": 0,
"live_ai_analysis_count": 0,
"live_medium_low_auto_execution_count": 0,
"telegram_gateway_queue_write_count": 0,
"high_risk_auto_execution_count": 0
}
}