{ "schema_version": "ai_agent_automation_backlog_v1", "generated_at": "2026-06-05T16:20:00+08:00", "source_inventory_snapshot_ref": "docs/evaluations/ai_agent_automation_inventory_snapshot_2026-06-04_static_seed.json", "program_status": { "overall_completion_percent": 92, "current_priority": "P1", "current_task_id": "P1-007", "next_task_id": "P2-004", "read_only_mode": true }, "rollups": { "total_items": 25, "by_priority": { "P1": 23, "P2": 1, "P3": 1 }, "by_status": { "done": 23, "planned": 2 }, "by_gate_status": { "read_only_allowed": 22, "production_change_blocked": 1, "cost_approval_required": 1, "blocked_by_evidence": 1 }, "by_owner_agent": { "hermes": 13, "openclaw": 11, "nemotron": 1 } }, "backlog_items": [ { "item_id": "AUTO-P1-303", "priority": "P1", "status": "done", "workstream_id": "WS2", "source_asset_id": "awoooi_api", "source_signal_kind": "inventory_gap", "title": "建立自動化待辦只讀 API", "owner_agent": "hermes", "recommended_action": "新增 GET /api/v1/agents/automation-backlog-snapshot,只讀取 committed backlog snapshot。", "action_class": "execute_read_only", "gate_status": "read_only_allowed", "risk_level": "medium", "evidence_refs": [ "docs/schemas/ai_agent_automation_backlog_v1.schema.json", "docs/evaluations/ai_agent_automation_backlog_2026-06-04.json" ], "acceptance_criteria": [ "API 回傳 schema_version=ai_agent_automation_backlog_v1", "API 不呼叫外部來源、不碰 DB/Redis", "approval_boundaries 全部維持 false", "pytest 覆蓋 service loader 與 API endpoint" ], "next_review": "P1-303", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-304", "priority": "P1", "status": "done", "workstream_id": "WS8", "source_asset_id": "awoooi_web", "source_signal_kind": "ui_visibility_gap", "title": "建立 P0/P1/P2/P3 分組自動化待辦 UI", "owner_agent": "hermes", "recommended_action": "在治理頁新增只讀 backlog board,顯示 priority、gate、owner、evidence 與 acceptance criteria。", "action_class": "execute_read_only", "gate_status": "read_only_allowed", "risk_level": "medium", "evidence_refs": [ "apps/web/src/app/[locale]/governance/page.tsx", "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx" ], "acceptance_criteria": [ "繁中 i18n 完整", "不新增批准或執行按鈕", "desktop 與 390px mobile 無橫向溢出", "顯示 rollup 與分組 item" ], "next_review": "P1-304", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-305", "priority": "P1", "status": "done", "workstream_id": "WS8", "source_asset_id": "awoooi_web", "source_signal_kind": "approval_boundary", "title": "顯示每個任務的批准邊界", "owner_agent": "openclaw", "recommended_action": "在 backlog snapshot 與治理頁顯示每個任務的 mode、允許只讀動作、阻擋操作與需要人工批准的範圍。", "action_class": "execute_read_only", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "docs/schemas/ai_agent_automation_backlog_v1.schema.json", "docs/evaluations/ai_agent_automation_backlog_2026-06-04.json", "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx" ], "acceptance_criteria": [ "每個 backlog item 都有 approval_boundary.mode 與 gate_status 一致", "UI 顯示允許只讀動作、阻擋操作與需人工批准範圍", "不新增批准、執行、部署或通知按鈕", "service loader 會驗證 item_approval_boundary_rollup 一致性" ], "next_review": "P1-305", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-306", "priority": "P1", "status": "done", "workstream_id": "WS2", "source_asset_id": "automation_backlog_progress_summary", "source_signal_kind": "ui_visibility_gap", "title": "顯示進度百分比彙總", "owner_agent": "hermes", "recommended_action": "在 backlog snapshot 與治理頁顯示整體、優先級與工作流進度,百分比全部由 status=done / total_items 重算。", "action_class": "execute_read_only", "gate_status": "read_only_allowed", "risk_level": "medium", "evidence_refs": [ "docs/schemas/ai_agent_automation_backlog_v1.schema.json", "docs/evaluations/ai_agent_automation_backlog_2026-06-04.json", "GET /api/v1/agents/automation-backlog-snapshot", "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx" ], "acceptance_criteria": [ "progress_summary.overall_percent 使用 deterministic formula", "by_priority 與 by_workstream 的 done_items / total_items 可由 backlog_items 重算", "planned、blocked、deferred、rejected 不得計入完成", "UI 顯示百分比時同步顯示公式邊界,不代表 runtime gate 提升" ], "next_review": "P1-306", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-001", "priority": "P1", "status": "done", "workstream_id": "WS3", "source_asset_id": "awoooi_k8s_prod", "source_signal_kind": "runtime_evidence_gap", "title": "盤點 API / Web / Worker / K8s runtime surface", "owner_agent": "openclaw", "recommended_action": "已建立只讀 runtime surface matrix,列出 Deployment、Service、Ingress、CronJob、ConfigMap、Secret 與對應 source / manifest 證據。", "action_class": "observe", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "docs/evaluations/runtime_surface_inventory_2026-06-05.json", "GET /api/v1/agents/runtime-surface-inventory", "k8s/awoooi-prod/" ], "acceptance_criteria": [ "不執行 rollout、restart、scale、delete", "每個 runtime surface 都有來源檔或只讀檢查證據", "缺口列為 action-required,不直接修復" ], "next_review": "P1-002", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-002", "priority": "P1", "status": "done", "workstream_id": "WS3", "source_asset_id": "gitea_actions", "source_signal_kind": "health_gap", "title": "盤點 Gitea 工作流程與 runner 健康合約", "owner_agent": "hermes", "recommended_action": "已建立 Gitea workflow / runner health contract 只讀 snapshot、API 與治理頁;保留 failure-only / actionable-only 通知政策,不修改 workflow 或 runner。", "action_class": "observe", "gate_status": "read_only_allowed", "risk_level": "medium", "evidence_refs": [ "docs/evaluations/gitea_workflow_runner_health_2026-06-05.json", "GET /api/v1/agents/gitea-workflow-runner-health", ".gitea/workflows/", "scripts/ci/notify-awoooi-cicd.sh", "scripts/ops/stop-stale-gitea-actions-jobs.sh" ], "acceptance_criteria": [ "不修改 workflow、不觸發 deploy/migration、不重啟或停止 runner", "列出 9 個 Gitea workflow、runner label evidence status 與 notification policy", "成功不洗版、失敗 / actionable 才升級的政策被保留,CD/review/manual status 例外另列", "API / UI 僅顯示 committed snapshot 與不可誤讀合約" ], "next_review": "P1-003", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-003", "priority": "P1", "status": "done", "workstream_id": "WS3", "source_asset_id": "prometheus_alertmanager", "source_signal_kind": "health_gap", "title": "盤點監控合約與降噪機會", "owner_agent": "hermes", "recommended_action": "已建立 Prometheus / Alertmanager / Grafana / SigNoz / ClickHouse / Sentry 的只讀 observability matrix;降噪與分類缺口只產生 proposal,不修改 alert rules。", "action_class": "observe", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "docs/evaluations/observability_contract_matrix_2026-06-05.json", "GET /api/v1/agents/observability-contract-matrix", "k8s/monitoring/", "ops/alertmanager/alertmanager.yml", "ops/monitoring/", "apps/api/src/constants/alert_types.py" ], "acceptance_criteria": [ "不修改 alert rules、不呼叫 silence API、不送測試通知", "列出 Prometheus / Alertmanager / Grafana / SigNoz / ClickHouse / Sentry 的只讀合約", "降噪只產生 proposal,標出 stale、缺 evidence、過度通知與 classification gap", "API / UI 僅顯示 committed snapshot 與不可誤讀合約" ], "next_review": "P1-004", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-004", "priority": "P1", "status": "done", "workstream_id": "WS3", "source_asset_id": "ai_router", "source_signal_kind": "runtime_evidence_gap", "title": "盤點 AI Router / provider route", "owner_agent": "openclaw", "recommended_action": "已建立 AI Router / Ollama / OpenClaw / Nemotron / Gemini provider route 只讀矩陣;不切換 provider、不呼叫付費 API、不進 shadow / canary。", "action_class": "observe", "gate_status": "production_change_blocked", "risk_level": "critical", "evidence_refs": [ "docs/evaluations/ai_provider_route_matrix_2026-06-05.json", "GET /api/v1/agents/ai-provider-route-matrix", "apps/api/src/services/ai_router.py", "apps/api/src/services/ollama_endpoint_resolver.py", "apps/api/src/services/ollama_failover_manager.py", "apps/api/src/services/openclaw.py", "k8s/awoooi-prod/04-configmap.yaml", "k8s/awoooi-prod/06-deployment-api.yaml" ], "acceptance_criteria": [ "不修改 provider routing、不改 USE_AI_ROUTER、不改 fallback order", "不呼叫 Gemini / Claude / NVIDIA 付費 API、不提高呼叫頻率", "Nemotron / candidate provider 維持 replay / shadow / canary gate", "OpenClaw 保持目前生產決策核心,UI/API 只呈現不可誤讀合約" ], "next_review": "P1-005", "approval_boundary": { "mode": "production_change_blocked", "display_summary": "生產路由或 provider 變更被阻擋;需 replay、shadow/canary 證據與獨立人工批准。", "allowed_actions": [ "盤點 provider route", "整理 replay 前置證據", "準備變更批准包" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "provider_switch", "production_routing_change", "shadow_or_canary_entry", "paid_api_call" ], "requires_operator_approval_for": [ "provider 切換", "生產路由變更", "shadow / canary 進入", "付費 API 呼叫" ] } }, { "item_id": "AUTO-P1-005", "priority": "P1", "status": "done", "workstream_id": "WS3", "source_asset_id": "service_health_gap_matrix", "source_signal_kind": "runtime_evidence_gap", "title": "偵測服務健康缺口與過期端點", "owner_agent": "openclaw", "recommended_action": "已建立 service health gap matrix,只整理 committed health / endpoint / stale evidence;不做 live probe、不重啟、不改 endpoint。", "action_class": "observe", "gate_status": "read_only_allowed", "risk_level": "critical", "evidence_refs": [ "docs/evaluations/service_health_gap_matrix_2026-06-05.json", "GET /api/v1/agents/service-health-gap-matrix", "docs/reference/SERVICE-ENDPOINTS.md", "scripts/health_check_session.sh", "docs/evaluations/ai_provider_route_matrix_2026-06-05.json", "docs/evaluations/observability_contract_matrix_2026-06-05.json", "docs/evaluations/gitea_workflow_runner_health_2026-06-05.json" ], "acceptance_criteria": [ "不做 live probe 或 external health probe", "不重啟 service / pod / host,不 rollout restart", "不修改 endpoint / ConfigMap / public URL", "不讀 Secret payload、不發通知、不觸發 workflow / deploy / runtime execution" ], "next_review": "P1-006", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許整理 committed service health gap evidence 與需處置清單;不得 live probe、重啟、改 endpoint 或發通知。", "allowed_actions": [ "讀取 committed snapshot", "整理健康缺口", "顯示治理 UI", "準備 operator review 清單" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "live_probe", "service_restart", "endpoint_change", "notification_send" ], "requires_operator_approval_for": [ "live probe", "服務重啟", "endpoint / ConfigMap 修改", "Telegram / AwoooP 通知發送", "runtime execution" ] } }, { "item_id": "AUTO-P1-006", "priority": "P1", "status": "done", "workstream_id": "WS3", "source_asset_id": "service_health_gap_matrix", "source_signal_kind": "runtime_evidence_gap", "title": "在 UI 顯示 service health 證據卡", "owner_agent": "hermes", "recommended_action": "已在治理頁顯示每個 service health target 的 committed evidence ref、狀態、新鮮度、風險與下一步;不做 live probe。", "action_class": "visualize", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "docs/evaluations/service_health_gap_matrix_2026-06-05.json", "GET /api/v1/agents/service-health-gap-matrix", "/zh-TW/governance?tab=automation-inventory", "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx" ], "acceptance_criteria": [ "每個 service health target 可看到主要 evidence ref、狀態、新鮮度、風險與下一步", "不新增 live probe / restart / endpoint change / notification send 操作入口", "desktop / mobile horizontal overflow 必須為 0", "P1-006 UI 可見不得解讀成 runtime execution 授權" ], "next_review": "P1-007", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許顯示 committed service health evidence cards;不得 live probe、重啟、改 endpoint、發通知或觸發 runtime execution。", "allowed_actions": [ "讀取 committed snapshot", "顯示證據卡", "整理 operator review 視圖" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "live_probe", "service_restart", "endpoint_change", "notification_send" ], "requires_operator_approval_for": [ "live probe", "服務重啟", "endpoint / ConfigMap 修改", "Telegram / AwoooP 通知發送", "runtime execution" ] } }, { "item_id": "AUTO-P1-007", "priority": "P1", "status": "done", "workstream_id": "WS7", "source_asset_id": "service_health_failure_notification_policy", "source_signal_kind": "approval_boundary", "title": "建立 service health failure-only Telegram / AwoooP 對應", "owner_agent": "openclaw", "recommended_action": "已定義 service health failure-only Telegram / AwoooP 通知合約;成功不即時通知,failed / blocked / high action-required 才升級,但本段不發送通知。", "action_class": "notification_policy", "gate_status": "read_only_allowed", "risk_level": "critical", "evidence_refs": [ "docs/schemas/service_health_failure_notification_policy_v1.schema.json", "docs/evaluations/service_health_failure_notification_policy_2026-06-05.json", "GET /api/v1/agents/service-health-failure-notification-policy", "/zh-TW/governance?tab=automation-inventory", "apps/api/src/services/service_health_failure_notification_policy.py", "apps/api/tests/test_service_health_failure_notification_policy.py", "apps/api/tests/test_service_health_failure_notification_policy_api.py", "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx" ], "acceptance_criteria": [ "不得發送測試通知到正式群組", "成功不通知的預設政策被保留", "action-required 必須可追蹤 incident / approval / evidence", "message template 必須包含 stage、next action、blocked reason、auto/manual、target、severity、evidence ref", "不得新增 live probe / restart / endpoint change / notification send 操作入口", "前端只允許顯示 committed policy、rule summary、evidence ref、下一步與禁止事項", "前端不得顯示工作視窗對話內容、Codex/user 訊息逐字稿、提示詞、session id 或 瀏覽器上下文", "API snapshot 必須維持 conversation_transcript_display_allowed=false 與 redaction_required=true" ], "next_review": "P2-004", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許定義 service health failure-only 通知合約與 UI 顯示;不得直接發送 Telegram / AwoooP、live probe、重啟、改 endpoint 或 runtime execution。", "allowed_actions": [ "讀取 committed snapshot", "整理 failure-only 通知政策", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "notification_send", "telegram_test_message", "awooop_event_write", "live_probe", "service_restart", "endpoint_change", "work_window_transcript_display", "prompt_display", "session_context_display" ], "requires_operator_approval_for": [ "Telegram / AwoooP 通知發送", "測試通知", "AwoooP event 寫入", "live probe", "服務重啟", "endpoint / ConfigMap 修改", "runtime execution", "任何工作視窗逐字稿、提示詞、session 或 瀏覽器上下文 顯示需求" ] } }, { "item_id": "AUTO-P1-101", "priority": "P1", "status": "done", "workstream_id": "WS4", "source_asset_id": "backup_gitea", "source_signal_kind": "backup_gap", "title": "把備份 runbook / 腳本轉成機器可讀目標盤點", "owner_agent": "hermes", "recommended_action": "彙整 Gitea、Harbor、PostgreSQL、公開路由、異地同步與 escrow 的備份目標 snapshot。", "action_class": "backup_verify", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "scripts/backup/backup-gitea.sh", "scripts/backup/backup-harbor.sh", "scripts/backup/backup-public-routes.sh" ], "acceptance_criteria": [ "不執行 restore", "不暴露 credential", "每個備份目標至少有 freshness / integrity / owner 欄位", "成功不通知、失敗才進 action-required" ], "next_review": "P1-101", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-102", "priority": "P1", "status": "done", "workstream_id": "WS4", "source_asset_id": "backup_offsite", "source_signal_kind": "backup_gap", "title": "顯示備份 freshness、integrity、restore-drill status", "owner_agent": "openclaw", "recommended_action": "建立 backup readiness matrix,只呈現 readiness,不執行 restore drill。", "action_class": "backup_verify", "gate_status": "read_only_allowed", "risk_level": "critical", "evidence_refs": [ "scripts/backup/backup-offsite-readiness-gate.sh", "docs/runbooks/OFFSITE-BACKUP-ESCROW-RUNBOOK.md" ], "acceptance_criteria": [ "restore-drill 仍需人工批准", "不輸出 secret 或 credential", "readiness 需區分 freshness、integrity、offsite、escrow" ], "next_review": "P1-102", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-103", "priority": "P1", "status": "done", "workstream_id": "WS4", "source_asset_id": "backup_notification_policy", "source_signal_kind": "backup_gap", "title": "對齊備份通知政策", "owner_agent": "hermes", "recommended_action": "建立 success-noise suppression、failure/action-required escalation 與每日摘要合約,只回傳 committed policy,不送通知。", "action_class": "notification_policy", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "docs/schemas/backup_notification_policy_v1.schema.json", "docs/evaluations/backup_notification_policy_2026-06-04.json", "GET /api/v1/agents/backup-notification-policy" ], "acceptance_criteria": [ "成功備份不得即時送 Telegram / AwoooP 洗版", "warning / failed / action-required 必須可追蹤 evidence、incident 或 approval", "API 不送通知、不執行 backup / restore / offsite sync、不寫 marker、不改排程或 workflow", "daily summary 保留每日 06:05 台北時間成功狀態承載" ], "next_review": "P1-103", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-104", "priority": "P1", "status": "done", "workstream_id": "WS4", "source_asset_id": "backup_dr_readiness_matrix", "source_signal_kind": "ui_visibility_gap", "title": "在 AwoooP / governance UI 加備份證據", "owner_agent": "openclaw", "recommended_action": "在 automation inventory tab 顯示 Backup / DR 目標、readiness matrix、通知政策、blocked / action-required 與 success-noise suppression 證據。", "action_class": "execute_read_only", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx", "GET /api/v1/agents/backup-dr-target-inventory", "GET /api/v1/agents/backup-dr-readiness-matrix", "GET /api/v1/agents/backup-notification-policy" ], "acceptance_criteria": [ "顯示 Backup / DR 證據但不提供 backup、restore、offsite sync、credential marker、schedule 或 workflow 操作", "顯示 ready、action-required、blocked、success suppressed 與 immediate escalation rollup", "desktop 與 390px mobile 無橫向溢出", "成功備份仍不得即時送 Telegram / AwoooP 洗版" ], "next_review": "P1-104", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-105", "priority": "P1", "status": "done", "workstream_id": "WS4", "source_asset_id": "backup_restore_drill_approval_package_template", "source_signal_kind": "approval_boundary", "title": "定義復原演練批准包", "owner_agent": "openclaw", "recommended_action": "建立 read-only restore drill / escrow review approval package template,要求 evidence、precheck、blast radius、abort、rollback、OpenClaw 仲裁與 HITL;模板本身不執行 restore。", "action_class": "backup_restore_approval_template", "gate_status": "read_only_allowed", "risk_level": "critical", "evidence_refs": [ "docs/schemas/backup_restore_drill_approval_package_template_v1.schema.json", "docs/evaluations/backup_restore_drill_approval_package_template_2026-06-05.json", "GET /api/v1/agents/backup-restore-drill-approval-package-template" ], "acceptance_criteria": [ "不執行 backup / restore / offsite sync", "不寫 credential marker、不輸出 secret 明文", "不改排程、不寫 workflow、不發 Telegram 測試通知", "6 類批准包模板全部要求 OpenClaw 仲裁與 HITL", "blocked / action-required 目標必須維持 blocked 或 action-required,不得被 UI 解讀為 ready" ], "next_review": "P1-105", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-106", "priority": "P1", "status": "done", "workstream_id": "WS4", "source_asset_id": "offsite_escrow_readiness_status", "source_signal_kind": "ui_visibility_gap", "title": "顯示異地 / escrow 準備度狀態", "owner_agent": "hermes", "recommended_action": "建立 read-only offsite / escrow readiness status 與治理頁狀態區塊,顯示 offsite verified、credential escrow blocked、Velero action-required 與 credential redaction policy。", "action_class": "execute_read_only", "gate_status": "read_only_allowed", "risk_level": "critical", "evidence_refs": [ "docs/schemas/offsite_escrow_readiness_status_v1.schema.json", "docs/evaluations/offsite_escrow_readiness_status_2026-06-05.json", "GET /api/v1/agents/offsite-escrow-readiness-status", "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx" ], "acceptance_criteria": [ "不執行 offsite sync、backup、restore 或 Velero restore", "不寫 credential marker、不讀 credential、不輸出 secret 明文", "UI 必須把 credential_escrow_markers 維持 blocked,不能解讀成 full DR green", "成功 offsite evidence 不即時送 Telegram / AwoooP 洗版", "desktop 與 390px mobile 無橫向溢出" ], "next_review": "P1-106", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-201", "priority": "P1", "status": "done", "workstream_id": "WS5", "source_asset_id": "api_python_packages", "source_signal_kind": "dependency_gap", "title": "盤點 API Python 依賴", "owner_agent": "hermes", "recommended_action": "產生 Python package snapshot,列出版本、風險、CVE 後續掃描入口與升級批准邊界。", "action_class": "dependency_scan", "gate_status": "read_only_allowed", "risk_level": "medium", "evidence_refs": [ "apps/api/requirements.txt", "apps/api/pyproject.toml", "docs/evaluations/package_supply_chain_inventory_2026-06-04.json", "GET /api/v1/agents/package-supply-chain-inventory" ], "acceptance_criteria": [ "不自動安裝或升級套件", "升級只產生批准包", "CVE / license / drift 以 read-only report 呈現", "API pyproject / requirements manifest drift 已標為 action_required" ], "next_review": "P1-201", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-202", "priority": "P1", "status": "done", "workstream_id": "WS5", "source_asset_id": "web_pnpm_packages", "source_signal_kind": "dependency_gap", "title": "盤點 Web pnpm/npm 依賴", "owner_agent": "hermes", "recommended_action": "產生 JS package snapshot,列出 workspace package、lockfile、風險與升級批准邊界。", "action_class": "dependency_scan", "gate_status": "read_only_allowed", "risk_level": "medium", "evidence_refs": [ "apps/web/package.json", "pnpm-lock.yaml", "docs/evaluations/javascript_package_inventory_2026-06-04.json", "GET /api/v1/agents/javascript-package-inventory" ], "acceptance_criteria": [ "不自動安裝或升級套件", "不改 lockfile", "只輸出 drift report 與批准包需求", "manifest 與 pnpm-lock.yaml importer specifier 已確認同步" ], "next_review": "P1-202", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-203", "priority": "P1", "status": "done", "workstream_id": "WS5", "source_asset_id": "docker_base_images", "source_signal_kind": "dependency_gap", "title": "盤點 Docker base image 與 build surface", "owner_agent": "hermes", "recommended_action": "建立 Docker base image risk snapshot,列出 API/Web Dockerfile、image tag 與建置風險。", "action_class": "dependency_scan", "gate_status": "read_only_allowed", "risk_level": "medium", "evidence_refs": [ "apps/api/Dockerfile", "apps/web/Dockerfile", "docs/evaluations/docker_build_surface_inventory_2026-06-04.json", "GET /api/v1/agents/docker-build-surface-inventory" ], "acceptance_criteria": [ "不 build image", "不推 registry", "只產生 image risk snapshot 與後續批准包", "base image digest pin、binary source、network fetch 風險已標成 action_required" ], "next_review": "P1-203", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-204", "priority": "P1", "status": "done", "workstream_id": "WS5", "source_asset_id": "dependency_risk_policy", "source_signal_kind": "dependency_gap", "title": "定義 CVE / license / drift 嚴重度政策", "owner_agent": "openclaw", "recommended_action": "建立 dependency risk policy,只依 repo 內既有盤點定義 critical/high/medium/low、gate、角色分工與禁止操作。", "action_class": "dependency_policy", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "docs/schemas/dependency_risk_policy_v1.schema.json", "docs/evaluations/dependency_risk_policy_2026-06-04.json", "GET /api/v1/agents/dependency-risk-policy" ], "acceptance_criteria": [ "不查外部 CVE / license 來源", "不安裝或升級套件", "不寫 lockfile", "不執行 docker build / image pull / registry push", "12 條嚴重度規則與 rollup 一致,並明確標示 OpenClaw / Hermes / NemoTron 角色" ], "next_review": "P1-204", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-205", "priority": "P1", "status": "done", "workstream_id": "WS5", "source_asset_id": "dependency_drift_check_plan", "source_signal_kind": "dependency_gap", "title": "建立定期依賴漂移與外部資料來源檢查設計", "owner_agent": "hermes", "recommended_action": "建立 read-only drift/source watch plan,列出 repo-only local checks、外部 CVE/license/registry/Agent market 來源候選、cache、rate limit、failure-only notification 與批准邊界。", "action_class": "dependency_scan_design", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "docs/schemas/dependency_drift_check_plan_v1.schema.json", "docs/evaluations/dependency_drift_check_plan_2026-06-04.json", "GET /api/v1/agents/dependency-drift-check-plan" ], "acceptance_criteria": [ "不啟用排程", "不寫 Gitea workflow", "不查外部 CVE / license / registry / Agent market 來源", "不安裝 SDK、不呼叫付費 API", "列出 5 個 local checks、10 個外部來源候選與 failure-only notification policy" ], "next_review": "P1-205", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P1-206", "priority": "P1", "status": "done", "workstream_id": "WS5", "source_asset_id": "dependency_upgrade_approval_package_template", "source_signal_kind": "dependency_gap", "title": "產生依賴升級、digest pin、publish boundary 批准包模板", "owner_agent": "openclaw", "recommended_action": "建立 read-only approval package template,要求證據、風險分級、blast radius、rollback、測試、OpenClaw 仲裁與 HITL;模板本身不執行升級或修改。", "action_class": "dependency_approval_template", "gate_status": "read_only_allowed", "risk_level": "high", "evidence_refs": [ "docs/schemas/dependency_upgrade_approval_package_template_v1.schema.json", "docs/evaluations/dependency_upgrade_approval_package_template_2026-06-04.json", "GET /api/v1/agents/dependency-upgrade-approval-package-template" ], "acceptance_criteria": [ "不安裝或升級套件", "不寫 manifest / lockfile / Dockerfile", "不執行 docker build / image pull / registry push", "不 publish package", "8 類批准包模板全部要求 HITL" ], "next_review": "P1-206", "approval_boundary": { "mode": "read_only_allowed", "display_summary": "只允許只讀盤點、顯示與批准包準備;不得直接執行寫入、部署、通知或外部呼叫。", "allowed_actions": [ "讀取 committed snapshot", "整理只讀證據", "顯示治理 UI" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "unapproved_deploy", "unapproved_external_call" ], "requires_operator_approval_for": [ "任何非只讀操作", "任何部署、排程、通知或外部呼叫變更" ] } }, { "item_id": "AUTO-P2-004", "priority": "P2", "status": "planned", "workstream_id": "WS6", "source_asset_id": "ai_router", "source_signal_kind": "approval_boundary", "title": "AI Router / provider 成本與 fallback 優化提案", "owner_agent": "openclaw", "recommended_action": "只產生模型路由建議與費用估算,不切 provider、不增加呼叫頻率。", "action_class": "recommend", "gate_status": "cost_approval_required", "risk_level": "critical", "evidence_refs": [ "docs/HARD_RULES.md", "docs/ai/AI_AGENT_AUTOMATION_WORKLIST_2026-06-04.md" ], "acceptance_criteria": [ "任何付費 API 或呼叫頻率增加都需費用批准", "不得在本項目內切換 provider", "輸出需包含成本、fallback、latency、資料邊界" ], "next_review": "P2-004", "approval_boundary": { "mode": "cost_approval_required", "display_summary": "涉及付費 API 或成本變更;費用批准前只能產生只讀估算與替代方案。", "allowed_actions": [ "估算成本", "整理替代方案", "準備費用批准包" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "paid_api_call", "call_frequency_increase", "provider_switch" ], "requires_operator_approval_for": [ "付費 API 呼叫", "呼叫頻率增加", "新 provider 或 SDK 導入" ] } }, { "item_id": "AUTO-P3-001", "priority": "P3", "status": "planned", "workstream_id": "WS2", "source_asset_id": "nemotron_candidate", "source_signal_kind": "market_signal", "title": "刷新 Nemotron 來源證據", "owner_agent": "nemotron", "recommended_action": "只用 primary sources 刷新 Nemotron source evidence,準備 5 筆 smoke 前置資料。", "action_class": "observe", "gate_status": "blocked_by_evidence", "risk_level": "high", "evidence_refs": [ "docs/evaluations/agent_market_governance_snapshot_2026-06-04.json", "docs/evaluations/agent_nemotron_contract_tuned_smoke_matrix_2026-06-02.json" ], "acceptance_criteria": [ "不得呼叫付費 API", "不得自行進入 shadow / canary", "只更新 primary source evidence", "5 筆 smoke 仍需通過現有 approval gate" ], "next_review": "P3-001", "approval_boundary": { "mode": "blocked_by_evidence", "display_summary": "來源證據不足;補齊 primary source 與 smoke 前不得進入執行、shadow 或 canary。", "allowed_actions": [ "刷新 primary source evidence", "整理離線 smoke 前置資料", "列出證據缺口" ], "blocked_actions": [ "production_write", "runtime_execution", "destructive_operation", "secret_plaintext_collection", "shadow_or_canary_entry", "provider_replacement", "paid_api_call" ], "requires_operator_approval_for": [ "證據採納", "smoke 啟動", "shadow / canary 進入" ] } } ], "approval_boundaries": { "sdk_installation_allowed": false, "paid_api_call_allowed": false, "shadow_or_canary_allowed": false, "production_routing_allowed": false, "destructive_operation_allowed": false }, "item_approval_boundary_rollup": { "total_items": 25, "by_mode": { "read_only_allowed": 22, "production_change_blocked": 1, "cost_approval_required": 1, "blocked_by_evidence": 1 }, "items_requiring_explicit_approval": [ "AUTO-P1-004", "AUTO-P2-004", "AUTO-P3-001" ], "items_with_blocked_operations": [ "AUTO-P1-001", "AUTO-P1-002", "AUTO-P1-003", "AUTO-P1-004", "AUTO-P1-005", "AUTO-P1-006", "AUTO-P1-007", "AUTO-P1-101", "AUTO-P1-102", "AUTO-P1-103", "AUTO-P1-104", "AUTO-P1-105", "AUTO-P1-106", "AUTO-P1-201", "AUTO-P1-202", "AUTO-P1-203", "AUTO-P1-204", "AUTO-P1-205", "AUTO-P1-206", "AUTO-P1-303", "AUTO-P1-304", "AUTO-P1-305", "AUTO-P1-306", "AUTO-P2-004", "AUTO-P3-001" ], "read_only_item_ids": [ "AUTO-P1-303", "AUTO-P1-304", "AUTO-P1-305", "AUTO-P1-306", "AUTO-P1-001", "AUTO-P1-002", "AUTO-P1-003", "AUTO-P1-005", "AUTO-P1-006", "AUTO-P1-007", "AUTO-P1-101", "AUTO-P1-102", "AUTO-P1-103", "AUTO-P1-104", "AUTO-P1-105", "AUTO-P1-106", "AUTO-P1-201", "AUTO-P1-202", "AUTO-P1-203", "AUTO-P1-204", "AUTO-P1-205", "AUTO-P1-206" ] }, "progress_summary": { "overall_percent": 92, "done_items": 23, "planned_items": 2, "total_items": 25, "formula": "round(done_items / total_items * 100),只有 status=done 計入完成;planned/in_progress/blocked/deferred/rejected 不計入。", "by_priority": [ { "priority": "P1", "completion_percent": 100, "done_items": 23, "total_items": 23 }, { "priority": "P2", "completion_percent": 0, "done_items": 0, "total_items": 1 }, { "priority": "P3", "completion_percent": 0, "done_items": 0, "total_items": 1 } ], "by_workstream": [ { "workstream_id": "WS2", "display_name": "自動化待辦", "completion_percent": 67, "done_items": 2, "total_items": 3, "next_task_id": "P3-001" }, { "workstream_id": "WS8", "display_name": "產品 UI", "completion_percent": 100, "done_items": 2, "total_items": 2, "next_task_id": "complete" }, { "workstream_id": "WS3", "display_name": "監控自動化", "completion_percent": 100, "done_items": 6, "total_items": 6, "next_task_id": "complete" }, { "workstream_id": "WS7", "display_name": "安全執行關卡", "completion_percent": 100, "done_items": 1, "total_items": 1, "next_task_id": "complete" }, { "workstream_id": "WS4", "display_name": "備份與 DR 自動化", "completion_percent": 100, "done_items": 6, "total_items": 6, "next_task_id": "complete" }, { "workstream_id": "WS5", "display_name": "套件與供應鏈自動化", "completion_percent": 100, "done_items": 6, "total_items": 6, "next_task_id": "complete" }, { "workstream_id": "WS6", "display_name": "配置優化", "completion_percent": 0, "done_items": 0, "total_items": 1, "next_task_id": "P2-004" } ] } }