Files
awoooi/docs/evaluations/ai_agent_automation_backlog_2026-06-04.json
2026-06-11 19:07:08 +08:00

1429 lines
54 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": "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"
}
]
}
}