{
  "schema_version": "ai_agent_automation_inventory_snapshot_v1",
  "generated_at": "2026-06-05T16:20:00+08:00",
  "program_status": {
    "overall_completion_percent": 100,
    "current_priority": "P1",
    "current_task_id": "P1-007",
    "next_task_id": "P2-004",
    "read_only_mode": true
  },
  "status_taxonomy": {
    "task_statuses": [
      "planned",
      "in_progress",
      "blocked",
      "ready_for_review",
      "done",
      "deferred",
      "rejected"
    ],
    "gate_statuses": [
      "read_only_allowed",
      "dry_run_required",
      "approval_required",
      "cost_approval_required",
      "dependency_approval_required",
      "production_change_blocked",
      "shadow_canary_blocked",
      "blocked_by_evidence",
      "ready_for_operator_review"
    ],
    "priorities": [
      "P0",
      "P1",
      "P2",
      "P3"
    ]
  },
  "agent_roles": [
    {
      "agent_id": "openclaw",
      "display_name": "OpenClaw",
      "primary_role": "生產仲裁者與 HITL 關卡",
      "allowed_actions": [
        "只讀診斷",
        "風險仲裁",
        "批准包審查",
        "批准後的執行仲裁"
      ],
      "blocked_actions": [
        "無證據替換生產決策核心",
        "未批准的生產寫入",
        "未批准的 SDK 安裝",
        "未批准的付費 API 呼叫"
      ]
    },
    {
      "agent_id": "hermes",
      "display_name": "Hermes",
      "primary_role": "治理、知識與報告專家",
      "allowed_actions": [
        "只讀盤點",
        "runbook 與 KM 整理",
        "降噪分析",
        "批准包起草"
      ],
      "blocked_actions": [
        "直接生產寫入",
        "直接回滾",
        "直接切換 provider",
        "自行安裝 SDK"
      ]
    },
    {
      "agent_id": "nemotron",
      "display_name": "Nemotron",
      "primary_role": "離線評估者與專家",
      "allowed_actions": [
        "sanitized 輸入分析",
        "離線 smoke / replay 評分",
        "模型與工具能力比較"
      ],
      "blocked_actions": [
        "直接讀取 production",
        "自行呼叫付費 API",
        "自行進入 shadow / canary",
        "自行取代 OpenClaw"
      ]
    }
  ],
  "asset_domains": [
    {
      "domain_id": "services",
      "display_name": "服務",
      "description": "API、Web、Worker、K8s 工作負載與內部服務。"
    },
    {
      "domain_id": "tools",
      "display_name": "工具",
      "description": "Gitea、Harbor、Telegram、Sentry、Open-WebUI 等操作工具。"
    },
    {
      "domain_id": "packages",
      "display_name": "套件與依賴",
      "description": "Python、pnpm/npm、Docker base image 與建置依賴。"
    },
    {
      "domain_id": "backup_targets",
      "display_name": "備份目標",
      "description": "資料庫、registry、設定、公開路由與異地同步。"
    },
    {
      "domain_id": "ai_providers",
      "display_name": "AI Provider",
      "description": "OpenClaw、Ollama、Nemotron、Gemini 與候選 Agent provider 路徑。"
    },
    {
      "domain_id": "workflows",
      "display_name": "工作流程",
      "description": "Gitea Actions、定期 market watch、備份與檢查流程。"
    },
    {
      "domain_id": "observability",
      "display_name": "可觀測性",
      "description": "Prometheus、Alertmanager、Grafana、SigNoz、ClickHouse 與 exporter。"
    },
    {
      "domain_id": "security",
      "display_name": "安全",
      "description": "Secrets、權限、批准邊界與告警鏈路。"
    }
  ],
  "assets": [
    {
      "asset_id": "awoooi_api",
      "domain_id": "services",
      "display_name": "AWOOOI API",
      "asset_type": "api",
      "status": "in_progress",
      "gate_status": "read_only_allowed",
      "owner_agent": "openclaw",
      "risk_level": "high",
      "evidence_refs": [
        "apps/api/",
        "apps/api/Dockerfile"
      ],
      "next_action": "P0-006 以只讀 API 曝露盤點快照。"
    },
    {
      "asset_id": "awoooi_web",
      "domain_id": "services",
      "display_name": "AWOOOI Web",
      "asset_type": "web",
      "status": "in_progress",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "medium",
      "evidence_refs": [
        "apps/web/",
        "apps/web/Dockerfile",
        "apps/web/package.json"
      ],
      "next_action": "P0-007 顯示自動化盤點看板。"
    },
    {
      "asset_id": "awoooi_workers",
      "domain_id": "services",
      "display_name": "AWOOOI Worker 與排程器",
      "asset_type": "worker",
      "status": "action_required",
      "gate_status": "read_only_allowed",
      "owner_agent": "openclaw",
      "risk_level": "high",
      "evidence_refs": [
        "apps/api/src/workers/",
        "docs/evaluations/runtime_surface_inventory_2026-06-05.json"
      ],
      "next_action": "P1-001 D0 已完成 committed manifest / source matrix；下一步 P1-002 對照 Gitea workflow / runner 健康。"
    },
    {
      "asset_id": "awoooi_k8s_prod",
      "domain_id": "services",
      "display_name": "awoooi-prod K8s 工作負載",
      "asset_type": "k8s_workload",
      "status": "action_required",
      "gate_status": "read_only_allowed",
      "owner_agent": "openclaw",
      "risk_level": "high",
      "evidence_refs": [
        "docs/evaluations/runtime_surface_inventory_2026-06-05.json",
        "k8s/awoooi-prod/"
      ],
      "next_action": "P1-001 D0 已完成 committed manifest / source matrix；下一步 P1-002 對照 Gitea workflow / runner 健康。"
    },
    {
      "asset_id": "awoooi_postgresql",
      "domain_id": "services",
      "display_name": "AWOOOI PostgreSQL",
      "asset_type": "database",
      "status": "planned",
      "gate_status": "read_only_allowed",
      "owner_agent": "openclaw",
      "risk_level": "critical",
      "evidence_refs": [
        "apps/api/migrations/",
        "scripts/backup/backup-momo.sh"
      ],
      "next_action": "P1-101 對齊資料庫備份目標與 freshness 證據。"
    },
    {
      "asset_id": "clawbot_redis",
      "domain_id": "services",
      "display_name": "ClawBot Redis",
      "asset_type": "cache",
      "status": "planned",
      "gate_status": "read_only_allowed",
      "owner_agent": "openclaw",
      "risk_level": "medium",
      "evidence_refs": [
        "docs/LOGBOOK.md"
      ],
      "next_action": "P1-001 補 runtime 與備份可見性。"
    },
    {
      "asset_id": "ai_router",
      "domain_id": "ai_providers",
      "display_name": "AI Router",
      "asset_type": "ai_provider",
      "status": "in_progress",
      "gate_status": "production_change_blocked",
      "owner_agent": "openclaw",
      "risk_level": "critical",
      "evidence_refs": [
        "docs/HARD_RULES.md",
        "apps/api/src/api/v1/agents.py"
      ],
      "next_action": "P1-004 只讀盤點 provider route，不切換 provider。"
    },
    {
      "asset_id": "openclaw_core",
      "domain_id": "ai_providers",
      "display_name": "OpenClaw 生產決策核心",
      "asset_type": "ai_provider",
      "status": "in_progress",
      "gate_status": "production_change_blocked",
      "owner_agent": "openclaw",
      "risk_level": "critical",
      "evidence_refs": [
        "docs/HARD_RULES.md",
        "docs/runbooks/OPENCLAW-REPLACEMENT-EVALUATION.md"
      ],
      "next_action": "維持生產仲裁者；替換、拆分或降級需同題 replay / shadow / canary 證據。"
    },
    {
      "asset_id": "nemotron_candidate",
      "domain_id": "ai_providers",
      "display_name": "Nemotron 候選評估者",
      "asset_type": "ai_provider",
      "status": "blocked",
      "gate_status": "blocked_by_evidence",
      "owner_agent": "nemotron",
      "risk_level": "high",
      "evidence_refs": [
        "docs/evaluations/agent_market_governance_snapshot_2026-06-04.json"
      ],
      "next_action": "P3-001 刷新來源證據後才可提交 5 筆 smoke。"
    },
    {
      "asset_id": "gitea_actions",
      "domain_id": "workflows",
      "display_name": "Gitea Actions",
      "asset_type": "workflow",
      "status": "in_progress",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "medium",
      "evidence_refs": [
        "docs/evaluations/gitea_workflow_runner_health_2026-06-05.json",
        ".gitea/workflows/",
        "scripts/ci/notify-awoooi-cicd.sh",
        "scripts/ops/stop-stale-gitea-actions-jobs.sh"
      ],
      "next_action": "P1-002 已完成 committed workflow / runner health contract；P1-003 盤點監控合約與降噪機會。"
    },
    {
      "asset_id": "prometheus_alertmanager",
      "domain_id": "observability",
      "display_name": "Prometheus / Alertmanager",
      "asset_type": "observability_tool",
      "status": "done",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "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/"
      ],
      "next_action": "P1-003 已完成只讀監控合約與降噪機會矩陣；P1-004 盤點 AI Router / provider route。"
    },
    {
      "asset_id": "signoz_clickhouse",
      "domain_id": "observability",
      "display_name": "SigNoz / ClickHouse",
      "asset_type": "observability_tool",
      "status": "done",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "medium",
      "evidence_refs": [
        "docs/evaluations/observability_contract_matrix_2026-06-05.json",
        "apps/api/src/services/signoz_client.py",
        "ops/signoz"
      ],
      "next_action": "P1-003 已補 trace / metrics / log 可見性只讀合約；live readback 仍需後續人工批准範圍。"
    },
    {
      "asset_id": "sentry",
      "domain_id": "tools",
      "display_name": "Sentry",
      "asset_type": "external_service",
      "status": "done",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "medium",
      "evidence_refs": [
        "docs/evaluations/observability_contract_matrix_2026-06-05.json",
        "apps/web/src/instrumentation.ts",
        "scripts/backup/backup-sentry.sh"
      ],
      "next_action": "P1-003 已補 Sentry error monitoring 合約；不讀 DSN secret、不送事件。"
    },
    {
      "asset_id": "telegram_chain",
      "domain_id": "security",
      "display_name": "Telegram 告警與批准鏈路",
      "asset_type": "external_service",
      "status": "done",
      "gate_status": "read_only_allowed",
      "owner_agent": "openclaw",
      "risk_level": "critical",
      "evidence_refs": [
        "docs/evaluations/service_health_failure_notification_policy_2026-06-05.json",
        "GET /api/v1/agents/service-health-failure-notification-policy"
      ],
      "next_action": "P1-007 已完成 failure-only 通知合約；不得直接發送通知。"
    },
    {
      "asset_id": "backup_gitea",
      "domain_id": "backup_targets",
      "display_name": "Gitea 備份",
      "asset_type": "backup_target",
      "status": "planned",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "high",
      "evidence_refs": [
        "scripts/backup/backup-gitea.sh"
      ],
      "next_action": "P1-101 轉成機器可讀備份目標。"
    },
    {
      "asset_id": "backup_harbor",
      "domain_id": "backup_targets",
      "display_name": "Harbor registry 備份",
      "asset_type": "backup_target",
      "status": "planned",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "high",
      "evidence_refs": [
        "scripts/backup/backup-harbor.sh"
      ],
      "next_action": "P1-101 補 registry 備份 freshness 與 integrity。"
    },
    {
      "asset_id": "backup_public_routes",
      "domain_id": "backup_targets",
      "display_name": "公開路由備份",
      "asset_type": "backup_target",
      "status": "planned",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "medium",
      "evidence_refs": [
        "scripts/backup/backup-public-routes.sh"
      ],
      "next_action": "P1-101 補公開路由備份目標與 restore 證據。"
    },
    {
      "asset_id": "backup_offsite",
      "domain_id": "backup_targets",
      "display_name": "異地同步與 escrow",
      "asset_type": "backup_target",
      "status": "planned",
      "gate_status": "approval_required",
      "owner_agent": "hermes",
      "risk_level": "critical",
      "evidence_refs": [
        "scripts/backup/backup-offsite-readiness-gate.sh",
        "docs/runbooks/OFFSITE-BACKUP-ESCROW-RUNBOOK.md"
      ],
      "next_action": "P1-106 顯示異地 / escrow readiness，不暴露 credential。"
    },
    {
      "asset_id": "api_python_packages",
      "domain_id": "packages",
      "display_name": "API Python 套件",
      "asset_type": "package_set",
      "status": "in_progress",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "medium",
      "evidence_refs": [
        "apps/api/requirements.txt",
        "apps/api/pyproject.toml",
        "docs/evaluations/package_supply_chain_inventory_2026-06-04.json"
      ],
      "next_action": "P1-206 產生 Python manifest authority / lockfile / constraints 批准包；P1-204 嚴重度政策已完成。"
    },
    {
      "asset_id": "web_pnpm_packages",
      "domain_id": "packages",
      "display_name": "Web pnpm/npm 套件",
      "asset_type": "package_set",
      "status": "in_progress",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "medium",
      "evidence_refs": [
        "apps/web/package.json",
        "pnpm-lock.yaml",
        "docs/evaluations/javascript_package_inventory_2026-06-04.json"
      ],
      "next_action": "P1-206 產生 JS high-impact dependency / publish boundary 批准包；P1-205 定期檢查設計已完成。"
    },
    {
      "asset_id": "docker_base_images",
      "domain_id": "packages",
      "display_name": "Docker base image",
      "asset_type": "container_image",
      "status": "in_progress",
      "gate_status": "read_only_allowed",
      "owner_agent": "hermes",
      "risk_level": "medium",
      "evidence_refs": [
        "apps/api/Dockerfile",
        "apps/web/Dockerfile",
        "docs/evaluations/docker_build_surface_inventory_2026-06-04.json"
      ],
      "next_action": "P1-206 產生 Docker base image digest、binary source、CVE 與 rebuild approval package。"
    },
    {
      "asset_id": "service_health_gap_matrix",
      "domain_id": "services",
      "display_name": "服務健康缺口與過期端點矩陣",
      "asset_type": "read_only_health_gap_matrix",
      "status": "ready_for_review",
      "gate_status": "read_only_allowed",
      "owner_agent": "openclaw",
      "risk_level": "high",
      "evidence_refs": [
        "docs/evaluations/service_health_gap_matrix_2026-06-05.json",
        "GET /api/v1/agents/service-health-gap-matrix"
      ],
      "next_action": "P1-006 在治理頁顯示 service health 證據卡；不得做 live probe、重啟或改 endpoint。"
    },
    {
      "asset_id": "service_health_evidence_cards_ui",
      "name": "Service health evidence cards UI",
      "kind": "ui_surface",
      "status": "ready_for_review",
      "risk_level": "high",
      "owner_agent": "hermes",
      "source_refs": [
        "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx",
        "apps/web/messages/zh-TW.json"
      ],
      "automation_scope": "read_only_visualization",
      "recommended_next_action": "以 production desktop / mobile smoke 驗證證據卡可見與無水平溢出。",
      "gate_status": "read_only_allowed"
    },
    {
      "asset_id": "service_health_failure_notification_policy",
      "name": "Service health failure-only notification policy",
      "kind": "notification_policy",
      "status": "done",
      "risk_level": "critical",
      "owner_agent": "openclaw",
      "source_refs": [
        "docs/evaluations/service_health_failure_notification_policy_2026-06-05.json",
        "docs/schemas/service_health_failure_notification_policy_v1.schema.json"
      ],
      "automation_scope": "read_only_notification_policy",
      "recommended_next_action": "Production API / UI smoke 後進 P2-004；不得發送測試通知或顯示工作視窗對話內容。",
      "gate_status": "read_only_allowed"
    }
  ],
  "workstreams": [
    {
      "workstream_id": "WS0",
      "display_name": "治理與狀態追蹤",
      "completion_percent": 100,
      "status": "done",
      "next_task_id": "P1-301"
    },
    {
      "workstream_id": "WS1",
      "display_name": "資產盤點",
      "completion_percent": 80,
      "status": "in_progress",
      "next_task_id": "P1-301"
    },
    {
      "workstream_id": "WS2",
      "display_name": "自動化待辦",
      "completion_percent": 100,
      "status": "done",
      "next_task_id": "P1-001"
    },
    {
      "workstream_id": "WS3",
      "display_name": "監控自動化",
      "completion_percent": 100,
      "status": "done",
      "next_task_id": "P1-005"
    },
    {
      "workstream_id": "WS4",
      "display_name": "備份與 DR 自動化",
      "completion_percent": 100,
      "status": "done",
      "next_task_id": "complete"
    },
    {
      "workstream_id": "WS5",
      "display_name": "套件與供應鏈自動化",
      "completion_percent": 100,
      "status": "done",
      "next_task_id": "complete"
    },
    {
      "workstream_id": "WS6",
      "display_name": "配置優化",
      "completion_percent": 5,
      "status": "planned",
      "next_task_id": "P2-001"
    },
    {
      "workstream_id": "WS7",
      "display_name": "安全執行關卡",
      "completion_percent": 50,
      "status": "in_progress",
      "next_task_id": "P2-101"
    },
    {
      "workstream_id": "WS8",
      "display_name": "產品 UI",
      "completion_percent": 96,
      "status": "in_progress",
      "next_task_id": "P1-006"
    }
  ],
  "tasks": [
    {
      "task_id": "P0-001",
      "priority": "P0",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "建立完整工作清單與分析 MD",
      "output": "docs/ai/AI_AGENT_AUTOMATION_WORKLIST_2026-06-04.md",
      "gate_status": "ready_for_operator_review",
      "next_action": "完成，後續只需同步更新。",
      "approval_boundary": {
        "mode": "ready_for_operator_review",
        "display_summary": "只供 operator review，不代表 owner response accepted 或 runtime gate 開啟。",
        "allowed_actions": [
          "閱讀文件",
          "提交人工 review 註記",
          "整理補件項目"
        ],
        "blocked_actions": [
          "production_write",
          "runtime_execution",
          "destructive_operation",
          "secret_plaintext_collection",
          "runtime_gate_increase",
          "owner_response_auto_accept"
        ],
        "requires_operator_approval_for": [
          "任何狀態提升",
          "任何生產執行",
          "任何 owner response accepted 計數調整"
        ]
      }
    },
    {
      "task_id": "P0-002",
      "priority": "P0",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "定義自動化狀態分類",
      "output": "工作清單第 6 節",
      "gate_status": "read_only_allowed",
      "next_action": "完成，後續 API/UI 沿用。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P0-003",
      "priority": "P0",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "定義資產盤點 schema",
      "output": "docs/schemas/ai_agent_automation_inventory_snapshot_v1.schema.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P0-006 API 需符合此 schema。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P0-004",
      "priority": "P0",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "定義操作權限矩陣",
      "output": "docs/schemas/ai_agent_action_permission_matrix_v1.schema.json",
      "gate_status": "approval_required",
      "next_action": "完成，所有執行型操作沿用此矩陣。",
      "approval_boundary": {
        "mode": "approval_required",
        "display_summary": "需要獨立人工批准；目前只能保留文件、證據與批准包草案。",
        "allowed_actions": [
          "只讀審查",
          "準備批准包",
          "列出缺口"
        ],
        "blocked_actions": [
          "production_write",
          "runtime_execution",
          "destructive_operation",
          "secret_plaintext_collection",
          "approval_auto_sign",
          "runtime_gate_increase"
        ],
        "requires_operator_approval_for": [
          "任何執行型操作",
          "任何批准狀態變更"
        ]
      }
    },
    {
      "task_id": "P0-005",
      "priority": "P0",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "建立靜態盤點種子",
      "output": "docs/evaluations/ai_agent_automation_inventory_snapshot_2026-06-04_static_seed.json",
      "gate_status": "read_only_allowed",
      "next_action": "P0-006 建立只讀 API 讀取此快照。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P0-006",
      "priority": "P0",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "建立只讀自動化盤點 API",
      "output": "GET /api/v1/agents/automation-inventory-snapshot",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P0-007 接治理 / AwoooP UI 看板骨架。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P0-007",
      "priority": "P0",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "建立治理 / AwoooP UI 看板骨架",
      "output": "治理或 AwoooP 自動化盤點看板",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-301 把盤點轉成自動化待辦產品面。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P0-008",
      "priority": "P0",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "補 schema / API / UI 驗證",
      "output": "測試與瀏覽器驗證",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-301 建立自動化待辦 schema。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-001",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "盤點 API / Web / Worker / K8s runtime surface",
      "output": "docs/evaluations/runtime_surface_inventory_2026-06-05.json + GET /api/v1/agents/runtime-surface-inventory",
      "gate_status": "read_only_allowed",
      "next_action": "完成 D0 committed manifest / source matrix；下一步 P1-002 盤點 Gitea workflow 與 runner 健康合約。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-002",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "盤點 Gitea 工作流程與 runner 健康合約",
      "output": "docs/evaluations/gitea_workflow_runner_health_2026-06-05.json + GET /api/v1/agents/gitea-workflow-runner-health",
      "gate_status": "read_only_allowed",
      "next_action": "完成 committed workflow / runner / notification contract；下一步 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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-003",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "盤點監控合約與降噪機會",
      "output": "docs/evaluations/observability_contract_matrix_2026-06-05.json + GET /api/v1/agents/observability-contract-matrix",
      "gate_status": "read_only_allowed",
      "next_action": "完成 committed observability contract matrix；下一步 P1-004 盤點 AI Router / provider route。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-301",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "定義自動化待辦 schema",
      "output": "docs/schemas/ai_agent_automation_backlog_v1.schema.json",
      "gate_status": "read_only_allowed",
      "next_action": "P1-302 從盤點 + 健康 + 市場佇列產生自動化待辦快照。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-302",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "從盤點 + 健康 + 市場佇列產生自動化待辦快照",
      "output": "docs/evaluations/ai_agent_automation_backlog_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "P1-303 建立自動化待辦只讀 API。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-303",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "建立自動化待辦只讀 API",
      "output": "GET /api/v1/agents/automation-backlog-snapshot",
      "gate_status": "read_only_allowed",
      "next_action": "P1-304 建立 P0/P1/P2/P3 分組 UI 看板。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-304",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "建立 P0/P1/P2/P3 分組 UI 看板",
      "output": "/zh-TW/governance?tab=automation-inventory",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-101 建立備份 / DR readiness surface。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-305",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "顯示每個任務的批准邊界",
      "output": "docs/evaluations/ai_agent_automation_backlog_2026-06-04.json + /zh-TW/governance?tab=automation-inventory",
      "gate_status": "read_only_allowed",
      "next_action": "完成，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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-306",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "顯示進度百分比彙總",
      "output": "docs/evaluations/ai_agent_automation_backlog_2026-06-04.json + GET /api/v1/agents/automation-backlog-snapshot",
      "gate_status": "read_only_allowed",
      "next_action": "完成；下一步回到 P1-001 runtime surface 只讀盤點。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-006",
      "priority": "P1",
      "status": "done",
      "owner_agent": "Hermes",
      "title": "在 UI 顯示 service health 證據卡",
      "output": "治理頁 service health evidence cards：主要 evidence ref、狀態、新鮮度、風險與下一步",
      "gate_status": "read_only_allowed",
      "next_action": "P1-007 建立 service health 失敗限定 Telegram / AwoooP 對應",
      "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"
        ]
      }
    },
    {
      "task_id": "P1-007",
      "priority": "P1",
      "status": "done",
      "owner_agent": "OpenClaw",
      "title": "建立 service health 失敗限定 Telegram / AwoooP 對應",
      "output": "docs/evaluations/service_health_failure_notification_policy_2026-06-05.json + GET /api/v1/agents/service-health-failure-notification-policy + 前端 redaction 合約 UI",
      "gate_status": "read_only_allowed",
      "next_action": "P2-004 依賴 / 供應鏈漂移監控；P1-007 不批准通知發送或工作視窗內容顯示。",
      "approval_boundary": {
        "mode": "read_only_allowed",
        "display_summary": "只允許整理 failure-only notification policy；不得發送 Telegram / AwoooP、live probe、重啟、改 endpoint 或 runtime execution。",
        "allowed_actions": [
          "讀取 committed snapshot",
          "整理通知合約",
          "顯示治理 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 或 瀏覽器上下文 顯示需求"
        ]
      }
    },
    {
      "task_id": "P1-101",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "把備份 runbook / 腳本轉成機器可讀目標盤點",
      "output": "docs/evaluations/backup_dr_target_inventory_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-102",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "顯示備份新鮮度、完整性、復原演練狀態",
      "output": "docs/evaluations/backup_dr_readiness_matrix_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-103",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "對齊備份通知政策",
      "output": "docs/evaluations/backup_notification_policy_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-104 Backup / DR 證據 UI 已推進。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-104",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "在 AwoooP / governance UI 加備份證據",
      "output": "/zh-TW/governance?tab=automation-inventory",
      "gate_status": "read_only_allowed",
      "next_action": "完成，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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-105",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "定義復原演練批准包",
      "output": "docs/evaluations/backup_restore_drill_approval_package_template_2026-06-05.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-106 顯示異地 / escrow 準備度狀態。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-106",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "顯示異地 / escrow 準備度狀態",
      "output": "docs/evaluations/offsite_escrow_readiness_status_2026-06-05.json + /zh-TW/governance?tab=automation-inventory",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-305 / 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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-201",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "盤點 Python 依賴",
      "output": "docs/evaluations/package_supply_chain_inventory_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-202 JS 套件快照已推進。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-202",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "盤點 pnpm/npm 依賴",
      "output": "docs/evaluations/javascript_package_inventory_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-203 Docker build surface 風險快照已推進。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-203",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "盤點 Docker base image 與建置表面",
      "output": "docs/evaluations/docker_build_surface_inventory_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-204 定義 CVE / license / drift 嚴重度政策。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-204",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "定義 CVE / license / drift 嚴重度政策",
      "output": "docs/evaluations/dependency_risk_policy_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-205",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "hermes",
      "title": "建立定期依賴漂移與外部資料來源檢查設計",
      "output": "docs/evaluations/dependency_drift_check_plan_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，P1-206 產生依賴升級、digest pin、publish boundary 批准包模板。",
      "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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-206",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "產生依賴升級、digest pin、publish boundary 批准包模板",
      "output": "docs/evaluations/dependency_upgrade_approval_package_template_2026-06-04.json",
      "gate_status": "read_only_allowed",
      "next_action": "完成，WS5 套件與供應鏈自動化達 100%；下一步 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": [
          "任何非只讀操作",
          "任何部署、排程、通知或外部呼叫變更"
        ]
      }
    },
    {
      "task_id": "P1-004",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "盤點 AI Router / provider route",
      "output": "docs/evaluations/ai_provider_route_matrix_2026-06-05.json + GET /api/v1/agents/ai-provider-route-matrix",
      "gate_status": "production_change_blocked",
      "next_action": "完成 committed AI provider route matrix；下一步 P1-005 偵測服務健康缺口與過期端點。",
      "approval_boundary": {
        "mode": "production_change_blocked",
        "display_summary": "生產路由或 provider 變更被阻擋；P1-004 只允許只讀盤點、顯示與批准包準備。",
        "allowed_actions": [
          "盤點 provider route",
          "整理 replay 前置證據",
          "準備變更批准包",
          "顯示治理 UI"
        ],
        "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 呼叫"
        ]
      }
    },
    {
      "task_id": "P1-005",
      "priority": "P1",
      "status": "done",
      "completion_percent": 100,
      "owner_agent": "openclaw",
      "title": "偵測服務健康缺口與過期端點",
      "output": "docs/evaluations/service_health_gap_matrix_2026-06-05.json + GET /api/v1/agents/service-health-gap-matrix",
      "gate_status": "read_only_allowed",
      "next_action": "P1-006 在 UI 顯示 service health 證據卡",
      "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"
        ]
      }
    }
  ],
  "evidence": [
    {
      "evidence_id": "worklist_md",
      "kind": "doc",
      "ref": "docs/ai/AI_AGENT_AUTOMATION_WORKLIST_2026-06-04.md",
      "result": "工作清單、分析報告、優先順序、狀態同步協議已建立。"
    },
    {
      "evidence_id": "inventory_schema",
      "kind": "schema",
      "ref": "docs/schemas/ai_agent_automation_inventory_snapshot_v1.schema.json",
      "result": "JSON schema 已建立並通過 json.tool。"
    },
    {
      "evidence_id": "permission_schema",
      "kind": "schema",
      "ref": "docs/schemas/ai_agent_action_permission_matrix_v1.schema.json",
      "result": "操作權限矩陣 schema 已建立並通過 json.tool。"
    },
    {
      "evidence_id": "static_seed",
      "kind": "doc",
      "ref": "docs/evaluations/ai_agent_automation_inventory_snapshot_2026-06-04_static_seed.json",
      "result": "靜態盤點種子已建立，來源限定 repo / runbook / 既有腳本。"
    },
    {
      "evidence_id": "automation_inventory_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/automation-inventory-snapshot",
      "result": "只讀 API 已新增，讀取 committed snapshot，不呼叫外部來源。"
    },
    {
      "evidence_id": "automation_inventory_ui",
      "kind": "browser",
      "ref": "/zh-TW/governance?tab=automation-inventory",
      "result": "桌面與 390px mobile 瀏覽器驗證通過，無橫向溢出。"
    },
    {
      "evidence_id": "automation_inventory_tests",
      "kind": "test",
      "ref": "pytest + tsc + eslint + jsonschema",
      "result": "API tests 5 passed、web typecheck 通過、targeted ESLint 通過、schema 驗證通過。"
    },
    {
      "evidence_id": "automation_backlog_schema",
      "kind": "schema",
      "ref": "docs/schemas/ai_agent_automation_backlog_v1.schema.json",
      "result": "自動化待辦 schema 已建立，後續 P1-302 會依此產生自動化待辦快照。"
    },
    {
      "evidence_id": "automation_backlog_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/ai_agent_automation_backlog_2026-06-04.json",
      "result": "自動化待辦快照已建立，包含 14 個只讀 / gate-bound backlog items。"
    },
    {
      "evidence_id": "automation_backlog_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/automation-backlog-snapshot",
      "result": "自動化待辦只讀 API 已新增，讀取 committed backlog snapshot，不呼叫外部來源。"
    },
    {
      "evidence_id": "automation_backlog_ui",
      "kind": "browser",
      "ref": "/zh-TW/governance?tab=automation-inventory",
      "result": "自動化待辦已接入治理頁，顯示 rollup、P1/P2/P3 分組項目、owner、gate、review 與 acceptance criteria；desktop 與 390px mobile 驗證通過，無橫向溢出。"
    },
    {
      "evidence_id": "backup_dr_target_inventory_schema",
      "kind": "schema",
      "ref": "docs/schemas/backup_dr_target_inventory_v1.schema.json",
      "result": "Backup / DR 目標盤點 schema 已建立，明確禁止 backup execution、restore、offsite sync、credential marker 寫入、排程變更與 destructive prune。"
    },
    {
      "evidence_id": "backup_dr_target_inventory_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/backup_dr_target_inventory_2026-06-04.json",
      "result": "Backup / DR 目標盤點快照已建立，涵蓋 17 個目標；configs_capture 與 credential_escrow_markers 仍為 blocked。"
    },
    {
      "evidence_id": "backup_dr_target_inventory_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/backup-dr-target-inventory",
      "result": "Backup / DR 目標盤點只讀 API 已新增，不呼叫外部來源、不執行備份/restore/offsite sync、不寫 credential marker。"
    },
    {
      "evidence_id": "backup_dr_readiness_matrix_schema",
      "kind": "schema",
      "ref": "docs/schemas/backup_dr_readiness_matrix_v1.schema.json",
      "result": "Backup / DR 準備度矩陣 schema 已建立，區分 ready、action_required、blocked、deferred 與 restore approval gate。"
    },
    {
      "evidence_id": "backup_dr_readiness_matrix_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/backup_dr_readiness_matrix_2026-06-04.json",
      "result": "Backup / DR 準備度矩陣已建立，17 個目標中 12 ready、2 action_required、2 blocked、1 deferred。"
    },
    {
      "evidence_id": "backup_dr_readiness_matrix_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/backup-dr-readiness-matrix",
      "result": "Backup / DR 準備度矩陣只讀 API 已新增，不執行備份/restore/offsite sync、不寫 credential marker。"
    },
    {
      "evidence_id": "backup_notification_policy_schema",
      "kind": "schema",
      "ref": "docs/schemas/backup_notification_policy_v1.schema.json",
      "result": "備份通知政策 schema 已建立，明確保留成功不即時通知、失敗 / action-required 升級、每日 06:05 摘要與 Agent 邊界。"
    },
    {
      "evidence_id": "backup_notification_policy_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/backup_notification_policy_2026-06-04.json",
      "result": "備份通知政策快照已建立，8 條規則中 2 條成功即時抑制、4 條 immediate escalation、2 條 action-required。"
    },
    {
      "evidence_id": "backup_notification_policy_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/backup-notification-policy",
      "result": "備份通知政策只讀 API 已新增，不送通知、不執行備份/restore/offsite sync、不寫 credential marker、不改排程或 workflow。"
    },
    {
      "evidence_id": "backup_dr_evidence_ui",
      "kind": "browser",
      "ref": "/zh-TW/governance?tab=automation-inventory",
      "result": "P1-104 Backup / DR 證據 UI 已接入 automation inventory tab；本地 desktop 與 390px mobile 驗證 Backup / DR 證據、準備度矩陣、通知政策、成功抑制、即時升級、Gitea 與 SignOz disruptive guard 可見，無載入錯誤，horizontalOverflow <= 0。"
    },
    {
      "evidence_id": "backup_restore_drill_approval_package_template_schema",
      "kind": "schema",
      "ref": "docs/schemas/backup_restore_drill_approval_package_template_v1.schema.json",
      "result": "Backup / DR 復原演練批准包 schema 已建立，明確禁止 backup execution、restore execution、offsite sync、credential marker 寫入、workflow 寫入、Telegram 測試通知、secret 明文與生產路由變更。"
    },
    {
      "evidence_id": "backup_restore_drill_approval_package_template_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/backup_restore_drill_approval_package_template_2026-06-05.json",
      "result": "復原演練批准包模板快照已建立，涵蓋 database restore、configuration restore、credential escrow、K8s resource restore、observability restore 與 public route reconstruction 6 類模板；全部要求 OpenClaw 仲裁與 HITL。"
    },
    {
      "evidence_id": "backup_restore_drill_approval_package_template_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/backup-restore-drill-approval-package-template",
      "result": "復原演練批准包模板只讀 API 已新增，只回傳 committed template，不執行 backup、restore、offsite sync、不寫 credential marker、不送 Telegram 測試通知、不改生產路由。"
    },
    {
      "evidence_id": "offsite_escrow_readiness_status_schema",
      "kind": "schema",
      "ref": "docs/schemas/offsite_escrow_readiness_status_v1.schema.json",
      "result": "異地 / Escrow 準備度狀態 schema 已建立，明確禁止 offsite sync、credential marker 寫入、credential read、secret 明文、restore、workflow 寫入與 Telegram 測試通知。"
    },
    {
      "evidence_id": "offsite_escrow_readiness_status_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/offsite_escrow_readiness_status_2026-06-05.json",
      "result": "異地 / Escrow 準備度快照已建立；offsite_rclone_full_sync verified、credential_escrow_markers blocked、velero_k8s_resources action_required，全部執行型操作仍 blocked。"
    },
    {
      "evidence_id": "offsite_escrow_readiness_status_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/offsite-escrow-readiness-status",
      "result": "異地 / Escrow 準備度只讀 API 已新增，只回傳 committed status，不執行 backup、restore、offsite sync、不寫 credential marker、不讀 credential、不輸出 secret 明文。"
    },
    {
      "evidence_id": "package_supply_chain_inventory_schema",
      "kind": "schema",
      "ref": "docs/schemas/package_supply_chain_inventory_v1.schema.json",
      "result": "套件 / 供應鏈盤點 schema 已建立，明確禁止依賴安裝、套件升級、lockfile 寫入、外部 CVE 查詢、image rebuild 與生產路由變更。"
    },
    {
      "evidence_id": "package_supply_chain_inventory_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/package_supply_chain_inventory_2026-06-04.json",
      "result": "套件 / 供應鏈盤點快照已建立，涵蓋 Python、JS、Docker 共 10 個表面；P1-201 完成 Python 基線，JS 與 Docker 保持 planned_next。"
    },
    {
      "evidence_id": "package_supply_chain_inventory_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/package-supply-chain-inventory",
      "result": "套件 / 供應鏈只讀 API 已新增，不呼叫外部來源、不安裝依賴、不升級套件、不寫 lockfile、不查外部 CVE、不重建 image、不改生產路由。"
    },
    {
      "evidence_id": "javascript_package_inventory_schema",
      "kind": "schema",
      "ref": "docs/schemas/javascript_package_inventory_v1.schema.json",
      "result": "JavaScript 套件盤點 schema 已建立，明確禁止安裝套件、升級套件、lockfile 寫入、外部 CVE 查詢、npm audit、pnpm install 與生產路由變更。"
    },
    {
      "evidence_id": "javascript_package_inventory_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/javascript_package_inventory_2026-06-04.json",
      "result": "JavaScript 套件盤點快照已建立，涵蓋 6 個 workspace、51 條 direct dependencies、pnpm-lock.yaml 986 個 package / snapshot entries；manifest 與 lockfile importer specifier 同步。"
    },
    {
      "evidence_id": "javascript_package_inventory_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/javascript-package-inventory",
      "result": "JavaScript 套件只讀 API 已新增，不呼叫外部來源、不安裝套件、不升級套件、不寫 lockfile、不執行 npm audit、不改生產路由。"
    },
    {
      "evidence_id": "docker_build_surface_inventory_schema",
      "kind": "schema",
      "ref": "docs/schemas/docker_build_surface_inventory_v1.schema.json",
      "result": "Docker build surface 盤點 schema 已建立，明確禁止 docker build、image pull、image rebuild、registry push、外部 CVE 查詢、套件安裝與生產路由變更。"
    },
    {
      "evidence_id": "docker_build_surface_inventory_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/docker_build_surface_inventory_2026-06-04.json",
      "result": "Docker build surface 快照已建立，涵蓋 API/Web 2 個 Dockerfile、3 個 external image refs、4 個 build-time network fetches；base images 未 digest-pinned。"
    },
    {
      "evidence_id": "docker_build_surface_inventory_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/docker-build-surface-inventory",
      "result": "Docker build surface 只讀 API 已新增，不執行 docker build、不 pull image、不推 registry、不查外部 CVE、不安裝套件、不改生產路由。"
    },
    {
      "evidence_id": "dependency_risk_policy_schema",
      "kind": "schema",
      "ref": "docs/schemas/dependency_risk_policy_v1.schema.json",
      "result": "依賴風險政策 schema 已建立，定義 CVE / license / drift 嚴重度、狀態、角色分工與禁止操作邊界。"
    },
    {
      "evidence_id": "dependency_risk_policy_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/dependency_risk_policy_2026-06-04.json",
      "result": "依賴風險政策快照已建立，12 條規則中 8 action_required、3 planned_next、1 accepted；未查外部 CVE / license。"
    },
    {
      "evidence_id": "dependency_risk_policy_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/dependency-risk-policy",
      "result": "依賴風險政策只讀 API 已新增，不呼叫外部 CVE 或 license 來源、不安裝/升級套件、不寫 lockfile、不 build/pull/push image、不呼叫付費 API、不改生產路由。"
    },
    {
      "evidence_id": "dependency_drift_check_plan_schema",
      "kind": "schema",
      "ref": "docs/schemas/dependency_drift_check_plan_v1.schema.json",
      "result": "定期依賴漂移與外部資料來源檢查設計 schema 已建立，明確禁止排程啟用、workflow 寫入、外部查詢、SDK 安裝、付費 API、套件升級與 image 動作。"
    },
    {
      "evidence_id": "dependency_drift_check_plan_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/dependency_drift_check_plan_2026-06-04.json",
      "result": "定期檢查設計快照已建立，涵蓋 5 個 cadence items、5 個 repo-only local checks、10 個外部來源候選；外部來源均需批准。"
    },
    {
      "evidence_id": "dependency_drift_check_plan_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/dependency-drift-check-plan",
      "result": "定期依賴漂移檢查設計只讀 API 已新增，只回傳 committed plan，不啟用排程、不寫 workflow、不呼叫外部資料來源、不安裝或升級套件、不改生產路由。"
    },
    {
      "evidence_id": "dependency_upgrade_approval_package_template_schema",
      "kind": "schema",
      "ref": "docs/schemas/dependency_upgrade_approval_package_template_v1.schema.json",
      "result": "依賴升級批准包模板 schema 已建立，明確禁止套件升級、lockfile 寫入、Dockerfile 修改、image 動作、package publish、SDK、付費 API、shadow/canary 與生產路由。"
    },
    {
      "evidence_id": "dependency_upgrade_approval_package_template_snapshot",
      "kind": "doc",
      "ref": "docs/evaluations/dependency_upgrade_approval_package_template_2026-06-04.json",
      "result": "依賴升級批准包模板快照已建立，涵蓋 8 類模板，全部需要 HITL。"
    },
    {
      "evidence_id": "dependency_upgrade_approval_package_template_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/dependency-upgrade-approval-package-template",
      "result": "依賴升級批准包模板只讀 API 已新增，只回傳 committed template，不執行任何升級、寫檔、build、publish、SDK、付費 API 或生產路由變更。"
    },
    {
      "evidence_id": "task_approval_boundary_ui",
      "kind": "api",
      "ref": "GET /api/v1/agents/automation-inventory-snapshot + /zh-TW/governance?tab=automation-inventory",
      "result": "P1-305 每個 task 皆含 approval_boundary；UI 顯示允許、禁止與需人工批准摘要。"
    },
    {
      "evidence_id": "backlog_progress_summary_ui",
      "kind": "api",
      "ref": "GET /api/v1/agents/automation-backlog-snapshot + /zh-TW/governance?tab=automation-inventory",
      "result": "P1-306 backlog progress_summary 使用 done / total 確定性公式，UI 顯示整體、priority 與 workstream 彙總。"
    },
    {
      "evidence_id": "automation_task_approval_boundaries",
      "kind": "schema",
      "ref": "docs/schemas/ai_agent_automation_inventory_snapshot_v1.schema.json",
      "result": "inventory tasks 已要求 approval_boundary 與 task_approval_boundary_rollup；service loader 會檢查 mode、blocked_actions 與 rollup 一致。"
    },
    {
      "evidence_id": "automation_backlog_progress_summary",
      "kind": "doc",
      "ref": "docs/evaluations/ai_agent_automation_backlog_2026-06-04.json",
      "result": "backlog snapshot 已補 progress_summary 與 item_approval_boundary_rollup；百分比由 status=done / total_items 重算，不代表 runtime gate 提升。"
    },
    {
      "evidence_id": "runtime_surface_inventory_snapshot",
      "kind": "runtime",
      "ref": "docs/evaluations/runtime_surface_inventory_2026-06-05.json",
      "result": "P1-001 D0 committed manifest / source runtime surface matrix 已建立，涵蓋 22 個 runtime surfaces 與 9 個 source components。"
    },
    {
      "evidence_id": "runtime_surface_inventory_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/runtime-surface-inventory",
      "result": "只讀 API 回傳 runtime_surface_inventory_v1；不查 live K8s、不讀 Secret payload、不提供執行按鈕。"
    },
    {
      "evidence_id": "gitea_workflow_runner_health_snapshot",
      "kind": "runtime",
      "ref": "docs/evaluations/gitea_workflow_runner_health_2026-06-05.json",
      "result": "P1-002 committed Gitea workflow / runner health contract 已建立，涵蓋 9 個 workflow、4 個 runner contract、6 個 notification contract。"
    },
    {
      "evidence_id": "gitea_workflow_runner_health_api",
      "kind": "api",
      "ref": "GET /api/v1/agents/gitea-workflow-runner-health",
      "result": "只讀 API 回傳 gitea_workflow_runner_health_v1；不修改 workflow、不重啟 runner、不停止 container、不讀 Secret、不送通知。"
    },
    {
      "evidence_id": "observability_contract_matrix_api",
      "title": "監控合約與降噪機會只讀 API",
      "source_ref": "GET /api/v1/agents/observability-contract-matrix",
      "status": "done",
      "summary": "只讀呈現 Prometheus / Alertmanager / Grafana / SigNoz / ClickHouse / Sentry 合約、降噪 proposal 與分類缺口；不修改 alert rules、不送通知、不讀 Secret。"
    },
    {
      "evidence_id": "ai_provider_route_matrix_api",
      "title": "AI Provider 路由只讀 API",
      "source_ref": "GET /api/v1/agents/ai-provider-route-matrix",
      "status": "done",
      "summary": "只讀呈現 AI Router / Ollama / OpenClaw / Nemotron / Gemini provider route、候選 Gate、來源缺口與不可誤讀合約；不切 provider、不呼叫付費 API、不讀 Secret。"
    },
    {
      "evidence_id": "service_health_gap_matrix_snapshot",
      "kind": "committed_snapshot",
      "ref": "docs/evaluations/service_health_gap_matrix_2026-06-05.json",
      "result": "P1-005 committed service health gap matrix 已建立，涵蓋 10 個 service health target、3 個 stale endpoint、5 個 health gap；重啟、endpoint 修改、active probe、通知與 runtime execution 入口皆為 0。"
    },
    {
      "evidence_id": "service_health_gap_matrix_api",
      "kind": "read_only_api",
      "ref": "GET /api/v1/agents/service-health-gap-matrix",
      "result": "只讀 API 回傳 service_health_gap_matrix_v1；不做 live probe、不重啟服務、不改 endpoint、不讀 Secret/Redis/DB payload、不發通知。"
    },
    {
      "evidence_id": "service_health_evidence_cards_ui",
      "kind": "ui_surface",
      "source": "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx",
      "status": "committed",
      "summary": "治理頁顯示 service health evidence cards；只讀 committed evidence refs，不提供執行入口。"
    },
    {
      "evidence_id": "service_health_failure_notification_policy_schema",
      "kind": "schema",
      "ref": "docs/schemas/service_health_failure_notification_policy_v1.schema.json",
      "result": "Service health failure-only notification policy schema 已建立，明確禁止通知發送、live probe、重啟、endpoint 修改、workflow / runtime execution 與 secret 明文。"
    },
    {
      "evidence_id": "service_health_failure_notification_policy_snapshot",
      "kind": "snapshot",
      "ref": "docs/evaluations/service_health_failure_notification_policy_2026-06-05.json",
      "result": "P1-007 committed failure-only 通知合約已建立；成功不即時通知，failed / blocked / high action-required 才升級；redaction contract 禁止前端顯示工作視窗對話內容。"
    },
    {
      "evidence_id": "service_health_failure_notification_policy_api",
      "kind": "read_only_api",
      "ref": "GET /api/v1/agents/service-health-failure-notification-policy",
      "result": "只讀 API 回傳 service_health_failure_notification_policy_v1；不送 Telegram / AwoooP、不做 live probe、不重啟、不改 endpoint、不回傳工作視窗對話內容或提示詞。"
    },
    {
      "evidence_id": "service_health_failure_notification_policy_tests",
      "kind": "test",
      "ref": "python3 -m pytest apps/api/tests/test_service_health_failure_notification_policy.py apps/api/tests/test_service_health_failure_notification_policy_api.py",
      "result": "P1-007 目標測試 10 passed；涵蓋 read-only boundaries、failure-only escalation、notification_send_allowed_count=0、redaction contract 與 transcript marker 阻擋。"
    }
  ],
  "approval_boundaries": {
    "sdk_installation_allowed": false,
    "paid_api_call_allowed": false,
    "shadow_or_canary_allowed": false,
    "production_routing_allowed": false,
    "destructive_operation_allowed": false
  },
  "task_approval_boundary_rollup": {
    "total_tasks": 33,
    "by_mode": {
      "ready_for_operator_review": 1,
      "read_only_allowed": 30,
      "approval_required": 1,
      "production_change_blocked": 1
    },
    "tasks_requiring_explicit_approval": [
      "P0-001",
      "P0-004",
      "P1-004"
    ],
    "tasks_with_blocked_operations": [
      "P0-001",
      "P0-002",
      "P0-003",
      "P0-004",
      "P0-005",
      "P0-006",
      "P0-007",
      "P0-008",
      "P1-001",
      "P1-002",
      "P1-003",
      "P1-004",
      "P1-005",
      "P1-006",
      "P1-007",
      "P1-101",
      "P1-102",
      "P1-103",
      "P1-104",
      "P1-105",
      "P1-106",
      "P1-201",
      "P1-202",
      "P1-203",
      "P1-204",
      "P1-205",
      "P1-206",
      "P1-301",
      "P1-302",
      "P1-303",
      "P1-304",
      "P1-305",
      "P1-306"
    ],
    "read_only_task_ids": [
      "P0-002",
      "P0-003",
      "P0-005",
      "P0-006",
      "P0-007",
      "P0-008",
      "P1-001",
      "P1-002",
      "P1-003",
      "P1-301",
      "P1-302",
      "P1-303",
      "P1-304",
      "P1-305",
      "P1-306",
      "P1-006",
      "P1-007",
      "P1-101",
      "P1-102",
      "P1-103",
      "P1-104",
      "P1-105",
      "P1-106",
      "P1-201",
      "P1-202",
      "P1-203",
      "P1-204",
      "P1-205",
      "P1-206",
      "P1-005"
    ]
  }
}
