feat(governance): 新增 owner-approved execution rehearsal
All checks were successful
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / tests (push) Successful in 1m27s
CD Pipeline / build-and-deploy (push) Successful in 4m45s
CD Pipeline / post-deploy-checks (push) Successful in 26s

This commit is contained in:
Your Name
2026-06-14 01:57:23 +08:00
parent 0a737cf400
commit 1ceaa45829
10 changed files with 1533 additions and 1 deletions

View File

@@ -0,0 +1,439 @@
{
"schema_version": "ai_agent_result_capture_owner_approved_execution_rehearsal_v1",
"generated_at": "2026-06-14T01:55:00+08:00",
"program_status": {
"overall_completion_percent": 100,
"current_priority": "P2",
"current_task_id": "P2-126",
"next_task_id": "P2-127",
"read_only_mode": true,
"runtime_authority": "result_capture_owner_approved_execution_rehearsal_only_no_live_write",
"status_note": "P2-126 只建立 owner-approved execution rehearsal、no-write apply gate、post-write verifier rehearsal 與 rollback drill不得套用 writer、寫 receipt、寫 result capture 或寫入 production。"
},
"source_refs": [
"docs/evaluations/ai_agent_result_capture_owner_promotion_review_2026-06-14.json",
"docs/evaluations/ai_agent_result_capture_writer_dry_run_readback_2026-06-14.json",
"docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md#46-建立-result-capture-owner-promotion-review--execution-gate"
],
"prior_result_capture_owner_promotion_review": {
"schema_version": "ai_agent_result_capture_owner_promotion_review_v1",
"owner_promotion_packet_count": 5,
"execution_gate_check_count": 5,
"rollback_owner_review_count": 5,
"blocked_execution_write_count": 6,
"operator_action_count": 5,
"owner_promotion_approved_count": 0,
"execution_gate_pass_count": 0,
"rollback_owner_confirmed_count": 0,
"post_write_verifier_ready_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-125 已提供 owner promotion review、execution gate 與 rollback owner reviewP2-126 只讀回這些輸出並建立 no-write execution rehearsal。"
},
"execution_rehearsal_truth": {
"p2_125_owner_promotion_loaded": true,
"owner_approval_record_required": true,
"no_write_apply_rehearsal_ready": true,
"post_write_verifier_rehearsal_ready": true,
"rollback_drill_ready": true,
"idempotency_replay_required": true,
"redaction_review_required": true,
"execution_rehearsal_only": true,
"owner_approval_record_received": false,
"no_write_apply_executed": false,
"post_write_verifier_passed": false,
"rollback_drill_confirmed": 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_approval_record_received_count": 0,
"no_write_apply_execution_count": 0,
"post_write_verifier_pass_count": 0,
"rollback_drill_confirmed_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-126 只演練 owner-approved execution path不套用任何 writer、不寫 queue、不發 Telegram、不呼叫 Bot API、不寫 production。"
},
"execution_rehearsals": [
{
"rehearsal_id": "rehearsal_result_capture_writer",
"display_name": "Result capture writer no-write rehearsal",
"owner_agent": "openclaw",
"source_packet": "packet_result_capture_writer",
"status": "ready_for_rehearsal_review",
"rehearsal_mode": "no_write_apply_rehearsal",
"no_write_only": true,
"live_apply_enabled": false,
"expected_output": "產生 result capture writer input preview、idempotency key 與 verifier rehearsal不寫 result_capture。",
"evidence_hash": "sha256:e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1"
},
{
"rehearsal_id": "rehearsal_learning_writer",
"display_name": "Learning writer no-write rehearsal",
"owner_agent": "hermes",
"source_packet": "packet_learning_writer",
"status": "approval_required",
"rehearsal_mode": "no_write_apply_rehearsal",
"no_write_only": true,
"live_apply_enabled": false,
"expected_output": "產生 KM / learning write preview、stale guard 與 owner review handoff不寫 learning。",
"evidence_hash": "sha256:e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2"
},
{
"rehearsal_id": "rehearsal_playbook_trust_writer",
"display_name": "PlayBook trust no-write rehearsal",
"owner_agent": "nemotron",
"source_packet": "packet_playbook_trust_writer",
"status": "blocked_by_policy",
"rehearsal_mode": "no_write_apply_rehearsal",
"no_write_only": true,
"live_apply_enabled": false,
"expected_output": "產生 trust delta preview、negative reinforcement check 與 rollback rehearsal不寫 PlayBook trust。",
"evidence_hash": "sha256:e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3"
},
{
"rehearsal_id": "rehearsal_reviewer_queue_writer",
"display_name": "Reviewer queue no-write rehearsal",
"owner_agent": "openclaw",
"source_packet": "packet_reviewer_queue_writer",
"status": "approval_required",
"rehearsal_mode": "no_write_apply_rehearsal",
"no_write_only": true,
"live_apply_enabled": false,
"expected_output": "產生 reviewer queue preview、dedupe key 與 SLA handoff不寫 reviewer queue。",
"evidence_hash": "sha256:e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4"
},
{
"rehearsal_id": "rehearsal_gateway_queue_writer",
"display_name": "Gateway queue no-write rehearsal",
"owner_agent": "nemotron",
"source_packet": "packet_gateway_queue_writer",
"status": "ready_for_rehearsal_review",
"rehearsal_mode": "no_write_apply_rehearsal",
"no_write_only": true,
"live_apply_enabled": false,
"expected_output": "產生 AwoooI SRE 戰情室 queue preview、route lock 與 redaction check不寫 Gateway queue。",
"evidence_hash": "sha256:e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5"
}
],
"no_write_apply_checks": [
{
"check_id": "check_owner_approval_record",
"display_name": "Owner approval record check",
"owner_agent": "openclaw",
"status": "approval_required",
"check_mode": "no_write_apply_gate",
"required_before_apply": true,
"live_apply_enabled": false,
"failure_if_missing": "缺 owner approval record 時不得進 no-write apply rehearsal。"
},
{
"check_id": "check_idempotency_replay",
"display_name": "Idempotency replay check",
"owner_agent": "nemotron",
"status": "ready_for_rehearsal_review",
"check_mode": "no_write_apply_gate",
"required_before_apply": true,
"live_apply_enabled": false,
"failure_if_missing": "缺 idempotency replay 時不得提升 writer。"
},
{
"check_id": "check_payload_redaction",
"display_name": "Payload redaction check",
"owner_agent": "hermes",
"status": "ready_for_rehearsal_review",
"check_mode": "no_write_apply_gate",
"required_before_apply": true,
"live_apply_enabled": false,
"failure_if_missing": "缺 redaction review 時不得產生 queue / Telegram payload。"
},
{
"check_id": "check_post_write_verifier",
"display_name": "Post-write verifier rehearsal check",
"owner_agent": "openclaw",
"status": "approval_required",
"check_mode": "no_write_apply_gate",
"required_before_apply": true,
"live_apply_enabled": false,
"failure_if_missing": "缺 post-write verifier rehearsal 時不得寫 result capture。"
},
{
"check_id": "check_production_write_block",
"display_name": "Production write block check",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"check_mode": "no_write_apply_gate",
"required_before_apply": true,
"live_apply_enabled": false,
"failure_if_missing": "未有正式維護窗口與 rollback owner 前不得寫 production。"
}
],
"post_write_verifier_rehearsals": [
{
"verifier_id": "verifier_result_capture",
"display_name": "Result capture verifier rehearsal",
"owner_agent": "openclaw",
"status": "ready_for_rehearsal_review",
"verifier_mode": "fixture_only_no_live_read",
"verifier_ready": false,
"live_read_enabled": false,
"expected_signal": "result_capture preview hash 與 audit trail preview 對齊。"
},
{
"verifier_id": "verifier_learning",
"display_name": "Learning verifier rehearsal",
"owner_agent": "hermes",
"status": "approval_required",
"verifier_mode": "fixture_only_no_live_read",
"verifier_ready": false,
"live_read_enabled": false,
"expected_signal": "KM draft / stale guard preview 對齊 owner scope。"
},
{
"verifier_id": "verifier_playbook_trust",
"display_name": "PlayBook trust verifier rehearsal",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"verifier_mode": "fixture_only_no_live_read",
"verifier_ready": false,
"live_read_enabled": false,
"expected_signal": "trust delta preview 與 negative reinforcement rule 對齊。"
},
{
"verifier_id": "verifier_reviewer_queue",
"display_name": "Reviewer queue verifier rehearsal",
"owner_agent": "openclaw",
"status": "approval_required",
"verifier_mode": "fixture_only_no_live_read",
"verifier_ready": false,
"live_read_enabled": false,
"expected_signal": "reviewer queue preview、dedupe key 與 SLA route 對齊。"
},
{
"verifier_id": "verifier_gateway_queue",
"display_name": "Gateway queue verifier rehearsal",
"owner_agent": "nemotron",
"status": "ready_for_rehearsal_review",
"verifier_mode": "fixture_only_no_live_read",
"verifier_ready": false,
"live_read_enabled": false,
"expected_signal": "AwoooI SRE 戰情室 route lock 與 redaction policy 對齊。"
}
],
"rollback_drills": [
{
"drill_id": "rollback_drill_result_capture",
"display_name": "Result capture rollback drill",
"owner_agent": "openclaw",
"status": "ready_for_rehearsal_review",
"rollback_owner_required": true,
"rollback_drill_confirmed": false,
"drill_note": "演練撤回 result capture preview 與 audit trail append不動 production。"
},
{
"drill_id": "rollback_drill_learning",
"display_name": "Learning rollback drill",
"owner_agent": "hermes",
"status": "approval_required",
"rollback_owner_required": true,
"rollback_drill_confirmed": false,
"drill_note": "演練撤回 KM / learning preview 與 stale guard不寫 canonical KM。"
},
{
"drill_id": "rollback_drill_playbook_trust",
"display_name": "PlayBook trust rollback drill",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"rollback_owner_required": true,
"rollback_drill_confirmed": false,
"drill_note": "演練撤回 trust delta preview 與 failure reinforcement不寫 trust history。"
},
{
"drill_id": "rollback_drill_reviewer_queue",
"display_name": "Reviewer queue rollback drill",
"owner_agent": "openclaw",
"status": "approval_required",
"rollback_owner_required": true,
"rollback_drill_confirmed": false,
"drill_note": "演練撤回 reviewer queue preview 與 dedupe key不寫 queue。"
},
{
"drill_id": "rollback_drill_gateway_queue",
"display_name": "Gateway queue rollback drill",
"owner_agent": "nemotron",
"status": "ready_for_rehearsal_review",
"rollback_owner_required": true,
"rollback_drill_confirmed": false,
"drill_note": "演練撤回 Gateway queue preview 與 route lock不發 Telegram。"
}
],
"blocked_live_applies": [
{
"blocker_id": "blocked_writer_apply",
"display_name": "Writer apply blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "writer_apply",
"blocked_until": "P2-127 owner acceptance + maintenance window + rollback owner",
"evidence_hash": "sha256:f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1"
},
{
"blocker_id": "blocked_execution_apply",
"display_name": "Execution apply blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "execution_apply",
"blocked_until": "P2-127 execution acceptance",
"evidence_hash": "sha256:f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2"
},
{
"blocker_id": "blocked_receipt_write",
"display_name": "Receipt write blocked",
"severity": "high",
"status": "approval_required",
"blocked_action": "receipt_write",
"blocked_until": "post-write verifier rehearsal passes",
"evidence_hash": "sha256:f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3"
},
{
"blocker_id": "blocked_result_capture_write",
"display_name": "Result capture write blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "result_capture_write",
"blocked_until": "dual approval + owner acceptance",
"evidence_hash": "sha256:f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4"
},
{
"blocker_id": "blocked_gateway_queue_write",
"display_name": "Gateway queue write blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "gateway_queue_write",
"blocked_until": "AwoooI SRE route owner accepts queue write",
"evidence_hash": "sha256:f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5"
},
{
"blocker_id": "blocked_telegram_send",
"display_name": "Telegram send blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "telegram_send",
"blocked_until": "Gateway queue E2E receipt + SRE route lock",
"evidence_hash": "sha256:f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6"
}
],
"operator_actions": [
{
"action_id": "review_execution_rehearsals",
"display_name": "審查 execution rehearsal",
"owner_agent": "openclaw",
"operator_instruction": "確認每個 rehearsal 仍是 no-write並核對 owner approval record 是否完整。",
"runtime_write_allowed": false
},
{
"action_id": "verify_no_write_apply_checks",
"display_name": "檢查 no-write apply gate",
"owner_agent": "hermes",
"operator_instruction": "逐項核對 owner approval、idempotency replay、payload redaction 與 post-write verifier rehearsal。",
"runtime_write_allowed": false
},
{
"action_id": "inspect_post_write_verifier_rehearsal",
"display_name": "檢查 verifier rehearsal",
"owner_agent": "nemotron",
"operator_instruction": "確認 verifier rehearsal 只看 fixture / preview不讀 canonical runtime target。",
"runtime_write_allowed": false
},
{
"action_id": "confirm_rollback_drills",
"display_name": "確認 rollback drill",
"owner_agent": "openclaw",
"operator_instruction": "確認每個 rollback drill 有 owner、撤回路線與不寫 production 的證據。",
"runtime_write_allowed": false
},
{
"action_id": "hold_live_apply_gate",
"display_name": "維持 live apply gate 關閉",
"owner_agent": "hermes",
"operator_instruction": "P2-126 完成前不得開 writer apply、queue write、Telegram send 或 production write。",
"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": "只顯示 rehearsal id、owner、status、redacted hash 與 operator instruction不顯示 prompt、私有推理、secret、raw payload、chat id 或內部協作內容。"
},
"rollups": {
"execution_rehearsal_count": 5,
"no_write_apply_check_count": 5,
"post_write_verifier_rehearsal_count": 5,
"rollback_drill_count": 5,
"blocked_live_apply_count": 6,
"operator_action_count": 5,
"approval_required_rehearsal_count": 2,
"blocked_rehearsal_count": 1,
"approval_required_check_count": 2,
"blocked_check_count": 1,
"approval_required_verifier_count": 2,
"blocked_verifier_count": 1,
"approval_required_rollback_count": 2,
"blocked_rollback_count": 1,
"critical_blocker_count": 5,
"owner_approval_record_received_count": 0,
"no_write_apply_execution_count": 0,
"post_write_verifier_pass_count": 0,
"rollback_drill_confirmed_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
}
}

View File

@@ -0,0 +1,100 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://awoooi.wooo.work/schemas/ai_agent_result_capture_owner_approved_execution_rehearsal_v1.schema.json",
"title": "AI Agent result capture owner-approved execution rehearsal v1",
"type": "object",
"required": [
"schema_version",
"generated_at",
"program_status",
"source_refs",
"prior_result_capture_owner_promotion_review",
"execution_rehearsal_truth",
"execution_rehearsals",
"no_write_apply_checks",
"post_write_verifier_rehearsals",
"rollback_drills",
"blocked_live_applies",
"operator_actions",
"display_redaction_contract",
"rollups"
],
"properties": {
"schema_version": {
"const": "ai_agent_result_capture_owner_approved_execution_rehearsal_v1"
},
"generated_at": {
"type": "string"
},
"program_status": {
"type": "object"
},
"source_refs": {
"type": "array",
"items": {
"type": "string"
}
},
"prior_result_capture_owner_promotion_review": {
"type": "object"
},
"execution_rehearsal_truth": {
"type": "object"
},
"execution_rehearsals": {
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "object"
}
},
"no_write_apply_checks": {
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "object"
}
},
"post_write_verifier_rehearsals": {
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "object"
}
},
"rollback_drills": {
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "object"
}
},
"blocked_live_applies": {
"type": "array",
"minItems": 6,
"maxItems": 6,
"items": {
"type": "object"
}
},
"operator_actions": {
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "object"
}
},
"display_redaction_contract": {
"type": "object"
},
"rollups": {
"type": "object"
}
},
"additionalProperties": false
}