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"
}
]