feat(governance): 新增 result capture no-write readback
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 4m11s
CD Pipeline / post-deploy-checks (push) Successful in 1m56s

This commit is contained in:
Your Name
2026-06-13 20:56:49 +08:00
parent 9ed913cd80
commit 69a536516e
10 changed files with 1642 additions and 1 deletions

View File

@@ -0,0 +1,356 @@
{
"schema_version": "ai_agent_result_capture_no_write_readback_v1",
"generated_at": "2026-06-13T21:05:00+08:00",
"program_status": {
"overall_completion_percent": 100,
"current_priority": "P2",
"current_task_id": "P2-118",
"next_task_id": "P2-119",
"read_only_mode": true,
"runtime_authority": "result_capture_no_write_readback_only_no_capture_or_learning_write",
"status_note": "P2-118 只把 P2-117 reviewer queue no-write readback 整理成 result capture no-write readback不得寫 result capture、learning、PlayBook trust、Gateway queue、Telegram 或 production。"
},
"source_refs": [
"docs/evaluations/ai_agent_reviewer_queue_no_write_readback_2026-06-13.json",
"docs/evaluations/ai_agent_failure_receipt_no_send_replay_2026-06-13.json",
"docs/evaluations/ai_agent_critic_reviewer_result_capture_2026-06-13.json",
"docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md#38-建立-reviewer-queue-no-write-readback"
],
"prior_reviewer_queue_readback": {
"schema_version": "ai_agent_reviewer_queue_no_write_readback_v1",
"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,
"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,
"readiness_note": "P2-117 已正式驗證 reviewer queue no-write readbackP2-118 只建立 result capture no-write readback fixture、field mapping、verifier 與人工操作選項。"
},
"readback_truth": {
"p2_117_reviewer_queue_readback_loaded": true,
"result_capture_readback_package_ready": true,
"result_capture_fixture_ready": true,
"capture_field_mapping_ready": true,
"no_write_verifier_ready": true,
"operator_handoff_ready": true,
"learning_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": "result capture readback 已可審查;真正 result capture write、learning write、PlayBook trust write、Gateway queue write 與 Telegram send 仍全部為 0。"
},
"result_capture_readback_fixtures": [
{
"fixture_id": "result_capture_action_required_preview",
"display_name": "Action-required result capture preview",
"owner_agent": "openclaw",
"source_queue_mapping_id": "failure_receipt_to_manual_repair_review",
"status": "ready_for_owner_review",
"capture_lane": "manual_repair_result_review",
"readback_mode": "no_write_fixture",
"result_capture_write_enabled": false,
"next_manual_action": "審查修復候選、失敗回執與 verifier 結論,確認是否可產出人工修復 result capture 草案。",
"evidence_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
},
{
"fixture_id": "result_capture_no_action_review",
"display_name": "No-action result capture review",
"owner_agent": "hermes",
"source_queue_mapping_id": "no_action_to_manual_decision_review",
"status": "approval_required",
"capture_lane": "manual_no_action_result_review",
"readback_mode": "no_write_fixture",
"result_capture_write_enabled": false,
"next_manual_action": "補齊 no-action 的人工判讀理由、影響範圍與下一次觀察條件,未補齊前不得寫 capture。",
"evidence_hash": "sha256:5656565656565656565656565656565656565656565656565656565656565656"
},
{
"fixture_id": "result_capture_verifier_degraded_hold",
"display_name": "Verifier degraded capture hold",
"owner_agent": "nemotron",
"source_queue_mapping_id": "verifier_degraded_to_rollback_review",
"status": "blocked_by_policy",
"capture_lane": "rollback_or_reverify_result_hold",
"readback_mode": "no_write_fixture",
"result_capture_write_enabled": false,
"next_manual_action": "確認 degraded verifier 是否需要 rollback、reverify 或補 MCP evidence未完成前不得寫 result capture。",
"evidence_hash": "sha256:5757575757575757575757575757575757575757575757575757575757575757"
},
{
"fixture_id": "result_capture_route_lock_review",
"display_name": "Route lock capture review",
"owner_agent": "openclaw",
"source_queue_mapping_id": "route_locked_to_sre_route_review",
"status": "approval_required",
"capture_lane": "sre_route_result_review",
"readback_mode": "no_write_fixture",
"result_capture_write_enabled": false,
"next_manual_action": "確認 AwoooI SRE 戰情室路由與 redaction 條件已固定,舊 bot / 舊群組不得回寫 result。",
"evidence_hash": "sha256:5858585858585858585858585858585858585858585858585858585858585858"
},
{
"fixture_id": "result_capture_owner_acceptance_pending",
"display_name": "Owner acceptance capture pending",
"owner_agent": "nemotron",
"source_queue_mapping_id": "result_capture_to_owner_review",
"status": "blocked_by_policy",
"capture_lane": "owner_acceptance_result_hold",
"readback_mode": "no_write_fixture",
"result_capture_write_enabled": false,
"next_manual_action": "確認 result capture owner、rollback owner、redaction 與 learning 寫入邊界,未通過前不得 promotion。",
"evidence_hash": "sha256:5959595959595959595959595959595959595959595959595959595959595959"
}
],
"capture_field_mappings": [
{
"mapping_id": "incident_id_to_capture_key",
"display_name": "Incident ID to capture key",
"status": "ready",
"source_fixture_id": "result_capture_action_required_preview",
"target_capture": "result_capture_preview",
"capture_write_enabled": false,
"required_owner": "operator_owner",
"evidence_hash": "sha256:5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a"
},
{
"mapping_id": "repair_outcome_to_status",
"display_name": "Repair outcome to status",
"status": "approval_required",
"source_fixture_id": "result_capture_no_action_review",
"target_capture": "result_capture_preview",
"capture_write_enabled": false,
"required_owner": "openclaw_reviewer",
"evidence_hash": "sha256:5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b"
},
{
"mapping_id": "verifier_state_to_capture_verdict",
"display_name": "Verifier state to capture verdict",
"status": "blocked_by_policy",
"source_fixture_id": "result_capture_verifier_degraded_hold",
"target_capture": "result_capture_preview",
"capture_write_enabled": false,
"required_owner": "rollback_owner",
"evidence_hash": "sha256:5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c"
},
{
"mapping_id": "manual_action_to_owner_note",
"display_name": "Manual action to owner note",
"status": "ready",
"source_fixture_id": "result_capture_route_lock_review",
"target_capture": "result_capture_preview",
"capture_write_enabled": false,
"required_owner": "sre_route_owner",
"evidence_hash": "sha256:5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d"
},
{
"mapping_id": "learning_candidate_to_hold_reason",
"display_name": "Learning candidate to hold reason",
"status": "blocked_by_policy",
"source_fixture_id": "result_capture_owner_acceptance_pending",
"target_capture": "result_capture_preview",
"capture_write_enabled": false,
"required_owner": "result_capture_owner",
"evidence_hash": "sha256:5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e"
}
],
"readback_verifier_checks": [
{
"verifier_id": "no_result_capture_write_verifier",
"display_name": "No result capture write verifier",
"owner_agent": "openclaw",
"status": "ready",
"verifies": "result_capture_write_count remains zero",
"failure_if_missing": "若 result capture write 不是 0必須停止 promotion 並標記 unauthorized capture write。",
"live_execution_enabled": false,
"evidence_hash": "sha256:5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f"
},
{
"verifier_id": "no_learning_write_verifier",
"display_name": "No learning write verifier",
"owner_agent": "hermes",
"status": "ready",
"verifies": "learning_write_count remains zero",
"failure_if_missing": "若 learning write 不是 0必須退回 owner acceptance 與 KM review gate。",
"live_execution_enabled": false,
"evidence_hash": "sha256:6060606060606060606060606060606060606060606060606060606060606060"
},
{
"verifier_id": "no_playbook_trust_write_verifier",
"display_name": "No PlayBook trust write verifier",
"owner_agent": "nemotron",
"status": "ready",
"verifies": "playbook_trust_write_count remains zero",
"failure_if_missing": "若 PlayBook trust write 不是 0必須封鎖 result capture readback promotion。",
"live_execution_enabled": false,
"evidence_hash": "sha256:6161616161616161616161616161616161616161616161616161616161616161"
},
{
"verifier_id": "no_gateway_queue_write_verifier",
"display_name": "No Gateway queue write verifier",
"owner_agent": "openclaw",
"status": "approval_required",
"verifies": "gateway_queue_write_count remains zero",
"failure_if_missing": "若 Gateway queue write 不是 0必須退回 P2-117 reviewer queue readback。",
"live_execution_enabled": false,
"evidence_hash": "sha256:6262626262626262626262626262626262626262626262626262626262626262"
},
{
"verifier_id": "capture_redaction_completeness_verifier",
"display_name": "Capture redaction completeness verifier",
"owner_agent": "hermes",
"status": "approval_required",
"verifies": "each result capture preview has redacted evidence and manual owner",
"failure_if_missing": "若缺少 redaction 或 owner 欄位,不能進入 P2-119。",
"live_execution_enabled": false,
"evidence_hash": "sha256:6363636363636363636363636363636363636363636363636363636363636363"
}
],
"blocked_result_capture_writes": [
{
"blocker_id": "result_capture_writer_not_authorized",
"display_name": "Result capture writer not authorized",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "result_capture_write",
"blocked_until": "result_capture_owner_gate_approved",
"evidence_hash": "sha256:6464646464646464646464646464646464646464646464646464646464646464"
},
{
"blocker_id": "learning_write_not_authorized",
"display_name": "Learning write not authorized",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "learning_write",
"blocked_until": "learning_writeback_gate_approved",
"evidence_hash": "sha256:6565656565656565656565656565656565656565656565656565656565656565"
},
{
"blocker_id": "playbook_trust_not_authorized",
"display_name": "PlayBook trust not authorized",
"severity": "high",
"status": "approval_required",
"blocked_action": "playbook_trust_write",
"blocked_until": "playbook_trust_owner_gate_approved",
"evidence_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
},
{
"blocker_id": "gateway_queue_not_authorized",
"display_name": "Gateway queue not authorized",
"severity": "high",
"status": "approval_required",
"blocked_action": "gateway_queue_write",
"blocked_until": "gateway_queue_writer_gate_approved",
"evidence_hash": "sha256:6767676767676767676767676767676767676767676767676767676767676767"
},
{
"blocker_id": "production_write_not_authorized",
"display_name": "Production write not authorized",
"severity": "critical",
"status": "blocked_by_policy",
"blocked_action": "production_write",
"blocked_until": "runtime_execution_gate_approved",
"evidence_hash": "sha256:6868686868686868686868686868686868686868686868686868686868686868"
}
],
"operator_actions": [
{
"action_id": "review_result_capture_preview",
"display_name": "Review result capture preview",
"owner_agent": "openclaw",
"operator_instruction": "審查 5 個 result capture no-write fixture確認每筆都有人工 owner、狀態判定與安全證據 refs。",
"runtime_capture_write_allowed": false
},
{
"action_id": "verify_capture_no_write_counts",
"display_name": "Verify capture no-write counts",
"owner_agent": "nemotron",
"operator_instruction": "確認 result capture、learning、PlayBook trust、Gateway queue、Telegram、production 的 live counter 全部為 0。",
"runtime_capture_write_allowed": false
},
{
"action_id": "confirm_owner_acceptance_fields",
"display_name": "Confirm owner acceptance fields",
"owner_agent": "hermes",
"operator_instruction": "確認 result capture owner、rollback owner、maintenance note、redaction note 與 next manual action 都已齊全。",
"runtime_capture_write_allowed": false
},
{
"action_id": "check_capture_redaction_contract",
"display_name": "Check capture redaction contract",
"owner_agent": "hermes",
"operator_instruction": "確認 result capture preview 不顯示未遮蔽 payload、token、authorization header、私有推理或內部協作內容。",
"runtime_capture_write_allowed": false
},
{
"action_id": "promote_to_p2_119",
"display_name": "Promote to P2-119",
"owner_agent": "nemotron",
"operator_instruction": "只有 no-write verifier 與 capture field mapping 都通過後,才可進入 P2-119 learning writeback no-write readiness。",
"runtime_capture_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、capture lane、狀態、人工下一步、blocked action 與 redacted evidence hash不顯示未遮蔽 payload、token、私有推理或內部協作內容。"
},
"rollups": {
"result_capture_readback_fixture_count": 5,
"capture_field_mapping_count": 5,
"readback_verifier_check_count": 5,
"blocked_result_capture_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
}
}

View File

@@ -0,0 +1,347 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://awoooi.wooo.work/schemas/ai_agent_result_capture_no_write_readback_v1.schema.json",
"title": "AI Agent Result Capture No-write Readback v1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"generated_at",
"program_status",
"source_refs",
"prior_reviewer_queue_readback",
"readback_truth",
"result_capture_readback_fixtures",
"capture_field_mappings",
"readback_verifier_checks",
"blocked_result_capture_writes",
"operator_actions",
"display_redaction_contract",
"rollups"
],
"properties": {
"schema_version": {
"const": "ai_agent_result_capture_no_write_readback_v1"
},
"generated_at": {
"type": "string",
"minLength": 1
},
"program_status": {
"type": "object",
"additionalProperties": false,
"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-118"
},
"next_task_id": {
"const": "P2-119"
},
"read_only_mode": {
"const": true
},
"runtime_authority": {
"const": "result_capture_no_write_readback_only_no_capture_or_learning_write"
},
"status_note": {
"type": "string",
"minLength": 1
}
}
},
"source_refs": {
"$ref": "#/$defs/string_array"
},
"prior_reviewer_queue_readback": {
"type": "object"
},
"readback_truth": {
"type": "object"
},
"result_capture_readback_fixtures": {
"type": "array",
"minItems": 5,
"items": {
"$ref": "#/$defs/result_capture_fixture"
}
},
"capture_field_mappings": {
"type": "array",
"minItems": 5,
"items": {
"$ref": "#/$defs/capture_field_mapping"
}
},
"readback_verifier_checks": {
"type": "array",
"minItems": 5,
"items": {
"$ref": "#/$defs/readback_verifier_check"
}
},
"blocked_result_capture_writes": {
"type": "array",
"minItems": 5,
"items": {
"$ref": "#/$defs/blocked_result_capture_write"
}
},
"operator_actions": {
"type": "array",
"minItems": 5,
"items": {
"$ref": "#/$defs/operator_action"
}
},
"display_redaction_contract": {
"type": "object"
},
"rollups": {
"type": "object"
}
},
"$defs": {
"string_array": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"hash": {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$"
},
"owner_agent": {
"enum": [
"openclaw",
"hermes",
"nemotron"
]
},
"status": {
"enum": [
"ready",
"ready_for_owner_review",
"approval_required",
"blocked_by_policy"
]
},
"severity": {
"enum": [
"high",
"critical"
]
},
"result_capture_fixture": {
"type": "object",
"additionalProperties": false,
"required": [
"fixture_id",
"display_name",
"owner_agent",
"source_queue_mapping_id",
"status",
"capture_lane",
"readback_mode",
"result_capture_write_enabled",
"next_manual_action",
"evidence_hash"
],
"properties": {
"fixture_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"owner_agent": {
"$ref": "#/$defs/owner_agent"
},
"source_queue_mapping_id": {
"type": "string"
},
"status": {
"$ref": "#/$defs/status"
},
"capture_lane": {
"type": "string"
},
"readback_mode": {
"const": "no_write_fixture"
},
"result_capture_write_enabled": {
"const": false
},
"next_manual_action": {
"type": "string",
"minLength": 1
},
"evidence_hash": {
"$ref": "#/$defs/hash"
}
}
},
"capture_field_mapping": {
"type": "object",
"additionalProperties": false,
"required": [
"mapping_id",
"display_name",
"status",
"source_fixture_id",
"target_capture",
"capture_write_enabled",
"required_owner",
"evidence_hash"
],
"properties": {
"mapping_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"status": {
"$ref": "#/$defs/status"
},
"source_fixture_id": {
"type": "string"
},
"target_capture": {
"const": "result_capture_preview"
},
"capture_write_enabled": {
"const": false
},
"required_owner": {
"type": "string"
},
"evidence_hash": {
"$ref": "#/$defs/hash"
}
}
},
"readback_verifier_check": {
"type": "object",
"additionalProperties": false,
"required": [
"verifier_id",
"display_name",
"owner_agent",
"status",
"verifies",
"failure_if_missing",
"live_execution_enabled",
"evidence_hash"
],
"properties": {
"verifier_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"owner_agent": {
"$ref": "#/$defs/owner_agent"
},
"status": {
"$ref": "#/$defs/status"
},
"verifies": {
"type": "string"
},
"failure_if_missing": {
"type": "string"
},
"live_execution_enabled": {
"const": false
},
"evidence_hash": {
"$ref": "#/$defs/hash"
}
}
},
"blocked_result_capture_write": {
"type": "object",
"additionalProperties": false,
"required": [
"blocker_id",
"display_name",
"severity",
"status",
"blocked_action",
"blocked_until",
"evidence_hash"
],
"properties": {
"blocker_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"severity": {
"$ref": "#/$defs/severity"
},
"status": {
"$ref": "#/$defs/status"
},
"blocked_action": {
"type": "string"
},
"blocked_until": {
"type": "string"
},
"evidence_hash": {
"$ref": "#/$defs/hash"
}
}
},
"operator_action": {
"type": "object",
"additionalProperties": false,
"required": [
"action_id",
"display_name",
"owner_agent",
"operator_instruction",
"runtime_capture_write_allowed"
],
"properties": {
"action_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"owner_agent": {
"$ref": "#/$defs/owner_agent"
},
"operator_instruction": {
"type": "string",
"minLength": 1
},
"runtime_capture_write_allowed": {
"const": false
}
}
}
}
}