feat(governance): 新增 reviewer queue no-write readback
All checks were successful
Code Review / ai-code-review (push) Successful in 16s
CD Pipeline / tests (push) Successful in 1m36s
CD Pipeline / build-and-deploy (push) Successful in 7m36s
CD Pipeline / post-deploy-checks (push) Successful in 3m26s

This commit is contained in:
Your Name
2026-06-13 20:21:05 +08:00
parent 72fe95a3d1
commit f4ea2a57fc
10 changed files with 1638 additions and 1 deletions

View File

@@ -0,0 +1,356 @@
{
"schema_version": "ai_agent_reviewer_queue_no_write_readback_v1",
"generated_at": "2026-06-13T20:30:00+08:00",
"program_status": {
"overall_completion_percent": 100,
"current_priority": "P2",
"current_task_id": "P2-117",
"next_task_id": "P2-118",
"read_only_mode": true,
"runtime_authority": "reviewer_queue_no_write_readback_only_no_queue_write_or_send",
"status_note": "P2-117 只把 P2-116 failure receipt no-send replay 整理成 reviewer queue no-write readback不得寫 reviewer queue、不得寫 Gateway queue、不得送 Telegram、不得寫 result capture / production。"
},
"source_refs": [
"docs/evaluations/ai_agent_failure_receipt_no_send_replay_2026-06-13.json",
"docs/evaluations/ai_agent_canonical_runtime_readback_owner_acceptance_2026-06-13.json",
"docs/evaluations/ai_agent_runtime_readback_promotion_gate_2026-06-13.json",
"docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md#37-建立-failure-receipt-no-send-replay"
],
"prior_failure_receipt_replay": {
"schema_version": "ai_agent_failure_receipt_no_send_replay_v1",
"no_send_replay_fixture_count": 5,
"route_lock_check_count": 4,
"replay_verifier_check_count": 5,
"blocked_send_count": 5,
"operator_action_count": 5,
"failure_receipt_send_count": 0,
"gateway_queue_write_count": 0,
"telegram_send_count": 0,
"bot_api_call_count": 0,
"reviewer_queue_write_count": 0,
"result_capture_write_count": 0,
"readiness_note": "P2-116 已正式驗證 failure receipt no-send replayP2-117 只建立 reviewer queue no-write readback fixture、queue item mapping、verifier 與人工操作選項。"
},
"readback_truth": {
"p2_116_no_send_replay_loaded": true,
"reviewer_queue_readback_package_ready": true,
"reviewer_queue_fixture_ready": true,
"queue_item_mapping_ready": true,
"no_write_verifier_ready": true,
"operator_handoff_ready": true,
"result_capture_preview_ready": true,
"owner_approval_received": false,
"canonical_runtime_target_read_enabled": false,
"live_query_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_approval_received_count": 0,
"canonical_runtime_target_read_count": 0,
"live_query_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,
"truth_note": "reviewer queue readback 已可審查;真正 reviewer queue write、Gateway queue write、Telegram send、Bot API、report receipt 與 result capture 仍全部為 0。"
},
"reviewer_queue_readback_fixtures": [
{
"fixture_id": "reviewer_queue_action_required_failure_receipt",
"display_name": "Action-required reviewer queue preview",
"owner_agent": "openclaw",
"source_replay_fixture_id": "telegram_failure_receipt_action_required",
"status": "ready_for_owner_review",
"queue_lane": "manual_repair_review",
"readback_mode": "no_write_fixture",
"reviewer_queue_write_enabled": false,
"next_manual_action": "審查修復候選、rollback 條件與 SRE 戰情室回執內容,確認是否可進入人工修復選項。",
"evidence_hash": "sha256:4141414141414141414141414141414141414141414141414141414141414141"
},
{
"fixture_id": "reviewer_queue_no_action_decision",
"display_name": "No-action decision reviewer preview",
"owner_agent": "hermes",
"source_replay_fixture_id": "telegram_failure_receipt_no_action",
"status": "approval_required",
"queue_lane": "manual_no_action_review",
"readback_mode": "no_write_fixture",
"reviewer_queue_write_enabled": false,
"next_manual_action": "補齊為什麼 AI 選擇 no-action 的證據,產出人工判讀 checklist不得直接結案。",
"evidence_hash": "sha256:4242424242424242424242424242424242424242424242424242424242424242"
},
{
"fixture_id": "reviewer_queue_verifier_degraded",
"display_name": "Verifier degraded reviewer preview",
"owner_agent": "nemotron",
"source_replay_fixture_id": "telegram_failure_receipt_verifier_degraded",
"status": "blocked_by_policy",
"queue_lane": "rollback_or_reverify_review",
"readback_mode": "no_write_fixture",
"reviewer_queue_write_enabled": false,
"next_manual_action": "確認 verifier degraded 的根因、rollback 條件與下一次 readback verifier不得寫 result capture。",
"evidence_hash": "sha256:4343434343434343434343434343434343434343434343434343434343434343"
},
{
"fixture_id": "reviewer_queue_route_locked",
"display_name": "Route locked reviewer preview",
"owner_agent": "openclaw",
"source_replay_fixture_id": "telegram_failure_receipt_route_locked",
"status": "approval_required",
"queue_lane": "sre_route_lock_review",
"readback_mode": "no_write_fixture",
"reviewer_queue_write_enabled": false,
"next_manual_action": "確認只允許 AwoooI SRE 戰情室路由,舊 bot / 舊群組不得重新啟用。",
"evidence_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
},
{
"fixture_id": "reviewer_queue_result_capture_pending",
"display_name": "Result capture pending reviewer preview",
"owner_agent": "nemotron",
"source_replay_fixture_id": "telegram_failure_receipt_result_capture_pending",
"status": "blocked_by_policy",
"queue_lane": "result_capture_owner_review",
"readback_mode": "no_write_fixture",
"reviewer_queue_write_enabled": false,
"next_manual_action": "確認 result capture owner acceptance、redaction 與 rollback owner未通過前不得寫 capture。",
"evidence_hash": "sha256:4545454545454545454545454545454545454545454545454545454545454545"
}
],
"queue_item_mappings": [
{
"mapping_id": "failure_receipt_to_manual_repair_review",
"display_name": "Failure receipt to manual repair review",
"status": "ready",
"source_fixture_id": "reviewer_queue_action_required_failure_receipt",
"target_queue": "reviewer_queue_preview",
"queue_write_enabled": false,
"required_reviewer": "operator_owner",
"evidence_hash": "sha256:4646464646464646464646464646464646464646464646464646464646464646"
},
{
"mapping_id": "no_action_to_manual_decision_review",
"display_name": "No-action to manual decision review",
"status": "approval_required",
"source_fixture_id": "reviewer_queue_no_action_decision",
"target_queue": "reviewer_queue_preview",
"queue_write_enabled": false,
"required_reviewer": "openclaw_reviewer",
"evidence_hash": "sha256:4747474747474747474747474747474747474747474747474747474747474747"
},
{
"mapping_id": "verifier_degraded_to_rollback_review",
"display_name": "Verifier degraded to rollback review",
"status": "blocked_by_policy",
"source_fixture_id": "reviewer_queue_verifier_degraded",
"target_queue": "reviewer_queue_preview",
"queue_write_enabled": false,
"required_reviewer": "rollback_owner",
"evidence_hash": "sha256:4848484848484848484848484848484848484848484848484848484848484848"
},
{
"mapping_id": "route_locked_to_sre_route_review",
"display_name": "Route locked to SRE route review",
"status": "ready",
"source_fixture_id": "reviewer_queue_route_locked",
"target_queue": "reviewer_queue_preview",
"queue_write_enabled": false,
"required_reviewer": "sre_route_owner",
"evidence_hash": "sha256:4949494949494949494949494949494949494949494949494949494949494949"
},
{
"mapping_id": "result_capture_to_owner_review",
"display_name": "Result capture to owner review",
"status": "blocked_by_policy",
"source_fixture_id": "reviewer_queue_result_capture_pending",
"target_queue": "reviewer_queue_preview",
"queue_write_enabled": false,
"required_reviewer": "result_capture_owner",
"evidence_hash": "sha256:4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a"
}
],
"readback_verifier_checks": [
{
"verifier_id": "no_reviewer_queue_write_verifier",
"display_name": "No reviewer queue write verifier",
"owner_agent": "openclaw",
"status": "ready",
"verifies": "reviewer_queue_write_count remains zero",
"failure_if_missing": "若 reviewer queue write 不是 0必須停止 promotion 並標記 unauthorized write。",
"live_execution_enabled": false,
"evidence_hash": "sha256:4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b"
},
{
"verifier_id": "no_gateway_queue_write_verifier",
"display_name": "No Gateway queue write verifier",
"owner_agent": "hermes",
"status": "ready",
"verifies": "gateway_queue_write_count remains zero",
"failure_if_missing": "若 Gateway queue write 不是 0必須退回 P2-116 route lock review。",
"live_execution_enabled": false,
"evidence_hash": "sha256:4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c"
},
{
"verifier_id": "no_telegram_send_verifier",
"display_name": "No Telegram send verifier",
"owner_agent": "hermes",
"status": "ready",
"verifies": "telegram_send_count remains zero",
"failure_if_missing": "若 Telegram send 不是 0必須封鎖 reviewer queue readback promotion。",
"live_execution_enabled": false,
"evidence_hash": "sha256:4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d"
},
{
"verifier_id": "manual_action_completeness_verifier",
"display_name": "Manual action completeness verifier",
"owner_agent": "openclaw",
"status": "approval_required",
"verifies": "each reviewer queue fixture has next_manual_action",
"failure_if_missing": "若缺少人工處理選項,不能進入 P2-118。",
"live_execution_enabled": false,
"evidence_hash": "sha256:4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e"
},
{
"verifier_id": "result_capture_not_written_verifier",
"display_name": "Result capture not written verifier",
"owner_agent": "nemotron",
"status": "approval_required",
"verifies": "result_capture_write_count remains zero",
"failure_if_missing": "若 result capture 已寫入,必須回到 owner acceptance 與 redaction review。",
"live_execution_enabled": false,
"evidence_hash": "sha256:4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f"
}
],
"blocked_queue_writes": [
{
"blocker_id": "reviewer_queue_writer_not_authorized",
"display_name": "Reviewer queue writer not authorized",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "reviewer_queue_write",
"blocked_until": "reviewer_queue_owner_gate_approved",
"evidence_hash": "sha256:5050505050505050505050505050505050505050505050505050505050505050"
},
{
"blocker_id": "gateway_queue_not_authorized",
"display_name": "Gateway queue not authorized",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "gateway_queue_write",
"blocked_until": "gateway_queue_writer_gate_approved",
"evidence_hash": "sha256:5151515151515151515151515151515151515151515151515151515151515151"
},
{
"blocker_id": "telegram_send_not_authorized",
"display_name": "Telegram send not authorized",
"severity": "high",
"status": "approval_required",
"blocked_action": "telegram_send",
"blocked_until": "telegram_delivery_gate_approved",
"evidence_hash": "sha256:5252525252525252525252525252525252525252525252525252525252525252"
},
{
"blocker_id": "bot_api_not_authorized",
"display_name": "Bot API not authorized",
"severity": "high",
"status": "approval_required",
"blocked_action": "bot_api_call",
"blocked_until": "bot_api_gate_approved",
"evidence_hash": "sha256:5353535353535353535353535353535353535353535353535353535353535353"
},
{
"blocker_id": "result_capture_not_authorized",
"display_name": "Result capture not authorized",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "result_capture_write",
"blocked_until": "result_capture_owner_approved",
"evidence_hash": "sha256:5454545454545454545454545454545454545454545454545454545454545454"
}
],
"operator_actions": [
{
"action_id": "review_reviewer_queue_preview",
"display_name": "Review reviewer queue preview",
"owner_agent": "openclaw",
"operator_instruction": "審查 5 個 reviewer queue no-write fixture確認每筆都有下一步人工處理與安全證據 refs。",
"runtime_queue_write_allowed": false
},
{
"action_id": "verify_no_write_counts",
"display_name": "Verify no-write counts",
"owner_agent": "nemotron",
"operator_instruction": "確認 reviewer queue、Gateway queue、Telegram、Bot API、result capture 的 live counter 全部為 0。",
"runtime_queue_write_allowed": false
},
{
"action_id": "confirm_manual_options",
"display_name": "Confirm manual options",
"owner_agent": "hermes",
"operator_instruction": "把每個卡點整理成人工可選項修復候選、no-action 判讀、rollback、補證據或 result capture owner review。",
"runtime_queue_write_allowed": false
},
{
"action_id": "check_queue_redaction_contract",
"display_name": "Check queue redaction contract",
"owner_agent": "hermes",
"operator_instruction": "確認 reviewer queue preview 不顯示未遮蔽 payload、token、authorization header、私有推理或內部協作內容。",
"runtime_queue_write_allowed": false
},
{
"action_id": "promote_to_p2_118",
"display_name": "Promote to P2-118",
"owner_agent": "nemotron",
"operator_instruction": "只有 no-write verifier 與 queue item mapping 都通過後,才可進入 P2-118 result capture no-write readback。",
"runtime_queue_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": "只顯示 fixture id、queue lane、狀態、人工下一步、blocked action 與 redacted evidence hash不顯示未遮蔽 payload、token、私有推理或內部協作內容。"
},
"rollups": {
"reviewer_queue_readback_fixture_count": 5,
"queue_item_mapping_count": 5,
"readback_verifier_check_count": 5,
"blocked_queue_write_count": 5,
"operator_action_count": 5,
"approval_required_fixture_count": 2,
"blocked_fixture_count": 2,
"approval_required_mapping_count": 1,
"blocked_mapping_count": 2,
"approval_required_verifier_count": 2,
"critical_blocker_count": 3,
"owner_approval_received_count": 0,
"canonical_runtime_target_read_count": 0,
"live_query_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
}
}