diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 098c15bf..819ca65c 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -142,8 +142,8 @@ "sreLabel": "SRE 戰情室", "sreDetail": "action-required {action}、approval-required {approval} 才進集中路由。", "sreMeta": "目標:AwoooI SRE 戰情室,其他路由需例外批准", - "runtimeLabel": "Runtime Gate", - "runtimeDetail": "發通知、reload、restart、endpoint change、secret read 與修復套用仍鎖住。", + "runtimeLabel": "執行期 Gate", + "runtimeDetail": "發通知、reload、restart、端點變更、機密讀取 與修復套用仍鎖住。", "runtimeMeta": "只讀顯示;不代表自動修復已授權" }, "scope": { @@ -738,11 +738,11 @@ }, "execution": { "module": "PlayBook / MCP / Ansible", - "owns": "工具調查、dry-run、check-mode、apply gate與修復證據" + "owns": "工具調查、乾跑、check-mode、apply gate與修復證據" }, "learning": { "module": "KM / Governance", - "owns": "stale KM、owner review、SLO、事後學習與規則更新" + "owns": "stale KM、負責人審查、SLO、事後學習與規則更新" } } }, @@ -1049,7 +1049,7 @@ }, "verify": { "metric": "stale {stale} / ratio {ratio}", - "detail": "owner review pending {pending},completed {completed},距離門檻剩 {remaining}" + "detail": "負責人審查 pending {pending},completed {completed},距離門檻剩 {remaining}" } }, "values": { @@ -1921,7 +1921,7 @@ "badge": "KM 治理警戒", "readback": "Hermes / AwoooP 只讀回讀", "title": "KM 自動化掌控台", - "subtitle": "先看 stale ratio、owner review、ready / blocked 與寫回數,再進入條目列表;這裡把 KM、PlayBook、腳本、排程與 Verifier 的沉澱狀態前移到首屏。", + "subtitle": "先看 stale ratio、負責人審查、ready / blocked 與寫回數,再進入條目列表;這裡把 KM、PlayBook、腳本、排程與 Verifier 的沉澱狀態前移到首屏。", "openWorkItems": "處理 Owner Review", "card": { "staleRatio": "Stale Ratio", @@ -1965,11 +1965,11 @@ }, "monitoring": { "title": "排程 / 監控規則", - "detail": "含告警 / 監控訊號 {ready} 筆;owner review 待處理 {pending} 筆。" + "detail": "含告警 / 監控訊號 {ready} 筆;負責人審查 待處理 {pending} 筆。" }, "verifier": { "title": "Verifier 回寫", - "detail": "已批准或完成驗證 {ready} 筆;待 owner review {pending} 筆。" + "detail": "已批准或完成驗證 {ready} 筆;待 負責人審查 {pending} 筆。" } } }, @@ -2359,7 +2359,7 @@ "schedule": "排程", "fields": "必填欄位", "checks": "Verifier 檢查", - "ownerRequired": "需要 owner review", + "ownerRequired": "需要 負責人審查", "ownerOptional": "Owner review 可後補", "gateClosed": "runtime gate 0", "gateOpen": "runtime gate 已開", @@ -3597,16 +3597,16 @@ } }, "redisDryRunGate": { - "title": "P2-403C Redis Dry-run Gate", + "title": "P2-403C Redis 乾跑 Gate", "source": "{generated} · {current} → {next}", "consumerTitle": "Consumer group 乾跑契約", "consumerDetail": "{group} · {namespace} · fixture fields {fields}", - "envelopeTitle": "Handoff envelope", - "redactionTitle": "Dry-run 顯示紅線", + "envelopeTitle": "交接封套", + "redactionTitle": "乾跑 顯示紅線", "metrics": { "overall": "P2-403C 進度", - "steps": "Dry-run steps", - "lanes": "Handoff lanes", + "steps": "乾跑步驟", + "lanes": "交接通道", "approval": "需批准 steps", "blocked": "阻擋 runtime", "live": "Live 筆數" @@ -3648,12 +3648,12 @@ "lanes": "Learning lanes", "approval": "需批准 gates", "blocked": "阻擋寫入", - "live": "Live writes" + "live": "正式寫入" }, "flags": { - "km": "KM write: {value}", + "km": "KM 寫入: {value}", "playbook": "PlayBook trust: {value}", - "telegram": "Telegram send: {value}" + "telegram": "Telegram 發送: {value}" }, "labels": { "requiredFields": "必填欄位 {count}", @@ -3820,7 +3820,7 @@ }, "learning": { "label": "KM / PlayBook 學習", - "detail": "{gates} 個 learning gate 等 owner review。" + "detail": "{gates} 個 learning gate 等 負責人審查。" } }, "gates": { @@ -3830,7 +3830,7 @@ }, "repairCandidate": { "label": "修復候選完整度", - "detail": "待 owner review {review};verifier plan {verifier}。" + "detail": "待 負責人審查 {review};verifier plan {verifier}。" }, "approval": { "label": "批准邊界", @@ -3853,7 +3853,7 @@ "badges": { "readOnly": "repo-only 監控", "telegram": "Telegram 實發 {value}", - "production": "Production write {value}" + "production": "正式環境寫入 {value}" }, "metrics": { "sources": "來源快照", @@ -3881,7 +3881,7 @@ "upgrade": "套件升級 / lockfile", "docker": "Docker build / image", "telegram": "Telegram / Gateway", - "production": "Production write" + "production": "正式環境寫入" } }, "receiptOwnerReview": { @@ -4399,7 +4399,7 @@ "read_only_allowed": "只讀允許", "ready_for_operator_review": "待人工審查", "blocked_by_evidence": "證據不足阻擋", - "dry_run_required": "需 dry-run", + "dry_run_required": "需 乾跑", "cost_approval_required": "費用需批准", "dependency_approval_required": "依賴需批准", "production_change_blocked": "生產變更阻擋", @@ -4540,7 +4540,7 @@ "host_runner_mapped": "Host runner 已映射", "owner_attestation_required": "需 owner 證明", "comment_ambiguous": "註解語意待釐清", - "dry_run_only": "僅 dry-run", + "dry_run_only": "僅 乾跑", "prepared_not_applied_by_snapshot": "已準備未套用", "preserved": "已保留", "exception_documented": "例外已標記", @@ -4744,7 +4744,7 @@ "quietSuccess": "成功不洗版", "quietSuccessDetail": "verified 狀態只進治理頁與每日摘要。", "blockedOperations": "執行入口", - "blockedOperationsDetail": "通知發送、live probe、restart、endpoint change 與 runtime execution 皆為 0。", + "blockedOperationsDetail": "通知發送、live probe、restart、端點變更 與 runtime execution 皆為 0。", "redaction": "顯示隔離", "redactionDetail": "前端只顯示 committed evidence 與政策摘要,{count} 類內容不得顯示。" }, @@ -4776,12 +4776,12 @@ "lanes": "Receipt lanes", "approval": "需批准 gates", "blocked": "阻擋動作", - "live": "Live receipts" + "live": "正式回執" }, "flags": { - "send": "Telegram send: {value}", - "queue": "Queue write: {value}", - "direct": "Direct Bot API: {value}" + "send": "Telegram 發送: {value}", + "queue": "佇列寫入: {value}", + "direct": "直接 Bot API: {value}" }, "labels": { "requiredFields": "必填欄位 {count}", @@ -4790,24 +4790,24 @@ } }, "ownerApprovedLearningDryRun": { - "title": "P2-403F Owner-approved Learning Dry-run", + "title": "P2-403F 負責人批准 Learning 乾跑", "source": "{generated} · {current} → {next}", - "previewTitle": "Dry-run preview", - "truthTitle": "目前 dry-run 真相", + "previewTitle": "乾跑預覽", + "truthTitle": "目前 乾跑真相", "verificationTitle": "驗證與回滾", "metrics": { "overall": "P2-403F 進度", "actions": "人工選項", - "gates": "Dry-run gates", + "gates": "乾跑關卡", "approval": "需批准 gates", "blocked": "阻擋寫入", - "outputs": "Preview 產物", + "outputs": "預覽產物", "generated": "已產生 preview" }, "flags": { - "ownerApproval": "owner approval: {value}", - "km": "KM write: {value}", - "telegram": "Telegram send: {value}" + "ownerApproval": "負責人批准: {value}", + "km": "KM 寫入: {value}", + "telegram": "Telegram 發送: {value}" }, "labels": { "requiredInputs": "必填輸入 {count}", @@ -4827,13 +4827,13 @@ "gates": "批准 gates", "approval": "需批准 gates", "blocked": "阻擋動作", - "live": "Live writes" + "live": "正式寫入" }, "flags": { - "dualApproval": "dual approval: {value}", - "hash": "dry-run hash: {value}", + "dualApproval": "雙重批准: {value}", + "hash": "乾跑 hash: {value}", "verifier": "verifier pass: {value}", - "runtime": "runtime write: {value}" + "runtime": "執行期寫入: {value}" }, "labels": { "requiredFields": "必填欄位 {count}", @@ -4842,25 +4842,25 @@ } }, "ownerDryRunPackage": { - "title": "P2-403F Owner-approved Fixture Dry-run", + "title": "P2-403F 負責人批准 Fixture 乾跑", "source": "{generated} · {current} → {next}", - "packageTitle": "Fixture dry-run 批准包", + "packageTitle": "Fixture 乾跑 批准包", "truthTitle": "目前乾跑真相", "redactionTitle": "前端顯示紅線", "metrics": { "overall": "P2-403F 進度", - "fixtures": "Fixture sets", - "gates": "Dry-run gates", + "fixtures": "Fixture 組", + "gates": "乾跑關卡", "approval": "需批准 gates", "blocked": "阻擋動作", - "live": "Live 寫送合計" + "live": "正式寫送合計" }, "flags": { - "fixture": "Fixture dry-run: {value}", - "write": "Production write: {value}", - "send": "Telegram send: {value}", - "actionButton": "Action button: {value}", - "secret": "Secret display: {value}" + "fixture": "Fixture 乾跑: {value}", + "write": "正式環境寫入: {value}", + "send": "Telegram 發送: {value}", + "actionButton": "操作按鈕: {value}", + "secret": "機密顯示: {value}" }, "labels": { "requiredFields": "必填欄位 {count}", @@ -4946,27 +4946,27 @@ "subtitle": "治理頁仍在同步其他讀模型;已取得的報表真相、告警有效性與工作項隊列會先呈現,不再用骨架屏遮住成果。", "pending": "其餘讀模型同步中", "pendingCount": "同步中 {count}", - "boundary": "這裡只代表核心讀模型已回來;缺資料會視為資料鏈缺口,不代表 KM / PlayBook / 腳本 / 排程 / Verifier 已完成,也不代表 runtime 已授權。" + "boundary": "這裡只代表核心讀模型已回來;缺資料會視為資料鏈缺口,不代表 KM / PlayBook / 腳本 / 排程 / Verifier 已完成,也不代表 執行期已授權。" }, "reportTruthActionabilityReview": { - "title": "P2-403K 報表真相與告警有效性", + "title": "P2-403K 報表真相與告警有效性", "source": "{generated} · {current} → {next}", - "truthTitle": "報表真相", - "telegramTitle": "AwoooI SRE 戰情室路由", - "policyTitle": "收斂與批准邊界", - "freshnessRadarTitle": "來源 freshness 雷達", - "actionabilityScoreTitle": "報表可處置分數", - "confidenceGateTitle": "低信任欄位", - "workItemQueueTitle": "全 0 工作項隊列", - "metrics": { - "overall": "P2-403K 進度", - "weeklyScore": "週報處置分數", - "sourceFreshness": "來源 Gate", - "staleSources": "不可信來源", - "lowConfidence": "低信任欄位", - "zeroWorkItems": "待建工作項", - "findings": "真相缺口", - "critical": "Critical", + "truthTitle": "報表真相", + "telegramTitle": "AwoooI SRE 戰情室路由", + "policyTitle": "收斂與批准邊界", + "freshnessRadarTitle": "來源 freshness 雷達", + "actionabilityScoreTitle": "報表可處置分數", + "confidenceGateTitle": "低信任欄位", + "workItemQueueTitle": "全 0 工作項隊列", + "metrics": { + "overall": "P2-403K 進度", + "weeklyScore": "週報處置分數", + "sourceFreshness": "來源 Gate", + "staleSources": "不可信來源", + "lowConfidence": "低信任欄位", + "zeroWorkItems": "待建工作項", + "findings": "真相缺口", + "critical": "Critical", "cadences": "日週月", "missingCadence": "缺契約", "telegramRoutes": "TG 旁路", @@ -4983,13 +4983,13 @@ "otherRoutes": "其他群組允許: {value}", "routeChange": "路由變更允許: {value}" }, - "labels": { - "canonicalRoom": "唯一戰情室: {room}", - "legacyRoutesDetail": "direct send / legacy chat / multi bot 必須收斂", - "ttl": "TTL: {value}", - "requiredAssets": "必填資產 {count} 項" - } - }, + "labels": { + "canonicalRoom": "唯一戰情室: {room}", + "legacyRoutesDetail": "direct send / legacy chat / multi bot 必須收斂", + "ttl": "TTL: {value}", + "requiredAssets": "必填資產 {count} 項" + } + }, "reportAutomationReview": { "title": "P2-403J 日週月報與風險自動化 Review", "source": "{generated} · {current} → {next}", @@ -5083,8 +5083,8 @@ "perAgent": "Agent 狀態可見: {value}", "telegram": "Telegram 草案: {value}", "scheduler": "scheduler: {value}", - "queue": "queue write: {value}", - "send": "Telegram send: {value}", + "queue": "佇列寫入: {value}", + "send": "Telegram 發送: {value}", "analysis": "AI analysis: {value}", "optimization": "production optimization: {value}", "highApproval": "高風險人工審核: {value}" @@ -5122,7 +5122,7 @@ "flags": { "scheduler": "scheduler: {value}", "gateway": "Gateway queue: {value}", - "telegram": "Telegram send: {value}", + "telegram": "Telegram 發送: {value}", "botApi": "Bot API: {value}", "receipt": "receipt write: {value}", "analysis": "AI analysis: {value}", @@ -5131,7 +5131,7 @@ "labels": { "noSendMode": "無發送: {value}", "requiredEvidence": "證據 {count}", - "gateway": "queue write: {value}", + "gateway": "佇列寫入: {value}", "telegram": "send: {value}", "requiredFields": "欄位 {count}", "liveSendCount": "live send {count}", @@ -5156,11 +5156,11 @@ }, "flags": { "scheduler": "排程契約: {value}", - "queue": "queue writes: {value}", + "queue": "佇列寫入: {value}", "aiRuns": "AI runs: {value}", "mediumLow": "中低風險 runs: {value}", "gateway": "Gateway required: {value}", - "directApi": "direct API: {value}", + "directApi": "直接 API: {value}", "deliveryVerified": "E2E verified: {value}" }, "labels": { @@ -5183,19 +5183,19 @@ } }, "reportRuntimeDryRun": { - "title": "P2-403M 報表 runtime 無寫入 dry-run 證據包", + "title": "P2-403M 報表 runtime 無寫入 乾跑證據包", "source": "{generated} · {current} → {next}", - "truthTitle": "無寫入 dry-run 真相", + "truthTitle": "無寫入 乾跑真相", "queueTitle": "Gateway queue 草案", - "queueSummary": "草案收件目標是 {room};Secret 只能引用 {secret};目前 queue write {queue}、Bot API {bot}、Telegram send {send}。", + "queueSummary": "草案收件目標是 {room};Secret 只能引用 {secret};目前 佇列寫入 {queue}、Bot API {bot}、Telegram 發送 {send}。", "metrics": { "overall": "P2-403M 進度", - "artifacts": "dry-run artifacts", + "artifacts": "乾跑產物", "queueDrafts": "queue 草案", "verifierCases": "verifier cases", "approvals": "需批准", "delivery": "實發報表", - "queueWrites": "queue writes", + "queueWrites": "佇列寫入", "botCalls": "Bot API", "aiRuns": "AI runs", "verifierLive": "live verifier" @@ -5203,11 +5203,11 @@ "flags": { "noWrite": "無寫入 package: {value}", "queueDraft": "queue draft: {value}", - "queueWrite": "queue write: {value}", + "queueWrite": "佇列寫入: {value}", "receipt": "receipt write: {value}", "verifier": "verifier live: {value}", "send": "send: {value}", - "directApi": "direct API: {value}", + "directApi": "直接 API: {value}", "secret": "機密明文: {value}" }, "labels": { @@ -5233,20 +5233,20 @@ } }, "reportRuntimeFixtureReadback": { - "title": "P2-403N fixture smoke / queue preview readback / verifier dry-run", + "title": "P2-403N fixture smoke / 佇列預覽讀回 / verifier 乾跑", "source": "{generated} · {current} → {next}", "truthTitle": "fixture readback 真相", - "queueTitle": "queue preview readback", - "queueSummary": "readback 收件目標是 {room};Secret 只能引用 {secret};目前 queue write {queue}、Bot API {bot}、Telegram send {send}。", + "queueTitle": "佇列預覽讀回", + "queueSummary": "讀回收件目標是 {room};Secret 只能引用 {secret};目前 佇列寫入 {queue}、Bot API {bot}、Telegram 發送 {send}。", "metrics": { "overall": "P2-403N 進度", "smoke": "fixture smoke", "passed": "已通過", "queueReadbacks": "queue readbacks", - "verifierCases": "verifier dry-run", + "verifierCases": "verifier 乾跑", "approvals": "需批准", - "queueWrites": "queue writes", - "sends": "Telegram sends", + "queueWrites": "佇列寫入", + "sends": "Telegram 發送", "botCalls": "Bot API", "workerRuns": "worker runs", "verifierLive": "live verifier" @@ -5256,9 +5256,9 @@ "queueReadback": "queue readback: {value}", "redaction": "redaction: {value}", "operatorReview": "operator packet: {value}", - "queueWrite": "queue write: {value}", + "queueWrite": "佇列寫入: {value}", "send": "send: {value}", - "directApi": "direct API: {value}", + "directApi": "直接 API: {value}", "secret": "機密明文: {value}", "verifier": "verifier live: {value}", "resultWrite": "result write: {value}" @@ -5291,7 +5291,7 @@ "source": "{generated} · {current} → {next}", "truthTitle": "shadow gate 真相", "boundaryTitle": "live 邊界", - "boundarySummary": "目前 live worker {live}、Gateway queue write {queue}、Telegram send {send}、production write {write};這段只允許 shadow/無寫入 evidence。", + "boundarySummary": "目前 正式 worker {live}、Gateway 佇列寫入 {queue}、Telegram 發送 {send}、正式環境寫入 {write};這段只允許 shadow/無寫入 evidence。", "metrics": { "overall": "P2-404 進度", "candidates": "shadow 候選", @@ -5301,10 +5301,10 @@ "replays": "無寫入 replay", "verifierCases": "verifier cases", "approvals": "需批准", - "liveRuns": "live worker", - "queueWrites": "queue writes", - "sends": "Telegram sends", - "productionWrites": "prod writes" + "liveRuns": "正式 worker", + "queueWrites": "佇列寫入", + "sends": "Telegram 發送", + "productionWrites": "正式環境寫入" }, "flags": { "shadowReady": "shadow evidence: {value}", @@ -5312,9 +5312,9 @@ "replayReady": "無寫入 replay: {value}", "operatorReview": "operator packet: {value}", "shadowLive": "shadow live: {value}", - "queueWrite": "queue write: {value}", + "queueWrite": "佇列寫入: {value}", "send": "send: {value}", - "productionWrite": "prod write: {value}", + "productionWrite": "正式環境寫入: {value}", "secret": "機密明文: {value}", "resultWrite": "result write: {value}", "verifier": "verifier live: {value}" @@ -5344,7 +5344,7 @@ "source": "{generated} · {current} → {next}", "truthTitle": "權限模型真相", "boundaryTitle": "runtime 邊界", - "boundarySummary": "目前 runtime {runtime}、Gateway queue write {queue}、Telegram send {send}、production write {write}、secret read {secret};本段只定義 lane,不開執行。", + "boundarySummary": "目前 runtime {runtime}、Gateway 佇列寫入 {queue}、Telegram 發送 {send}、正式環境寫入 {write}、機密讀取 {secret};本段只定義 lane,不開執行。", "metrics": { "overall": "P2-101 進度", "categories": "操作類別", @@ -5355,10 +5355,10 @@ "blocked": "明確阻擋", "gates": "關卡", "runtimeRuns": "runtime", - "queueWrites": "queue writes", + "queueWrites": "佇列寫入", "telegramSends": "TG sends", - "productionWrites": "prod writes", - "secretReads": "secret reads", + "productionWrites": "正式環境寫入", + "secretReads": "機密讀取", "destructive": "破壞性" }, "flags": { @@ -5366,10 +5366,10 @@ "matrixReady": "matrix ready: {value}", "agentMap": "agent map: {value}", "p2Handoff": "P2-404 handoff: {value}", - "runtime": "runtime enabled: {value}", - "queueWrite": "queue write: {value}", + "runtime": "執行期啟用: {value}", + "queueWrite": "佇列寫入: {value}", "send": "send: {value}", - "productionWrite": "prod write: {value}", + "productionWrite": "正式環境寫入: {value}", "secret": "機密明文: {value}", "destructive": "destructive: {value}", "liveExecution": "live execution: {value}", @@ -5403,11 +5403,11 @@ } }, "candidateOperationDryRunEvidence": { - "title": "P2-102 候選操作 dry-run 證據", + "title": "P2-102 候選操作 乾跑證據", "source": "{generated} · {current} → {next}", - "truthTitle": "dry-run 證據真相", + "truthTitle": "乾跑證據真相", "boundaryTitle": "副作用邊界", - "boundarySummary": "目前 side-effect {sideEffects}、Gateway queue write {queue}、Telegram send {send}、production write {write}、secret read {secret};本段只產生證據與人工 handoff,不開執行。", + "boundarySummary": "目前 副作用 {sideEffects}、Gateway 佇列寫入 {queue}、Telegram 發送 {send}、正式環境寫入 {write}、機密讀取 {secret};本段只產生證據與人工 handoff,不開執行。", "metrics": { "overall": "P2-102 進度", "candidates": "候選操作", @@ -5417,22 +5417,22 @@ "allowlistBlocked": "等 allow-list", "policyBlocked": "政策阻擋", "verifierPlans": "verifier plan", - "sideEffects": "side-effect", - "queueWrites": "queue writes", + "sideEffects": "副作用", + "queueWrites": "佇列寫入", "telegramSends": "TG sends", - "productionWrites": "prod writes", - "secretReads": "secret reads", + "productionWrites": "正式環境寫入", + "secretReads": "機密讀取", "destructive": "破壞性" }, "flags": { "modelLoaded": "P2-101 loaded: {value}", - "gateReady": "dry-run gate: {value}", + "gateReady": "乾跑關卡: {value}", "allHaveEvidence": "all evidence: {value}", "verifierReady": "verifier ready: {value}", - "runtime": "runtime enabled: {value}", - "queueWrite": "queue write: {value}", + "runtime": "執行期啟用: {value}", + "queueWrite": "佇列寫入: {value}", "send": "send: {value}", - "productionWrite": "prod write: {value}", + "productionWrite": "正式環境寫入: {value}", "secret": "機密明文: {value}", "destructive": "destructive: {value}", "liveReadback": "live readback: {value}", @@ -5440,7 +5440,7 @@ "runtimeAction": "runtime action: {value}" }, "labels": { - "sideEffect": "side-effect {count}", + "sideEffect": "副作用 {count}", "humanDecision": "人工判斷: {value}", "outputHash": "output hash: {value}", "verifier": "verifier: {value}", @@ -5465,7 +5465,7 @@ "source": "{generated} · {current} → {next}", "truthTitle": "結果回接真相", "boundaryTitle": "寫回邊界", - "boundarySummary": "目前 KM write {km}、LOGBOOK runtime append {logbook}、audit DB write {audit}、timeline write {timeline}、Gateway queue write {queue}、Telegram send {send};本段只定義結果路由與人工交接,不開 runtime 寫入。", + "boundarySummary": "目前 KM 寫入 {km}、LOGBOOK 執行期追加 {logbook}、審計 DB 寫入 {audit}、timeline 寫入 {timeline}、Gateway 佇列寫入 {queue}、Telegram 發送 {send};本段只定義結果路由與人工交接,不開 runtime 寫入。", "metrics": { "overall": "P2-103 進度", "routes": "結果路由", @@ -5475,11 +5475,11 @@ "blocked": "卡點結果", "writebacks": "寫回契約", "checkpoints": "稽核點", - "kmWrites": "KM writes", + "kmWrites": "KM 寫入s", "logbookWrites": "LOGBOOK writes", "auditWrites": "audit 寫入", - "timelineWrites": "timeline writes", - "queueWrites": "queue writes", + "timelineWrites": "timeline 寫入s", + "queueWrites": "佇列寫入", "telegramSends": "TG sends" }, "flags": { @@ -5487,16 +5487,16 @@ "routeReady": "route matrix: {value}", "kmReady": "KM draft: {value}", "auditReady": "audit trail: {value}", - "runtime": "runtime enabled: {value}", - "kmWrite": "KM write: {value}", + "runtime": "執行期啟用: {value}", + "kmWrite": "KM 寫入: {value}", "logbookWrite": "LOGBOOK append: {value}", "auditWrite": "audit 寫入: {value}", - "timelineWrite": "timeline write: {value}", + "timelineWrite": "timeline 寫入: {value}", "send": "send: {value}" }, "labels": { "owner": "owner: {value}", - "ownerReview": "owner review: {value}", + "ownerReview": "負責人審查: {value}", "liveWrite": "live write: {value}", "blockedReason": "卡點: {value}", "kmTarget": "KM: {value}", @@ -5504,7 +5504,7 @@ "evidenceHash": "evidence: {value}", "targetSystem": "target: {value}", "writeEnabled": "write enabled: {value}", - "runtimeWriter": "runtime writer: {value}", + "runtimeWriter": "執行期寫入r: {value}", "runtimeAction": "runtime action: {value}" }, "resultStates": { @@ -5533,7 +5533,7 @@ "source": "{generated} · {current} → {next}", "truthTitle": "學習缺口真相", "boundaryTitle": "learning / trust 邊界", - "boundarySummary": "目前 learning write {learning}、PlayBook trust write {trust}、Gateway queue write {queue}、Telegram send {send}、PlayBook updated_24h {updated};本段只呈現只讀回查與 gate,不開 runtime 寫入。", + "boundarySummary": "目前 學習寫入 {learning}、PlayBook trust 寫入 {trust}、Gateway 佇列寫入 {queue}、Telegram 發送 {send}、PlayBook updated_24h {updated};本段只呈現只讀回查與 gate,不開 runtime 寫入。", "metrics": { "overall": "P2-104 進度", "approvals": "24h approvals", @@ -5545,9 +5545,9 @@ "playbookUpdated": "PlayBook updated", "gates": "learning gates", "candidates": "writeback 候選", - "learningWrites": "learning writes", + "learningWrites": "學習寫入s", "trustWrites": "trust writes", - "queueWrites": "queue writes", + "queueWrites": "佇列寫入", "telegramSends": "TG sends" }, "flags": { @@ -5555,7 +5555,7 @@ "matchedResolved": "matched gap resolved: {value}", "executionGap": "execution learning gap: {value}", "trustGap": "trust update gap: {value}", - "learningWrite": "learning write: {value}", + "learningWrite": "學習寫入: {value}", "trustWrite": "trust write: {value}", "autoExecute": "auto execute: {value}", "send": "send: {value}" @@ -5567,9 +5567,9 @@ "candidates": "learning candidates: {value}", "count24h": "24h: {value}", "liveWrite": "live write: {value}", - "runtimeWrite": "runtime write: {value}", + "runtimeWrite": "執行期寫入: {value}", "writeEnabled": "write enabled: {value}", - "runtimeWriter": "runtime writer: {value}", + "runtimeWriter": "執行期寫入r: {value}", "evidenceHash": "evidence: {value}" }, "statuses": { @@ -5604,8 +5604,8 @@ "title": "P2-105 Critic / Reviewer 評分與結果捕捉", "source": "{generated} · {current} → {next}", "truthTitle": "批准前評分真相", - "boundaryTitle": "result capture / learning 邊界", - "boundarySummary": "目前 Critic score {critic}、Reviewer score {reviewer}、result capture write {capture}、learning write {learning}、PlayBook trust write {trust}、Telegram send {send};本段只定義評分、結果捕捉與 promotion gate,不開 runtime 寫入。", + "boundaryTitle": "結果捕捉 / learning 邊界", + "boundarySummary": "目前 Critic 分數 {critic}、Reviewer 分數 {reviewer}、結果捕捉寫入 {capture}、學習寫入 {learning}、PlayBook trust 寫入 {trust}、Telegram 發送 {send};本段只定義評分、結果捕捉與 promotion gate,不開 runtime 寫入。", "metrics": { "overall": "P2-105", "scorecards": "評分卡", @@ -5630,14 +5630,14 @@ "flags": { "p2Loaded": "P2-104 gap loaded: {value}", "scoreRequired": "score required: {value}", - "captureRequired": "result capture required: {value}", - "ownerReview": "owner review: {value}", + "captureRequired": "結果捕捉 required: {value}", + "ownerReview": "負責人審查: {value}", "verifier": "post-write verifier: {value}", "verifierRequired": "post-write verifier: {value}", "criticRuntime": "critic runtime: {value}", "reviewerRuntime": "reviewer runtime: {value}", "captureRuntime": "capture runtime: {value}", - "learningWrite": "learning write: {value}", + "learningWrite": "學習寫入: {value}", "trustWrite": "trust write: {value}", "send": "send: {value}" }, @@ -5648,8 +5648,8 @@ "evidenceHash": "evidence: {value}", "count24h": "24h: {value}", "writeEnabled": "write enabled: {value}", - "runtimeWriter": "runtime writer: {value}", - "runtimeWrite": "runtime write: {value}", + "runtimeWriter": "執行期寫入r: {value}", + "runtimeWrite": "執行期寫入: {value}", "candidateCount": "candidates: {value}" }, "roles": { @@ -5689,15 +5689,15 @@ } }, "ownerApprovedResultCaptureDryRun": { - "title": "P2-106 統帥批准後結果捕捉 dry-run", + "title": "P2-106 統帥批准後結果捕捉 乾跑", "source": "{generated} · {current} → {next}", "packetTitle": "批准包", - "truthTitle": "無寫入 dry-run 真相", + "truthTitle": "無寫入 乾跑真相", "metrics": { "overall": "P2-106 進度", "templates": "捕捉模板", "scoreFixtures": "評分 fixture", - "gates": "dry-run 閘門", + "gates": "乾跑關卡", "actions": "操作選項", "approvals": "需批准", "blocked": "阻擋閘門", @@ -5733,7 +5733,7 @@ "runtimeWrite": "runtime 寫入: {value}" }, "statuses": { - "ready_for_dry_run": "可 dry-run", + "ready_for_dry_run": "可 乾跑", "approval_required": "需批准", "blocked_by_policy": "政策阻擋" }, @@ -5745,7 +5745,7 @@ "actionTypes": { "review": "審查", "collect_evidence": "收集證據", - "approve_dry_run": "批准 dry-run", + "approve_dry_run": "批准 乾跑", "reject_or_rework": "退回重整", "promote_to_next_gate": "推進下一閘門" } @@ -5771,7 +5771,7 @@ "liveWrites": "正式寫入" }, "flags": { - "dryRunLoaded": "P2-106 dry-run: {value}", + "dryRunLoaded": "P2-106 乾跑: {value}", "fixtureReadback": "fixture readback: {value}", "digestReady": "digest ready: {value}", "promotionReady": "promotion review: {value}", @@ -5795,8 +5795,8 @@ "runtimeWrite": "runtime 寫入: {value}", "abortsPromotion": "中止 promotion: {value}", "requiredInputs": "必填輸入 {count}", - "queueWrite": "queue write: {value}", - "telegramSend": "Telegram send: {value}", + "queueWrite": "佇列寫入: {value}", + "telegramSend": "Telegram 發送: {value}", "evidenceHash": "evidence: {value}" }, "statuses": { @@ -5820,7 +5820,7 @@ "blocked_by_policy": "政策阻擋" }, "queueStatuses": { - "queued_for_owner_review": "待 owner review", + "queued_for_owner_review": "待 負責人審查", "blocked_by_policy": "政策阻擋" }, "reviewerRoles": { @@ -5881,8 +5881,8 @@ "requiredSteps": "演練步驟 {count}", "rollbackWrite": "rollback write: {value}", "requiredEvidence": "必備證據 {count}", - "queueWrite": "queue write: {value}", - "telegramSend": "Telegram send: {value}", + "queueWrite": "佇列寫入: {value}", + "telegramSend": "Telegram 發送: {value}", "botApi": "Bot API: {value}" }, "packetStatuses": { @@ -5971,7 +5971,7 @@ "blockerStatuses": { "blocking_runtime": "阻擋 runtime", "blocking_live_read": "阻擋 live read", - "blocking_queue_write": "阻擋 queue write", + "blocking_queue_write": "阻擋 佇列寫入", "blocking_notification": "阻擋通知", "blocking_production_write": "阻擋正式寫入" }, @@ -6175,7 +6175,7 @@ "lanes": "promotion lane", "contracts": "receipt contract", "reviewerPreviews": "reviewer queue", - "resultPreviews": "result capture", + "resultPreviews": "結果捕捉", "checks": "無寫入 verifier", "blockers": "阻塞映射", "actions": "操作選項", @@ -6202,7 +6202,7 @@ "failureReceiptReady": "failure receipt ready={value}", "reviewerReady": "reviewer preview={value}", "resultReady": "result preview={value}", - "telegramSend": "Telegram send={value}", + "telegramSend": "Telegram 發送={value}", "queueWrite": "queue 寫入={value}", "resultWrite": "結果寫入={value}", "redactionRequired": "redaction={value}", @@ -6228,7 +6228,7 @@ "runtimePromotionAllowed": "runtime promotion={value}" }, "laneStatuses": { - "ready_for_owner_review": "待 owner review", + "ready_for_owner_review": "待 負責人審查", "approval_required": "需批准", "blocked_by_policy": "政策阻擋" }, @@ -6266,12 +6266,12 @@ "review_promotion_lane": "審查 promotion lane", "verify_failure_receipt_fixture": "驗證 failure receipt fixture", "confirm_reviewer_queue_no_write": "確認 reviewer queue 無寫入", - "compare_result_capture_preview": "比對 result capture preview", + "compare_result_capture_preview": "比對 結果捕捉 preview", "promote_to_p2_114": "推進 P2-114" } }, "ownerApprovedFixturePromotionGate": { - "title": "P2-114 owner-approved fixture promotion gate", + "title": "P2-114 負責人批准 fixture promotion gate", "source": "產生 {generated};目前 {current};下一步 {next}", "priorGateTitle": "前一關 promotion gate", "truthTitle": "Owner approval truth", @@ -6308,8 +6308,8 @@ "promotionGateLoaded": "P2-113 loaded={value}", "packageReady": "package ready={value}", "acceptanceReady": "acceptance ready={value}", - "ownerApproval": "owner approval={value}", - "telegramSend": "Telegram send={value}", + "ownerApproval": "負責人批准={value}", + "telegramSend": "Telegram 發送={value}", "resultWrite": "結果寫入={value}", "redactionRequired": "redaction={value}", "promptDisplay": "prompt display={value}", @@ -6331,7 +6331,7 @@ "runtimePromotionAllowed": "runtime promotion={value}" }, "packetStatuses": { - "ready_for_owner_review": "待 owner review", + "ready_for_owner_review": "待 負責人審查", "approval_required": "需批准", "blocked_by_policy": "政策阻擋" }, @@ -6372,19 +6372,19 @@ } }, "canonicalRuntimeReadbackOwnerAcceptance": { - "title": "P2-115 canonical runtime readback owner acceptance", + "title": "P2-115 canonical runtime readback 負責人驗收", "source": "產生 {generated};目前 {current};下一步 {next}", "priorGateTitle": "前一關 owner promotion gate", - "truthTitle": "Canonical readback owner acceptance truth" + "truthTitle": "Canonical readback 負責人驗收 truth" }, "failureReceiptNoSendReplay": { "title": "P2-116 failure receipt 無發送 replay", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 owner acceptance", + "priorTitle": "前一關 負責人驗收", "truthTitle": "無發送 replay truth", "metrics": { "overall": "完成度", - "fixtures": "Replay fixtures", + "fixtures": "Replay fixture", "routes": "Route locks", "verifiers": "Verifiers", "blockers": "Blocked sends", @@ -6416,7 +6416,7 @@ "truthTitle": "Reviewer queue 無寫入 truth", "metrics": { "overall": "完成度", - "fixtures": "Reviewer fixtures", + "fixtures": "Reviewer fixture", "mappings": "Queue mappings", "verifiers": "Verifiers", "blockers": "Blocked writes", @@ -6442,13 +6442,13 @@ } }, "resultCaptureNoWriteReadback": { - "title": "P2-118 result capture 無寫入 readback", + "title": "P2-118 結果捕捉 無寫入 readback", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 reviewer queue readback", "truthTitle": "Result capture 無寫入 truth", "metrics": { "overall": "完成度", - "fixtures": "Capture fixtures", + "fixtures": "Capture fixture", "mappings": "Field mappings", "verifiers": "Verifiers", "blockers": "Blocked writes", @@ -6474,9 +6474,9 @@ } }, "resultCapturePromotionApprovalGate": { - "title": "P2-119 result capture promotion approval gate", + "title": "P2-119 結果捕捉提升 approval gate", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 result capture readback", + "priorTitle": "前一關 結果捕捉 readback", "truthTitle": "Promotion approval truth", "metrics": { "overall": "完成度", @@ -6508,29 +6508,29 @@ } }, "ownerApprovedResultCapturePromotionDryRun": { - "title": "P2-120 owner-approved result capture promotion dry-run", + "title": "P2-120 負責人批准 結果捕捉提升 乾跑", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 promotion approval gate", - "truthTitle": "Owner-approved promotion dry-run truth", + "truthTitle": "負責人批准 promotion 乾跑 truth", "metrics": { "overall": "完成度", - "templates": "Dry-run templates", - "fixtures": "Owner fixtures", + "templates": "乾跑模板", + "fixtures": "Owner fixture", "verifiers": "Verifiers", "blockers": "Blocked writes", "actions": "操作選項", "approvalRequired": "需批准", "blocked": "阻擋", - "dryRunGenerated": "Dry-run generated", - "liveWrites": "Live dry-run / write" + "dryRunGenerated": "乾跑已產生", + "liveWrites": "正式乾跑 / 寫入" }, "flags": { "gateLoaded": "gate loaded={value}", - "ownerApproval": "owner approval required={value}", + "ownerApproval": "負責人批准 required={value}", "previewAllowed": "preview allowed={value}" }, "labels": { - "targetDryRun": "目標 dry-run:{value}", + "targetDryRun": "目標 乾跑:{value}", "resultWrites": "結果寫入={value}", "learningWrites": "學習寫入={value}", "trustWrites": "trust write={value}", @@ -6576,13 +6576,13 @@ } }, "resultCaptureWriterDryRunFixture": { - "title": "P2-123 結果寫入器 dry-run fixture", + "title": "P2-123 結果寫入器 乾跑 fixture", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關結果寫入器實作審查", - "truthTitle": "dry-run fixture 真相", + "truthTitle": "乾跑 fixture 真相", "metrics": { "overall": "完成度", - "fixtures": "Dry-run fixtures", + "fixtures": "乾跑 fixture", "receipts": "Receipt previews", "replays": "Idempotency replay", "rollbacks": "Rollback rehearsal", @@ -6598,9 +6598,9 @@ "rollback": "需要回滾演練={value}" }, "labels": { - "targetDryRun": "目標 dry-run:{value}", + "targetDryRun": "目標 乾跑:{value}", "writerApply": "writer 套用={value}", - "dryRunExecution": "dry-run 執行={value}", + "dryRunExecution": "乾跑執行={value}", "resultWrites": "結果寫入={value}", "gatewayWrites": "Gateway 寫入={value}", "writer": "writer:{value}", @@ -6611,13 +6611,13 @@ } }, "resultCaptureWriterDryRunReadback": { - "title": "P2-124 結果寫入器 dry-run readback", + "title": "P2-124 結果寫入器 乾跑讀回", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 dry-run fixture", - "truthTitle": "dry-run readback 真相", + "priorTitle": "前一關 乾跑 fixture", + "truthTitle": "乾跑讀回 真相", "metrics": { "overall": "完成度", - "readbacks": "Dry-run readbacks", + "readbacks": "乾跑讀回", "verifiers": "Receipt verifiers", "promotionGates": "Promotion gates", "blockers": "已阻擋提升", @@ -6634,7 +6634,7 @@ }, "labels": { "writerApply": "writer 套用={value}", - "dryRunExecution": "dry-run 執行={value}", + "dryRunExecution": "乾跑執行={value}", "receiptWrite": "receipt 寫入={value}", "gatewayWrites": "Gateway 寫入={value}", "promotionCandidate": "提升候選:{value}", @@ -6646,7 +6646,7 @@ "resultCaptureOwnerPromotionReview": { "title": "P2-125 owner promotion review / execution gate", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 dry-run readback", + "priorTitle": "前一關 乾跑讀回", "truthTitle": "owner promotion 真相", "metrics": { "overall": "完成度", @@ -6678,7 +6678,7 @@ } }, "resultCaptureOwnerApprovedExecutionRehearsal": { - "title": "P2-126 owner-approved execution rehearsal / 無寫入 apply gate", + "title": "P2-126 負責人批准 execution rehearsal / 無寫入 apply gate", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 owner promotion review", "truthTitle": "execution rehearsal 真相", @@ -6710,10 +6710,10 @@ } }, "resultCaptureOwnerAcceptanceMaintenanceGate": { - "title": "P2-127 owner acceptance / maintenance window gate", + "title": "P2-127 負責人驗收 / maintenance window gate", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 execution rehearsal", - "truthTitle": "owner acceptance 真相", + "truthTitle": "負責人驗收 真相", "metrics": { "overall": "完成度", "packets": "Owner packets", @@ -6743,7 +6743,7 @@ } }, "resultCaptureOwnerApprovedPreflightReleasePackage": { - "title": "P2-129 owner-approved preflight release package", + "title": "P2-129 負責人批准 preflight release package", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 preflight hold", "truthTitle": "release package 真相", @@ -6776,7 +6776,7 @@ } }, "resultCaptureOwnerApprovedReleaseReadinessReadback": { - "title": "P2-130 owner-approved release readiness readback", + "title": "P2-130 負責人批准 release readiness readback", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 release package", "truthTitle": "release readiness 真相", @@ -6838,7 +6838,7 @@ "rollbackConfirmed": "rollback owner confirmed={value}", "rollbackEnabled": "rollback release enabled={value}", "liveApplyReleaseEnabled": "live apply release enabled={value}", - "runtimeWriteAllowed": "runtime write allowed={value}" + "runtimeWriteAllowed": "執行期寫入 allowed={value}" } }, "resultCaptureFinalReleaseCandidateReadback": { @@ -6873,7 +6873,7 @@ "rollbackConfirmed": "rollback owner confirmed={value}", "rollbackEnabled": "rollback release enabled={value}", "liveApplyReleaseEnabled": "live apply release enabled={value}", - "runtimeWriteAllowed": "runtime write allowed={value}" + "runtimeWriteAllowed": "執行期寫入 allowed={value}" } }, "resultCaptureReleaseAuthorizationHold": { @@ -7297,7 +7297,7 @@ "noSend": "無發送 preview={value}", "queuePreview": "queue preview={value}", "directBot": "direct Bot API={value}", - "send": "Telegram send={value}", + "send": "Telegram 發送={value}", "redaction": "脫敏鎖定={value}", "gatewayWrites": "Gateway 寫入={value}", "queueWrites": "queue 寫入={value}", @@ -7466,9 +7466,9 @@ } }, "resultCaptureOwnerAcceptanceReadbackPreflightHold": { - "title": "P2-128 owner acceptance readback / live-apply preflight hold", + "title": "P2-128 負責人驗收 readback / live-apply preflight hold", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 owner acceptance gate", + "priorTitle": "前一關 負責人驗收 gate", "truthTitle": "preflight hold 真相", "metrics": { "overall": "完成度", @@ -7488,7 +7488,7 @@ "liveApplyHoldActive": "live apply hold active={value}" }, "labels": { - "ownerAcceptanceReceived": "owner acceptance received={value}", + "ownerAcceptanceReceived": "負責人驗收 received={value}", "maintenanceApproved": "maintenance approved={value}", "gatewayWrites": "Gateway 寫入={value}", "readbackReceived": "acceptance received={value}", @@ -7499,9 +7499,9 @@ } }, "resultCaptureWriteGateReview": { - "title": "P2-121 result capture write gate review", + "title": "P2-121 結果捕捉寫入 gate review", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 owner-approved promotion dry-run", + "priorTitle": "前一關 負責人批准 promotion 乾跑", "truthTitle": "Result capture write gate truth", "metrics": { "overall": "完成度", @@ -7516,8 +7516,8 @@ "liveWrites": "Live writer / send" }, "flags": { - "dryRunLoaded": "dry-run loaded={value}", - "dualApproval": "dual approval required={value}", + "dryRunLoaded": "乾跑已載入={value}", + "dualApproval": "雙重批准 required={value}", "verifierRequired": "post-write verifier required={value}" }, "labels": { @@ -8009,7 +8009,7 @@ "title": "KM / PlayBook / 腳本 / 排程 / Verifier 沉澱矩陣", "subtitle": "把告警到修復的沉澱結果集中顯示;這裡只讀取真相鏈、KM 治理、補救佇列、recurrence、AI route 與 verifier,不把待補項目包裝成已自動修復。", "rate": "資產沉澱率", - "rateHint": "沉澱率只代表已在讀模型中看見可追蹤資產,不等於 runtime 已授權或修復成功。", + "rateHint": "沉澱率只代表已在讀模型中看見可追蹤資產,不等於 執行期已授權或修復成功。", "primaryRef": "主要參照:{ref}", "metrics": { "assets": "資產類型", @@ -8047,7 +8047,7 @@ "items": { "km": { "title": "Knowledge Base", - "detail": "Hermes 草稿、陳舊 KM、owner review 與 stale ratio 回測。", + "detail": "Hermes 草稿、陳舊 KM、負責人審查 與 stale ratio 回測。", "next": "下一步:把待補 KM 與 Incident / PlayBook / verifier 結果綁定。" }, "playbook": { @@ -8090,17 +8090,17 @@ } }, "reportSourceGapOwnerReview": { - "eyebrow": "報表資料源 owner review", + "eyebrow": "報表資料源 負責人審查", "title": "報表資料源 PlayBook / Verifier 處置板", - "subtitle": "把 report-source-gap 從報表頁接到 Work Items:每個缺口都要有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 owner review。", - "loading": "正在讀取 report-source-gap owner review read model。", + "subtitle": "把 report-source-gap 從報表頁接到 Work Items:每個缺口都要有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 負責人審查。", + "loading": "正在讀取 report-source-gap 負責人審查 read model。", "unavailable": "報表資料源 read model 尚未回應;不能把報表全 0 或缺資料判定為健康。", - "empty": "目前沒有 report-source-gap owner review 卡。", + "empty": "目前沒有 report-source-gap 負責人審查 卡。", "boundaryTitle": "不可誤讀合約", - "boundary": "live Telegram send={live};runtime gate={gate}。這裡只做草案與 owner review readback,不發送、不排程、不執行。", + "boundary": "live Telegram 發送={live};runtime gate={gate}。這裡只做草案與 負責人審查讀回,不發送、不排程、不執行。", "openReports": "回報表總控", - "ownerRequired": "需 owner review", - "ownerOptional": "owner review 可後補", + "ownerRequired": "需 負責人審查", + "ownerOptional": "負責人審查 可後補", "scheduleBoundary": "排程仍維持 無發送 preview", "fieldsTitle": "PlayBook 必填欄位", "checksTitle": "Verifier 檢查", @@ -8166,7 +8166,7 @@ "title": "AI Provider primary lane 修復工作項" }, "reportSourceGapOwnerReview": { - "title": "報表資料源 PlayBook / Verifier owner review" + "title": "報表資料源 PlayBook / Verifier 負責人審查" }, "configDriftFsm": { "title": "Config Drift fingerprint 狀態機" @@ -8216,7 +8216,7 @@ "autoRepair": "必須同時有 auto_repair、verification_result=success與KM 回寫", "recurrenceWorkItems": "Run 完成無修復、修復失敗與人工閘門必須進入可追蹤工作項", "aiRouteRepairWorkItem": "Provider lane 降級時必須顯示 evidence、owner、PlayBook候選與是否可自動修復", - "reportSourceGapOwnerReview": "每個 report-source-gap 必須有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 owner review;不得把全 0 當健康或自動執行授權", + "reportSourceGapOwnerReview": "每個 report-source-gap 必須有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 負責人審查;不得把全 0 當健康或自動執行授權", "configDriftFsm": "同一 drift fingerprint 必須顯示重複、PR、零 diff、交接與下一步", "remediationQueue": "每筆 degraded / failed / timeout都必須映射到重跑、重驗、Ticket或人工檢查", "telegramCallbacks": "按下詳情與歷史不能再只依賴 Redis TTL或舊快照", @@ -8429,14 +8429,14 @@ "openKnowledge": "開啟 KM", "queueReview": "排入審核", "queueingReview": "排入中", - "queueFailed": "排入 owner review 失敗;請重新整理後再確認此 KM 是否仍為陳舊候選。", + "queueFailed": "排入 負責人審查 失敗;請重新整理後再確認此 KM 是否仍為陳舊候選。", "queueResult": "審核狀態:{status};Dispatch:{dispatch};Event:{event}", "ownerReviewState": "Owner review:{status};階段:{stage};Dispatch:{dispatch}", "guardrail": "防護:讀取不寫入={writes};人工覆核={review}", "queueStatuses": { "dry_run": "乾跑", - "queued": "已排入 owner review", - "already_queued": "已在 owner review" + "queued": "已排入 負責人審查", + "already_queued": "已在 負責人審查" }, "operationRail": { "title": "Owner Review 操作軌道", @@ -8507,7 +8507,7 @@ "writeGate": "確認寫 KM={writes};可確認={confirm}", "required": "必要欄位:{fields}", "blockers": "卡點:{blockers}", - "noBlockers": "卡點:無;可先做 dry-run preview。", + "noBlockers": "卡點:無;可先做 乾跑預覽。", "writeGateDetail": "後端會拒絕缺 fingerprint或未 owner_approved的寫入;讀取與乾跑不會改 KM。", "step": { "dispatch": "排入審核", @@ -8519,10 +8519,10 @@ "dispatch": "Dispatch {dispatch}", "dryRunReady": "已取得 fingerprint,可進入 owner confirm gate", "dryRunPending": "按單筆乾跑取得 fingerprint", - "dryRunBlocked": "需先排入 owner review", + "dryRunBlocked": "需先排入 負責人審查", "confirmReady": "確認後會寫 KM / audit,並排 recheck", - "confirmWaiting": "等待 dry-run fingerprint", - "confirmDone": "owner review 已完成", + "confirmWaiting": "等待 乾跑 fingerprint", + "confirmDone": "負責人審查 已完成", "recheckDone": "Recheck {recheck}", "recheckWaiting": "寫回完成後才會產生 recheck" }, @@ -8544,7 +8544,7 @@ }, "burnDown": { "title": "Stale ratio burn-down", - "subtitle": "把 owner review、completion audit與recheck snapshot 對齊,確認陳舊比例是否真的下降。", + "subtitle": "把 負責人審查、completion audit與recheck snapshot 對齊,確認陳舊比例是否真的下降。", "statuses": "狀態:{status}", "status": { "above_threshold": "仍高於門檻", @@ -8553,7 +8553,7 @@ }, "remaining": "距離門檻 {count} 筆", "unavailable": "burn-down API 尚未回應;目前只能看單筆 completion 結果。", - "empty": "尚無 owner-approved completion audit。", + "empty": "尚無 負責人批准 completion audit。", "currentRatio": "目前陳舊比例", "currentCount": "陳舊 / 總數", "ownerReviews": "Owner review", @@ -8568,14 +8568,14 @@ }, "completionQueue": { "title": "Completion分流佇列", - "subtitle": "把 owner review 拆成可乾跑、卡住、已完成、失敗,避免只看到告警卻不知道下一步。", + "subtitle": "把 負責人審查 拆成可乾跑、卡住、已完成、失敗,避免只看到告警卻不知道下一步。", "ready": "可處理 {count}", "blocked": "卡住 {count}", "completed": "完成 {count}", "failed": "失敗 {count}", "pending": "待處理 dispatch {count}", "guardrail": "讀取不寫入={writes};人工覆核={review};批次寫入={batch}", - "unavailable": "completion queue API 尚未回應;目前只能從 owner review 工作台逐筆確認。", + "unavailable": "completion queue API 尚未回應;目前只能從 負責人審查 工作台逐筆確認。", "empty": "目前沒有 owner-review completion 工作項。", "state": "分流:{readiness};階段:{stage}", "next": "下一步:{action};結果:{outcome}", @@ -8620,7 +8620,7 @@ "result": "Batch dispatch:{batch};Event:{event};已排入 {queued};已在審核 {already};略過 {skipped}", "statuses": { "dry_run": "批次乾跑完成", - "queued": "批次已排入 owner review", + "queued": "批次已排入 負責人審查", "noop_already_queued": "全部已在審核或已處理", "unknown": "批次狀態待確認" }, @@ -8637,7 +8637,7 @@ "previewing": "預覽中", "confirm": "確認完成", "confirming": "寫入中", - "previewFailed": "乾跑預覽失敗;請重新整理後確認 owner review dispatch仍有效。", + "previewFailed": "乾跑預覽失敗;請重新整理後確認 負責人審查 dispatch仍有效。", "confirmFailed": "確認完成失敗;後端可能偵測到 KM或dispatch 狀態已變更。", "missingDispatch": "缺少 owner-review dispatch;請先排入審核。", "missingPreviewFingerprint": "缺少乾跑 plan fingerprint;請先重新執行乾跑預覽。", @@ -8751,8 +8751,8 @@ "ai_analyzed": "AI 已分析", "queued_kb_healthcheck": "已排入 KM healthcheck", "draft_km_updates": "產生 KM 更新草稿", - "batch_owner_review_previewed": "批次 owner review 已乾跑", - "batch_owner_review_queued": "批次已排入 owner review", + "batch_owner_review_previewed": "批次 負責人審查 已乾跑", + "batch_owner_review_queued": "批次已排入 負責人審查", "batch_noop_already_queued": "批次無需重複排入", "waiting_owner_review": "等待 owner 審核", "owner_updates_or_archives_km": "Owner 更新或封存 KM", @@ -8893,7 +8893,7 @@ "repairCandidateDraft": { "eyebrow": "修復候選草案", "title": "PlayBook 草案處置板", - "subtitle": "這筆告警已確認不能把通用兜底或診斷型 PlayBook 當成修復命令;下一步是補齊服務專屬修復草案,通過 owner review 與風險閘門後才可能進入審批或執行。", + "subtitle": "這筆告警已確認不能把通用兜底或診斷型 PlayBook 當成修復命令;下一步是補齊服務專屬修復草案,通過 負責人審查 與風險閘門後才可能進入審批或執行。", "statusValue": "等待 PlayBook 草案", "metrics": { "status": "狀態", @@ -8934,7 +8934,7 @@ "owner_review": "負責人、風險等級、適用條件與批准紀錄。", "script_or_ansible_ref": "腳本或 Ansible 參照,必須能被安全路由與 reviewer 查到。", "schedule_or_monitoring_rule_ref": "排程、監控規則或 recurrence 偵測參照,避免同類告警只靠人工記憶。", - "km_update_plan": "KM 更新草稿與 owner review 計畫,避免錯知識直接固化。", + "km_update_plan": "KM 更新草稿與 負責人審查 計畫,避免錯知識直接固化。", "automation_asset_record": "自動化資產紀錄,包含 asset id、owner、狀態、來源與下一步。" }, "assetsTitle": "自動化資產沉澱板", @@ -8942,7 +8942,7 @@ "km": { "type": "KM", "owner": "Hermes", - "visibility": "Knowledge Base:根因、處置、引用來源與 owner review。", + "visibility": "Knowledge Base:根因、處置、引用來源與 負責人審查。", "status": "待草稿" }, "playbook": { @@ -8975,13 +8975,13 @@ "incident_timeline_stage_update": "Incident timeline 必須標記目前階段、處置包、owner 與下一步。", "execution_or_manual_handoff_result": "無執行時也要寫入人工接手結果,不能只留下批准紀錄。", "verifier_result": "Verifier 要能記錄成功、失敗、降級或尚未執行。", - "km_update_draft": "Hermes 產生 KM 草稿,owner review 後才可寫入高影響知識。", + "km_update_draft": "Hermes 產生 KM 草稿,負責人審查 後才可寫入高影響知識。", "playbook_trust_update": "PlayBook 成功 / 失敗 / 未執行都要回寫 trust 與適用條件。", "automation_asset_inventory_record": "資產清冊要留下 KM、PlayBook、腳本、排程、Verifier 的 ID 與狀態。" }, "guardrailTitle": "阻擋原因與禁止誤讀", "blocker": "目前缺少可信修復候選;系統只能建立人工草案工作項,不能把 no-action、診斷結果或通用兜底當作已修復。", - "nextStep": "請先補 PlayBook 草案與 MCP evidence,再由 owner review 決定是否送審批;在此之前不會自動執行、不會寫入成功修復,也不會更新 KM 為已解決。", + "nextStep": "請先補 PlayBook 草案與 MCP evidence,再由 負責人審查 決定是否送審批;在此之前不會自動執行、不會寫入成功修復,也不會更新 KM 為已解決。", "chainTitle": "真相鏈對照", "chain": { "stage": "目前階段", @@ -9234,7 +9234,7 @@ "callbackObserved": "TG Callback", "callbackObservedDetail": "詳情 / 歷史回覆已追蹤;失敗 {failed} 筆", "noEvidence": "缺 AI 證據", - "noEvidenceDetail": "列表尚未連到 ADR-100 dry-run或MCP evidence", + "noEvidenceDetail": "列表尚未連到 ADR-100 乾跑或MCP evidence", "approvalReadOnlyDetail": "審批前已有只讀補救證據可回看", "approvalNoEvidenceDetail": "審批前仍缺 AI 證據,需進 執行時間線 檢查" } @@ -9496,8 +9496,8 @@ "triageAutomation": "自動化:{state};可安全自動修復={safe}", "triageBlocker": "卡點:{reason}", "statuses": { - "matched_owner_review": "已匹配 owner review", - "no_related_owner_review": "未匹配 owner review", + "matched_owner_review": "已匹配 負責人審查", + "no_related_owner_review": "未匹配 負責人審查", "fetch_failed": "讀取失敗", "no_incident": "缺少 Incident", "observed": "已記錄" @@ -19060,7 +19060,7 @@ }, "runtimeBoundary": { "title": "runtime 邊界維持 0 / false", - "body": "Wazuh active response、Kali scan、Prometheus reload、Telegram send、auto block 與 action button 全部維持關閉。" + "body": "Wazuh active response、Kali scan、Prometheus reload、Telegram 發送、auto block 與 action button 全部維持關閉。" } } }, @@ -19071,7 +19071,7 @@ "checkLabel": "檢核", "stateLabel": "狀態", "boundaryTitle": "資安資產總帳邊界", - "boundaryIntro": "以下鍵值固定:資安資產總帳完成只代表 repo-side 控制面已收斂;owner response、live evidence、runtime gate、host write、Kali active scan、Wazuh active response、SOAR、auto block 與 production write 仍全部維持 0 / false。", + "boundaryIntro": "以下鍵值固定:資安資產總帳完成只代表 repo-side 控制面已收斂;owner response、live evidence、runtime gate、host write、Kali active scan、Wazuh active response、SOAR、auto block 與 正式環境寫入 仍全部維持 0 / false。", "summary": { "assetGroups": { "label": "資產群組", @@ -19132,7 +19132,7 @@ "checkLabel": "優先", "stateLabel": "狀態", "boundaryTitle": "外部入侵防堵邊界", - "boundaryIntro": "以下鍵值固定:防堵矩陣不是主機操作授權;沒有 owner、維護窗口、rollback、validation 與 postcheck 前,不執行 SSH、firewall、Nginx reload、Wazuh active response、套件更新、secret 輪替或 production write。", + "boundaryIntro": "以下鍵值固定:防堵矩陣不是主機操作授權;沒有 owner、維護窗口、rollback、validation 與 postcheck 前,不執行 SSH、firewall、Nginx reload、Wazuh active response、套件更新、secret 輪替或 正式環境寫入。", "summary": { "domains": { "label": "控制域", @@ -19169,8 +19169,8 @@ "body": "runner、workflow、deploy key、webhook 與 secret metadata 變更必須串回高價值配置 gate。" }, "wazuhResponse": { - "title": "Wazuh response 先 dry-run", - "body": "active response 只能先做 dry-run、blast radius 與 rollback 評估,不能直接啟用。" + "title": "Wazuh response 先 乾跑", + "body": "active response 只能先做 乾跑、blast radius 與 rollback 評估,不能直接啟用。" }, "backupRestore": { "title": "復原退路要先驗", @@ -19360,7 +19360,7 @@ }, "routeImpacts": { "label": "Route impact", - "detail": "14 個 domain / route 影響面需後續 owner review。" + "detail": "14 個 domain / route 影響面需後續 負責人審查。" }, "preflightGates": { "label": "前置 Gate", @@ -19435,7 +19435,7 @@ }, "acmeRoutes": { "title": "ACME challenge 已標記", - "body": "7 個 domain 帶有 ACME challenge route,可供後續 owner review 與 smoke plan 使用。" + "body": "7 個 domain 帶有 ACME challenge route,可供後續 負責人審查 與 smoke plan 使用。" }, "ownerConfirmation": { "title": "憑證路徑需 owner 確認", diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 098c15bf..819ca65c 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -142,8 +142,8 @@ "sreLabel": "SRE 戰情室", "sreDetail": "action-required {action}、approval-required {approval} 才進集中路由。", "sreMeta": "目標:AwoooI SRE 戰情室,其他路由需例外批准", - "runtimeLabel": "Runtime Gate", - "runtimeDetail": "發通知、reload、restart、endpoint change、secret read 與修復套用仍鎖住。", + "runtimeLabel": "執行期 Gate", + "runtimeDetail": "發通知、reload、restart、端點變更、機密讀取 與修復套用仍鎖住。", "runtimeMeta": "只讀顯示;不代表自動修復已授權" }, "scope": { @@ -738,11 +738,11 @@ }, "execution": { "module": "PlayBook / MCP / Ansible", - "owns": "工具調查、dry-run、check-mode、apply gate與修復證據" + "owns": "工具調查、乾跑、check-mode、apply gate與修復證據" }, "learning": { "module": "KM / Governance", - "owns": "stale KM、owner review、SLO、事後學習與規則更新" + "owns": "stale KM、負責人審查、SLO、事後學習與規則更新" } } }, @@ -1049,7 +1049,7 @@ }, "verify": { "metric": "stale {stale} / ratio {ratio}", - "detail": "owner review pending {pending},completed {completed},距離門檻剩 {remaining}" + "detail": "負責人審查 pending {pending},completed {completed},距離門檻剩 {remaining}" } }, "values": { @@ -1921,7 +1921,7 @@ "badge": "KM 治理警戒", "readback": "Hermes / AwoooP 只讀回讀", "title": "KM 自動化掌控台", - "subtitle": "先看 stale ratio、owner review、ready / blocked 與寫回數,再進入條目列表;這裡把 KM、PlayBook、腳本、排程與 Verifier 的沉澱狀態前移到首屏。", + "subtitle": "先看 stale ratio、負責人審查、ready / blocked 與寫回數,再進入條目列表;這裡把 KM、PlayBook、腳本、排程與 Verifier 的沉澱狀態前移到首屏。", "openWorkItems": "處理 Owner Review", "card": { "staleRatio": "Stale Ratio", @@ -1965,11 +1965,11 @@ }, "monitoring": { "title": "排程 / 監控規則", - "detail": "含告警 / 監控訊號 {ready} 筆;owner review 待處理 {pending} 筆。" + "detail": "含告警 / 監控訊號 {ready} 筆;負責人審查 待處理 {pending} 筆。" }, "verifier": { "title": "Verifier 回寫", - "detail": "已批准或完成驗證 {ready} 筆;待 owner review {pending} 筆。" + "detail": "已批准或完成驗證 {ready} 筆;待 負責人審查 {pending} 筆。" } } }, @@ -2359,7 +2359,7 @@ "schedule": "排程", "fields": "必填欄位", "checks": "Verifier 檢查", - "ownerRequired": "需要 owner review", + "ownerRequired": "需要 負責人審查", "ownerOptional": "Owner review 可後補", "gateClosed": "runtime gate 0", "gateOpen": "runtime gate 已開", @@ -3597,16 +3597,16 @@ } }, "redisDryRunGate": { - "title": "P2-403C Redis Dry-run Gate", + "title": "P2-403C Redis 乾跑 Gate", "source": "{generated} · {current} → {next}", "consumerTitle": "Consumer group 乾跑契約", "consumerDetail": "{group} · {namespace} · fixture fields {fields}", - "envelopeTitle": "Handoff envelope", - "redactionTitle": "Dry-run 顯示紅線", + "envelopeTitle": "交接封套", + "redactionTitle": "乾跑 顯示紅線", "metrics": { "overall": "P2-403C 進度", - "steps": "Dry-run steps", - "lanes": "Handoff lanes", + "steps": "乾跑步驟", + "lanes": "交接通道", "approval": "需批准 steps", "blocked": "阻擋 runtime", "live": "Live 筆數" @@ -3648,12 +3648,12 @@ "lanes": "Learning lanes", "approval": "需批准 gates", "blocked": "阻擋寫入", - "live": "Live writes" + "live": "正式寫入" }, "flags": { - "km": "KM write: {value}", + "km": "KM 寫入: {value}", "playbook": "PlayBook trust: {value}", - "telegram": "Telegram send: {value}" + "telegram": "Telegram 發送: {value}" }, "labels": { "requiredFields": "必填欄位 {count}", @@ -3820,7 +3820,7 @@ }, "learning": { "label": "KM / PlayBook 學習", - "detail": "{gates} 個 learning gate 等 owner review。" + "detail": "{gates} 個 learning gate 等 負責人審查。" } }, "gates": { @@ -3830,7 +3830,7 @@ }, "repairCandidate": { "label": "修復候選完整度", - "detail": "待 owner review {review};verifier plan {verifier}。" + "detail": "待 負責人審查 {review};verifier plan {verifier}。" }, "approval": { "label": "批准邊界", @@ -3853,7 +3853,7 @@ "badges": { "readOnly": "repo-only 監控", "telegram": "Telegram 實發 {value}", - "production": "Production write {value}" + "production": "正式環境寫入 {value}" }, "metrics": { "sources": "來源快照", @@ -3881,7 +3881,7 @@ "upgrade": "套件升級 / lockfile", "docker": "Docker build / image", "telegram": "Telegram / Gateway", - "production": "Production write" + "production": "正式環境寫入" } }, "receiptOwnerReview": { @@ -4399,7 +4399,7 @@ "read_only_allowed": "只讀允許", "ready_for_operator_review": "待人工審查", "blocked_by_evidence": "證據不足阻擋", - "dry_run_required": "需 dry-run", + "dry_run_required": "需 乾跑", "cost_approval_required": "費用需批准", "dependency_approval_required": "依賴需批准", "production_change_blocked": "生產變更阻擋", @@ -4540,7 +4540,7 @@ "host_runner_mapped": "Host runner 已映射", "owner_attestation_required": "需 owner 證明", "comment_ambiguous": "註解語意待釐清", - "dry_run_only": "僅 dry-run", + "dry_run_only": "僅 乾跑", "prepared_not_applied_by_snapshot": "已準備未套用", "preserved": "已保留", "exception_documented": "例外已標記", @@ -4744,7 +4744,7 @@ "quietSuccess": "成功不洗版", "quietSuccessDetail": "verified 狀態只進治理頁與每日摘要。", "blockedOperations": "執行入口", - "blockedOperationsDetail": "通知發送、live probe、restart、endpoint change 與 runtime execution 皆為 0。", + "blockedOperationsDetail": "通知發送、live probe、restart、端點變更 與 runtime execution 皆為 0。", "redaction": "顯示隔離", "redactionDetail": "前端只顯示 committed evidence 與政策摘要,{count} 類內容不得顯示。" }, @@ -4776,12 +4776,12 @@ "lanes": "Receipt lanes", "approval": "需批准 gates", "blocked": "阻擋動作", - "live": "Live receipts" + "live": "正式回執" }, "flags": { - "send": "Telegram send: {value}", - "queue": "Queue write: {value}", - "direct": "Direct Bot API: {value}" + "send": "Telegram 發送: {value}", + "queue": "佇列寫入: {value}", + "direct": "直接 Bot API: {value}" }, "labels": { "requiredFields": "必填欄位 {count}", @@ -4790,24 +4790,24 @@ } }, "ownerApprovedLearningDryRun": { - "title": "P2-403F Owner-approved Learning Dry-run", + "title": "P2-403F 負責人批准 Learning 乾跑", "source": "{generated} · {current} → {next}", - "previewTitle": "Dry-run preview", - "truthTitle": "目前 dry-run 真相", + "previewTitle": "乾跑預覽", + "truthTitle": "目前 乾跑真相", "verificationTitle": "驗證與回滾", "metrics": { "overall": "P2-403F 進度", "actions": "人工選項", - "gates": "Dry-run gates", + "gates": "乾跑關卡", "approval": "需批准 gates", "blocked": "阻擋寫入", - "outputs": "Preview 產物", + "outputs": "預覽產物", "generated": "已產生 preview" }, "flags": { - "ownerApproval": "owner approval: {value}", - "km": "KM write: {value}", - "telegram": "Telegram send: {value}" + "ownerApproval": "負責人批准: {value}", + "km": "KM 寫入: {value}", + "telegram": "Telegram 發送: {value}" }, "labels": { "requiredInputs": "必填輸入 {count}", @@ -4827,13 +4827,13 @@ "gates": "批准 gates", "approval": "需批准 gates", "blocked": "阻擋動作", - "live": "Live writes" + "live": "正式寫入" }, "flags": { - "dualApproval": "dual approval: {value}", - "hash": "dry-run hash: {value}", + "dualApproval": "雙重批准: {value}", + "hash": "乾跑 hash: {value}", "verifier": "verifier pass: {value}", - "runtime": "runtime write: {value}" + "runtime": "執行期寫入: {value}" }, "labels": { "requiredFields": "必填欄位 {count}", @@ -4842,25 +4842,25 @@ } }, "ownerDryRunPackage": { - "title": "P2-403F Owner-approved Fixture Dry-run", + "title": "P2-403F 負責人批准 Fixture 乾跑", "source": "{generated} · {current} → {next}", - "packageTitle": "Fixture dry-run 批准包", + "packageTitle": "Fixture 乾跑 批准包", "truthTitle": "目前乾跑真相", "redactionTitle": "前端顯示紅線", "metrics": { "overall": "P2-403F 進度", - "fixtures": "Fixture sets", - "gates": "Dry-run gates", + "fixtures": "Fixture 組", + "gates": "乾跑關卡", "approval": "需批准 gates", "blocked": "阻擋動作", - "live": "Live 寫送合計" + "live": "正式寫送合計" }, "flags": { - "fixture": "Fixture dry-run: {value}", - "write": "Production write: {value}", - "send": "Telegram send: {value}", - "actionButton": "Action button: {value}", - "secret": "Secret display: {value}" + "fixture": "Fixture 乾跑: {value}", + "write": "正式環境寫入: {value}", + "send": "Telegram 發送: {value}", + "actionButton": "操作按鈕: {value}", + "secret": "機密顯示: {value}" }, "labels": { "requiredFields": "必填欄位 {count}", @@ -4946,27 +4946,27 @@ "subtitle": "治理頁仍在同步其他讀模型;已取得的報表真相、告警有效性與工作項隊列會先呈現,不再用骨架屏遮住成果。", "pending": "其餘讀模型同步中", "pendingCount": "同步中 {count}", - "boundary": "這裡只代表核心讀模型已回來;缺資料會視為資料鏈缺口,不代表 KM / PlayBook / 腳本 / 排程 / Verifier 已完成,也不代表 runtime 已授權。" + "boundary": "這裡只代表核心讀模型已回來;缺資料會視為資料鏈缺口,不代表 KM / PlayBook / 腳本 / 排程 / Verifier 已完成,也不代表 執行期已授權。" }, "reportTruthActionabilityReview": { - "title": "P2-403K 報表真相與告警有效性", + "title": "P2-403K 報表真相與告警有效性", "source": "{generated} · {current} → {next}", - "truthTitle": "報表真相", - "telegramTitle": "AwoooI SRE 戰情室路由", - "policyTitle": "收斂與批准邊界", - "freshnessRadarTitle": "來源 freshness 雷達", - "actionabilityScoreTitle": "報表可處置分數", - "confidenceGateTitle": "低信任欄位", - "workItemQueueTitle": "全 0 工作項隊列", - "metrics": { - "overall": "P2-403K 進度", - "weeklyScore": "週報處置分數", - "sourceFreshness": "來源 Gate", - "staleSources": "不可信來源", - "lowConfidence": "低信任欄位", - "zeroWorkItems": "待建工作項", - "findings": "真相缺口", - "critical": "Critical", + "truthTitle": "報表真相", + "telegramTitle": "AwoooI SRE 戰情室路由", + "policyTitle": "收斂與批准邊界", + "freshnessRadarTitle": "來源 freshness 雷達", + "actionabilityScoreTitle": "報表可處置分數", + "confidenceGateTitle": "低信任欄位", + "workItemQueueTitle": "全 0 工作項隊列", + "metrics": { + "overall": "P2-403K 進度", + "weeklyScore": "週報處置分數", + "sourceFreshness": "來源 Gate", + "staleSources": "不可信來源", + "lowConfidence": "低信任欄位", + "zeroWorkItems": "待建工作項", + "findings": "真相缺口", + "critical": "Critical", "cadences": "日週月", "missingCadence": "缺契約", "telegramRoutes": "TG 旁路", @@ -4983,13 +4983,13 @@ "otherRoutes": "其他群組允許: {value}", "routeChange": "路由變更允許: {value}" }, - "labels": { - "canonicalRoom": "唯一戰情室: {room}", - "legacyRoutesDetail": "direct send / legacy chat / multi bot 必須收斂", - "ttl": "TTL: {value}", - "requiredAssets": "必填資產 {count} 項" - } - }, + "labels": { + "canonicalRoom": "唯一戰情室: {room}", + "legacyRoutesDetail": "direct send / legacy chat / multi bot 必須收斂", + "ttl": "TTL: {value}", + "requiredAssets": "必填資產 {count} 項" + } + }, "reportAutomationReview": { "title": "P2-403J 日週月報與風險自動化 Review", "source": "{generated} · {current} → {next}", @@ -5083,8 +5083,8 @@ "perAgent": "Agent 狀態可見: {value}", "telegram": "Telegram 草案: {value}", "scheduler": "scheduler: {value}", - "queue": "queue write: {value}", - "send": "Telegram send: {value}", + "queue": "佇列寫入: {value}", + "send": "Telegram 發送: {value}", "analysis": "AI analysis: {value}", "optimization": "production optimization: {value}", "highApproval": "高風險人工審核: {value}" @@ -5122,7 +5122,7 @@ "flags": { "scheduler": "scheduler: {value}", "gateway": "Gateway queue: {value}", - "telegram": "Telegram send: {value}", + "telegram": "Telegram 發送: {value}", "botApi": "Bot API: {value}", "receipt": "receipt write: {value}", "analysis": "AI analysis: {value}", @@ -5131,7 +5131,7 @@ "labels": { "noSendMode": "無發送: {value}", "requiredEvidence": "證據 {count}", - "gateway": "queue write: {value}", + "gateway": "佇列寫入: {value}", "telegram": "send: {value}", "requiredFields": "欄位 {count}", "liveSendCount": "live send {count}", @@ -5156,11 +5156,11 @@ }, "flags": { "scheduler": "排程契約: {value}", - "queue": "queue writes: {value}", + "queue": "佇列寫入: {value}", "aiRuns": "AI runs: {value}", "mediumLow": "中低風險 runs: {value}", "gateway": "Gateway required: {value}", - "directApi": "direct API: {value}", + "directApi": "直接 API: {value}", "deliveryVerified": "E2E verified: {value}" }, "labels": { @@ -5183,19 +5183,19 @@ } }, "reportRuntimeDryRun": { - "title": "P2-403M 報表 runtime 無寫入 dry-run 證據包", + "title": "P2-403M 報表 runtime 無寫入 乾跑證據包", "source": "{generated} · {current} → {next}", - "truthTitle": "無寫入 dry-run 真相", + "truthTitle": "無寫入 乾跑真相", "queueTitle": "Gateway queue 草案", - "queueSummary": "草案收件目標是 {room};Secret 只能引用 {secret};目前 queue write {queue}、Bot API {bot}、Telegram send {send}。", + "queueSummary": "草案收件目標是 {room};Secret 只能引用 {secret};目前 佇列寫入 {queue}、Bot API {bot}、Telegram 發送 {send}。", "metrics": { "overall": "P2-403M 進度", - "artifacts": "dry-run artifacts", + "artifacts": "乾跑產物", "queueDrafts": "queue 草案", "verifierCases": "verifier cases", "approvals": "需批准", "delivery": "實發報表", - "queueWrites": "queue writes", + "queueWrites": "佇列寫入", "botCalls": "Bot API", "aiRuns": "AI runs", "verifierLive": "live verifier" @@ -5203,11 +5203,11 @@ "flags": { "noWrite": "無寫入 package: {value}", "queueDraft": "queue draft: {value}", - "queueWrite": "queue write: {value}", + "queueWrite": "佇列寫入: {value}", "receipt": "receipt write: {value}", "verifier": "verifier live: {value}", "send": "send: {value}", - "directApi": "direct API: {value}", + "directApi": "直接 API: {value}", "secret": "機密明文: {value}" }, "labels": { @@ -5233,20 +5233,20 @@ } }, "reportRuntimeFixtureReadback": { - "title": "P2-403N fixture smoke / queue preview readback / verifier dry-run", + "title": "P2-403N fixture smoke / 佇列預覽讀回 / verifier 乾跑", "source": "{generated} · {current} → {next}", "truthTitle": "fixture readback 真相", - "queueTitle": "queue preview readback", - "queueSummary": "readback 收件目標是 {room};Secret 只能引用 {secret};目前 queue write {queue}、Bot API {bot}、Telegram send {send}。", + "queueTitle": "佇列預覽讀回", + "queueSummary": "讀回收件目標是 {room};Secret 只能引用 {secret};目前 佇列寫入 {queue}、Bot API {bot}、Telegram 發送 {send}。", "metrics": { "overall": "P2-403N 進度", "smoke": "fixture smoke", "passed": "已通過", "queueReadbacks": "queue readbacks", - "verifierCases": "verifier dry-run", + "verifierCases": "verifier 乾跑", "approvals": "需批准", - "queueWrites": "queue writes", - "sends": "Telegram sends", + "queueWrites": "佇列寫入", + "sends": "Telegram 發送", "botCalls": "Bot API", "workerRuns": "worker runs", "verifierLive": "live verifier" @@ -5256,9 +5256,9 @@ "queueReadback": "queue readback: {value}", "redaction": "redaction: {value}", "operatorReview": "operator packet: {value}", - "queueWrite": "queue write: {value}", + "queueWrite": "佇列寫入: {value}", "send": "send: {value}", - "directApi": "direct API: {value}", + "directApi": "直接 API: {value}", "secret": "機密明文: {value}", "verifier": "verifier live: {value}", "resultWrite": "result write: {value}" @@ -5291,7 +5291,7 @@ "source": "{generated} · {current} → {next}", "truthTitle": "shadow gate 真相", "boundaryTitle": "live 邊界", - "boundarySummary": "目前 live worker {live}、Gateway queue write {queue}、Telegram send {send}、production write {write};這段只允許 shadow/無寫入 evidence。", + "boundarySummary": "目前 正式 worker {live}、Gateway 佇列寫入 {queue}、Telegram 發送 {send}、正式環境寫入 {write};這段只允許 shadow/無寫入 evidence。", "metrics": { "overall": "P2-404 進度", "candidates": "shadow 候選", @@ -5301,10 +5301,10 @@ "replays": "無寫入 replay", "verifierCases": "verifier cases", "approvals": "需批准", - "liveRuns": "live worker", - "queueWrites": "queue writes", - "sends": "Telegram sends", - "productionWrites": "prod writes" + "liveRuns": "正式 worker", + "queueWrites": "佇列寫入", + "sends": "Telegram 發送", + "productionWrites": "正式環境寫入" }, "flags": { "shadowReady": "shadow evidence: {value}", @@ -5312,9 +5312,9 @@ "replayReady": "無寫入 replay: {value}", "operatorReview": "operator packet: {value}", "shadowLive": "shadow live: {value}", - "queueWrite": "queue write: {value}", + "queueWrite": "佇列寫入: {value}", "send": "send: {value}", - "productionWrite": "prod write: {value}", + "productionWrite": "正式環境寫入: {value}", "secret": "機密明文: {value}", "resultWrite": "result write: {value}", "verifier": "verifier live: {value}" @@ -5344,7 +5344,7 @@ "source": "{generated} · {current} → {next}", "truthTitle": "權限模型真相", "boundaryTitle": "runtime 邊界", - "boundarySummary": "目前 runtime {runtime}、Gateway queue write {queue}、Telegram send {send}、production write {write}、secret read {secret};本段只定義 lane,不開執行。", + "boundarySummary": "目前 runtime {runtime}、Gateway 佇列寫入 {queue}、Telegram 發送 {send}、正式環境寫入 {write}、機密讀取 {secret};本段只定義 lane,不開執行。", "metrics": { "overall": "P2-101 進度", "categories": "操作類別", @@ -5355,10 +5355,10 @@ "blocked": "明確阻擋", "gates": "關卡", "runtimeRuns": "runtime", - "queueWrites": "queue writes", + "queueWrites": "佇列寫入", "telegramSends": "TG sends", - "productionWrites": "prod writes", - "secretReads": "secret reads", + "productionWrites": "正式環境寫入", + "secretReads": "機密讀取", "destructive": "破壞性" }, "flags": { @@ -5366,10 +5366,10 @@ "matrixReady": "matrix ready: {value}", "agentMap": "agent map: {value}", "p2Handoff": "P2-404 handoff: {value}", - "runtime": "runtime enabled: {value}", - "queueWrite": "queue write: {value}", + "runtime": "執行期啟用: {value}", + "queueWrite": "佇列寫入: {value}", "send": "send: {value}", - "productionWrite": "prod write: {value}", + "productionWrite": "正式環境寫入: {value}", "secret": "機密明文: {value}", "destructive": "destructive: {value}", "liveExecution": "live execution: {value}", @@ -5403,11 +5403,11 @@ } }, "candidateOperationDryRunEvidence": { - "title": "P2-102 候選操作 dry-run 證據", + "title": "P2-102 候選操作 乾跑證據", "source": "{generated} · {current} → {next}", - "truthTitle": "dry-run 證據真相", + "truthTitle": "乾跑證據真相", "boundaryTitle": "副作用邊界", - "boundarySummary": "目前 side-effect {sideEffects}、Gateway queue write {queue}、Telegram send {send}、production write {write}、secret read {secret};本段只產生證據與人工 handoff,不開執行。", + "boundarySummary": "目前 副作用 {sideEffects}、Gateway 佇列寫入 {queue}、Telegram 發送 {send}、正式環境寫入 {write}、機密讀取 {secret};本段只產生證據與人工 handoff,不開執行。", "metrics": { "overall": "P2-102 進度", "candidates": "候選操作", @@ -5417,22 +5417,22 @@ "allowlistBlocked": "等 allow-list", "policyBlocked": "政策阻擋", "verifierPlans": "verifier plan", - "sideEffects": "side-effect", - "queueWrites": "queue writes", + "sideEffects": "副作用", + "queueWrites": "佇列寫入", "telegramSends": "TG sends", - "productionWrites": "prod writes", - "secretReads": "secret reads", + "productionWrites": "正式環境寫入", + "secretReads": "機密讀取", "destructive": "破壞性" }, "flags": { "modelLoaded": "P2-101 loaded: {value}", - "gateReady": "dry-run gate: {value}", + "gateReady": "乾跑關卡: {value}", "allHaveEvidence": "all evidence: {value}", "verifierReady": "verifier ready: {value}", - "runtime": "runtime enabled: {value}", - "queueWrite": "queue write: {value}", + "runtime": "執行期啟用: {value}", + "queueWrite": "佇列寫入: {value}", "send": "send: {value}", - "productionWrite": "prod write: {value}", + "productionWrite": "正式環境寫入: {value}", "secret": "機密明文: {value}", "destructive": "destructive: {value}", "liveReadback": "live readback: {value}", @@ -5440,7 +5440,7 @@ "runtimeAction": "runtime action: {value}" }, "labels": { - "sideEffect": "side-effect {count}", + "sideEffect": "副作用 {count}", "humanDecision": "人工判斷: {value}", "outputHash": "output hash: {value}", "verifier": "verifier: {value}", @@ -5465,7 +5465,7 @@ "source": "{generated} · {current} → {next}", "truthTitle": "結果回接真相", "boundaryTitle": "寫回邊界", - "boundarySummary": "目前 KM write {km}、LOGBOOK runtime append {logbook}、audit DB write {audit}、timeline write {timeline}、Gateway queue write {queue}、Telegram send {send};本段只定義結果路由與人工交接,不開 runtime 寫入。", + "boundarySummary": "目前 KM 寫入 {km}、LOGBOOK 執行期追加 {logbook}、審計 DB 寫入 {audit}、timeline 寫入 {timeline}、Gateway 佇列寫入 {queue}、Telegram 發送 {send};本段只定義結果路由與人工交接,不開 runtime 寫入。", "metrics": { "overall": "P2-103 進度", "routes": "結果路由", @@ -5475,11 +5475,11 @@ "blocked": "卡點結果", "writebacks": "寫回契約", "checkpoints": "稽核點", - "kmWrites": "KM writes", + "kmWrites": "KM 寫入s", "logbookWrites": "LOGBOOK writes", "auditWrites": "audit 寫入", - "timelineWrites": "timeline writes", - "queueWrites": "queue writes", + "timelineWrites": "timeline 寫入s", + "queueWrites": "佇列寫入", "telegramSends": "TG sends" }, "flags": { @@ -5487,16 +5487,16 @@ "routeReady": "route matrix: {value}", "kmReady": "KM draft: {value}", "auditReady": "audit trail: {value}", - "runtime": "runtime enabled: {value}", - "kmWrite": "KM write: {value}", + "runtime": "執行期啟用: {value}", + "kmWrite": "KM 寫入: {value}", "logbookWrite": "LOGBOOK append: {value}", "auditWrite": "audit 寫入: {value}", - "timelineWrite": "timeline write: {value}", + "timelineWrite": "timeline 寫入: {value}", "send": "send: {value}" }, "labels": { "owner": "owner: {value}", - "ownerReview": "owner review: {value}", + "ownerReview": "負責人審查: {value}", "liveWrite": "live write: {value}", "blockedReason": "卡點: {value}", "kmTarget": "KM: {value}", @@ -5504,7 +5504,7 @@ "evidenceHash": "evidence: {value}", "targetSystem": "target: {value}", "writeEnabled": "write enabled: {value}", - "runtimeWriter": "runtime writer: {value}", + "runtimeWriter": "執行期寫入r: {value}", "runtimeAction": "runtime action: {value}" }, "resultStates": { @@ -5533,7 +5533,7 @@ "source": "{generated} · {current} → {next}", "truthTitle": "學習缺口真相", "boundaryTitle": "learning / trust 邊界", - "boundarySummary": "目前 learning write {learning}、PlayBook trust write {trust}、Gateway queue write {queue}、Telegram send {send}、PlayBook updated_24h {updated};本段只呈現只讀回查與 gate,不開 runtime 寫入。", + "boundarySummary": "目前 學習寫入 {learning}、PlayBook trust 寫入 {trust}、Gateway 佇列寫入 {queue}、Telegram 發送 {send}、PlayBook updated_24h {updated};本段只呈現只讀回查與 gate,不開 runtime 寫入。", "metrics": { "overall": "P2-104 進度", "approvals": "24h approvals", @@ -5545,9 +5545,9 @@ "playbookUpdated": "PlayBook updated", "gates": "learning gates", "candidates": "writeback 候選", - "learningWrites": "learning writes", + "learningWrites": "學習寫入s", "trustWrites": "trust writes", - "queueWrites": "queue writes", + "queueWrites": "佇列寫入", "telegramSends": "TG sends" }, "flags": { @@ -5555,7 +5555,7 @@ "matchedResolved": "matched gap resolved: {value}", "executionGap": "execution learning gap: {value}", "trustGap": "trust update gap: {value}", - "learningWrite": "learning write: {value}", + "learningWrite": "學習寫入: {value}", "trustWrite": "trust write: {value}", "autoExecute": "auto execute: {value}", "send": "send: {value}" @@ -5567,9 +5567,9 @@ "candidates": "learning candidates: {value}", "count24h": "24h: {value}", "liveWrite": "live write: {value}", - "runtimeWrite": "runtime write: {value}", + "runtimeWrite": "執行期寫入: {value}", "writeEnabled": "write enabled: {value}", - "runtimeWriter": "runtime writer: {value}", + "runtimeWriter": "執行期寫入r: {value}", "evidenceHash": "evidence: {value}" }, "statuses": { @@ -5604,8 +5604,8 @@ "title": "P2-105 Critic / Reviewer 評分與結果捕捉", "source": "{generated} · {current} → {next}", "truthTitle": "批准前評分真相", - "boundaryTitle": "result capture / learning 邊界", - "boundarySummary": "目前 Critic score {critic}、Reviewer score {reviewer}、result capture write {capture}、learning write {learning}、PlayBook trust write {trust}、Telegram send {send};本段只定義評分、結果捕捉與 promotion gate,不開 runtime 寫入。", + "boundaryTitle": "結果捕捉 / learning 邊界", + "boundarySummary": "目前 Critic 分數 {critic}、Reviewer 分數 {reviewer}、結果捕捉寫入 {capture}、學習寫入 {learning}、PlayBook trust 寫入 {trust}、Telegram 發送 {send};本段只定義評分、結果捕捉與 promotion gate,不開 runtime 寫入。", "metrics": { "overall": "P2-105", "scorecards": "評分卡", @@ -5630,14 +5630,14 @@ "flags": { "p2Loaded": "P2-104 gap loaded: {value}", "scoreRequired": "score required: {value}", - "captureRequired": "result capture required: {value}", - "ownerReview": "owner review: {value}", + "captureRequired": "結果捕捉 required: {value}", + "ownerReview": "負責人審查: {value}", "verifier": "post-write verifier: {value}", "verifierRequired": "post-write verifier: {value}", "criticRuntime": "critic runtime: {value}", "reviewerRuntime": "reviewer runtime: {value}", "captureRuntime": "capture runtime: {value}", - "learningWrite": "learning write: {value}", + "learningWrite": "學習寫入: {value}", "trustWrite": "trust write: {value}", "send": "send: {value}" }, @@ -5648,8 +5648,8 @@ "evidenceHash": "evidence: {value}", "count24h": "24h: {value}", "writeEnabled": "write enabled: {value}", - "runtimeWriter": "runtime writer: {value}", - "runtimeWrite": "runtime write: {value}", + "runtimeWriter": "執行期寫入r: {value}", + "runtimeWrite": "執行期寫入: {value}", "candidateCount": "candidates: {value}" }, "roles": { @@ -5689,15 +5689,15 @@ } }, "ownerApprovedResultCaptureDryRun": { - "title": "P2-106 統帥批准後結果捕捉 dry-run", + "title": "P2-106 統帥批准後結果捕捉 乾跑", "source": "{generated} · {current} → {next}", "packetTitle": "批准包", - "truthTitle": "無寫入 dry-run 真相", + "truthTitle": "無寫入 乾跑真相", "metrics": { "overall": "P2-106 進度", "templates": "捕捉模板", "scoreFixtures": "評分 fixture", - "gates": "dry-run 閘門", + "gates": "乾跑關卡", "actions": "操作選項", "approvals": "需批准", "blocked": "阻擋閘門", @@ -5733,7 +5733,7 @@ "runtimeWrite": "runtime 寫入: {value}" }, "statuses": { - "ready_for_dry_run": "可 dry-run", + "ready_for_dry_run": "可 乾跑", "approval_required": "需批准", "blocked_by_policy": "政策阻擋" }, @@ -5745,7 +5745,7 @@ "actionTypes": { "review": "審查", "collect_evidence": "收集證據", - "approve_dry_run": "批准 dry-run", + "approve_dry_run": "批准 乾跑", "reject_or_rework": "退回重整", "promote_to_next_gate": "推進下一閘門" } @@ -5771,7 +5771,7 @@ "liveWrites": "正式寫入" }, "flags": { - "dryRunLoaded": "P2-106 dry-run: {value}", + "dryRunLoaded": "P2-106 乾跑: {value}", "fixtureReadback": "fixture readback: {value}", "digestReady": "digest ready: {value}", "promotionReady": "promotion review: {value}", @@ -5795,8 +5795,8 @@ "runtimeWrite": "runtime 寫入: {value}", "abortsPromotion": "中止 promotion: {value}", "requiredInputs": "必填輸入 {count}", - "queueWrite": "queue write: {value}", - "telegramSend": "Telegram send: {value}", + "queueWrite": "佇列寫入: {value}", + "telegramSend": "Telegram 發送: {value}", "evidenceHash": "evidence: {value}" }, "statuses": { @@ -5820,7 +5820,7 @@ "blocked_by_policy": "政策阻擋" }, "queueStatuses": { - "queued_for_owner_review": "待 owner review", + "queued_for_owner_review": "待 負責人審查", "blocked_by_policy": "政策阻擋" }, "reviewerRoles": { @@ -5881,8 +5881,8 @@ "requiredSteps": "演練步驟 {count}", "rollbackWrite": "rollback write: {value}", "requiredEvidence": "必備證據 {count}", - "queueWrite": "queue write: {value}", - "telegramSend": "Telegram send: {value}", + "queueWrite": "佇列寫入: {value}", + "telegramSend": "Telegram 發送: {value}", "botApi": "Bot API: {value}" }, "packetStatuses": { @@ -5971,7 +5971,7 @@ "blockerStatuses": { "blocking_runtime": "阻擋 runtime", "blocking_live_read": "阻擋 live read", - "blocking_queue_write": "阻擋 queue write", + "blocking_queue_write": "阻擋 佇列寫入", "blocking_notification": "阻擋通知", "blocking_production_write": "阻擋正式寫入" }, @@ -6175,7 +6175,7 @@ "lanes": "promotion lane", "contracts": "receipt contract", "reviewerPreviews": "reviewer queue", - "resultPreviews": "result capture", + "resultPreviews": "結果捕捉", "checks": "無寫入 verifier", "blockers": "阻塞映射", "actions": "操作選項", @@ -6202,7 +6202,7 @@ "failureReceiptReady": "failure receipt ready={value}", "reviewerReady": "reviewer preview={value}", "resultReady": "result preview={value}", - "telegramSend": "Telegram send={value}", + "telegramSend": "Telegram 發送={value}", "queueWrite": "queue 寫入={value}", "resultWrite": "結果寫入={value}", "redactionRequired": "redaction={value}", @@ -6228,7 +6228,7 @@ "runtimePromotionAllowed": "runtime promotion={value}" }, "laneStatuses": { - "ready_for_owner_review": "待 owner review", + "ready_for_owner_review": "待 負責人審查", "approval_required": "需批准", "blocked_by_policy": "政策阻擋" }, @@ -6266,12 +6266,12 @@ "review_promotion_lane": "審查 promotion lane", "verify_failure_receipt_fixture": "驗證 failure receipt fixture", "confirm_reviewer_queue_no_write": "確認 reviewer queue 無寫入", - "compare_result_capture_preview": "比對 result capture preview", + "compare_result_capture_preview": "比對 結果捕捉 preview", "promote_to_p2_114": "推進 P2-114" } }, "ownerApprovedFixturePromotionGate": { - "title": "P2-114 owner-approved fixture promotion gate", + "title": "P2-114 負責人批准 fixture promotion gate", "source": "產生 {generated};目前 {current};下一步 {next}", "priorGateTitle": "前一關 promotion gate", "truthTitle": "Owner approval truth", @@ -6308,8 +6308,8 @@ "promotionGateLoaded": "P2-113 loaded={value}", "packageReady": "package ready={value}", "acceptanceReady": "acceptance ready={value}", - "ownerApproval": "owner approval={value}", - "telegramSend": "Telegram send={value}", + "ownerApproval": "負責人批准={value}", + "telegramSend": "Telegram 發送={value}", "resultWrite": "結果寫入={value}", "redactionRequired": "redaction={value}", "promptDisplay": "prompt display={value}", @@ -6331,7 +6331,7 @@ "runtimePromotionAllowed": "runtime promotion={value}" }, "packetStatuses": { - "ready_for_owner_review": "待 owner review", + "ready_for_owner_review": "待 負責人審查", "approval_required": "需批准", "blocked_by_policy": "政策阻擋" }, @@ -6372,19 +6372,19 @@ } }, "canonicalRuntimeReadbackOwnerAcceptance": { - "title": "P2-115 canonical runtime readback owner acceptance", + "title": "P2-115 canonical runtime readback 負責人驗收", "source": "產生 {generated};目前 {current};下一步 {next}", "priorGateTitle": "前一關 owner promotion gate", - "truthTitle": "Canonical readback owner acceptance truth" + "truthTitle": "Canonical readback 負責人驗收 truth" }, "failureReceiptNoSendReplay": { "title": "P2-116 failure receipt 無發送 replay", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 owner acceptance", + "priorTitle": "前一關 負責人驗收", "truthTitle": "無發送 replay truth", "metrics": { "overall": "完成度", - "fixtures": "Replay fixtures", + "fixtures": "Replay fixture", "routes": "Route locks", "verifiers": "Verifiers", "blockers": "Blocked sends", @@ -6416,7 +6416,7 @@ "truthTitle": "Reviewer queue 無寫入 truth", "metrics": { "overall": "完成度", - "fixtures": "Reviewer fixtures", + "fixtures": "Reviewer fixture", "mappings": "Queue mappings", "verifiers": "Verifiers", "blockers": "Blocked writes", @@ -6442,13 +6442,13 @@ } }, "resultCaptureNoWriteReadback": { - "title": "P2-118 result capture 無寫入 readback", + "title": "P2-118 結果捕捉 無寫入 readback", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 reviewer queue readback", "truthTitle": "Result capture 無寫入 truth", "metrics": { "overall": "完成度", - "fixtures": "Capture fixtures", + "fixtures": "Capture fixture", "mappings": "Field mappings", "verifiers": "Verifiers", "blockers": "Blocked writes", @@ -6474,9 +6474,9 @@ } }, "resultCapturePromotionApprovalGate": { - "title": "P2-119 result capture promotion approval gate", + "title": "P2-119 結果捕捉提升 approval gate", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 result capture readback", + "priorTitle": "前一關 結果捕捉 readback", "truthTitle": "Promotion approval truth", "metrics": { "overall": "完成度", @@ -6508,29 +6508,29 @@ } }, "ownerApprovedResultCapturePromotionDryRun": { - "title": "P2-120 owner-approved result capture promotion dry-run", + "title": "P2-120 負責人批准 結果捕捉提升 乾跑", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 promotion approval gate", - "truthTitle": "Owner-approved promotion dry-run truth", + "truthTitle": "負責人批准 promotion 乾跑 truth", "metrics": { "overall": "完成度", - "templates": "Dry-run templates", - "fixtures": "Owner fixtures", + "templates": "乾跑模板", + "fixtures": "Owner fixture", "verifiers": "Verifiers", "blockers": "Blocked writes", "actions": "操作選項", "approvalRequired": "需批准", "blocked": "阻擋", - "dryRunGenerated": "Dry-run generated", - "liveWrites": "Live dry-run / write" + "dryRunGenerated": "乾跑已產生", + "liveWrites": "正式乾跑 / 寫入" }, "flags": { "gateLoaded": "gate loaded={value}", - "ownerApproval": "owner approval required={value}", + "ownerApproval": "負責人批准 required={value}", "previewAllowed": "preview allowed={value}" }, "labels": { - "targetDryRun": "目標 dry-run:{value}", + "targetDryRun": "目標 乾跑:{value}", "resultWrites": "結果寫入={value}", "learningWrites": "學習寫入={value}", "trustWrites": "trust write={value}", @@ -6576,13 +6576,13 @@ } }, "resultCaptureWriterDryRunFixture": { - "title": "P2-123 結果寫入器 dry-run fixture", + "title": "P2-123 結果寫入器 乾跑 fixture", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關結果寫入器實作審查", - "truthTitle": "dry-run fixture 真相", + "truthTitle": "乾跑 fixture 真相", "metrics": { "overall": "完成度", - "fixtures": "Dry-run fixtures", + "fixtures": "乾跑 fixture", "receipts": "Receipt previews", "replays": "Idempotency replay", "rollbacks": "Rollback rehearsal", @@ -6598,9 +6598,9 @@ "rollback": "需要回滾演練={value}" }, "labels": { - "targetDryRun": "目標 dry-run:{value}", + "targetDryRun": "目標 乾跑:{value}", "writerApply": "writer 套用={value}", - "dryRunExecution": "dry-run 執行={value}", + "dryRunExecution": "乾跑執行={value}", "resultWrites": "結果寫入={value}", "gatewayWrites": "Gateway 寫入={value}", "writer": "writer:{value}", @@ -6611,13 +6611,13 @@ } }, "resultCaptureWriterDryRunReadback": { - "title": "P2-124 結果寫入器 dry-run readback", + "title": "P2-124 結果寫入器 乾跑讀回", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 dry-run fixture", - "truthTitle": "dry-run readback 真相", + "priorTitle": "前一關 乾跑 fixture", + "truthTitle": "乾跑讀回 真相", "metrics": { "overall": "完成度", - "readbacks": "Dry-run readbacks", + "readbacks": "乾跑讀回", "verifiers": "Receipt verifiers", "promotionGates": "Promotion gates", "blockers": "已阻擋提升", @@ -6634,7 +6634,7 @@ }, "labels": { "writerApply": "writer 套用={value}", - "dryRunExecution": "dry-run 執行={value}", + "dryRunExecution": "乾跑執行={value}", "receiptWrite": "receipt 寫入={value}", "gatewayWrites": "Gateway 寫入={value}", "promotionCandidate": "提升候選:{value}", @@ -6646,7 +6646,7 @@ "resultCaptureOwnerPromotionReview": { "title": "P2-125 owner promotion review / execution gate", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 dry-run readback", + "priorTitle": "前一關 乾跑讀回", "truthTitle": "owner promotion 真相", "metrics": { "overall": "完成度", @@ -6678,7 +6678,7 @@ } }, "resultCaptureOwnerApprovedExecutionRehearsal": { - "title": "P2-126 owner-approved execution rehearsal / 無寫入 apply gate", + "title": "P2-126 負責人批准 execution rehearsal / 無寫入 apply gate", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 owner promotion review", "truthTitle": "execution rehearsal 真相", @@ -6710,10 +6710,10 @@ } }, "resultCaptureOwnerAcceptanceMaintenanceGate": { - "title": "P2-127 owner acceptance / maintenance window gate", + "title": "P2-127 負責人驗收 / maintenance window gate", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 execution rehearsal", - "truthTitle": "owner acceptance 真相", + "truthTitle": "負責人驗收 真相", "metrics": { "overall": "完成度", "packets": "Owner packets", @@ -6743,7 +6743,7 @@ } }, "resultCaptureOwnerApprovedPreflightReleasePackage": { - "title": "P2-129 owner-approved preflight release package", + "title": "P2-129 負責人批准 preflight release package", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 preflight hold", "truthTitle": "release package 真相", @@ -6776,7 +6776,7 @@ } }, "resultCaptureOwnerApprovedReleaseReadinessReadback": { - "title": "P2-130 owner-approved release readiness readback", + "title": "P2-130 負責人批准 release readiness readback", "source": "產生 {generated};目前 {current};下一步 {next}", "priorTitle": "前一關 release package", "truthTitle": "release readiness 真相", @@ -6838,7 +6838,7 @@ "rollbackConfirmed": "rollback owner confirmed={value}", "rollbackEnabled": "rollback release enabled={value}", "liveApplyReleaseEnabled": "live apply release enabled={value}", - "runtimeWriteAllowed": "runtime write allowed={value}" + "runtimeWriteAllowed": "執行期寫入 allowed={value}" } }, "resultCaptureFinalReleaseCandidateReadback": { @@ -6873,7 +6873,7 @@ "rollbackConfirmed": "rollback owner confirmed={value}", "rollbackEnabled": "rollback release enabled={value}", "liveApplyReleaseEnabled": "live apply release enabled={value}", - "runtimeWriteAllowed": "runtime write allowed={value}" + "runtimeWriteAllowed": "執行期寫入 allowed={value}" } }, "resultCaptureReleaseAuthorizationHold": { @@ -7297,7 +7297,7 @@ "noSend": "無發送 preview={value}", "queuePreview": "queue preview={value}", "directBot": "direct Bot API={value}", - "send": "Telegram send={value}", + "send": "Telegram 發送={value}", "redaction": "脫敏鎖定={value}", "gatewayWrites": "Gateway 寫入={value}", "queueWrites": "queue 寫入={value}", @@ -7466,9 +7466,9 @@ } }, "resultCaptureOwnerAcceptanceReadbackPreflightHold": { - "title": "P2-128 owner acceptance readback / live-apply preflight hold", + "title": "P2-128 負責人驗收 readback / live-apply preflight hold", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 owner acceptance gate", + "priorTitle": "前一關 負責人驗收 gate", "truthTitle": "preflight hold 真相", "metrics": { "overall": "完成度", @@ -7488,7 +7488,7 @@ "liveApplyHoldActive": "live apply hold active={value}" }, "labels": { - "ownerAcceptanceReceived": "owner acceptance received={value}", + "ownerAcceptanceReceived": "負責人驗收 received={value}", "maintenanceApproved": "maintenance approved={value}", "gatewayWrites": "Gateway 寫入={value}", "readbackReceived": "acceptance received={value}", @@ -7499,9 +7499,9 @@ } }, "resultCaptureWriteGateReview": { - "title": "P2-121 result capture write gate review", + "title": "P2-121 結果捕捉寫入 gate review", "source": "產生 {generated};目前 {current};下一步 {next}", - "priorTitle": "前一關 owner-approved promotion dry-run", + "priorTitle": "前一關 負責人批准 promotion 乾跑", "truthTitle": "Result capture write gate truth", "metrics": { "overall": "完成度", @@ -7516,8 +7516,8 @@ "liveWrites": "Live writer / send" }, "flags": { - "dryRunLoaded": "dry-run loaded={value}", - "dualApproval": "dual approval required={value}", + "dryRunLoaded": "乾跑已載入={value}", + "dualApproval": "雙重批准 required={value}", "verifierRequired": "post-write verifier required={value}" }, "labels": { @@ -8009,7 +8009,7 @@ "title": "KM / PlayBook / 腳本 / 排程 / Verifier 沉澱矩陣", "subtitle": "把告警到修復的沉澱結果集中顯示;這裡只讀取真相鏈、KM 治理、補救佇列、recurrence、AI route 與 verifier,不把待補項目包裝成已自動修復。", "rate": "資產沉澱率", - "rateHint": "沉澱率只代表已在讀模型中看見可追蹤資產,不等於 runtime 已授權或修復成功。", + "rateHint": "沉澱率只代表已在讀模型中看見可追蹤資產,不等於 執行期已授權或修復成功。", "primaryRef": "主要參照:{ref}", "metrics": { "assets": "資產類型", @@ -8047,7 +8047,7 @@ "items": { "km": { "title": "Knowledge Base", - "detail": "Hermes 草稿、陳舊 KM、owner review 與 stale ratio 回測。", + "detail": "Hermes 草稿、陳舊 KM、負責人審查 與 stale ratio 回測。", "next": "下一步:把待補 KM 與 Incident / PlayBook / verifier 結果綁定。" }, "playbook": { @@ -8090,17 +8090,17 @@ } }, "reportSourceGapOwnerReview": { - "eyebrow": "報表資料源 owner review", + "eyebrow": "報表資料源 負責人審查", "title": "報表資料源 PlayBook / Verifier 處置板", - "subtitle": "把 report-source-gap 從報表頁接到 Work Items:每個缺口都要有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 owner review。", - "loading": "正在讀取 report-source-gap owner review read model。", + "subtitle": "把 report-source-gap 從報表頁接到 Work Items:每個缺口都要有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 負責人審查。", + "loading": "正在讀取 report-source-gap 負責人審查 read model。", "unavailable": "報表資料源 read model 尚未回應;不能把報表全 0 或缺資料判定為健康。", - "empty": "目前沒有 report-source-gap owner review 卡。", + "empty": "目前沒有 report-source-gap 負責人審查 卡。", "boundaryTitle": "不可誤讀合約", - "boundary": "live Telegram send={live};runtime gate={gate}。這裡只做草案與 owner review readback,不發送、不排程、不執行。", + "boundary": "live Telegram 發送={live};runtime gate={gate}。這裡只做草案與 負責人審查讀回,不發送、不排程、不執行。", "openReports": "回報表總控", - "ownerRequired": "需 owner review", - "ownerOptional": "owner review 可後補", + "ownerRequired": "需 負責人審查", + "ownerOptional": "負責人審查 可後補", "scheduleBoundary": "排程仍維持 無發送 preview", "fieldsTitle": "PlayBook 必填欄位", "checksTitle": "Verifier 檢查", @@ -8166,7 +8166,7 @@ "title": "AI Provider primary lane 修復工作項" }, "reportSourceGapOwnerReview": { - "title": "報表資料源 PlayBook / Verifier owner review" + "title": "報表資料源 PlayBook / Verifier 負責人審查" }, "configDriftFsm": { "title": "Config Drift fingerprint 狀態機" @@ -8216,7 +8216,7 @@ "autoRepair": "必須同時有 auto_repair、verification_result=success與KM 回寫", "recurrenceWorkItems": "Run 完成無修復、修復失敗與人工閘門必須進入可追蹤工作項", "aiRouteRepairWorkItem": "Provider lane 降級時必須顯示 evidence、owner、PlayBook候選與是否可自動修復", - "reportSourceGapOwnerReview": "每個 report-source-gap 必須有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 owner review;不得把全 0 當健康或自動執行授權", + "reportSourceGapOwnerReview": "每個 report-source-gap 必須有 PlayBook 草案、Verifier 計畫、腳本 readback、排程 無發送 與 負責人審查;不得把全 0 當健康或自動執行授權", "configDriftFsm": "同一 drift fingerprint 必須顯示重複、PR、零 diff、交接與下一步", "remediationQueue": "每筆 degraded / failed / timeout都必須映射到重跑、重驗、Ticket或人工檢查", "telegramCallbacks": "按下詳情與歷史不能再只依賴 Redis TTL或舊快照", @@ -8429,14 +8429,14 @@ "openKnowledge": "開啟 KM", "queueReview": "排入審核", "queueingReview": "排入中", - "queueFailed": "排入 owner review 失敗;請重新整理後再確認此 KM 是否仍為陳舊候選。", + "queueFailed": "排入 負責人審查 失敗;請重新整理後再確認此 KM 是否仍為陳舊候選。", "queueResult": "審核狀態:{status};Dispatch:{dispatch};Event:{event}", "ownerReviewState": "Owner review:{status};階段:{stage};Dispatch:{dispatch}", "guardrail": "防護:讀取不寫入={writes};人工覆核={review}", "queueStatuses": { "dry_run": "乾跑", - "queued": "已排入 owner review", - "already_queued": "已在 owner review" + "queued": "已排入 負責人審查", + "already_queued": "已在 負責人審查" }, "operationRail": { "title": "Owner Review 操作軌道", @@ -8507,7 +8507,7 @@ "writeGate": "確認寫 KM={writes};可確認={confirm}", "required": "必要欄位:{fields}", "blockers": "卡點:{blockers}", - "noBlockers": "卡點:無;可先做 dry-run preview。", + "noBlockers": "卡點:無;可先做 乾跑預覽。", "writeGateDetail": "後端會拒絕缺 fingerprint或未 owner_approved的寫入;讀取與乾跑不會改 KM。", "step": { "dispatch": "排入審核", @@ -8519,10 +8519,10 @@ "dispatch": "Dispatch {dispatch}", "dryRunReady": "已取得 fingerprint,可進入 owner confirm gate", "dryRunPending": "按單筆乾跑取得 fingerprint", - "dryRunBlocked": "需先排入 owner review", + "dryRunBlocked": "需先排入 負責人審查", "confirmReady": "確認後會寫 KM / audit,並排 recheck", - "confirmWaiting": "等待 dry-run fingerprint", - "confirmDone": "owner review 已完成", + "confirmWaiting": "等待 乾跑 fingerprint", + "confirmDone": "負責人審查 已完成", "recheckDone": "Recheck {recheck}", "recheckWaiting": "寫回完成後才會產生 recheck" }, @@ -8544,7 +8544,7 @@ }, "burnDown": { "title": "Stale ratio burn-down", - "subtitle": "把 owner review、completion audit與recheck snapshot 對齊,確認陳舊比例是否真的下降。", + "subtitle": "把 負責人審查、completion audit與recheck snapshot 對齊,確認陳舊比例是否真的下降。", "statuses": "狀態:{status}", "status": { "above_threshold": "仍高於門檻", @@ -8553,7 +8553,7 @@ }, "remaining": "距離門檻 {count} 筆", "unavailable": "burn-down API 尚未回應;目前只能看單筆 completion 結果。", - "empty": "尚無 owner-approved completion audit。", + "empty": "尚無 負責人批准 completion audit。", "currentRatio": "目前陳舊比例", "currentCount": "陳舊 / 總數", "ownerReviews": "Owner review", @@ -8568,14 +8568,14 @@ }, "completionQueue": { "title": "Completion分流佇列", - "subtitle": "把 owner review 拆成可乾跑、卡住、已完成、失敗,避免只看到告警卻不知道下一步。", + "subtitle": "把 負責人審查 拆成可乾跑、卡住、已完成、失敗,避免只看到告警卻不知道下一步。", "ready": "可處理 {count}", "blocked": "卡住 {count}", "completed": "完成 {count}", "failed": "失敗 {count}", "pending": "待處理 dispatch {count}", "guardrail": "讀取不寫入={writes};人工覆核={review};批次寫入={batch}", - "unavailable": "completion queue API 尚未回應;目前只能從 owner review 工作台逐筆確認。", + "unavailable": "completion queue API 尚未回應;目前只能從 負責人審查 工作台逐筆確認。", "empty": "目前沒有 owner-review completion 工作項。", "state": "分流:{readiness};階段:{stage}", "next": "下一步:{action};結果:{outcome}", @@ -8620,7 +8620,7 @@ "result": "Batch dispatch:{batch};Event:{event};已排入 {queued};已在審核 {already};略過 {skipped}", "statuses": { "dry_run": "批次乾跑完成", - "queued": "批次已排入 owner review", + "queued": "批次已排入 負責人審查", "noop_already_queued": "全部已在審核或已處理", "unknown": "批次狀態待確認" }, @@ -8637,7 +8637,7 @@ "previewing": "預覽中", "confirm": "確認完成", "confirming": "寫入中", - "previewFailed": "乾跑預覽失敗;請重新整理後確認 owner review dispatch仍有效。", + "previewFailed": "乾跑預覽失敗;請重新整理後確認 負責人審查 dispatch仍有效。", "confirmFailed": "確認完成失敗;後端可能偵測到 KM或dispatch 狀態已變更。", "missingDispatch": "缺少 owner-review dispatch;請先排入審核。", "missingPreviewFingerprint": "缺少乾跑 plan fingerprint;請先重新執行乾跑預覽。", @@ -8751,8 +8751,8 @@ "ai_analyzed": "AI 已分析", "queued_kb_healthcheck": "已排入 KM healthcheck", "draft_km_updates": "產生 KM 更新草稿", - "batch_owner_review_previewed": "批次 owner review 已乾跑", - "batch_owner_review_queued": "批次已排入 owner review", + "batch_owner_review_previewed": "批次 負責人審查 已乾跑", + "batch_owner_review_queued": "批次已排入 負責人審查", "batch_noop_already_queued": "批次無需重複排入", "waiting_owner_review": "等待 owner 審核", "owner_updates_or_archives_km": "Owner 更新或封存 KM", @@ -8893,7 +8893,7 @@ "repairCandidateDraft": { "eyebrow": "修復候選草案", "title": "PlayBook 草案處置板", - "subtitle": "這筆告警已確認不能把通用兜底或診斷型 PlayBook 當成修復命令;下一步是補齊服務專屬修復草案,通過 owner review 與風險閘門後才可能進入審批或執行。", + "subtitle": "這筆告警已確認不能把通用兜底或診斷型 PlayBook 當成修復命令;下一步是補齊服務專屬修復草案,通過 負責人審查 與風險閘門後才可能進入審批或執行。", "statusValue": "等待 PlayBook 草案", "metrics": { "status": "狀態", @@ -8934,7 +8934,7 @@ "owner_review": "負責人、風險等級、適用條件與批准紀錄。", "script_or_ansible_ref": "腳本或 Ansible 參照,必須能被安全路由與 reviewer 查到。", "schedule_or_monitoring_rule_ref": "排程、監控規則或 recurrence 偵測參照,避免同類告警只靠人工記憶。", - "km_update_plan": "KM 更新草稿與 owner review 計畫,避免錯知識直接固化。", + "km_update_plan": "KM 更新草稿與 負責人審查 計畫,避免錯知識直接固化。", "automation_asset_record": "自動化資產紀錄,包含 asset id、owner、狀態、來源與下一步。" }, "assetsTitle": "自動化資產沉澱板", @@ -8942,7 +8942,7 @@ "km": { "type": "KM", "owner": "Hermes", - "visibility": "Knowledge Base:根因、處置、引用來源與 owner review。", + "visibility": "Knowledge Base:根因、處置、引用來源與 負責人審查。", "status": "待草稿" }, "playbook": { @@ -8975,13 +8975,13 @@ "incident_timeline_stage_update": "Incident timeline 必須標記目前階段、處置包、owner 與下一步。", "execution_or_manual_handoff_result": "無執行時也要寫入人工接手結果,不能只留下批准紀錄。", "verifier_result": "Verifier 要能記錄成功、失敗、降級或尚未執行。", - "km_update_draft": "Hermes 產生 KM 草稿,owner review 後才可寫入高影響知識。", + "km_update_draft": "Hermes 產生 KM 草稿,負責人審查 後才可寫入高影響知識。", "playbook_trust_update": "PlayBook 成功 / 失敗 / 未執行都要回寫 trust 與適用條件。", "automation_asset_inventory_record": "資產清冊要留下 KM、PlayBook、腳本、排程、Verifier 的 ID 與狀態。" }, "guardrailTitle": "阻擋原因與禁止誤讀", "blocker": "目前缺少可信修復候選;系統只能建立人工草案工作項,不能把 no-action、診斷結果或通用兜底當作已修復。", - "nextStep": "請先補 PlayBook 草案與 MCP evidence,再由 owner review 決定是否送審批;在此之前不會自動執行、不會寫入成功修復,也不會更新 KM 為已解決。", + "nextStep": "請先補 PlayBook 草案與 MCP evidence,再由 負責人審查 決定是否送審批;在此之前不會自動執行、不會寫入成功修復,也不會更新 KM 為已解決。", "chainTitle": "真相鏈對照", "chain": { "stage": "目前階段", @@ -9234,7 +9234,7 @@ "callbackObserved": "TG Callback", "callbackObservedDetail": "詳情 / 歷史回覆已追蹤;失敗 {failed} 筆", "noEvidence": "缺 AI 證據", - "noEvidenceDetail": "列表尚未連到 ADR-100 dry-run或MCP evidence", + "noEvidenceDetail": "列表尚未連到 ADR-100 乾跑或MCP evidence", "approvalReadOnlyDetail": "審批前已有只讀補救證據可回看", "approvalNoEvidenceDetail": "審批前仍缺 AI 證據,需進 執行時間線 檢查" } @@ -9496,8 +9496,8 @@ "triageAutomation": "自動化:{state};可安全自動修復={safe}", "triageBlocker": "卡點:{reason}", "statuses": { - "matched_owner_review": "已匹配 owner review", - "no_related_owner_review": "未匹配 owner review", + "matched_owner_review": "已匹配 負責人審查", + "no_related_owner_review": "未匹配 負責人審查", "fetch_failed": "讀取失敗", "no_incident": "缺少 Incident", "observed": "已記錄" @@ -19060,7 +19060,7 @@ }, "runtimeBoundary": { "title": "runtime 邊界維持 0 / false", - "body": "Wazuh active response、Kali scan、Prometheus reload、Telegram send、auto block 與 action button 全部維持關閉。" + "body": "Wazuh active response、Kali scan、Prometheus reload、Telegram 發送、auto block 與 action button 全部維持關閉。" } } }, @@ -19071,7 +19071,7 @@ "checkLabel": "檢核", "stateLabel": "狀態", "boundaryTitle": "資安資產總帳邊界", - "boundaryIntro": "以下鍵值固定:資安資產總帳完成只代表 repo-side 控制面已收斂;owner response、live evidence、runtime gate、host write、Kali active scan、Wazuh active response、SOAR、auto block 與 production write 仍全部維持 0 / false。", + "boundaryIntro": "以下鍵值固定:資安資產總帳完成只代表 repo-side 控制面已收斂;owner response、live evidence、runtime gate、host write、Kali active scan、Wazuh active response、SOAR、auto block 與 正式環境寫入 仍全部維持 0 / false。", "summary": { "assetGroups": { "label": "資產群組", @@ -19132,7 +19132,7 @@ "checkLabel": "優先", "stateLabel": "狀態", "boundaryTitle": "外部入侵防堵邊界", - "boundaryIntro": "以下鍵值固定:防堵矩陣不是主機操作授權;沒有 owner、維護窗口、rollback、validation 與 postcheck 前,不執行 SSH、firewall、Nginx reload、Wazuh active response、套件更新、secret 輪替或 production write。", + "boundaryIntro": "以下鍵值固定:防堵矩陣不是主機操作授權;沒有 owner、維護窗口、rollback、validation 與 postcheck 前,不執行 SSH、firewall、Nginx reload、Wazuh active response、套件更新、secret 輪替或 正式環境寫入。", "summary": { "domains": { "label": "控制域", @@ -19169,8 +19169,8 @@ "body": "runner、workflow、deploy key、webhook 與 secret metadata 變更必須串回高價值配置 gate。" }, "wazuhResponse": { - "title": "Wazuh response 先 dry-run", - "body": "active response 只能先做 dry-run、blast radius 與 rollback 評估,不能直接啟用。" + "title": "Wazuh response 先 乾跑", + "body": "active response 只能先做 乾跑、blast radius 與 rollback 評估,不能直接啟用。" }, "backupRestore": { "title": "復原退路要先驗", @@ -19360,7 +19360,7 @@ }, "routeImpacts": { "label": "Route impact", - "detail": "14 個 domain / route 影響面需後續 owner review。" + "detail": "14 個 domain / route 影響面需後續 負責人審查。" }, "preflightGates": { "label": "前置 Gate", @@ -19435,7 +19435,7 @@ }, "acmeRoutes": { "title": "ACME challenge 已標記", - "body": "7 個 domain 帶有 ACME challenge route,可供後續 owner review 與 smoke plan 使用。" + "body": "7 個 domain 帶有 ACME challenge route,可供後續 負責人審查 與 smoke plan 使用。" }, "ownerConfirmation": { "title": "憑證路徑需 owner 確認", diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 4a3acd1a..fbb9afee 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,33 @@ +## 2026-06-19|治理頁舊卡片流程詞繁中收斂本地完成 + +**背景**:`753f15be` 正式部署後,治理頁 desktop smoke 已確認主要 P2-407~P2-411 / P3-009 卡片可見且無水平溢出;但整頁深層 DOM 仍能在舊卡片與 committed snapshot 文案中看到 `dry-run`、`Gateway queue write`、`Telegram send`、`secret read`、`queue write`、`direct API` 等半原始流程詞。這些不應直接出現在前端,尤其在資訊安全頁面會讓使用者誤以為系統已開 runtime 寫入或實發通道。 + +**完成內容**: +- 以 JSON parser 遞迴處理 `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json` 的字串值,只改公開顯示文案,不改任何 message key、schema、API 欄位或狀態判斷。 +- 將 `dry-run`、`Gateway queue write`、`Telegram send`、`secret read`、`live worker`、`runtime enabled`、`prod write`、`direct API`、`queue write`、`Queue write`、`Production write`、`runtime write`、`Direct Bot API`、`owner approval`、`dual approval`、`Secret display`、`Action button` 等可見詞收斂為繁中安全語。 +- `apps/web/messages/en.json` 仍維持與 `zh-TW` 同步鏡像,避免目前鏡像頁面重新露出英文流程詞。 +- 未修改 API、snapshot、worker、Telegram sender、Bot API、Gateway queue、DB、KM、PlayBook、主機、K8s、Nginx 或 workflow。 + +**本地驗證**: +- `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json` JSON parse 通過。 +- `WEB_MESSAGES_MIRROR_OK`。 +- 目標殘留掃描為 `0`:`dry-run`、`Dry-run`、`Gateway queue write`、`Telegram send`、`secret read`、`live worker`、`runtime enabled`、`prod write`、`direct API`、`queue write`、`Queue write`、`Production write`、`runtime write`、`Direct Bot API`、`owner approval`、`dual approval`、`Secret display`、`Action button` 皆未命中。 +- `SECURITY_MIRROR_PROGRESS_GUARD_OK`。 +- `TELEGRAM_ALERT_READABILITY_GUARD_OK tests=10 ai_lanes=6 host_lanes=6 runtime_gate=0`。 +- `IWOOOS_CONFIG_CONTROL_GUARD_OK`。 +- `DOC_SECRET_SANITY_OK scanned_files=934`。 +- `git diff --check` 通過。 +- `pnpm --filter @awoooi/web typecheck` 在隔離 worktree 因未安裝 `node_modules`、`tsc` 不存在而無法本地執行;本輪需由 Gitea code-review / CD 乾淨環境補驗。 + +**完成度同步**: +- 治理頁舊卡片流程詞繁中收斂:本地 `100%`,正式部署 / desktop / mobile readback `0%`。 +- IwoooS headline:仍維持 `64%`;active runtime gate 仍 `0`。 +- Owner response accepted、event bus publish、audit DB write、timeline write、KM write、PlayBook trust write、Gateway queue write、Telegram send、Bot API call、worker dispatch、receipt production write、host write、kubectl action、destructive operation:全部仍 `0 / false`。 + +**下一步**:跑 IwoooS guard、推送 Gitea main、等待 code-review / CD / post-deploy checks;正式部署後重跑 `/zh-TW/governance?tab=automation-inventory` desktop / mobile,確認整頁流程詞掃描、工作視窗片語、水平溢出與主要安全卡片可見性。 + +**邊界**:這只是前端公開文案專業化,不代表 Telegram 實發、Gateway 佇列寫入、runtime remediation、Wazuh active response、Kali scan、Nginx / 主機處置或任何自動修復已授權。 + ## 2026-06-19|治理頁 snapshot 公開顯示清理層本地完成 **背景**:`476227d2` 正式部署後,desktop / mobile smoke 已確認 P2-407~P2-411 與 P3-009 主要卡片無目標英文 drift、無水平溢出、無工作視窗片語;但整頁深層 DOM 仍能在舊 committed snapshot 區塊看到 `audit event template`、`event envelope`、`post-write verifier`、`runtime write`、`live write`、`owner response acceptance readback` 等半英文證據字串。這些不是 runtime 事件,而是 evaluation snapshot 的固定證據內容被前端直接投影,對使用者仍不夠專業、也不符合全站繁中要求。