From ecc0ef3d3f7c8bbafdbd0090dbea5280756e5439 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 19 Jun 2026 02:35:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E5=AE=8C=E6=88=90=20P2-411=20?= =?UTF-8?q?=E6=B2=BB=E7=90=86=E5=8D=A1=E7=89=87=E7=B9=81=E4=B8=AD=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/messages/zh-TW.json | 72 +++++------ .../tabs/automation-inventory-tab.tsx | 14 +- ...owner_acceptance_event_bus_2026-06-19.json | 120 +++++++++--------- 3 files changed, 103 insertions(+), 103 deletions(-) diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 6bbaf1b7..ad9179b7 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -4148,46 +4148,46 @@ } }, "actionOwnerEventBus": { - "title": "P2-411 Owner Acceptance / 交接事件總線", - "subtitle": "{current} → {next};owner 驗收 lane {lanes};阻擋中的 runtime 操作 {blocked}。", + "title": "P2-411 負責人回覆驗收 / 交接事件總線", + "subtitle": "{current} → {next};負責人驗收通道 {lanes};阻擋中的執行期操作 {blocked}。", "badges": { - "mode": "no-write 事件總線", + "mode": "無寫入事件總線", "events": "交接事件 {count}", - "live": "live total {count}" + "live": "正式寫入總數 {count}" }, "metrics": { "overall": "完成度", - "lanes": "Owner 驗收 lane", + "lanes": "負責人驗收通道", "medium": "中風險", "high": "高風險", - "critical": "Critical", + "critical": "極高風險", "events": "交接事件", "rag": "RAG 提案", - "gates": "Verifier gates", - "fields": "Owner 欄位", - "live": "Live 寫入" + "gates": "驗證關卡", + "fields": "負責人欄位", + "live": "正式寫入" }, "sections": { - "lanes": "Owner acceptance lanes", - "boundaries": "No-write 邊界", + "lanes": "負責人驗收通道", + "boundaries": "無寫入邊界", "events": "交接事件", "rag": "RAG 記憶提案", - "gates": "Verifier gates", - "truth": "事件總線 truth" + "gates": "驗證關卡", + "truth": "事件總線事實" }, "labels": { - "fields": "owner 欄位 {count}", - "sideEffects": "side effects {count}", - "eventBus": "事件總線 publish", - "publishTotal": "publish total {count}", + "fields": "負責人欄位 {count}", + "sideEffects": "副作用 {count}", + "eventBus": "事件總線發布", + "publishTotal": "發布總數 {count}", "ragWrite": "RAG / KM 寫入", - "ragDetail": "proposal {count}", + "ragDetail": "提案 {count}", "telegram": "Telegram 實發", - "queueBotWorker": "queue {queue} / bot {bot} / worker {worker}", - "proposal": "status {status}", - "generated": "generated {generated}", - "redaction": "redaction {value}", - "ownerAccepted": "owner accepted {count}" + "queueBotWorker": "佇列 {queue} / Bot {bot} / worker {worker}", + "proposal": "狀態 僅提案不寫入", + "generated": "產生時間 {generated}", + "redaction": "脫敏 {value}", + "ownerAccepted": "已接受 {count}" }, "agents": { "openclaw": "OpenClaw", @@ -4198,23 +4198,23 @@ "devops": "DevOps" }, "riskTiers": { - "low": "low", - "medium": "medium", - "high": "high", - "critical": "critical" + "low": "低風險", + "medium": "中風險", + "high": "高風險", + "critical": "極高風險" }, "statuses": { - "blocked_no_external_response": "no external response", - "blocked_missing_fields": "missing fields", - "candidate_only_no_write": "candidate only" + "blocked_no_external_response": "尚無外部回覆", + "blocked_missing_fields": "缺少欄位", + "candidate_only_no_write": "僅候選不寫入" }, "stages": { - "owner_response_hold": "owner hold", - "owner_response_rejection": "owner rejection", - "candidate_ready_no_write": "candidate ready", - "handoff_request": "handoff request", - "rag_memory_proposal": "RAG proposal", - "no_send_rehearsal": "no-send rehearsal" + "owner_response_hold": "負責人回覆暫停", + "owner_response_rejection": "負責人回覆拒收", + "candidate_ready_no_write": "候選就緒不寫入", + "handoff_request": "交接請求", + "rag_memory_proposal": "RAG 記憶提案", + "no_send_rehearsal": "不發送演練" } }, "hostRunawayAiops": { diff --git a/apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx b/apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx index a922c5d9..1a1f0dea 100644 --- a/apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx +++ b/apps/web/src/app/[locale]/governance/tabs/automation-inventory-tab.tsx @@ -5198,23 +5198,23 @@ export function AutomationInventoryTab() {
@@ -5275,7 +5275,7 @@ export function AutomationInventoryTab() { - +
diff --git a/docs/evaluations/ai_agent_action_owner_acceptance_event_bus_2026-06-19.json b/docs/evaluations/ai_agent_action_owner_acceptance_event_bus_2026-06-19.json index 3a02de23..6db48682 100644 --- a/docs/evaluations/ai_agent_action_owner_acceptance_event_bus_2026-06-19.json +++ b/docs/evaluations/ai_agent_action_owner_acceptance_event_bus_2026-06-19.json @@ -8,7 +8,7 @@ "next_task_id": "P2-412", "read_only_mode": true, "runtime_authority": "agent_action_owner_acceptance_event_bus_no_write_committed_snapshot", - "status_note": "P2-411 承接 P2-409 高風險 Owner Review Queue 與 P2-410 行動審計帳本,把 owner response acceptance、Agent handoff event 與 RAG memory proposal 固定成 no-write event bus 基線;目前只允許 committed snapshot 與治理頁讀回,不 publish event、不寫 KM、不送 Telegram。" + "status_note": "P2-411 承接 P2-409 高風險負責人審核佇列與 P2-410 行動審計帳本,把負責人回覆驗收、Agent 交接事件與 RAG 記憶提案固定成無寫入事件總線基線;目前只允許已提交快照與治理頁讀回,不發布事件、不寫 KM、不送 Telegram。" }, "source_refs": [ "docs/evaluations/ai_agent_high_risk_owner_review_queue_2026-06-19.json", @@ -24,8 +24,8 @@ "endpoint": "GET /api/v1/agents/agent-high-risk-owner-review-queue", "owner_agent": "openclaw", "status": "loaded", - "key_readback": "Queue item 7、approval packet 7、rejection guard 8、blocked runtime action 42;owner response received / accepted 皆為 0。", - "next_action": "P2-411 將 queue item 轉成 owner acceptance lane,仍不得離開 paused / blocked 狀態。" + "key_readback": "佇列項目 7、批准封包 7、拒收規則 8、阻擋中的執行期操作 42;負責人回覆收件 / 接受皆為 0。", + "next_action": "P2-411 將佇列項目轉成負責人驗收通道,仍不得離開暫停 / 阻擋狀態。" }, { "readback_id": "p2_410_action_audit_ledger", @@ -34,8 +34,8 @@ "endpoint": "GET /api/v1/agents/agent-action-audit-ledger", "owner_agent": "nemotron", "status": "loaded", - "key_readback": "Audit event template 8、verifier receipt gate 5、required audit fields 48;audit DB / timeline / KM / Telegram / production write 皆為 0。", - "next_action": "P2-411 將 audit event template 提升為 no-write handoff event template,不 publish runtime event bus。" + "key_readback": "審計事件模板 8、驗證回執關卡 5、必要審計欄位 48;審計 DB / 時間線 / KM / Telegram / 正式環境寫入皆為 0。", + "next_action": "P2-411 將審計事件模板提升為無寫入交接事件模板,不發布執行期事件總線。" }, { "readback_id": "agent_communication_learning_contract", @@ -44,8 +44,8 @@ "endpoint": "GET /api/v1/agents/agent-communication-learning-contract", "owner_agent": "hermes", "status": "loaded", - "key_readback": "OpenClaw / Hermes / NemoTron 溝通、學習與記錄契約已存在,但 learning write、KM write、Telegram send 與 runtime worker 尚未開。", - "next_action": "P2-411 只建立 RAG memory proposal lane,等待 owner acceptance 與 redaction gate。" + "key_readback": "OpenClaw / Hermes / NemoTron 溝通、學習與記錄契約已存在,但學習寫入、KM 寫入、Telegram 實發與執行期 worker 尚未開。", + "next_action": "P2-411 只建立 RAG 記憶提案通道,等待負責人驗收與脫敏關卡。" }, { "readback_id": "agent_12_war_room", @@ -54,8 +54,8 @@ "endpoint": "GET /api/v1/agents/agent-12-agent-war-room", "owner_agent": "openclaw", "status": "loaded", - "key_readback": "12-Agent 分工與 handoff 概念已可視化;目前仍是戰情室 readback,沒有 runtime delegation write。", - "next_action": "P2-411 將 agent handoff 轉成可審計 event template,保持 no-write。" + "key_readback": "12-Agent 分工與交接概念已可視化;目前仍是戰情室讀回,沒有執行期委派寫入。", + "next_action": "P2-411 將 Agent 交接轉成可審計事件模板,保持無寫入。" } ], "event_bus_truth": { @@ -110,7 +110,7 @@ "host_write_count_24h": 0, "kubectl_action_count_24h": 0, "destructive_operation_count_24h": 0, - "truth_note": "P2-411 是 owner acceptance / handoff / RAG proposal 的 no-write event bus 基線;沒有任何外部正式回覆被收件或接受,也沒有任何事件 publish、KM 寫入、Telegram 實發、worker dispatch 或 production write。" + "truth_note": "P2-411 是負責人驗收、Agent 交接與 RAG 提案的無寫入事件總線基線;沒有任何外部正式回覆被收件或接受,也沒有任何事件發布、KM 寫入、Telegram 實發、worker 派工或正式環境寫入。" }, "owner_acceptance_lanes": [ { @@ -119,7 +119,7 @@ "owner_agent": "openclaw", "risk_tier": "medium", "source_readback_ids": ["p2_410_action_audit_ledger"], - "required_owner_fields": ["owner_role", "approved_risk_scope", "allowed_candidate_ids", "dry_run_scope", "rollback_owner", "postcheck_plan"], + "required_owner_fields": ["負責人角色", "核准風險範圍", "允許候選項目", "乾跑範圍", "回復負責人", "後檢計畫"], "required_evidence_refs": ["audit_low_risk_candidate_classified", "audit_medium_risk_dry_run_hold"], "acceptance_status": "blocked_no_external_response", "acceptance_decision": "not_evaluated", @@ -131,15 +131,15 @@ "telegram_send_allowed": false, "rag_write_allowed": false, "side_effect_count": 0, - "next_gate": "P2-412 fixture-only dry-run worker receipt rehearsal" + "next_gate": "P2-412 僅 fixture 的 worker 回執乾跑演練" }, { "lane_id": "high_risk_owner_packet_acceptance", - "display_name": "高風險 owner 封包驗收", + "display_name": "高風險負責人封包驗收", "owner_agent": "openclaw", "risk_tier": "high", "source_readback_ids": ["p2_409_high_risk_owner_queue", "p2_410_action_audit_ledger"], - "required_owner_fields": ["owner_role", "decision", "decision_reason", "affected_scope", "approval_packet_id", "rollback_owner", "postcheck_evidence_ref"], + "required_owner_fields": ["負責人角色", "決策", "決策理由", "影響範圍", "批准封包編號", "回復負責人", "後檢證據引用"], "required_evidence_refs": ["approval_packet_ref", "audit_high_risk_owner_queue_pause"], "acceptance_status": "blocked_no_external_response", "acceptance_decision": "not_evaluated", @@ -151,7 +151,7 @@ "telegram_send_allowed": false, "rag_write_allowed": false, "side_effect_count": 0, - "next_gate": "P2-412 fixture-only dry-run worker receipt rehearsal" + "next_gate": "P2-412 僅 fixture 的 worker 回執乾跑演練" }, { "lane_id": "telegram_egress_acceptance", @@ -159,7 +159,7 @@ "owner_agent": "hermes", "risk_tier": "high", "source_readback_ids": ["p2_409_high_risk_owner_queue", "p2_410_action_audit_ledger"], - "required_owner_fields": ["canonical_room_env", "message_shape_contract", "redaction_proof", "delivery_receipt_expectation", "dedupe_key", "rollback_owner"], + "required_owner_fields": ["標準群組環境變數", "訊息格式契約", "脫敏證明", "送達回執期望", "去重鍵", "回復負責人"], "required_evidence_refs": ["packet_high_live_telegram_gateway_send", "audit_sre_digest_no_send_preview", "audit_telegram_no_new_bypass_guard"], "acceptance_status": "blocked_no_external_response", "acceptance_decision": "not_evaluated", @@ -171,7 +171,7 @@ "telegram_send_allowed": false, "rag_write_allowed": false, "side_effect_count": 0, - "next_gate": "P2-412 no-send delivery rehearsal only" + "next_gate": "P2-412 僅不發送送達演練" }, { "lane_id": "rag_memory_learning_acceptance", @@ -179,7 +179,7 @@ "owner_agent": "hermes", "risk_tier": "medium", "source_readback_ids": ["p2_410_action_audit_ledger", "agent_communication_learning_contract"], - "required_owner_fields": ["knowledge_scope", "source_event_ids", "redaction_attestation", "forgetting_policy", "rollback_owner", "verifier_plan"], + "required_owner_fields": ["知識範圍", "來源事件編號", "脫敏證明", "遺忘政策", "回復負責人", "驗證計畫"], "required_evidence_refs": ["audit_result_route_writeback_blocked", "agent_communication_learning_contract"], "acceptance_status": "blocked_no_external_response", "acceptance_decision": "not_evaluated", @@ -191,7 +191,7 @@ "telegram_send_allowed": false, "rag_write_allowed": false, "side_effect_count": 0, - "next_gate": "P2-412 RAG fixture receipt rehearsal" + "next_gate": "P2-412 RAG fixture 回執演練" }, { "lane_id": "handoff_event_bus_acceptance", @@ -199,7 +199,7 @@ "owner_agent": "nemotron", "risk_tier": "medium", "source_readback_ids": ["p2_410_action_audit_ledger", "agent_12_war_room"], - "required_owner_fields": ["producer_agent", "consumer_agent", "handoff_reason", "accepted_scope", "verifier_gate_id", "failure_route"], + "required_owner_fields": ["產生方 Agent", "接手方 Agent", "交接理由", "接受範圍", "驗證關卡編號", "失敗路由"], "required_evidence_refs": ["agent_12_war_room", "audit_result_route_writeback_blocked"], "acceptance_status": "blocked_no_external_response", "acceptance_decision": "not_evaluated", @@ -211,15 +211,15 @@ "telegram_send_allowed": false, "rag_write_allowed": false, "side_effect_count": 0, - "next_gate": "P2-412 event bus fixture publish rehearsal" + "next_gate": "P2-412 事件總線 fixture 發布演練" }, { "lane_id": "critical_secret_cost_acceptance", - "display_name": "Critical secret / 費用邊界驗收", + "display_name": "極高風險機密 / 費用邊界驗收", "owner_agent": "security", "risk_tier": "critical", "source_readback_ids": ["p2_409_high_risk_owner_queue", "p2_410_action_audit_ledger"], - "required_owner_fields": ["secret_name_only", "paid_provider_scope", "privacy_egress_scope", "cost_cap", "joint_owner", "rollback_owner", "audit_reason"], + "required_owner_fields": ["僅允許機密名稱", "付費供應商範圍", "隱私外傳範圍", "費用上限", "共同負責人", "回復負責人", "審計理由"], "required_evidence_refs": ["packet_critical_secret_paid_provider_boundary", "audit_critical_runtime_action_rejected"], "acceptance_status": "blocked_no_external_response", "acceptance_decision": "not_evaluated", @@ -231,20 +231,20 @@ "telegram_send_allowed": false, "rag_write_allowed": false, "side_effect_count": 0, - "next_gate": "security and cost joint owner envelope" + "next_gate": "安全與費用共同負責人封包" } ], "handoff_event_templates": [ { "event_id": "event_owner_response_missing", - "display_name": "Owner response 缺口 hold 事件", + "display_name": "負責人回覆缺口暫停事件", "producer_agent": "openclaw", "consumer_agent": "hermes", "event_stage": "owner_response_hold", "risk_tier": "high", "source_lane_ids": ["high_risk_owner_packet_acceptance", "telegram_egress_acceptance"], "required_event_fields": ["lane_id", "missing_owner_fields", "blocked_action", "redacted_evidence_ref", "next_gate"], - "blocked_writes": ["event bus publish", "Gateway queue write", "Telegram send", "runtime worker dispatch"], + "blocked_writes": ["事件總線發布", "Gateway 佇列寫入", "Telegram 實發", "執行期 worker 派工"], "event_bus_write_allowed": false, "audit_db_write_allowed": false, "timeline_write_allowed": false, @@ -254,18 +254,18 @@ "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, - "next_gate": "owner envelope completeness check" + "next_gate": "負責人封包完整性檢查" }, { "event_id": "event_owner_response_rejected", - "display_name": "Owner response 拒收事件", + "display_name": "負責人回覆拒收事件", "producer_agent": "security", "consumer_agent": "openclaw", "event_stage": "owner_response_rejection", "risk_tier": "critical", "source_lane_ids": ["critical_secret_cost_acceptance"], "required_event_fields": ["lane_id", "rejection_guard_id", "redaction_state", "cost_boundary_state", "operator_next_step"], - "blocked_writes": ["secret read", "paid API call", "provider switch", "production write"], + "blocked_writes": ["機密讀取", "付費 API 呼叫", "供應商切換", "正式環境寫入"], "event_bus_write_allowed": false, "audit_db_write_allowed": false, "timeline_write_allowed": false, @@ -275,18 +275,18 @@ "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, - "next_gate": "security owner redacted resubmission" + "next_gate": "安全負責人脫敏後重送" }, { "event_id": "event_owner_response_candidate_ready", - "display_name": "Owner response 候選 ready 事件", + "display_name": "負責人回覆候選就緒事件", "producer_agent": "openclaw", "consumer_agent": "nemotron", "event_stage": "candidate_ready_no_write", "risk_tier": "medium", "source_lane_ids": ["low_medium_worker_scope_acceptance"], "required_event_fields": ["candidate_ids", "allowed_scope", "dry_run_only", "rollback_owner", "postcheck_plan"], - "blocked_writes": ["runtime worker dispatch", "receipt production write", "KM write", "PlayBook trust write"], + "blocked_writes": ["執行期 worker 派工", "正式回執寫入", "KM 寫入", "PlayBook 信任分數寫入"], "event_bus_write_allowed": false, "audit_db_write_allowed": false, "timeline_write_allowed": false, @@ -296,7 +296,7 @@ "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, - "next_gate": "fixture-only dry-run receipt rehearsal" + "next_gate": "僅 fixture 的乾跑回執演練" }, { "event_id": "event_agent_handoff_requested", @@ -307,7 +307,7 @@ "risk_tier": "medium", "source_lane_ids": ["handoff_event_bus_acceptance"], "required_event_fields": ["producer_agent", "consumer_agent", "handoff_reason", "accepted_scope", "failure_route", "receipt_expectation"], - "blocked_writes": ["event bus publish", "timeline write", "task assignment write", "Telegram send"], + "blocked_writes": ["事件總線發布", "時間線寫入", "任務指派寫入", "Telegram 實發"], "event_bus_write_allowed": false, "audit_db_write_allowed": false, "timeline_write_allowed": false, @@ -317,7 +317,7 @@ "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, - "next_gate": "handoff receipt fixture rehearsal" + "next_gate": "交接回執 fixture 演練" }, { "event_id": "event_rag_memory_proposal", @@ -328,7 +328,7 @@ "risk_tier": "medium", "source_lane_ids": ["rag_memory_learning_acceptance"], "required_event_fields": ["proposal_id", "target_store", "redaction_checks", "forgetting_policy", "verifier_plan"], - "blocked_writes": ["KM write", "embedding write", "PlayBook trust write", "fine-tune dataset write"], + "blocked_writes": ["KM 寫入", "embedding 寫入", "PlayBook 信任分數寫入", "微調資料集寫入"], "event_bus_write_allowed": false, "audit_db_write_allowed": false, "timeline_write_allowed": false, @@ -338,18 +338,18 @@ "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, - "next_gate": "RAG proposal owner acceptance" + "next_gate": "RAG 提案負責人驗收" }, { "event_id": "event_telegram_no_send_rehearsal", - "display_name": "Telegram no-send rehearsal 事件", + "display_name": "Telegram 不發送演練事件", "producer_agent": "hermes", "consumer_agent": "sre", "event_stage": "no_send_rehearsal", "risk_tier": "high", "source_lane_ids": ["telegram_egress_acceptance"], "required_event_fields": ["preview_hash", "dedupe_key", "canonical_room_env", "no_send_boundary", "delivery_receipt_expectation"], - "blocked_writes": ["Gateway queue write", "Telegram send", "Bot API call", "receipt production write"], + "blocked_writes": ["Gateway 佇列寫入", "Telegram 實發", "Bot API 呼叫", "正式回執寫入"], "event_bus_write_allowed": false, "audit_db_write_allowed": false, "timeline_write_allowed": false, @@ -359,15 +359,15 @@ "telegram_send_allowed": false, "production_write_allowed": false, "side_effect_count": 0, - "next_gate": "no-send fixture receipt rehearsal" + "next_gate": "不發送 fixture 回執演練" } ], "rag_memory_proposals": [ { "proposal_id": "rag_acceptance_contract", - "display_name": "Owner acceptance 合約記憶提案", + "display_name": "負責人驗收合約記憶提案", "owner_agent": "hermes", - "target_store": "knowledge_entries", + "target_store": "知識條目草稿庫", "source_event_ids": ["event_owner_response_missing", "event_owner_response_candidate_ready"], "required_redaction_checks": ["no secret value", "no unredacted prompt", "redacted evidence ref only"], "proposal_status": "proposal_only_no_write", @@ -380,7 +380,7 @@ "proposal_id": "rag_handoff_outcome", "display_name": "Agent 交接結果記憶提案", "owner_agent": "nemotron", - "target_store": "agent_handoff_memory", + "target_store": "Agent 交接記憶草稿庫", "source_event_ids": ["event_agent_handoff_requested"], "required_redaction_checks": ["agent ids only", "no private reasoning", "no unsafe payload"], "proposal_status": "proposal_only_no_write", @@ -393,7 +393,7 @@ "proposal_id": "rag_rejection_guard", "display_name": "拒收規則記憶提案", "owner_agent": "security", - "target_store": "security_rejection_playbooks", + "target_store": "安全拒收 PlayBook 草稿庫", "source_event_ids": ["event_owner_response_rejected"], "required_redaction_checks": ["secret name only", "no token hash", "no payload sample"], "proposal_status": "proposal_only_no_write", @@ -404,9 +404,9 @@ }, { "proposal_id": "rag_no_send_receipt", - "display_name": "No-send receipt 記憶提案", + "display_name": "不發送回執記憶提案", "owner_agent": "sre", - "target_store": "notification_receipt_memory", + "target_store": "通知回執記憶草稿庫", "source_event_ids": ["event_telegram_no_send_rehearsal"], "required_redaction_checks": ["dedupe key only", "no chat id value", "no message payload"], "proposal_status": "proposal_only_no_write", @@ -419,60 +419,60 @@ "verifier_gates": [ { "gate_id": "gate_owner_envelope_complete", - "display_name": "Owner envelope 完整性", + "display_name": "負責人封包完整性", "owner_agent": "openclaw", "required_checks": ["owner_role exists", "decision exists", "affected_scope exists", "rollback_owner exists", "postcheck_plan exists"], - "failure_if_missing": "Owner envelope 欄位不完整時,只能維持 blocked_no_external_response。", + "failure_if_missing": "負責人封包欄位不完整時,只能維持尚無外部回覆的阻擋狀態。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_redacted_evidence_only", - "display_name": "只允許脫敏 evidence", + "display_name": "只允許脫敏證據", "owner_agent": "security", "required_checks": ["no secret value", "no raw payload", "no private reasoning", "metadata refs only"], - "failure_if_missing": "未遮罩資料不得進入 event template 或 RAG proposal。", + "failure_if_missing": "未遮罩資料不得進入事件模板或 RAG 提案。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_no_event_bus_publish", - "display_name": "禁止 event bus publish", + "display_name": "禁止事件總線發布", "owner_agent": "nemotron", "required_checks": ["event_bus_publish_count=0", "worker_dispatch_count=0", "timeline_write_count=0"], - "failure_if_missing": "任何 publish / dispatch / write 非 0 都不能宣稱 P2-411 no-write baseline。", + "failure_if_missing": "任何發布、派工或寫入非 0 都不能宣稱 P2-411 無寫入基線。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_no_send_no_queue", - "display_name": "No-send / no-queue 邊界", + "display_name": "不發送 / 不入佇列邊界", "owner_agent": "sre", "required_checks": ["gateway_queue_write_count=0", "telegram_send_count=0", "bot_api_call_count=0"], - "failure_if_missing": "Telegram 或 Gateway 任一實發非 0 時必須退回 high-risk owner queue。", + "failure_if_missing": "Telegram 或 Gateway 任一實發非 0 時必須退回高風險負責人佇列。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_rag_proposal_only", - "display_name": "RAG 只允許 proposal", + "display_name": "RAG 只允許提案", "owner_agent": "hermes", "required_checks": ["km_write_count=0", "embedding_write_count=0", "playbook_trust_write_count=0"], - "failure_if_missing": "RAG 只能產 proposal,不得直接寫 knowledge store 或 trust score。", + "failure_if_missing": "RAG 只能產生提案,不得直接寫入知識庫或信任分數。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false }, { "gate_id": "gate_rollback_postcheck_required", - "display_name": "必須具備 rollback / postcheck", + "display_name": "必須具備回復 / 後檢", "owner_agent": "sre", "required_checks": ["rollback_owner exists", "postcheck_plan exists", "failure_route exists", "stop_condition exists"], - "failure_if_missing": "缺 rollback / postcheck 的 acceptance lane 不能進入 P2-412 fixture rehearsal。", + "failure_if_missing": "缺少回復或後檢的驗收通道不能進入 P2-412 fixture 演練。", "live_verifier_allowed": false, "receipt_write_allowed": false, "runtime_action_allowed": false @@ -547,13 +547,13 @@ { "task_id": "P2-412", "priority": "P0", - "summary": "建立 fixture-only dry-run worker receipt rehearsal,使用 P2-411 acceptance lane 和 handoff event template,但不 publish live event bus。", + "summary": "建立僅 fixture 的 worker 回執乾跑演練,使用 P2-411 驗收通道與交接事件模板,但不發布正式事件總線。", "gate": "event_bus_publish=0 / worker_dispatch=0 / Telegram send=0 until owner acceptance is real and redacted" }, { "task_id": "P2-413", "priority": "P0", - "summary": "把 P2-411 no-write event bus 投影到 Runs、Work Items、SRE digest preview 與治理頁,但不新增 action button。", + "summary": "把 P2-411 無寫入事件總線投影到 Runs、Work Items、SRE 摘要預覽與治理頁,但不新增操作按鈕。", "gate": "frontend projection only; no Gateway queue write or production receipt write" } ]