Files
awoooi/docs/evaluations/ai_agent_action_audit_ledger_2026-06-19.json
Your Name f2b7e8d66e
Some checks failed
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / tests (push) Successful in 1m39s
Ansible / Reboot Recovery Contract / validate (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
fix(web): 收斂治理頁繁中文案
2026-06-19 02:59:46 +08:00

437 lines
22 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"schema_version": "ai_agent_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 27auto 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、稽核點 7KM / 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"
}
]
}