feat(governance): 新增 result capture writer dry-run fixture
Some checks failed
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / tests (push) Successful in 1m28s
E2E Health Check / e2e-health (push) Failing after 38s
CD Pipeline / build-and-deploy (push) Successful in 4m57s
CD Pipeline / post-deploy-checks (push) Successful in 1m42s

This commit is contained in:
Your Name
2026-06-13 23:57:30 +08:00
parent 6b4b6a7d87
commit cc7809fb3a
10 changed files with 1727 additions and 1 deletions

View File

@@ -0,0 +1,453 @@
{
"schema_version": "ai_agent_result_capture_writer_dry_run_fixture_v1",
"generated_at": "2026-06-14T00:20:00+08:00",
"program_status": {
"overall_completion_percent": 100,
"current_priority": "P2",
"current_task_id": "P2-123",
"next_task_id": "P2-124",
"read_only_mode": true,
"runtime_authority": "result_capture_writer_dry_run_fixture_only_no_live_write",
"status_note": "P2-123 只建立 result capture writer dry-run fixture、receipt preview、idempotency replay 與 rollback rehearsal不得套用 writer 或寫入 production。"
},
"source_refs": [
"docs/evaluations/ai_agent_result_capture_writer_implementation_review_2026-06-13.json",
"docs/evaluations/ai_agent_result_capture_write_gate_review_2026-06-13.json",
"docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md#43-建立-result-capture-writer-implementation-review"
],
"dry_run_truth": {
"p2_122_implementation_review_loaded": true,
"result_capture_writer_dry_run_fixture_ready": true,
"receipt_preview_ready": true,
"idempotency_replay_ready": true,
"rollback_rehearsal_ready": true,
"redaction_preview_ready": true,
"fixture_only_mode": true,
"owner_approval_required": true,
"dual_approval_required": true,
"dry_run_hash_required": true,
"idempotency_key_required": true,
"post_dry_run_verifier_required": true,
"rollback_required": true,
"writer_apply_enabled": false,
"dry_run_execution_enabled": false,
"receipt_write_enabled": 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,
"dual_approval_received_count": 0,
"dry_run_hash_verified_count": 0,
"writer_apply_count": 0,
"dry_run_execution_count": 0,
"receipt_write_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,
"truth_note": "P2-123 把 P2-122 的 writer implementation review 轉成 fixture-only dry-run。所有 live writer、queue、Telegram、Bot API 與 production write 仍為 0。"
},
"writer_dry_run_fixtures": [
{
"fixture_id": "fixture_result_capture_writer",
"display_name": "Result capture writer dry-run fixture",
"owner_agent": "openclaw",
"target_writer": "result_capture_writer",
"target_dry_run": "result_capture_writer_dry_run_fixture",
"status": "ready_for_owner_review",
"input_fixture": "redacted_incident_result_capture_input_v1",
"expected_receipt_preview": "result_capture_receipt_preview_v1",
"idempotency_key": "fixture:result_capture:incident:hash",
"blocked_live_action": "result_capture_writer_apply",
"fixture_only": true,
"runtime_write_enabled": false,
"evidence_hash": "sha256:a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1"
},
{
"fixture_id": "fixture_learning_writer",
"display_name": "Learning writer dry-run fixture",
"owner_agent": "hermes",
"target_writer": "learning_writer",
"target_dry_run": "result_capture_writer_dry_run_fixture",
"status": "approval_required",
"input_fixture": "redacted_learning_draft_input_v1",
"expected_receipt_preview": "learning_receipt_preview_v1",
"idempotency_key": "fixture:learning:incident:owner",
"blocked_live_action": "learning_writer_apply",
"fixture_only": true,
"runtime_write_enabled": false,
"evidence_hash": "sha256:a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2"
},
{
"fixture_id": "fixture_playbook_trust_writer",
"display_name": "PlayBook trust writer dry-run fixture",
"owner_agent": "nemotron",
"target_writer": "playbook_trust_writer",
"target_dry_run": "result_capture_writer_dry_run_fixture",
"status": "blocked_by_policy",
"input_fixture": "redacted_playbook_trust_delta_input_v1",
"expected_receipt_preview": "playbook_trust_receipt_preview_v1",
"idempotency_key": "fixture:playbook_trust:playbook:version",
"blocked_live_action": "playbook_trust_writer_apply",
"fixture_only": true,
"runtime_write_enabled": false,
"evidence_hash": "sha256:a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3"
},
{
"fixture_id": "fixture_reviewer_queue_writer",
"display_name": "Reviewer queue dry-run fixture",
"owner_agent": "openclaw",
"target_writer": "reviewer_queue_writer",
"target_dry_run": "result_capture_writer_dry_run_fixture",
"status": "approval_required",
"input_fixture": "redacted_reviewer_queue_item_input_v1",
"expected_receipt_preview": "reviewer_queue_receipt_preview_v1",
"idempotency_key": "fixture:reviewer_queue:incident:owner",
"blocked_live_action": "reviewer_queue_apply",
"fixture_only": true,
"runtime_write_enabled": false,
"evidence_hash": "sha256:a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4"
},
{
"fixture_id": "fixture_gateway_queue_writer",
"display_name": "Gateway queue dry-run fixture",
"owner_agent": "nemotron",
"target_writer": "gateway_queue_writer",
"target_dry_run": "result_capture_writer_dry_run_fixture",
"status": "ready_for_owner_review",
"input_fixture": "redacted_gateway_queue_envelope_input_v1",
"expected_receipt_preview": "gateway_queue_receipt_preview_v1",
"idempotency_key": "fixture:gateway_queue:sre:route",
"blocked_live_action": "gateway_queue_apply",
"fixture_only": true,
"runtime_write_enabled": false,
"evidence_hash": "sha256:a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5"
}
],
"receipt_previews": [
{
"receipt_id": "receipt_result_capture_preview",
"display_name": "Result capture receipt preview",
"owner_agent": "openclaw",
"status": "ready",
"preview_payload": "incident、decision、verifier、idempotency key、redacted evidence refs",
"redaction_policy": "只顯示紅線後欄位,不顯示原始 payload 或 secret。",
"failure_if_missing": "沒有 receipt preview 時不得進入 writer dry-run。",
"live_receipt_enabled": false
},
{
"receipt_id": "receipt_learning_preview",
"display_name": "Learning receipt preview",
"owner_agent": "hermes",
"status": "approval_required",
"preview_payload": "KM draft、owner review、source refs、stale guard、rollback owner",
"redaction_policy": "不顯示高影響 KM 原文或內部協作內容。",
"failure_if_missing": "沒有 owner-reviewed learning receipt 時不得學習寫入。",
"live_receipt_enabled": false
},
{
"receipt_id": "receipt_playbook_trust_preview",
"display_name": "PlayBook trust receipt preview",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"preview_payload": "trust delta、success/failure evidence、negative reinforcement、rollback criteria",
"redaction_policy": "只顯示 trust delta 摘要與 hash不顯示 raw run payload。",
"failure_if_missing": "沒有 verifier success 與 rollback criteria 時不得更新信任分數。",
"live_receipt_enabled": false
},
{
"receipt_id": "receipt_reviewer_queue_preview",
"display_name": "Reviewer queue receipt preview",
"owner_agent": "openclaw",
"status": "approval_required",
"preview_payload": "reviewer lane、owner route、SLA、dedupe key、manual handoff reason",
"redaction_policy": "不顯示 reviewer 內部註記與未核准欄位。",
"failure_if_missing": "沒有 reviewer queue preview 時不得寫 reviewer queue。",
"live_receipt_enabled": false
},
{
"receipt_id": "receipt_gateway_queue_preview",
"display_name": "Gateway queue receipt preview",
"owner_agent": "nemotron",
"status": "ready",
"preview_payload": "AwoooI SRE 戰情室 route、dedupe、retry、dead-letter、no-secret policy",
"redaction_policy": "只顯示群組邏輯名稱,不顯示 chat id、token 或 Bot API payload。",
"failure_if_missing": "沒有 Gateway queue receipt preview 時不得送 Telegram。",
"live_receipt_enabled": false
}
],
"idempotency_replay_checks": [
{
"check_id": "replay_duplicate_noop",
"display_name": "Duplicate replay no-op",
"owner_agent": "openclaw",
"status": "ready",
"expected_outcome": "同一 idempotency key 重播必須回傳 duplicate-safe receipt preview。",
"failure_if_missing": "缺 duplicate no-op 證據時不得 dry-run writer。",
"live_execution_enabled": false,
"evidence_hash": "sha256:b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1"
},
{
"check_id": "replay_conflict_reject",
"display_name": "Conflict replay reject",
"owner_agent": "hermes",
"status": "approval_required",
"expected_outcome": "同 key 不同 payload hash 必須被 reject並產生人工審查原因。",
"failure_if_missing": "缺 conflict reject 證據時不得打開 writer gate。",
"live_execution_enabled": false,
"evidence_hash": "sha256:b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2"
},
{
"check_id": "replay_retry_same_receipt",
"display_name": "Retry same receipt",
"owner_agent": "openclaw",
"status": "ready",
"expected_outcome": "retry 必須回傳同一 receipt preview不新增 queue item。",
"failure_if_missing": "retry 行為不穩定時不得接 Gateway queue。",
"live_execution_enabled": false,
"evidence_hash": "sha256:b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3"
},
{
"check_id": "replay_rollback_rehearsal",
"display_name": "Rollback replay rehearsal",
"owner_agent": "nemotron",
"status": "approval_required",
"expected_outcome": "rollback rehearsal 必須能指出可撤回欄位、owner 與驗證步驟。",
"failure_if_missing": "缺 rollback rehearsal 時不得允許 PlayBook trust delta。",
"live_execution_enabled": false,
"evidence_hash": "sha256:b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4"
},
{
"check_id": "replay_gateway_queue_noop",
"display_name": "Gateway queue no-op replay",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"expected_outcome": "Gateway queue dry-run 必須維持 no-op不呼叫 Bot API。",
"failure_if_missing": "queue no-op 不成立時不得接 Telegram 實發。",
"live_execution_enabled": false,
"evidence_hash": "sha256:b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5"
}
],
"rollback_rehearsals": [
{
"rehearsal_id": "rollback_result_capture_preview",
"display_name": "Result capture rollback preview",
"owner_agent": "openclaw",
"status": "ready",
"rollback_preview": "撤回 result capture preview、保留 incident link、標記 duplicate-safe rollback receipt。",
"blocked_live_action": "result_capture_writer_apply",
"live_execution_enabled": false
},
{
"rehearsal_id": "rollback_learning_preview",
"display_name": "Learning rollback preview",
"owner_agent": "hermes",
"status": "approval_required",
"rollback_preview": "撤回 KM draft 與 stale guard回到 owner review lane。",
"blocked_live_action": "learning_writer_apply",
"live_execution_enabled": false
},
{
"rehearsal_id": "rollback_playbook_trust_preview",
"display_name": "PlayBook trust rollback preview",
"owner_agent": "nemotron",
"status": "blocked_by_policy",
"rollback_preview": "撤回 trust delta要求 verifier success 與 failure evidence 重算。",
"blocked_live_action": "playbook_trust_writer_apply",
"live_execution_enabled": false
},
{
"rehearsal_id": "rollback_reviewer_queue_preview",
"display_name": "Reviewer queue rollback preview",
"owner_agent": "openclaw",
"status": "ready",
"rollback_preview": "撤回 reviewer queue preview保留人工接手原因與 dedupe key。",
"blocked_live_action": "reviewer_queue_apply",
"live_execution_enabled": false
},
{
"rehearsal_id": "rollback_gateway_queue_preview",
"display_name": "Gateway queue rollback preview",
"owner_agent": "nemotron",
"status": "ready",
"rollback_preview": "撤回 Gateway queue envelope preview不呼叫 Telegram Bot API。",
"blocked_live_action": "gateway_queue_apply",
"live_execution_enabled": false
}
],
"blocked_runtime_writes": [
{
"blocker_id": "blocked_result_capture_writer_apply",
"display_name": "Result capture writer apply blocked",
"severity": "high",
"status": "approval_required",
"blocked_action": "result_capture_writer_apply",
"blocked_until": "dry-run fixture, receipt preview, idempotency replay and rollback rehearsal pass",
"evidence_hash": "sha256:c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1"
},
{
"blocker_id": "blocked_learning_writer_apply",
"display_name": "Learning writer apply blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "learning_writer_apply",
"blocked_until": "KM owner accepts scoped learning draft and rollback rehearsal",
"evidence_hash": "sha256:c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2"
},
{
"blocker_id": "blocked_playbook_trust_writer_apply",
"display_name": "PlayBook trust writer apply blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "playbook_trust_writer_apply",
"blocked_until": "trust delta rollback and verifier success are approved",
"evidence_hash": "sha256:c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"
},
{
"blocker_id": "blocked_reviewer_queue_apply",
"display_name": "Reviewer queue apply blocked",
"severity": "high",
"status": "approval_required",
"blocked_action": "reviewer_queue_apply",
"blocked_until": "reviewer route, dedupe and TTL are approved",
"evidence_hash": "sha256:c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4"
},
{
"blocker_id": "blocked_gateway_queue_apply",
"display_name": "Gateway queue apply blocked",
"severity": "high",
"status": "approval_required",
"blocked_action": "gateway_queue_apply",
"blocked_until": "AwoooI SRE route, no-secret envelope and no-op replay are approved",
"evidence_hash": "sha256:c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5"
},
{
"blocker_id": "blocked_telegram_send_apply",
"display_name": "Telegram send apply blocked",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "telegram_send_apply",
"blocked_until": "delivery receipt gate, Bot API redaction and SRE war room route are approved",
"evidence_hash": "sha256:c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
}
],
"operator_actions": [
{
"action_id": "review_writer_dry_run_fixtures",
"display_name": "Review writer dry-run fixtures",
"owner_agent": "openclaw",
"operator_instruction": "審查 5 個 writer dry-run fixture 是否具備輸入、receipt preview、idempotency key 與 blocked live action。",
"runtime_write_allowed": false
},
{
"action_id": "verify_receipt_preview_contract",
"display_name": "Verify receipt preview contract",
"owner_agent": "hermes",
"operator_instruction": "確認 receipt preview 不含 secret、內部協作內容或 raw runtime payload未通過不得進入 live writer。",
"runtime_write_allowed": false
},
{
"action_id": "replay_idempotency_fixture",
"display_name": "Replay idempotency fixture",
"owner_agent": "nemotron",
"operator_instruction": "重放 duplicate、conflict、retry 與 rollback fixture不一致即退回 P2-122。",
"runtime_write_allowed": false
},
{
"action_id": "rehearse_rollback_preview",
"display_name": "Rehearse rollback preview",
"owner_agent": "nemotron",
"operator_instruction": "確認 rollback preview 指出可撤回欄位、owner、驗證方式與人工接手路徑。",
"runtime_write_allowed": false
},
{
"action_id": "promote_to_p2_124",
"display_name": "Promote to P2-124",
"owner_agent": "openclaw",
"operator_instruction": "只在 P2-123 dry-run fixture 全部通過後,推進到 P2-124本步不執行 live 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": "前端只顯示 dry-run fixture、receipt preview、idempotency replay、rollback rehearsal、owner、狀態與紅線後 evidence hash不得顯示內部協作內容、secret、原始 payload 或私有推理。"
},
"rollups": {
"writer_dry_run_fixture_count": 5,
"receipt_preview_count": 5,
"idempotency_replay_check_count": 5,
"rollback_rehearsal_count": 5,
"blocked_runtime_write_count": 6,
"operator_action_count": 5,
"approval_required_fixture_count": 2,
"blocked_fixture_count": 1,
"approval_required_receipt_count": 2,
"blocked_receipt_count": 1,
"approval_required_replay_count": 2,
"blocked_replay_count": 1,
"approval_required_rollback_count": 1,
"critical_blocker_count": 3,
"owner_approval_received_count": 0,
"dual_approval_received_count": 0,
"dry_run_hash_verified_count": 0,
"writer_apply_count": 0,
"dry_run_execution_count": 0,
"receipt_write_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
},
"prior_result_capture_writer_implementation_review": {
"schema_version": "ai_agent_result_capture_writer_implementation_review_v1",
"writer_implementation_review_count": 5,
"implementation_gate_count": 5,
"post_implementation_verifier_plan_count": 5,
"blocked_runtime_change_count": 6,
"operator_action_count": 5,
"writer_apply_count": 0,
"implementation_applied_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-122 已正式驗證 writer implementation reviewP2-123 只建立 fixture-only dry-run、receipt preview、idempotency replay 與 rollback rehearsal仍不套用 writer。"
}
}

View File

@@ -0,0 +1,231 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://awoooi.local/schemas/ai_agent_result_capture_writer_dry_run_fixture_v1.schema.json",
"title": "AI Agent Result Capture Writer Dry Run Fixture",
"type": "object",
"additionalProperties": true,
"required": [
"schema_version",
"generated_at",
"program_status",
"prior_result_capture_writer_implementation_review",
"dry_run_truth",
"writer_dry_run_fixtures",
"receipt_previews",
"idempotency_replay_checks",
"rollback_rehearsals",
"blocked_runtime_writes",
"operator_actions",
"display_redaction_contract",
"rollups"
],
"properties": {
"schema_version": {
"const": "ai_agent_result_capture_writer_dry_run_fixture_v1"
},
"program_status": {
"type": "object",
"required": [
"overall_completion_percent",
"current_priority",
"current_task_id",
"next_task_id",
"read_only_mode",
"runtime_authority",
"status_note"
],
"properties": {
"overall_completion_percent": {
"const": 100
},
"current_priority": {
"const": "P2"
},
"current_task_id": {
"const": "P2-123"
},
"next_task_id": {
"const": "P2-124"
},
"read_only_mode": {
"const": true
},
"runtime_authority": {
"const": "result_capture_writer_dry_run_fixture_only_no_live_write"
}
}
},
"dry_run_truth": {
"type": "object",
"required": [
"p2_122_implementation_review_loaded",
"fixture_only_mode",
"receipt_preview_ready",
"idempotency_replay_ready",
"rollback_rehearsal_ready",
"writer_apply_enabled",
"dry_run_execution_enabled",
"receipt_write_enabled",
"result_capture_write_enabled",
"learning_write_enabled",
"playbook_trust_write_enabled",
"gateway_queue_write_enabled",
"telegram_send_enabled"
],
"properties": {
"p2_122_implementation_review_loaded": {
"const": true
},
"fixture_only_mode": {
"const": true
},
"receipt_preview_ready": {
"const": true
},
"idempotency_replay_ready": {
"const": true
},
"rollback_rehearsal_ready": {
"const": true
},
"writer_apply_enabled": {
"const": false
},
"dry_run_execution_enabled": {
"const": false
},
"receipt_write_enabled": {
"const": false
},
"result_capture_write_enabled": {
"const": false
},
"learning_write_enabled": {
"const": false
},
"playbook_trust_write_enabled": {
"const": false
},
"gateway_queue_write_enabled": {
"const": false
},
"telegram_send_enabled": {
"const": false
},
"production_write_enabled": {
"const": false
}
}
},
"writer_dry_run_fixtures": {
"type": "array",
"minItems": 5,
"maxItems": 5
},
"receipt_previews": {
"type": "array",
"minItems": 5,
"maxItems": 5
},
"idempotency_replay_checks": {
"type": "array",
"minItems": 5,
"maxItems": 5
},
"rollback_rehearsals": {
"type": "array",
"minItems": 5,
"maxItems": 5
},
"blocked_runtime_writes": {
"type": "array",
"minItems": 6,
"maxItems": 6
},
"operator_actions": {
"type": "array",
"minItems": 5,
"maxItems": 5
},
"display_redaction_contract": {
"type": "object",
"properties": {
"redaction_required": {
"const": true
},
"secret_value_display_allowed": {
"const": false
},
"internal_collaboration_content_display_allowed": {
"const": false
}
}
},
"rollups": {
"type": "object",
"required": [
"writer_dry_run_fixture_count",
"receipt_preview_count",
"idempotency_replay_check_count",
"rollback_rehearsal_count",
"blocked_runtime_write_count",
"operator_action_count",
"writer_apply_count",
"dry_run_execution_count",
"receipt_write_count",
"result_capture_write_count",
"learning_write_count",
"playbook_trust_write_count",
"gateway_queue_write_count",
"telegram_send_count"
],
"properties": {
"writer_dry_run_fixture_count": {
"const": 5
},
"receipt_preview_count": {
"const": 5
},
"idempotency_replay_check_count": {
"const": 5
},
"rollback_rehearsal_count": {
"const": 5
},
"blocked_runtime_write_count": {
"const": 6
},
"operator_action_count": {
"const": 5
},
"writer_apply_count": {
"const": 0
},
"dry_run_execution_count": {
"const": 0
},
"receipt_write_count": {
"const": 0
},
"result_capture_write_count": {
"const": 0
},
"learning_write_count": {
"const": 0
},
"playbook_trust_write_count": {
"const": 0
},
"gateway_queue_write_count": {
"const": 0
},
"telegram_send_count": {
"const": 0
},
"production_write_count": {
"const": 0
}
}
}
}
}