feat(governance): 新增 owner-approved execution rehearsal
This commit is contained in:
@@ -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 review;P2-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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user