{ "schema_version": "ai_agent_action_audit_ledger_v1", "generated_at": "2026-06-19T04:10:00+08:00", "program_status": { "overall_completion_percent": 100, "current_priority": "P0", "current_task_id": "P2-410", "next_task_id": "P2-411", "read_only_mode": true, "runtime_authority": "agent_action_audit_ledger_no_live_write_committed_snapshot", "status_note": "P2-410 把 P2-408 中低風險候選、P2-409 高風險 Owner Review Queue、P2-110C-E 報表資料源缺口、Telegram egress no-new-bypass guard 與既有 P2-103 task result audit trail 收斂成 AI 行動審計帳本;只建立 immutable event template、verifier receipt gate 與 無寫入 readback,不寫任何 runtime target。" }, "source_refs": [ "docs/evaluations/ai_agent_low_medium_risk_whitelist_2026-06-18.json", "docs/evaluations/ai_agent_high_risk_owner_review_queue_2026-06-19.json", "docs/evaluations/ai_agent_task_result_audit_trail_2026-06-13.json", "apps/api/src/services/ai_agent_report_source_health.py", "apps/api/src/services/report_generation_service.py", "docs/security/telegram-notification-egress-no-new-bypass-guard.snapshot.json", "docs/workplans/2026-06-04-iwooos-security-governance-p0.md" ], "source_readbacks": [ { "readback_id": "p2_408_low_medium_whitelist", "source_schema_version": "ai_agent_low_medium_risk_whitelist_v1", "source_ref": "docs/evaluations/ai_agent_low_medium_risk_whitelist_2026-06-18.json", "endpoint": "GET /api/v1/agents/agent-low-medium-risk-whitelist", "owner_agent": "openclaw", "status": "loaded", "key_readback": "中低風險候選 6、dry-run verifier 5、rollback proof 5、blocked runtime action 27;auto worker 仍為 0。", "next_action": "每個候選進 dry-run worker 前都必須有 immutable audit event template 與 verifier receipt gate。" }, { "readback_id": "p2_409_high_risk_queue", "source_schema_version": "ai_agent_high_risk_owner_review_queue_v1", "source_ref": "docs/evaluations/ai_agent_high_risk_owner_review_queue_2026-06-19.json", "endpoint": "GET /api/v1/agents/agent-high-risk-owner-review-queue", "owner_agent": "openclaw", "status": "loaded", "key_readback": "高風險 queue item 7、critical 2、high 5、approval packet 7、blocked runtime action 42;負責人已接受 0。", "next_action": "每個高風險 pause / reject /補件結果必須先形成審計事件模板,不得口頭跳過。" }, { "readback_id": "p2_103_task_result_audit_trail", "source_schema_version": "ai_agent_task_result_audit_trail_v1", "source_ref": "docs/evaluations/ai_agent_task_result_audit_trail_2026-06-13.json", "endpoint": "GET /api/v1/agents/agent-task-result-audit-trail", "owner_agent": "hermes", "status": "loaded", "key_readback": "結果路由 8、寫回契約 6、稽核點 7;KM / LOGBOOK / audit DB / timeline / Gateway / Telegram writes 全部為 0。", "next_action": "P2-410 將 P2-103 的結果路由升級為跨候選行動帳本,而不是單一結果分類。" }, { "readback_id": "p2_110c_sre_digest_no_send", "source_schema_version": "awoooi_sre_digest_no_send_preview_v1", "source_ref": "apps/api/src/services/report_generation_service.py", "endpoint": "GET /api/v1/stats/sre-digest/preview", "owner_agent": "hermes", "status": "loaded", "key_readback": "SRE digest 無發送 preview 已回讀 source 2/5、confidence 40、source gaps 3、live Telegram send 0、runtime gate 0。", "next_action": "preview hash、source gap ids 與 無發送 邊界必須進審計事件模板,才能進 receipt gate。" }, { "readback_id": "p2_110e_work_items_owner_review", "source_schema_version": "awoooi_work_items_report_source_gap_owner_review_v1", "source_ref": "docs/workplans/2026-06-04-iwooos-security-governance-p0.md", "endpoint": "GET /zh-TW/awooop/work-items?project_id=awoooi", "owner_agent": "hermes", "status": "loaded", "key_readback": "Work Items 已顯示 report-source-gap owner review、PlayBook 必填欄位、Verifier 檢查、live Telegram send=0、runtime gate=0。", "next_action": "Work Item DB write、KM write、PlayBook trust write、verifier receipt write 必須先有 P2-410 audit event 與 P2-411 owner acceptance。" }, { "readback_id": "telegram_egress_no_new_bypass", "source_schema_version": "telegram_notification_egress_no_new_bypass_guard_v1", "source_ref": "docs/security/telegram-notification-egress-no-new-bypass-guard.snapshot.json", "endpoint": "repo-only guard", "owner_agent": "sre", "status": "loaded", "key_readback": "direct Bot API baseline 18、current 18、new bypass 0、runtime gate 0;既有 direct send 仍未收斂。", "next_action": "新增 Telegram route / send / receipt candidate 時必須附 no-new-bypass audit event 與 redaction evidence ref。" }, { "readback_id": "p2_410_governance_frontend_boundary", "source_schema_version": "governance_automation_inventory_readback_v1", "source_ref": "apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx", "endpoint": "GET /zh-TW/governance?tab=automation-inventory", "owner_agent": "security", "status": "pending_frontend_projection", "key_readback": "本 snapshot 可供治理頁顯示 immutable event、verifier receipt gate、blocked write 與 正式動作總數 0;不可顯示 raw payload、secret、內部協作逐字內容。", "next_action": "P2-410 production projection 後需 desktop / mobile smoke;目前先固定 API 與 committed snapshot。" } ], "audit_truth": { "p2_408_whitelist_loaded": true, "p2_409_owner_queue_loaded": true, "p2_103_result_audit_loaded": true, "p2_110c_sre_digest_loaded": true, "p2_110e_work_items_loaded": true, "telegram_no_new_bypass_loaded": true, "audit_event_templates_ready": true, "verifier_receipt_gates_ready": true, "immutable_event_required": true, "redacted_evidence_refs_required": true, "read_only_mode": true, "audit_db_write_enabled": false, "timeline_write_enabled": false, "km_write_enabled": false, "playbook_trust_write_enabled": false, "gateway_queue_write_enabled": false, "telegram_send_enabled": false, "bot_api_call_enabled": false, "receipt_production_write_enabled": false, "production_write_enabled": false, "secret_read_enabled": false, "paid_api_call_enabled": false, "host_write_enabled": false, "kubectl_action_enabled": false, "destructive_operation_enabled": false, "audit_db_write_count_24h": 0, "timeline_write_count_24h": 0, "km_write_count_24h": 0, "playbook_trust_write_count_24h": 0, "gateway_queue_write_count_24h": 0, "telegram_send_count_24h": 0, "bot_api_call_count_24h": 0, "receipt_production_write_count_24h": 0, "production_write_count_24h": 0, "secret_read_count_24h": 0, "paid_api_call_count_24h": 0, "host_write_count_24h": 0, "kubectl_action_count_24h": 0, "destructive_operation_count_24h": 0, "truth_note": "P2-410 只把候選判斷、暫停、無發送 preview、Work Items owner review 與 Telegram bypass guard 轉成 committed audit event template;目前沒有任何 runtime writer、receipt writer、KM writer 或 Telegram sender 被授權。" }, "audit_event_templates": [ { "audit_event_id": "audit_low_risk_candidate_classified", "display_name": "中低風險候選分類審計事件", "owner_agent": "openclaw", "event_stage": "candidate_classification", "risk_tier": "low", "source_readback_ids": ["p2_408_low_medium_whitelist"], "required_audit_fields": ["candidate_id", "risk_tier", "reason", "dry_run_verifier_id", "rollback_proof_id", "source_snapshot_ref"], "required_evidence_refs": ["ai_agent_low_medium_risk_whitelist_2026-06-18.json", "dry_run_verifier_ref"], "blocked_writes": ["auto_worker_run", "production_write", "Gateway queue write", "Telegram send"], "immutable_event_required": true, "audit_db_write_allowed": false, "timeline_write_allowed": false, "km_write_allowed": false, "playbook_trust_write_allowed": false, "gateway_queue_write_allowed": false, "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, "next_gate": "P2-411 owner response acceptance readback" }, { "audit_event_id": "audit_medium_risk_dry_run_hold", "display_name": "中風險 dry-run hold 審計事件", "owner_agent": "nemotron", "event_stage": "dry_run_hold", "risk_tier": "medium", "source_readback_ids": ["p2_408_low_medium_whitelist"], "required_audit_fields": ["candidate_id", "dry_run_scope", "rollback_owner", "postcheck_plan", "blocked_runtime_actions", "operator_reason"], "required_evidence_refs": ["dry_run_verifier_ref", "rollback_proof_ref", "audit_reason_ref"], "blocked_writes": ["auto_worker_run", "Gateway queue write", "receipt production write", "KM write"], "immutable_event_required": true, "audit_db_write_allowed": false, "timeline_write_allowed": false, "km_write_allowed": false, "playbook_trust_write_allowed": false, "gateway_queue_write_allowed": false, "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, "next_gate": "P2-411 owner response acceptance readback" }, { "audit_event_id": "audit_high_risk_owner_queue_pause", "display_name": "高風險 Owner Queue 暫停審計事件", "owner_agent": "openclaw", "event_stage": "owner_queue_pause", "risk_tier": "high", "source_readback_ids": ["p2_409_high_risk_queue"], "required_audit_fields": ["queue_item_id", "approval_packet_id", "rejection_guard_ids", "reviewer_checklist_ids", "owner_response_state", "blocked_runtime_actions"], "required_evidence_refs": ["ai_agent_high_risk_owner_review_queue_2026-06-19.json", "approval_packet_ref"], "blocked_writes": ["live execution", "production write", "Gateway queue write", "Telegram send", "host write"], "immutable_event_required": true, "audit_db_write_allowed": false, "timeline_write_allowed": false, "km_write_allowed": false, "playbook_trust_write_allowed": false, "gateway_queue_write_allowed": false, "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, "next_gate": "P2-411 owner response acceptance readback" }, { "audit_event_id": "audit_critical_runtime_action_rejected", "display_name": "Critical runtime action 拒收審計事件", "owner_agent": "security", "event_stage": "runtime_action_rejection", "risk_tier": "critical", "source_readback_ids": ["p2_409_high_risk_queue", "telegram_egress_no_new_bypass"], "required_audit_fields": ["queue_item_id", "rejection_guard_id", "blocked_action", "redaction_state", "owner_response_state", "operator_next_step"], "required_evidence_refs": ["rejection_guard_ref", "no_new_bypass_guard_ref"], "blocked_writes": ["kubectl action", "host write", "secret read", "Bot API call", "destructive operation"], "immutable_event_required": true, "audit_db_write_allowed": false, "timeline_write_allowed": false, "km_write_allowed": false, "playbook_trust_write_allowed": false, "gateway_queue_write_allowed": false, "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, "next_gate": "P2-411 owner response acceptance readback" }, { "audit_event_id": "audit_report_source_gap_work_item_reviewed", "display_name": "報表資料源缺口 Work Item 審計事件", "owner_agent": "hermes", "event_stage": "work_item_owner_review", "risk_tier": "high", "source_readback_ids": ["p2_110e_work_items_owner_review"], "required_audit_fields": ["work_item_id", "source_gap_id", "playbook_draft_id", "verifier_plan_id", "script_state", "schedule_state", "owner_review_state"], "required_evidence_refs": ["agent-report-source-health", "awooop-work-items-readback"], "blocked_writes": ["Work Items DB write", "KM write", "PlayBook trust write", "verifier receipt write", "schedule change"], "immutable_event_required": true, "audit_db_write_allowed": false, "timeline_write_allowed": false, "km_write_allowed": false, "playbook_trust_write_allowed": false, "gateway_queue_write_allowed": false, "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, "next_gate": "P2-411 owner response acceptance readback" }, { "audit_event_id": "audit_sre_digest_no_send_preview", "display_name": "SRE digest 無發送 preview 審計事件", "owner_agent": "hermes", "event_stage": "no_send_preview", "risk_tier": "medium", "source_readback_ids": ["p2_110c_sre_digest_no_send"], "required_audit_fields": ["preview_hash", "dedup_key", "source_gap_ids", "no_send_boundary", "gateway_write_count", "telegram_send_count"], "required_evidence_refs": ["GET /api/v1/stats/sre-digest/preview", "formatted_preview_hash"], "blocked_writes": ["Gateway queue write", "Telegram send", "Bot API call", "receipt production write"], "immutable_event_required": true, "audit_db_write_allowed": false, "timeline_write_allowed": false, "km_write_allowed": false, "playbook_trust_write_allowed": false, "gateway_queue_write_allowed": false, "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, "next_gate": "P2-411 owner response acceptance readback" }, { "audit_event_id": "audit_telegram_no_new_bypass_guard", "display_name": "Telegram no-new-bypass guard 審計事件", "owner_agent": "sre", "event_stage": "notification_egress_guard", "risk_tier": "high", "source_readback_ids": ["telegram_egress_no_new_bypass"], "required_audit_fields": ["baseline_signature_count", "current_direct_call_count", "new_bypass_count", "guarded_method_count", "runtime_gate_count"], "required_evidence_refs": ["telegram-notification-egress-no-new-bypass-guard.snapshot.json", "guard_command_output"], "blocked_writes": ["workflow modification", "direct Bot API migration", "Telegram send", "repository secret change"], "immutable_event_required": true, "audit_db_write_allowed": false, "timeline_write_allowed": false, "km_write_allowed": false, "playbook_trust_write_allowed": false, "gateway_queue_write_allowed": false, "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, "next_gate": "P2-411 owner response acceptance readback" }, { "audit_event_id": "audit_result_route_writeback_blocked", "display_name": "結果路由寫回阻擋審計事件", "owner_agent": "nemotron", "event_stage": "writeback_blocked", "risk_tier": "medium", "source_readback_ids": ["p2_103_task_result_audit_trail"], "required_audit_fields": ["result_route_id", "target_system", "allowed_mode", "write_enabled", "runtime_writer_enabled", "blocker_summary"], "required_evidence_refs": ["ai_agent_task_result_audit_trail_2026-06-13.json", "writeback_contract_ref"], "blocked_writes": ["audit DB write", "timeline write", "KM write", "LOGBOOK runtime append", "PlayBook trust write"], "immutable_event_required": true, "audit_db_write_allowed": false, "timeline_write_allowed": false, "km_write_allowed": false, "playbook_trust_write_allowed": false, "gateway_queue_write_allowed": false, "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, "next_gate": "P2-411 owner response acceptance readback" } ], "verifier_receipt_gates": [ { "gate_id": "gate_event_source_ref_complete", "display_name": "事件 source ref 完整性", "owner_agent": "hermes", "required_checks": ["source_readback_id exists", "source_ref exists", "endpoint exists", "snapshot or route readback exists"], "failure_if_missing": "沒有 source ref 的 AI action 不能進 dry-run worker 或 owner acceptance。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_redacted_evidence_ref_only", "display_name": "只接受脫敏 evidence ref", "owner_agent": "security", "required_checks": ["no secret value", "no raw payload", "no private reasoning", "no work window transcript"], "failure_if_missing": "疑似敏感 payload 必須隔離,不能寫 audit / timeline / KM。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_no_send_no_queue_boundary", "display_name": "無發送 / no-queue 邊界", "owner_agent": "sre", "required_checks": ["gateway_queue_write_count=0", "telegram_send_count=0", "bot_api_call_count=0", "receipt_write_count=0"], "failure_if_missing": "任何 send / queue / receipt write 非 0 都不得宣稱 無發送 audit ledger。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_owner_acceptance_missing_hold", "display_name": "負責人驗收 缺口 hold", "owner_agent": "openclaw", "required_checks": ["owner_response_received_count=0", "owner_response_accepted_count=0", "next_gate listed", "rollback owner required if write-capable"], "failure_if_missing": "沒有合格 owner acceptance 前,只能停在 committed snapshot 和 reviewer queue。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_postcheck_plan_required", "display_name": "Post-check / rollback 計畫", "owner_agent": "nemotron", "required_checks": ["postcheck_plan present", "rollback owner present", "blocked runtime actions listed", "verifier receipt target defined"], "failure_if_missing": "缺 post-check / rollback 的候選不能進 P2-411,更不能進 dry-run worker。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false } ], "activation_boundaries": { "committed_snapshot_read_allowed": true, "audit_event_template_preview_allowed": true, "verifier_receipt_gate_preview_allowed": true, "governance_ui_projection_allowed": true, "audit_db_write_enabled": false, "timeline_write_enabled": false, "km_write_enabled": false, "playbook_trust_write_enabled": false, "gateway_queue_write_enabled": false, "telegram_send_enabled": false, "bot_api_call_enabled": false, "receipt_production_write_enabled": false, "production_write_enabled": false, "secret_read_enabled": false, "paid_api_call_enabled": false, "host_write_enabled": false, "kubectl_action_enabled": false, "destructive_operation_enabled": false }, "display_redaction_contract": { "redaction_required": true, "unsafe_payload_display_allowed": false, "private_reasoning_display_allowed": false, "secret_value_display_allowed": false, "raw_prompt_display_allowed": false, "work_window_transcript_display_allowed": false, "allowed_display_fields": ["audit_event_id", "display_name", "owner_agent", "event_stage", "risk_tier", "required_audit_fields", "blocked_writes", "next_gate"], "blocked_display_fields": ["secret value", "authorization header", "unredacted Telegram payload", "private reasoning", "unredacted prompt", "internal collaboration content"] }, "rollups": { "source_readback_count": 7, "audit_event_template_count": 8, "low_medium_event_count": 4, "high_risk_event_count": 3, "critical_event_count": 1, "report_gap_event_count": 2, "telegram_event_count": 2, "verifier_receipt_gate_count": 5, "required_audit_field_count": 48, "blocked_runtime_action_count": 23, "audit_db_write_count": 0, "timeline_write_count": 0, "km_write_count": 0, "playbook_trust_write_count": 0, "gateway_queue_write_count": 0, "telegram_send_count": 0, "bot_api_call_count": 0, "receipt_production_write_count": 0, "production_write_count": 0, "secret_read_count": 0, "paid_api_call_count": 0, "host_write_count": 0, "kubectl_action_count": 0, "destructive_operation_count": 0, "owner_response_received_count": 0, "owner_response_accepted_count": 0 }, "next_actions": [ { "task_id": "P2-411", "priority": "P0", "summary": "建立 Agent action audit ledger owner response acceptance readback,只有合格 owner envelope 才能把某一類 event 往 dry-run worker 推。", "gate": "owner_response_received=0 / accepted=0 until real redacted owner response exists" }, { "task_id": "P2-412", "priority": "P0", "summary": "把 P2-410 的 audit event template 投影到治理頁、Runs、Work Items 與 SRE digest preview,不新增執行按鈕。", "gate": "frontend projection only; no Gateway queue write or Telegram send" }, { "task_id": "P2-413", "priority": "P0", "summary": "在 P2-411 owner acceptance 之後建立 fixture-only dry-run worker receipt rehearsal。", "gate": "fixture-only; no live verifier, no production write" } ] }