feat(governance): 顯示任務批准邊界與進度彙總
This commit is contained in:
@@ -1,34 +1,34 @@
|
||||
{
|
||||
"schema_version": "ai_agent_automation_backlog_v1",
|
||||
"generated_at": "2026-06-05T08:40:00+08:00",
|
||||
"generated_at": "2026-06-05T09:05:41+08:00",
|
||||
"source_inventory_snapshot_ref": "docs/evaluations/ai_agent_automation_inventory_snapshot_2026-06-04_static_seed.json",
|
||||
"program_status": {
|
||||
"overall_completion_percent": 100,
|
||||
"overall_completion_percent": 70,
|
||||
"current_priority": "P1",
|
||||
"current_task_id": "P1-106",
|
||||
"next_task_id": "P1-305",
|
||||
"current_task_id": "P1-306",
|
||||
"next_task_id": "P1-001",
|
||||
"read_only_mode": true
|
||||
},
|
||||
"rollups": {
|
||||
"total_items": 21,
|
||||
"total_items": 23,
|
||||
"by_priority": {
|
||||
"P1": 19,
|
||||
"P1": 21,
|
||||
"P2": 1,
|
||||
"P3": 1
|
||||
},
|
||||
"by_status": {
|
||||
"planned": 7,
|
||||
"done": 14
|
||||
"done": 16,
|
||||
"planned": 7
|
||||
},
|
||||
"by_gate_status": {
|
||||
"read_only_allowed": 18,
|
||||
"read_only_allowed": 20,
|
||||
"production_change_blocked": 1,
|
||||
"cost_approval_required": 1,
|
||||
"blocked_by_evidence": 1
|
||||
},
|
||||
"by_owner_agent": {
|
||||
"hermes": 11,
|
||||
"openclaw": 9,
|
||||
"hermes": 12,
|
||||
"openclaw": 10,
|
||||
"nemotron": 1
|
||||
}
|
||||
},
|
||||
@@ -56,7 +56,28 @@
|
||||
"approval_boundaries 全部維持 false",
|
||||
"pytest 覆蓋 service loader 與 API endpoint"
|
||||
],
|
||||
"next_review": "P1-303"
|
||||
"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",
|
||||
@@ -81,7 +102,123 @@
|
||||
"desktop 與 390px mobile 無橫向溢出",
|
||||
"顯示 rollup 與分組 item"
|
||||
],
|
||||
"next_review": "P1-304"
|
||||
"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",
|
||||
@@ -105,7 +242,28 @@
|
||||
"每個 runtime surface 都有來源檔或只讀檢查證據",
|
||||
"缺口列為 action-required,不直接修復"
|
||||
],
|
||||
"next_review": "P1-001"
|
||||
"next_review": "P1-001",
|
||||
"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",
|
||||
@@ -129,7 +287,28 @@
|
||||
"列出 runner health contract",
|
||||
"成功不通知、失敗才通知的政策被保留"
|
||||
],
|
||||
"next_review": "P1-002"
|
||||
"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-003",
|
||||
@@ -153,7 +332,28 @@
|
||||
"降噪只產生 proposal",
|
||||
"標出 stale、缺 evidence、過度通知與 classification gap"
|
||||
],
|
||||
"next_review": "P1-003"
|
||||
"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-004",
|
||||
@@ -178,7 +378,32 @@
|
||||
"所有候選仍維持 replay/shadow/canary gate",
|
||||
"OpenClaw 保持目前生產決策核心"
|
||||
],
|
||||
"next_review": "P1-004"
|
||||
"next_review": "P1-004",
|
||||
"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-007",
|
||||
@@ -202,7 +427,28 @@
|
||||
"成功不通知的預設政策被保留",
|
||||
"action-required 必須可追蹤 incident / approval / evidence"
|
||||
],
|
||||
"next_review": "P1-007"
|
||||
"next_review": "P1-007",
|
||||
"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-101",
|
||||
@@ -228,7 +474,28 @@
|
||||
"每個備份目標至少有 freshness / integrity / owner 欄位",
|
||||
"成功不通知、失敗才進 action-required"
|
||||
],
|
||||
"next_review": "P1-101"
|
||||
"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",
|
||||
@@ -252,7 +519,28 @@
|
||||
"不輸出 secret 或 credential",
|
||||
"readiness 需區分 freshness、integrity、offsite、escrow"
|
||||
],
|
||||
"next_review": "P1-102"
|
||||
"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",
|
||||
@@ -278,7 +566,28 @@
|
||||
"API 不送通知、不執行 backup / restore / offsite sync、不寫 marker、不改排程或 workflow",
|
||||
"daily summary 保留每日 06:05 台北時間成功狀態承載"
|
||||
],
|
||||
"next_review": "P1-103"
|
||||
"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",
|
||||
@@ -305,7 +614,28 @@
|
||||
"desktop 與 390px mobile 無橫向溢出",
|
||||
"成功備份仍不得即時送 Telegram / AwoooP 洗版"
|
||||
],
|
||||
"next_review": "P1-104"
|
||||
"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",
|
||||
@@ -332,7 +662,28 @@
|
||||
"6 類批准包模板全部要求 OpenClaw 仲裁與 HITL",
|
||||
"blocked / action-required 目標必須維持 blocked 或 action-required,不得被 UI 解讀為 ready"
|
||||
],
|
||||
"next_review": "P1-105"
|
||||
"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",
|
||||
@@ -360,7 +711,28 @@
|
||||
"成功 offsite evidence 不即時送 Telegram / AwoooP 洗版",
|
||||
"desktop 與 390px mobile 無橫向溢出"
|
||||
],
|
||||
"next_review": "P1-106"
|
||||
"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",
|
||||
@@ -387,7 +759,28 @@
|
||||
"CVE / license / drift 以 read-only report 呈現",
|
||||
"API pyproject / requirements manifest drift 已標為 action_required"
|
||||
],
|
||||
"next_review": "P1-201"
|
||||
"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",
|
||||
@@ -414,7 +807,28 @@
|
||||
"只輸出 drift report 與批准包需求",
|
||||
"manifest 與 pnpm-lock.yaml importer specifier 已確認同步"
|
||||
],
|
||||
"next_review": "P1-202"
|
||||
"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",
|
||||
@@ -441,7 +855,28 @@
|
||||
"只產生 image risk snapshot 與後續批准包",
|
||||
"base image digest pin、binary source、network fetch 風險已標成 action_required"
|
||||
],
|
||||
"next_review": "P1-203"
|
||||
"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",
|
||||
@@ -468,7 +903,28 @@
|
||||
"不執行 docker build / image pull / registry push",
|
||||
"12 條嚴重度規則與 rollup 一致,並明確標示 OpenClaw / Hermes / NemoTron 角色"
|
||||
],
|
||||
"next_review": "P1-204"
|
||||
"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",
|
||||
@@ -495,7 +951,28 @@
|
||||
"不安裝 SDK、不呼叫付費 API",
|
||||
"列出 5 個 local checks、10 個外部來源候選與 failure-only notification policy"
|
||||
],
|
||||
"next_review": "P1-205"
|
||||
"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",
|
||||
@@ -522,7 +999,28 @@
|
||||
"不 publish package",
|
||||
"8 類批准包模板全部要求 HITL"
|
||||
],
|
||||
"next_review": "P1-206"
|
||||
"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",
|
||||
@@ -546,7 +1044,30 @@
|
||||
"不得在本項目內切換 provider",
|
||||
"輸出需包含成本、fallback、latency、資料邊界"
|
||||
],
|
||||
"next_review": "P2-004"
|
||||
"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",
|
||||
@@ -571,7 +1092,30 @@
|
||||
"只更新 primary source evidence",
|
||||
"5 筆 smoke 仍需通過現有 approval gate"
|
||||
],
|
||||
"next_review": "P3-001"
|
||||
"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": {
|
||||
@@ -580,5 +1124,129 @@
|
||||
"shadow_or_canary_allowed": false,
|
||||
"production_routing_allowed": false,
|
||||
"destructive_operation_allowed": false
|
||||
},
|
||||
"item_approval_boundary_rollup": {
|
||||
"total_items": 23,
|
||||
"by_mode": {
|
||||
"read_only_allowed": 20,
|
||||
"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-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"
|
||||
]
|
||||
},
|
||||
"progress_summary": {
|
||||
"overall_percent": 70,
|
||||
"done_items": 16,
|
||||
"planned_items": 7,
|
||||
"total_items": 23,
|
||||
"formula": "round(done_items / total_items * 100),只有 status=done 計入完成;planned/in_progress/blocked/deferred/rejected 不計入。",
|
||||
"by_priority": [
|
||||
{
|
||||
"priority": "P1",
|
||||
"completion_percent": 76,
|
||||
"done_items": 16,
|
||||
"total_items": 21
|
||||
},
|
||||
{
|
||||
"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": "P1-001"
|
||||
},
|
||||
{
|
||||
"workstream_id": "WS3",
|
||||
"display_name": "監控自動化",
|
||||
"completion_percent": 0,
|
||||
"done_items": 0,
|
||||
"total_items": 4,
|
||||
"next_task_id": "P1-001"
|
||||
},
|
||||
{
|
||||
"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-001"
|
||||
},
|
||||
{
|
||||
"workstream_id": "WS7",
|
||||
"display_name": "安全執行關卡",
|
||||
"completion_percent": 0,
|
||||
"done_items": 0,
|
||||
"total_items": 1,
|
||||
"next_task_id": "P2-101"
|
||||
},
|
||||
{
|
||||
"workstream_id": "WS8",
|
||||
"display_name": "產品 UI",
|
||||
"completion_percent": 100,
|
||||
"done_items": 2,
|
||||
"total_items": 2,
|
||||
"next_task_id": "P1-001"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user