feat(governance): 新增 owner release approval gate
Some checks failed
Code Review / ai-code-review (push) Successful in 14s
CD Pipeline / tests (push) Successful in 1m29s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-14 04:48:55 +08:00
parent 5cd2d23aef
commit 04c473bee5
13 changed files with 1695 additions and 6 deletions

View File

@@ -0,0 +1,461 @@
{
"schema_version": "ai_agent_result_capture_owner_release_approval_gate_v1",
"generated_at": "2026-06-14T07:08:00+08:00",
"program_status": {
"overall_completion_percent": 100,
"current_priority": "P2",
"current_task_id": "P2-131",
"next_task_id": "P2-132",
"read_only_mode": true,
"runtime_authority": "result_capture_owner_release_approval_gate_only_no_live_write",
"status_note": "P2-131 只把 P2-130 owner-approved release readiness readback 轉成 owner release approval gate不得視為 owner release approved不得批准 maintenance window不得釋放 live apply、套用 writer、寫 receipt、寫 result capture、寫 learning、寫 queue、送 Telegram 或寫入 production。"
},
"source_refs": [
"docs/evaluations/ai_agent_result_capture_owner_approved_release_readiness_readback_2026-06-14.json",
"docs/evaluations/ai_agent_result_capture_owner_approved_preflight_release_package_2026-06-14.json",
"docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md#51-建立-owner-approved-release-readiness-readback"
],
"prior_owner_approved_release_readiness_readback": {
"schema_version": "ai_agent_result_capture_owner_approved_release_readiness_readback_v1",
"release_readiness_readback_count": 5,
"owner_release_readiness_check_count": 5,
"live_apply_readiness_gate_count": 5,
"rollback_readiness_check_count": 5,
"blocked_readiness_transition_count": 6,
"operator_action_count": 5,
"approval_required_total": 8,
"blocked_total": 9,
"owner_release_approved_count": 0,
"maintenance_window_approved_count": 0,
"rollback_owner_confirmed_count": 0,
"post_release_verifier_ready_count": 0,
"release_readiness_pass_count": 0,
"live_apply_release_pass_count": 0,
"writer_apply_count": 0,
"execution_apply_count": 0,
"receipt_write_count": 0,
"result_capture_write_count": 0,
"learning_write_count": 0,
"playbook_trust_write_count": 0,
"reviewer_queue_write_count": 0,
"gateway_queue_write_count": 0,
"telegram_send_count": 0,
"bot_api_call_count": 0,
"report_receipt_write_count": 0,
"readiness_note": "P2-130 已把 release readiness readback、owner release readiness check、live-apply readiness gate、rollback readiness check 與 blocked readiness transition 固定為只讀 readinessP2-131 只建立 approval gate不視為正式批准。"
},
"owner_release_approval_truth": {
"p2_130_readiness_loaded": true,
"owner_release_approval_gate_ready": true,
"owner_release_review_required": true,
"maintenance_window_review_required": true,
"live_apply_approval_hold_active": true,
"rollback_owner_review_required": true,
"post_release_verifier_required": true,
"redaction_review_required": true,
"owner_release_approval_gate_only": true,
"owner_release_approved": false,
"maintenance_window_approved": false,
"rollback_owner_confirmed": false,
"post_release_verifier_ready": false,
"release_approval_passed": false,
"live_apply_release_passed": false,
"writer_apply_enabled": false,
"execution_apply_enabled": false,
"receipt_write_enabled": false,
"reviewer_queue_write_enabled": false,
"gateway_queue_write_enabled": false,
"telegram_send_enabled": false,
"bot_api_call_enabled": false,
"report_receipt_write_enabled": false,
"result_capture_write_enabled": false,
"learning_write_enabled": false,
"playbook_trust_write_enabled": false,
"production_write_enabled": false,
"secret_read_enabled": false,
"destructive_operation_enabled": false,
"owner_release_approved_count": 0,
"maintenance_window_approved_count": 0,
"rollback_owner_confirmed_count": 0,
"post_release_verifier_ready_count": 0,
"release_approval_pass_count": 0,
"live_apply_release_pass_count": 0,
"writer_apply_count": 0,
"execution_apply_count": 0,
"receipt_write_count": 0,
"reviewer_queue_write_count": 0,
"gateway_queue_write_count": 0,
"telegram_send_count": 0,
"bot_api_call_count": 0,
"report_receipt_write_count": 0,
"result_capture_write_count": 0,
"learning_write_count": 0,
"playbook_trust_write_count": 0,
"production_write_count": 0,
"secret_read_count": 0,
"destructive_operation_count": 0,
"truth_note": "P2-131 只建立 owner release approval gateapproval gate 可見不代表 owner release approved、maintenance window approved、post-release verifier ready 或 live apply 可執行。"
},
"owner_release_approval_packets": [
{
"packet_id": "approval_gate_result_capture_writer",
"display_name": "Result capture owner release approval gate",
"owner_agent": "openclaw",
"source_readiness": "readback_release_readiness_result_capture_writer",
"status": "ready_for_owner_review",
"approval_mode": "owner_release_approval_gate",
"owner_release_approved": false,
"release_approval_passed": false,
"approval_summary": "將 result capture writer readiness 轉成 owner review packet未取得 owner approval 前不得套用 writer 或寫 receipt。",
"evidence_hash": "sha256:b111111111111111111111111111111111111111111111111111111111111111"
},
{
"packet_id": "approval_gate_learning_writer",
"display_name": "Learning owner release approval gate",
"owner_agent": "hermes",
"source_readiness": "readback_release_readiness_learning_writer",
"status": "approval_required",
"approval_mode": "owner_release_approval_gate",
"owner_release_approved": false,
"release_approval_passed": false,
"approval_summary": "將 KM / learning readiness 轉成 owner review packet不寫 KM、不寫 learning metadata。",
"evidence_hash": "sha256:b222222222222222222222222222222222222222222222222222222222222222"
},
{
"packet_id": "approval_gate_playbook_trust_writer",
"display_name": "PlayBook trust owner release approval gate",
"owner_agent": "nemotron",
"source_readiness": "readback_release_readiness_playbook_trust_writer",
"status": "blocked_by_policy",
"approval_mode": "owner_release_approval_gate",
"owner_release_approved": false,
"release_approval_passed": false,
"approval_summary": "PlayBook trust 仍需 OpenClaw 仲裁與負向強化 reviewer未完成前不得 release。",
"evidence_hash": "sha256:b333333333333333333333333333333333333333333333333333333333333333"
},
{
"packet_id": "approval_gate_reviewer_queue_writer",
"display_name": "Reviewer queue owner release approval gate",
"owner_agent": "openclaw",
"source_readiness": "readback_release_readiness_reviewer_queue_writer",
"status": "approval_required",
"approval_mode": "owner_release_approval_gate",
"owner_release_approved": false,
"release_approval_passed": false,
"approval_summary": "將 reviewer queue readiness 轉成 owner review packet不寫 reviewer queue。",
"evidence_hash": "sha256:b444444444444444444444444444444444444444444444444444444444444444"
},
{
"packet_id": "approval_gate_gateway_queue_writer",
"display_name": "Gateway queue owner release approval gate",
"owner_agent": "nemotron",
"source_readiness": "readback_release_readiness_gateway_queue_writer",
"status": "ready_for_owner_review",
"approval_mode": "owner_release_approval_gate",
"owner_release_approved": false,
"release_approval_passed": false,
"approval_summary": "將 Gateway queue readiness 轉成 owner review packet不寫 Gateway queue、不送 Telegram。",
"evidence_hash": "sha256:b555555555555555555555555555555555555555555555555555555555555555"
}
],
"maintenance_window_approval_gates": [
{
"gate_id": "maintenance_window_result_capture",
"display_name": "Result capture maintenance window gate",
"owner_agent": "openclaw",
"status": "ready_for_owner_review",
"gate_mode": "maintenance_window_approval_gate",
"maintenance_window_review_required": true,
"maintenance_window_approved": false,
"required_before_live_apply": "owner release approved、maintenance window approved、rollback owner confirmed、post-release verifier ready。"
},
{
"gate_id": "maintenance_window_learning",
"display_name": "Learning maintenance window gate",
"owner_agent": "hermes",
"status": "approval_required",
"gate_mode": "maintenance_window_approval_gate",
"maintenance_window_review_required": true,
"maintenance_window_approved": false,
"required_before_live_apply": "KM stale guard、owner release approved、maintenance window approved、post-release verifier ready。"
},
{
"gate_id": "maintenance_window_playbook_trust",
"display_name": "PlayBook trust maintenance window gate",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"gate_mode": "maintenance_window_approval_gate",
"maintenance_window_review_required": true,
"maintenance_window_approved": false,
"required_before_live_apply": "OpenClaw 仲裁與 trust reviewer 通過後才可進維護窗口審查。"
},
{
"gate_id": "maintenance_window_reviewer_queue",
"display_name": "Reviewer queue maintenance window gate",
"owner_agent": "openclaw",
"status": "approval_required",
"gate_mode": "maintenance_window_approval_gate",
"maintenance_window_review_required": true,
"maintenance_window_approved": false,
"required_before_live_apply": "reviewer SLA owner、dedupe key owner、maintenance window approved。"
},
{
"gate_id": "maintenance_window_gateway_queue",
"display_name": "Gateway queue maintenance window gate",
"owner_agent": "nemotron",
"status": "ready_for_owner_review",
"gate_mode": "maintenance_window_approval_gate",
"maintenance_window_review_required": true,
"maintenance_window_approved": false,
"required_before_live_apply": "SRE route lock、Telegram receipt owner、maintenance window approved。"
}
],
"live_apply_release_approval_gates": [
{
"gate_id": "live_apply_approval_result_capture",
"display_name": "Result capture live apply approval gate",
"owner_agent": "openclaw",
"status": "ready_for_owner_review",
"gate_mode": "live_apply_release_approval_gate",
"release_approval_passed": false,
"live_apply_release_enabled": false,
"hold_reason": "owner release approved、maintenance window approved 與 post-release verifier ready 尚未成立。",
"release_condition": "P2-132 只能先建立 post-release verifier / rollback gate不得直接 writer apply。"
},
{
"gate_id": "live_apply_approval_learning",
"display_name": "Learning live apply approval gate",
"owner_agent": "hermes",
"status": "approval_required",
"gate_mode": "live_apply_release_approval_gate",
"release_approval_passed": false,
"live_apply_release_enabled": false,
"hold_reason": "learning write scope、KM owner 與 rollback owner 尚未 approved。",
"release_condition": "需要 owner release approval gate、maintenance window gate 與 post-release verifier 同時通過。"
},
{
"gate_id": "live_apply_approval_playbook_trust",
"display_name": "PlayBook trust live apply approval gate",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"gate_mode": "live_apply_release_approval_gate",
"release_approval_passed": false,
"live_apply_release_enabled": false,
"hold_reason": "OpenClaw 仲裁、trust reviewer 與負向強化審查尚未完成。",
"release_condition": "不得因 approval gate 可見而自動更新 PlayBook trust。"
},
{
"gate_id": "live_apply_approval_reviewer_queue",
"display_name": "Reviewer queue live apply approval gate",
"owner_agent": "openclaw",
"status": "approval_required",
"gate_mode": "live_apply_release_approval_gate",
"release_approval_passed": false,
"live_apply_release_enabled": false,
"hold_reason": "reviewer queue owner 與 rollback owner 尚未 approved。",
"release_condition": "不得寫 reviewer queue僅保留 owner review packet。"
},
{
"gate_id": "live_apply_approval_gateway_queue",
"display_name": "Gateway queue live apply approval gate",
"owner_agent": "nemotron",
"status": "ready_for_owner_review",
"gate_mode": "live_apply_release_approval_gate",
"release_approval_passed": false,
"live_apply_release_enabled": false,
"hold_reason": "Telegram receipt owner 與 SRE route lock 尚未 approved。",
"release_condition": "不得寫 Gateway queue、不得送 Telegram、不得呼叫 Bot API。"
}
],
"rollback_owner_approval_checks": [
{
"check_id": "rollback_owner_result_capture",
"display_name": "Result capture rollback owner approval check",
"owner_agent": "openclaw",
"status": "ready_for_owner_review",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_scope": "撤回 result capture release approval gate、receipt preview 與 verifier handoff。",
"hold_reason": "rollback owner 尚未 confirmed。"
},
{
"check_id": "rollback_owner_learning",
"display_name": "Learning rollback owner approval check",
"owner_agent": "hermes",
"status": "approval_required",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_scope": "撤回 learning release approval gate、KM write scope 與 stale guard handoff。",
"hold_reason": "learning rollback owner 尚未 confirmed。"
},
{
"check_id": "rollback_owner_playbook_trust",
"display_name": "PlayBook trust rollback owner approval check",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_scope": "撤回 PlayBook trust approval gate、trust delta 與 reviewer handoff。",
"hold_reason": "trust rollback owner 與 OpenClaw 仲裁尚未 confirmed。"
},
{
"check_id": "rollback_owner_reviewer_queue",
"display_name": "Reviewer queue rollback owner approval check",
"owner_agent": "openclaw",
"status": "approval_required",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_scope": "撤回 reviewer queue approval gate、dedupe key 與 SLA handoff。",
"hold_reason": "reviewer queue rollback owner 尚未 confirmed。"
},
{
"check_id": "rollback_owner_gateway_queue",
"display_name": "Gateway queue rollback owner approval check",
"owner_agent": "nemotron",
"status": "ready_for_owner_review",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_scope": "撤回 Gateway queue approval gate、route lock 與 Telegram receipt draft。",
"hold_reason": "Gateway rollback owner 尚未 confirmed不得送 Telegram。"
}
],
"blocked_approval_transitions": [
{
"blocker_id": "blocked_writer_apply_approval",
"display_name": "Writer apply approval blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "writer_apply_after_owner_release_approval_gate",
"blocked_until": "owner release approved + maintenance window approved + post-release verifier ready",
"evidence_hash": "sha256:c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1"
},
{
"blocker_id": "blocked_execution_apply_approval",
"display_name": "Execution apply approval blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "execution_apply_after_owner_release_approval_gate",
"blocked_until": "maintenance window approved + rollback owner confirmed",
"evidence_hash": "sha256:c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2"
},
{
"blocker_id": "blocked_receipt_write_approval",
"display_name": "Receipt write approval blocked",
"severity": "critical",
"status": "approval_required",
"blocked_action": "receipt_write_after_owner_release_approval_gate",
"blocked_until": "post-release verifier ready + rollback owner confirmed",
"evidence_hash": "sha256:c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"
},
{
"blocker_id": "blocked_result_capture_write_approval",
"display_name": "Result capture write approval blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "result_capture_write_after_owner_release_approval_gate",
"blocked_until": "owner release approved + result capture verifier ready",
"evidence_hash": "sha256:c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4"
},
{
"blocker_id": "blocked_gateway_queue_write_approval",
"display_name": "Gateway queue write approval blocked",
"severity": "critical",
"status": "approval_required",
"blocked_action": "gateway_queue_write_after_owner_release_approval_gate",
"blocked_until": "SRE route lock + Telegram receipt owner approved",
"evidence_hash": "sha256:c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5"
},
{
"blocker_id": "blocked_telegram_send_approval",
"display_name": "Telegram send approval blocked",
"severity": "high",
"status": "approval_required",
"blocked_action": "telegram_send_after_owner_release_approval_gate",
"blocked_until": "Gateway queue release approved + Telegram receipt E2E approved",
"evidence_hash": "sha256:c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
}
],
"operator_actions": [
{
"action_id": "review_owner_release_approval_packets",
"owner_agent": "openclaw",
"status": "ready_for_operator_review",
"operator_instruction": "審核 5 個 owner release approval packet 是否仍符合 P2-130 readiness 邊界;不要把 approval gate 視為正式批准。",
"runtime_write_allowed": false
},
{
"action_id": "verify_maintenance_window_hold",
"owner_agent": "hermes",
"status": "ready_for_operator_review",
"operator_instruction": "確認 maintenance window gate 仍全部未 approved且所有 live apply approval gate 仍為 false。",
"runtime_write_allowed": false
},
{
"action_id": "verify_live_apply_approval_hold",
"owner_agent": "nemotron",
"status": "ready_for_operator_review",
"operator_instruction": "確認 live apply approval 已讀回但仍 hold不可套用 writer 或執行正式寫入。",
"runtime_write_allowed": false
},
{
"action_id": "verify_rollback_owner_gate",
"owner_agent": "openclaw",
"status": "approval_required",
"operator_instruction": "確認 rollback owner scope、owner 與 hold reason 已整理,但 rollback_owner_confirmed 仍為 false。",
"runtime_write_allowed": false
},
{
"action_id": "prepare_p2_132_post_release_verifier_gate",
"owner_agent": "hermes",
"status": "ready_for_operator_review",
"operator_instruction": "下一關只可建立 P2-132 post-release verifier gate不可放行 writer 或正式寫入。",
"runtime_write_allowed": false
}
],
"display_redaction_contract": {
"redaction_required": true,
"raw_prompt_display_allowed": false,
"private_reasoning_display_allowed": false,
"secret_value_display_allowed": false,
"raw_runtime_payload_display_allowed": false,
"internal_collaboration_content_display_allowed": false,
"frontend_display_policy": "前端只能顯示 owner release approval gate 摘要、狀態、數量、紅acted hash 與 0 / false 邊界不得顯示內部協作環境對話、原始提示詞、私有推理、secret、授權標頭或原始 runtime payload。"
},
"rollups": {
"owner_release_approval_packet_count": 5,
"maintenance_window_approval_gate_count": 5,
"live_apply_release_approval_gate_count": 5,
"rollback_owner_approval_check_count": 5,
"blocked_approval_transition_count": 6,
"operator_action_count": 5,
"approval_required_packet_count": 2,
"blocked_packet_count": 1,
"approval_required_maintenance_window_count": 2,
"blocked_maintenance_window_count": 1,
"approval_required_live_apply_count": 2,
"blocked_live_apply_count": 1,
"approval_required_rollback_count": 2,
"blocked_rollback_count": 1,
"critical_blocker_count": 5,
"owner_release_approved_count": 0,
"maintenance_window_approved_count": 0,
"rollback_owner_confirmed_count": 0,
"post_release_verifier_ready_count": 0,
"release_approval_pass_count": 0,
"live_apply_release_pass_count": 0,
"writer_apply_count": 0,
"execution_apply_count": 0,
"receipt_write_count": 0,
"reviewer_queue_write_count": 0,
"gateway_queue_write_count": 0,
"telegram_send_count": 0,
"bot_api_call_count": 0,
"report_receipt_write_count": 0,
"result_capture_write_count": 0,
"learning_write_count": 0,
"playbook_trust_write_count": 0,
"production_write_count": 0,
"secret_read_count": 0,
"destructive_operation_count": 0
}
}