feat(governance): 新增 release authorization hold
All checks were successful
Code Review / ai-code-review (push) Successful in 14s
CD Pipeline / tests (push) Successful in 1m28s
CD Pipeline / build-and-deploy (push) Successful in 4m51s
CD Pipeline / post-deploy-checks (push) Successful in 2m31s

This commit is contained in:
Your Name
2026-06-14 08:26:02 +08:00
parent 32a1d9012f
commit e0a6d33966
13 changed files with 1760 additions and 3 deletions

View File

@@ -0,0 +1,489 @@
{
"schema_version": "ai_agent_result_capture_release_authorization_hold_v1",
"generated_at": "2026-06-14T08:07:02+08:00",
"program_status": {
"overall_completion_percent": 100,
"current_priority": "P2",
"current_task_id": "P2-134",
"next_task_id": "P2-135",
"read_only_mode": true,
"runtime_authority": "result_capture_release_authorization_hold_only_no_live_write",
"status_note": "P2-134 只把 P2-133 final release candidate readback 轉成 release authorization hold不得視為 owner release authorized不得批准 maintenance window不得確認 rollback owner不得通過 release authorization不得釋放 live apply、套用 writer、寫 receipt、寫 result capture、寫 learning、寫 queue、送 Telegram 或寫入 production。"
},
"source_refs": [
"docs/evaluations/ai_agent_result_capture_final_release_candidate_readback_2026-06-14.json",
"docs/evaluations/ai_agent_result_capture_post_release_verifier_rollback_gate_2026-06-14.json",
"docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md#54-建立-final-release-candidate-readback"
],
"prior_final_release_candidate_readback": {
"schema_version": "ai_agent_result_capture_final_release_candidate_readback_v1",
"final_release_candidate_readback_count": 5,
"rollback_candidate_readback_count": 5,
"candidate_acceptance_hold_count": 5,
"live_apply_candidate_hold_count": 5,
"blocked_final_candidate_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,
"final_release_candidate_approved_count": 0,
"final_release_candidate_pass_count": 0,
"rollback_release_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-133 已把 final release candidate readback、rollback candidate readback、candidate acceptance hold、live-apply candidate hold 與 blocked final candidate transition 固定為只讀 candidate evidenceP2-134 只建立 release authorization hold不視為 owner release authorized。"
},
"release_authorization_truth": {
"p2_133_final_candidate_loaded": true,
"release_authorization_hold_ready": true,
"rollback_authorization_hold_ready": true,
"release_window_hold_active": true,
"live_apply_authorization_hold_active": true,
"owner_authorization_review_still_required": true,
"maintenance_window_review_still_required": true,
"rollback_owner_review_required": true,
"redaction_review_required": true,
"release_authorization_hold_only": true,
"owner_release_authorized": false,
"owner_release_approved": false,
"maintenance_window_approved": false,
"rollback_owner_confirmed": false,
"post_release_verifier_ready": false,
"final_release_candidate_approved": false,
"final_release_candidate_passed": false,
"release_authorization_granted": false,
"release_authorization_passed": false,
"rollback_release_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_authorized_count": 0,
"owner_release_approved_count": 0,
"maintenance_window_approved_count": 0,
"rollback_owner_confirmed_count": 0,
"post_release_verifier_ready_count": 0,
"final_release_candidate_approved_count": 0,
"final_release_candidate_pass_count": 0,
"release_authorization_granted_count": 0,
"release_authorization_pass_count": 0,
"rollback_release_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-134 只建立 release authorization holdauthorization hold 可見不代表 owner release authorized、maintenance window approved、rollback owner confirmed、release authorization passed 或 live apply 可執行。"
},
"release_authorization_holds": [
{
"hold_id": "release_authorization_result_capture",
"display_name": "Result capture release authorization hold",
"owner_agent": "openclaw",
"source_final_candidate": "final_candidate_result_capture",
"status": "ready_for_owner_review",
"hold_mode": "release_authorization_hold",
"owner_release_authorized": false,
"release_authorization_granted": false,
"release_authorization_passed": false,
"authorization_summary": "建立 Result capture release authorization hold未取得 owner authorization、maintenance window、rollback owner 與 final verifier pass 前不得寫入或發送。",
"evidence_hash": "sha256:7111111111111111111111111111111111111111111111111111111111111111"
},
{
"hold_id": "release_authorization_learning",
"display_name": "Learning release authorization hold",
"owner_agent": "hermes",
"source_final_candidate": "final_candidate_learning",
"status": "approval_required",
"hold_mode": "release_authorization_hold",
"owner_release_authorized": false,
"release_authorization_granted": false,
"release_authorization_passed": false,
"authorization_summary": "建立 Learning release authorization hold未取得 owner authorization、maintenance window、rollback owner 與 final verifier pass 前不得寫入或發送。",
"evidence_hash": "sha256:7222222222222222222222222222222222222222222222222222222222222222"
},
{
"hold_id": "release_authorization_playbook_trust",
"display_name": "PlayBook trust release authorization hold",
"owner_agent": "nemotron",
"source_final_candidate": "final_candidate_playbook_trust",
"status": "blocked_by_policy",
"hold_mode": "release_authorization_hold",
"owner_release_authorized": false,
"release_authorization_granted": false,
"release_authorization_passed": false,
"authorization_summary": "建立 PlayBook trust release authorization hold未取得 owner authorization、maintenance window、rollback owner 與 final verifier pass 前不得寫入或發送。",
"evidence_hash": "sha256:7333333333333333333333333333333333333333333333333333333333333333"
},
{
"hold_id": "release_authorization_reviewer_queue",
"display_name": "Reviewer queue release authorization hold",
"owner_agent": "openclaw",
"source_final_candidate": "final_candidate_reviewer_queue",
"status": "approval_required",
"hold_mode": "release_authorization_hold",
"owner_release_authorized": false,
"release_authorization_granted": false,
"release_authorization_passed": false,
"authorization_summary": "建立 Reviewer queue release authorization hold未取得 owner authorization、maintenance window、rollback owner 與 final verifier pass 前不得寫入或發送。",
"evidence_hash": "sha256:7444444444444444444444444444444444444444444444444444444444444444"
},
{
"hold_id": "release_authorization_gateway_queue",
"display_name": "Gateway queue release authorization hold",
"owner_agent": "nemotron",
"source_final_candidate": "final_candidate_gateway_queue",
"status": "ready_for_owner_review",
"hold_mode": "release_authorization_hold",
"owner_release_authorized": false,
"release_authorization_granted": false,
"release_authorization_passed": false,
"authorization_summary": "建立 Gateway queue release authorization hold未取得 owner authorization、maintenance window、rollback owner 與 final verifier pass 前不得寫入或發送。",
"evidence_hash": "sha256:7555555555555555555555555555555555555555555555555555555555555555"
}
],
"rollback_authorization_holds": [
{
"hold_id": "rollback_authorization_result_capture",
"display_name": "Result capture rollback authorization hold",
"owner_agent": "openclaw",
"status": "ready_for_owner_review",
"hold_mode": "rollback_authorization_hold",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_release_enabled": false,
"rollback_summary": "建立 Result capture rollback authorization holdrollback owner 未 confirmed 前不得釋放 rollback release。"
},
{
"hold_id": "rollback_authorization_learning",
"display_name": "Learning rollback authorization hold",
"owner_agent": "hermes",
"status": "approval_required",
"hold_mode": "rollback_authorization_hold",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_release_enabled": false,
"rollback_summary": "建立 Learning rollback authorization holdrollback owner 未 confirmed 前不得釋放 rollback release。"
},
{
"hold_id": "rollback_authorization_playbook_trust",
"display_name": "PlayBook trust rollback authorization hold",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"hold_mode": "rollback_authorization_hold",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_release_enabled": false,
"rollback_summary": "建立 PlayBook trust rollback authorization holdrollback owner 未 confirmed 前不得釋放 rollback release。"
},
{
"hold_id": "rollback_authorization_reviewer_queue",
"display_name": "Reviewer queue rollback authorization hold",
"owner_agent": "openclaw",
"status": "approval_required",
"hold_mode": "rollback_authorization_hold",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_release_enabled": false,
"rollback_summary": "建立 Reviewer queue rollback authorization holdrollback owner 未 confirmed 前不得釋放 rollback release。"
},
{
"hold_id": "rollback_authorization_gateway_queue",
"display_name": "Gateway queue rollback authorization hold",
"owner_agent": "nemotron",
"status": "ready_for_owner_review",
"hold_mode": "rollback_authorization_hold",
"rollback_owner_required": true,
"rollback_owner_confirmed": false,
"rollback_release_enabled": false,
"rollback_summary": "建立 Gateway queue rollback authorization holdrollback owner 未 confirmed 前不得釋放 rollback release。"
}
],
"release_window_holds": [
{
"hold_id": "release_window_result_capture",
"display_name": "Result capture release window hold",
"owner_agent": "openclaw",
"status": "ready_for_owner_review",
"hold_mode": "release_window_hold",
"owner_release_authorized": false,
"maintenance_window_approved": false,
"final_release_candidate_passed": false,
"hold_reason": "Result capture release window 仍需 owner authorization、maintenance window 與 final candidate pass不得把 P2-134 hold 當成正式批准。"
},
{
"hold_id": "release_window_learning",
"display_name": "Learning release window hold",
"owner_agent": "hermes",
"status": "approval_required",
"hold_mode": "release_window_hold",
"owner_release_authorized": false,
"maintenance_window_approved": false,
"final_release_candidate_passed": false,
"hold_reason": "Learning release window 仍需 owner authorization、maintenance window 與 final candidate pass不得把 P2-134 hold 當成正式批准。"
},
{
"hold_id": "release_window_playbook_trust",
"display_name": "PlayBook trust release window hold",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"hold_mode": "release_window_hold",
"owner_release_authorized": false,
"maintenance_window_approved": false,
"final_release_candidate_passed": false,
"hold_reason": "PlayBook trust release window 仍需 owner authorization、maintenance window 與 final candidate pass不得把 P2-134 hold 當成正式批准。"
},
{
"hold_id": "release_window_reviewer_queue",
"display_name": "Reviewer queue release window hold",
"owner_agent": "openclaw",
"status": "approval_required",
"hold_mode": "release_window_hold",
"owner_release_authorized": false,
"maintenance_window_approved": false,
"final_release_candidate_passed": false,
"hold_reason": "Reviewer queue release window 仍需 owner authorization、maintenance window 與 final candidate pass不得把 P2-134 hold 當成正式批准。"
},
{
"hold_id": "release_window_gateway_queue",
"display_name": "Gateway queue release window hold",
"owner_agent": "nemotron",
"status": "ready_for_owner_review",
"hold_mode": "release_window_hold",
"owner_release_authorized": false,
"maintenance_window_approved": false,
"final_release_candidate_passed": false,
"hold_reason": "Gateway queue release window 仍需 owner authorization、maintenance window 與 final candidate pass不得把 P2-134 hold 當成正式批准。"
}
],
"live_apply_authorization_holds": [
{
"hold_id": "live_apply_authorization_result_capture",
"display_name": "Result capture live apply authorization hold",
"owner_agent": "openclaw",
"status": "ready_for_owner_review",
"hold_mode": "live_apply_authorization_hold",
"release_authorization_granted": false,
"live_apply_release_enabled": false,
"release_condition": "P2-135 才能承接 authorization readbackP2-134 不得直接 writer apply 或 live apply。"
},
{
"hold_id": "live_apply_authorization_learning",
"display_name": "Learning live apply authorization hold",
"owner_agent": "hermes",
"status": "approval_required",
"hold_mode": "live_apply_authorization_hold",
"release_authorization_granted": false,
"live_apply_release_enabled": false,
"release_condition": "P2-135 才能承接 authorization readbackP2-134 不得直接 writer apply 或 live apply。"
},
{
"hold_id": "live_apply_authorization_playbook_trust",
"display_name": "PlayBook trust live apply authorization hold",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"hold_mode": "live_apply_authorization_hold",
"release_authorization_granted": false,
"live_apply_release_enabled": false,
"release_condition": "P2-135 才能承接 authorization readbackP2-134 不得直接 writer apply 或 live apply。"
},
{
"hold_id": "live_apply_authorization_reviewer_queue",
"display_name": "Reviewer queue live apply authorization hold",
"owner_agent": "openclaw",
"status": "approval_required",
"hold_mode": "live_apply_authorization_hold",
"release_authorization_granted": false,
"live_apply_release_enabled": false,
"release_condition": "P2-135 才能承接 authorization readbackP2-134 不得直接 writer apply 或 live apply。"
},
{
"hold_id": "live_apply_authorization_gateway_queue",
"display_name": "Gateway queue live apply authorization hold",
"owner_agent": "nemotron",
"status": "ready_for_owner_review",
"hold_mode": "live_apply_authorization_hold",
"release_authorization_granted": false,
"live_apply_release_enabled": false,
"release_condition": "P2-135 才能承接 authorization readbackP2-134 不得直接 writer apply 或 live apply。"
}
],
"blocked_authorization_transitions": [
{
"blocker_id": "blocked_writer_apply_release_authorization",
"display_name": "Writer apply release authorization blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "writer_apply_after_release_authorization_hold",
"blocked_until": "owner authorization + maintenance window + release authorization pass + rollback owner confirmed",
"evidence_hash": "sha256:61a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1"
},
{
"blocker_id": "blocked_execution_apply_release_authorization",
"display_name": "Execution apply release authorization blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "execution_apply_after_release_authorization_hold",
"blocked_until": "maintenance window approved + rollback release gate passed",
"evidence_hash": "sha256:62b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2"
},
{
"blocker_id": "blocked_receipt_write_release_authorization",
"display_name": "Receipt write release authorization blocked",
"severity": "critical",
"status": "approval_required",
"blocked_action": "receipt_write_after_release_authorization_hold",
"blocked_until": "release authorization granted + release verification passed",
"evidence_hash": "sha256:63c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"
},
{
"blocker_id": "blocked_result_capture_write_release_authorization",
"display_name": "Result capture write release authorization blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "result_capture_write_after_release_authorization_hold",
"blocked_until": "owner authorization + release authorization pass + rollback owner confirmed",
"evidence_hash": "sha256:64d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4"
},
{
"blocker_id": "blocked_gateway_queue_write_release_authorization",
"display_name": "Gateway queue write release authorization blocked",
"severity": "critical",
"status": "approval_required",
"blocked_action": "gateway_queue_write_after_release_authorization_hold",
"blocked_until": "SRE route lock + Telegram receipt owner approved + release authorization pass",
"evidence_hash": "sha256:65e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5"
},
{
"blocker_id": "blocked_telegram_send_release_authorization",
"display_name": "Telegram send release authorization blocked",
"severity": "high",
"status": "approval_required",
"blocked_action": "telegram_send_after_release_authorization_hold",
"blocked_until": "Gateway queue release approved + Telegram receipt E2E approved + rollback release gate passed",
"evidence_hash": "sha256:66f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6"
}
],
"operator_actions": [
{
"action_id": "review_release_authorization_holds",
"owner_agent": "openclaw",
"status": "ready_for_operator_review",
"operator_instruction": "審核 5 個 release authorization hold 是否仍符合 P2-133 final candidate 邊界;不要把 hold 視為正式授權。",
"runtime_write_allowed": false
},
{
"action_id": "verify_rollback_authorization_hold",
"owner_agent": "hermes",
"status": "ready_for_operator_review",
"operator_instruction": "確認 rollback authorization hold 仍全部未 confirmed且 rollback_release_enabled 仍為 false。",
"runtime_write_allowed": false
},
{
"action_id": "verify_release_window_hold",
"owner_agent": "nemotron",
"status": "ready_for_operator_review",
"operator_instruction": "確認 release window hold 已讀回但仍 hold不可批准 maintenance window 或套用 writer。",
"runtime_write_allowed": false
},
{
"action_id": "verify_live_apply_authorization_hold",
"owner_agent": "openclaw",
"status": "approval_required",
"operator_instruction": "確認 live apply authorization hold 仍未 enabled且 release_authorization_granted 仍為 false。",
"runtime_write_allowed": false
},
{
"action_id": "prepare_p2_135_release_authorization_readback",
"owner_agent": "hermes",
"status": "ready_for_operator_review",
"operator_instruction": "下一關只可建立 P2-135 release authorization readback不可放行 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": "前端只能顯示 release authorization hold 摘要、狀態、數量、redacted hash 與 0 / false 邊界不得顯示內部協作環境對話、原始提示詞、私有推理、secret、授權標頭或原始 runtime payload。"
},
"rollups": {
"release_authorization_hold_count": 5,
"rollback_authorization_hold_count": 5,
"release_window_hold_count": 5,
"live_apply_authorization_hold_count": 5,
"blocked_authorization_transition_count": 6,
"operator_action_count": 5,
"approval_required_authorization_count": 2,
"blocked_authorization_count": 1,
"approval_required_rollback_count": 2,
"blocked_rollback_count": 1,
"approval_required_release_window_count": 2,
"blocked_release_window_count": 1,
"approval_required_live_apply_count": 2,
"blocked_live_apply_count": 1,
"critical_blocker_count": 5,
"owner_release_authorized_count": 0,
"owner_release_approved_count": 0,
"maintenance_window_approved_count": 0,
"rollback_owner_confirmed_count": 0,
"post_release_verifier_ready_count": 0,
"final_release_candidate_approved_count": 0,
"final_release_candidate_pass_count": 0,
"release_authorization_granted_count": 0,
"release_authorization_pass_count": 0,
"rollback_release_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
}
}