456 lines
16 KiB
JSON
456 lines
16 KiB
JSON
{
|
||
"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
|
||
}
|
||
}
|