diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index bacd31cfc..a25bec7ce 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -1,37 +1,37 @@ { "metadata": { - "title": "AWOOOI - Zero-Touch Ops. Human-Centric Decisions.", - "description": "AI-Powered Intelligent Operations Platform" + "title": "AWOOOI - 零干預維運,以人為本的決策", + "description": "AI 驅動的智能維運平台" }, "common": { - "loading": "Loading...", - "error": "An error occurred", - "success": "Success", - "cancel": "Cancel", - "confirm": "Confirm", - "close": "Close", - "closeEsc": "Close (ESC)", - "previous": "Previous (←)", - "next": "Next (→)", - "save": "Save", - "delete": "Delete", - "edit": "Edit", - "back": "Back", - "clear": "Clear", - "refresh": "Refresh", - "viewDetails": "View Details", - "later": "Later", - "keyboardShortcuts": "Keyboard Shortcuts", - "showShortcuts": "Show Shortcuts" + "loading": "載入中...", + "error": "發生錯誤", + "success": "成功", + "cancel": "取消", + "confirm": "確認", + "close": "關閉", + "closeEsc": "關閉 (ESC)", + "previous": "上一個 (←)", + "next": "下一個 (→)", + "save": "儲存", + "delete": "刪除", + "edit": "編輯", + "back": "返回", + "clear": "清除", + "refresh": "重新整理", + "viewDetails": "檢視詳情", + "later": "稍後", + "keyboardShortcuts": "鍵盤快捷鍵", + "showShortcuts": "顯示快捷鍵" }, "brand": { "name": "AWOOOI", - "slogan": "Zero-Touch Ops. Human-Centric Decisions.", + "slogan": "零干預維運,以人為本的決策。", "sloganAlt": "零干預維運,以人為本的決策。", - "tagline": "AI-Powered Intelligent Operations Platform", - "aiTagline": "AI Sees. AI Acts. You Approve.", + "tagline": "AI 指揮操作介面", + "aiTagline": "AI 觀察。AI 行動。您簽核。", "version": "v1.0.0", - "environment": "Production" + "environment": "正式環境" }, "nav": { "home": "首頁", @@ -73,304 +73,306 @@ "iwooosSecurityCompliance": "IwoooS 安全合規" }, "locale": { - "switch": "Switch Language", + "switch": "切換語系", "zhTW": "繁體中文", - "en": "EN" + "en": "繁中" }, "demo": { - "title": "AWOOOI Demo", - "subtitle": "Visual Acceptance Test", - "mockMode": "MOCK MODE", - "spikeControls": "CPU Spike Demo Controls", - "spikeActive": "SPIKE ACTIVE", - "triggerSpike": "Spike {host}", - "clearSpike": "Clear Spike", - "liveDashboard": "Live Dashboard (SSE)", - "approvalCards": "HITL Approval Cards (CPO-107)", - "statusShowcase": "StatusOrb Showcase", - "lowRiskDemo": "LOW RISK - 1 second hold", - "highRiskDemo": "HIGH RISK - 1 second hold", - "criticalDemo": "CRITICAL + DESTRUCTIVE - 2 second hold + red glow", - "hitlRealApi": "HITL Multi-Sig (Real API)", - "addCritical": "+ Critical", - "addMedium": "+ Medium", - "creating": "Creating..." + "title": "AWOOOI 展示", + "subtitle": "視覺驗收測試", + "mockMode": "模擬模式", + "spikeControls": "CPU 飆高模擬控制台", + "spikeActive": "飆高進行中", + "triggerSpike": "觸發 {host}", + "clearSpike": "清除飆高", + "approvalCards": "HITL 授權卡片 (CPO-107)", + "statusShowcase": "狀態指示燈展示", + "lowRiskDemo": "低風險 - 1 秒長按", + "highRiskDemo": "高風險 - 1 秒長按", + "criticalDemo": "危急 + 毀滅性 - 2 秒長按 + 紅色光暈", + "hitlRealApi": "HITL Multi-Sig (真實 API)", + "addCritical": "+ 嚴重", + "addMedium": "+ 中度", + "creating": "建立中...", + "liveDashboard": "即時事件流 (SSE)" }, "host": { "devops": { - "name": "DevOps Vault", + "name": "DevOps 金庫", "shortName": "DevOps" }, "security": { - "name": "Kali Security Center", + "name": "Kali 安全中心", "shortName": "Kali" }, "k3s": { - "name": "K3s Master Node", + "name": "K3s 主控節點", "shortName": "K3s" }, "aiWeb": { - "name": "AI+Web Center", + "name": "AI+Web 中心", "shortName": "AI+Web" } }, "dashboard": { - "title": "AI Center", - "subtitle": "AI-Powered Unified Operations View", - "liveStats": "Live Stats", - "activeNodes": "Active Nodes", - "pendingAlerts": "Pending Alerts", - "pendingApprovals": "Pending Approvals", - "overallStatus": "Overall Status", - "waitingData": "Waiting for data...", + "title": "AI中心", + "tagline": "AI 指揮操作介面", + "subtitle": "AI 驅動的統一運維視圖", + "liveStats": "即時統計", + "activeNodes": "活躍節點", + "pendingAlerts": "待處理告警", + "pendingApprovals": "待處理授權", + "overallStatus": "整體狀態", + "waitingData": "等待資料中...", "cpu": "CPU", - "memory": "MEM", - "baseline": "Baseline", - "baselineFormat": "(Baseline: {value}%)", - "criticality": "Criticality", - "systemStatus": "System Status", - "eventStream": "Event Stream", - "aiAgent": "AI Agent", - "globalPulse": "Global Pulse", - "liveUpdates": "Live Updates", - "loadingMetrics": "Loading metrics...", - "metricsError": "Failed to load metrics", + "memory": "記憶體", + "baseline": "基準線", + "baselineFormat": "(基準線: {value}%)", + "criticality": "重備性", + "systemStatus": "系統狀態", + "eventStream": "事件流", + "aiAgent": "AI 代理", + "globalPulse": "全局脈搏", + "liveUpdates": "即時更新", + "liveDashboard": "即時事件流 (SSE)", + "loadingMetrics": "載入指標中...", + "metricsError": "指標載入失敗", "flow": { - "alert": "Alert", - "detection": "AI Detection", - "analysis": "AI Analysis", - "proposal": "Proposal", - "approval": "Awaiting Auth", - "execution": "Execution", - "resolved": "Resolved" + "alert": "告警", + "detection": "AI偵測", + "analysis": "AI分析", + "proposal": "提案生成", + "approval": "等待授權", + "execution": "執行", + "resolved": "完成" }, - "unresolvedIncidents": "Unresolved Incidents", - "activeIncidents": "Active Incidents", - "serviceHealth": "Service Health", - "todayIncidents": "Today Incidents", - "operations24h": "24h Operations", - "operationsTotal": "{total} total", - "autoRemediationRate": "Auto Remediation", - "autoRepairVerified24h": "24h Verified Repair", - "autoRepairVerifiedCount": "verified {verified}/{evaluated}", - "autoRepairAllTime": "history {pct}% / {total}", - "latestIncidentWindow": "latest {shown} shown", + "unresolvedIncidents": "未解事件", + "activeIncidents": "活躍事件", + "serviceHealth": "服務健康", + "todayIncidents": "今日事件", + "operations24h": "近 24h 操作", + "operationsTotal": "總計 {total}", + "autoRemediationRate": "自動處置率", + "autoRepairVerified24h": "24h 驗證修復率", + "autoRepairVerifiedCount": "已驗證 {verified}/{evaluated}", + "autoRepairAllTime": "歷史 {pct}% / {total} 筆", + "latestIncidentWindow": "首屏最新 {shown} 筆", "truthChainCoverage": "真相鏈 {loaded}/{shown}", - "truthChainLoading": "真相鏈 loading", + "truthChainLoading": "真相鏈 讀取中", "severityBreakdown": "P1:{p1} P2:{p2}", "stableUnresolved": "{stable} · 0 {label}", - "mttrAvg": "MTTR Avg", - "stable": "Stable", - "normal": "Normal", - "openclawEngine": "OPENCLAW COGNITIVE ENGINE", - "infrastructure": "INFRASTRUCTURE", - "podHealth": "POD Health", - "allRunning": "All Running", - "servicesUp": "Services Up", - "monitoringTools": "Monitoring 工具", + "mttrAvg": "MTTR 均值", + "stable": "穩定", + "normal": "正常", + "openclawEngine": "OPENCLAW 認知引擎", + "infrastructure": "基礎架構", + "podHealth": "POD 健康", + "allRunning": "全部運行中", + "servicesUp": "服務上線", + "monitoringTools": "監控工具", "monitoringStatus": { - "up": "OK", - "down": "Down", - "unknown": "Unknown", - "firing": "firing", - "alert": "alerts" + "up": "正常", + "down": "離線", + "unknown": "未知", + "firing": "觸發", + "alert": "告警" }, - "connectionError": "Connection failed", - "metaVersion": "Version", - "metaStats": "Stats", - "metaUpdatedAt": "Updated", + "connectionError": "無法連線", + "metaVersion": "版本", + "metaStats": "統計", + "metaUpdatedAt": "更新", "tabs": { - "overview": "Overview", - "alerts": "Alerts & Approvals", - "stream": "Activity Stream", - "disposition": "Disposition Stats" + "overview": "戰情總覽", + "alerts": "告警 & 授權", + "stream": "活動串流", + "disposition": "處置統計" }, - "alertEvents": "Alert Events", - "noActiveAlerts": "No active alerts", - "pendingApprovalsTitle": "Pending Approvals", - "noPendingApprovals": "No pending approvals", - "approve": "Approve", - "reject": "Reject", - "activityStream": "System Activity Stream", - "sseConnected": "SSE Connected", - "sseDisconnected": "Disconnected", - "waitingEvents": "Waiting for events...", - "statusLabel": "Status", - "hostsLabel": "Hosts", - "eventsCount": "{count} events", - "noDispositionData": "No disposition data available", - "totalDispositions": "Total Dispositions", - "autoRate": "Automation Rate", - "humanRate": "Human Intervention Rate", - "autoRepairLabel": "Auto Repair", - "humanApprovedLabel": "Human Approved", - "manualResolvedLabel": "Manual Resolved", - "coldStartLabel": "Cold Start", - "dispositionBreakdown": "Disposition Breakdown", - "hostView": "Hosts", - "topoView": "Topology", - "waitingHostData": "Waiting for host data...", - "dashboardConnecting": "Dashboard API connecting...", - "alertBadge": "{count} alerts", - "alertBadgeZero": "0 alerts", - "awaitingConfirm": "Awaiting Confirmation", - "viewAllAlerts": "View All Alerts", - "showingLatestIncidents": "Showing latest {shown} of {total}; open Alerts for the full list", - "relatedIncidents": "Related Incidents", - "noRelatedIncidents": "No related incidents", - "viewAllAuth": "View All Authorizations", - "viewAllReport": "View Full Report", - "aiModelStatus": "AI Model Status", + "alertEvents": "告警事件", + "noActiveAlerts": "目前無活躍告警", + "pendingApprovalsTitle": "待批准授權", + "noPendingApprovals": "無待批准項目", + "approve": "批准", + "reject": "拒絕", + "activityStream": "系統活動串流", + "sseConnected": "SSE 連線中", + "sseDisconnected": "連線中斷", + "waitingEvents": "等待即時事件...", + "statusLabel": "狀態", + "hostsLabel": "主機", + "eventsCount": "{count} 筆", + "noDispositionData": "目前無處置統計資料", + "totalDispositions": "處置總次數", + "autoRate": "自動化率", + "humanRate": "人工介入率", + "autoRepairLabel": "自動修復", + "humanApprovedLabel": "人工審核", + "manualResolvedLabel": "手動處理", + "coldStartLabel": "冷啟動", + "dispositionBreakdown": "處置方式分佈", + "hostView": "主機", + "topoView": "拓撲", + "waitingHostData": "等待主機資料...", + "dashboardConnecting": "Dashboard API 連線中", + "alertBadge": "{count} 告警", + "alertBadgeZero": "0 告警", + "awaitingConfirm": "等待確認", + "viewAllAlerts": "查看全部告警", + "showingLatestIncidents": "顯示最新 {shown} / 共 {total} 筆;完整列表在告警頁", + "relatedIncidents": "相關事件", + "noRelatedIncidents": "無相關事件", + "viewAllAuth": "查看全部授權", + "viewAllReport": "查看完整報表", + "aiModelStatus": "AI 模型狀態", "aiModelRoles": { - "primary": "Primary", - "backup": "Backup", - "local": "Local", + "primary": "主用", + "backup": "備援", + "local": "本機", "agent": "Agent", "provider": "Provider" }, - "loading": "Loading...", + "loading": "載入中...", "trendUp": "↑{pct}%", - "searchPlaceholderShort": "Search...", - "cotTitle": "Reasoning 時間線", - "cotNoEvents": "Waiting for reasoning data...", - "cotReasoning": "Reasoning", - "cotConfidence": "Confidence", - "cotProvider": "Model", - "cotLatency": "Latency", - "cotTools": "工具 Calls", - "cotClickHint": "Click an event to view reasoning details", - "byAnomalyTitle": "Anomaly Type Distribution Top 5", - "byAnomalyAutoRate": "Auto {pct}%", - "mttrTitle": "MTTR Overview", - "mttrUnit": "min", - "mttrNoData": "No MTTR data yet", + "searchPlaceholderShort": "搜尋...", + "cotTitle": "推理時間軸", + "cotNoEvents": "等待事件推理資料...", + "cotReasoning": "推理", + "cotConfidence": "信心", + "cotProvider": "模型", + "cotLatency": "耗時", + "cotTools": "工具呼叫", + "cotClickHint": "點擊事件查看推理細節", + "byAnomalyTitle": "異常類型分佈 Top 5", + "byAnomalyAutoRate": "自動修復率 {pct}%", + "mttrTitle": "MTTR 概覽", + "mttrUnit": "分鐘", + "mttrNoData": "尚無 MTTR 資料", "automationEvidence": { - "title": "AI Automation Evidence", - "claimReady": "Loop claim ready", - "claimBlocked": "Gaps remain", - "claimChecking": "Quality pending", - "loading": "Loading AI automation evidence...", - "empty": "No AI automation evidence is available yet.", - "missingApiBase": "NEXT_PUBLIC_API_URL is not set", - "loadFailed": "Load failed", - "error": "Evidence chain failed to load: {error}", - "sourcePersisted": "Source persisted", - "sourceDetail": "{missing} missing refs, latest {latest}", - "recurrence": "Recurrence", - "recurrenceDetail": "{duplicates} duplicate events, {workItems} work items", - "mcpInvestigation": "MCP investigation", - "mcpDetail": "{success} success / {failed} failed, latest {server}", - "autoRepair": "Auto repair", - "qualityDetail": "Average {score}, red {red}", - "qualityPending": "Quality summary is still calculating; other evidence is already shown", - "executionBackendDetail": "Execution evidence: operations {operations} (effective {effective} / audit {auditOnly}), auto-repair {autoRepair}; Ansible audit {ansibleRecords}, candidates {ansibleCandidates}, check-mode {checkMode}, apply {apply}, pending wiring {pending}; runtime {runtime}", - "ansibleRuntimeReady": "check-mode ready", - "ansibleRuntimeBlocked": "not ready: {blockers}", - "humanGap": "Human gap", - "humanGapDetail": "{gate} missing {count}", - "humanGapClear": "Quality summary has no top gap", - "modelRoute": "Model route", - "routeDetail": "{model}; current {selected}; {primary}={primaryStatus}; fallback {fallback}", - "routeLaneDetail": "{mode}; skipped {skipped}", - "routeRepairDetail": "Repair evidence: {target}, blockers {blockers}, {sourceRefs} source refs", - "routeReasonSeparator": "; ", - "routeReason": "Reason: {reason}", - "routeErrorDetail": "Route check failed: {error}", - "routeNoFallback": "none", + "title": "AI 自動化證據鏈", + "claimReady": "可宣稱閉環", + "claimBlocked": "仍有缺口", + "claimChecking": "品質計算中", + "loading": "讀取 AI 自動化證據中...", + "empty": "尚無可呈現的 AI 自動化證據。", + "missingApiBase": "NEXT_PUBLIC_API_URL 未設定", + "loadFailed": "讀取失敗", + "error": "證據鏈讀取失敗:{error}", + "sourcePersisted": "來源入庫", + "sourceDetail": "缺關聯 {missing},最新 {latest}", + "recurrence": "重複收斂", + "recurrenceDetail": "重複事件 {duplicates},待處理 {workItems}", + "mcpInvestigation": "MCP 調查", + "mcpDetail": "成功 {success} / 失敗 {failed},最新 {server}", + "autoRepair": "自動修復", + "qualityDetail": "平均 {score},紅燈 {red}", + "qualityPending": "品質摘要計算中,其他證據已先顯示", + "executionBackendDetail": "執行證據:操作 {operations}(有效 {effective} / 稽核 {auditOnly}),自動修復 {autoRepair};Ansible 稽核 {ansibleRecords},候選 {ansibleCandidates},check-mode {checkMode},apply {apply},待接線 {pending};runtime {runtime}", + "ansibleRuntimeReady": "可跑 check-mode", + "ansibleRuntimeBlocked": "未就緒:{blockers}", + "humanGap": "人工缺口", + "humanGapDetail": "{gate} 缺 {count} 筆", + "humanGapClear": "品質摘要未列出主要缺口", + "modelRoute": "模型路由", + "routeDetail": "{model};目前 {selected};{primary}={primaryStatus};備援 {fallback}", + "routeLaneDetail": "{mode};已跳過 {skipped}", + "routeRepairDetail": "修復證據:{target},阻塞 {blockers},來源 {sourceRefs} 筆", + "routeReasonSeparator": ";", + "routeReason": "原因:{reason}", + "routeErrorDetail": "路由檢查失敗:{error}", + "routeNoFallback": "無", "routeHealth": { - "healthy": "healthy", - "slow": "slow", - "degraded": "degraded", - "offline": "offline", - "not_checked": "standby", - "unknown": "unknown" + "healthy": "健康", + "slow": "偏慢", + "degraded": "降級", + "offline": "離線", + "not_checked": "待命", + "unknown": "未知" }, "routeLaneMode": { - "primary": "Primary normal", - "degraded_failover": "Degraded handoff", - "cloud_fallback": "Cloud fallback", - "unavailable": "Route unavailable", - "unknown": "Unknown state" + "primary": "Primary 正常", + "degraded_failover": "降級接手", + "cloud_fallback": "雲端備援", + "unavailable": "路由不可用", + "unknown": "狀態未知" }, - "topGap": "Largest current gap: {gate}, {count} items." + "topGap": "目前最大缺口:{gate},共 {count} 筆。" }, "automationDelivery": { - "eyebrow": "AI Automation Product Surface", - "title": "Delivered Work And Remaining Work", - "subtitle": "The homepage now summarizes production truth-chain, Telegram callbacks, AI providers, KM, Ansible, and auto-repair quality instead of vague KPIs.", - "claimLabel": "Full Auto-Repair Claim", - "claimReady": "Full loop can be claimed", - "claimBlocked": "Full loop cannot be claimed yet", - "claimLoading": "Reading production truth", - "claimUnavailable": "Production truth is not responding", - "claimDetail": "Verified {verified}/{evaluated}, average score {score}", - "unavailableValue": "no response", - "deliveredTitle": "Delivered Capabilities", - "remainingTitle": "Remaining Gaps", - "openWorkItems": "Open Work Items", - "openRuns": "Open Runs", + "eyebrow": "AI 自動化管理產品面", + "title": "目前完成項與待推進項", + "subtitle": "首頁直接呈現 production 真相鏈、Telegram callback、AI provider、KM、Ansible 與自動修復品質,不再只放空泛 KPI。", + "claimLabel": "完整自動修復宣稱", + "claimReady": "可宣稱完整閉環", + "claimBlocked": "尚不可宣稱完整閉環", + "claimLoading": "正在讀取 production 真相", + "claimUnavailable": "production 真相暫時未回應", + "claimDetail": "已驗證 {verified}/{evaluated},平均分數 {score}", + "unavailableValue": "未回應", + "deliveredTitle": "已上線能力", + "remainingTitle": "仍待推進缺口", + "openWorkItems": "打開 Work Items", + "openRuns": "打開 Runs", "status": { - "live": "Live", - "progress": "In Progress", - "blocked": "Blocked", - "watching": "Watching", - "loading": "Loading", - "unavailable": "No response" + "live": "已上線", + "progress": "推進中", + "blocked": "阻塞", + "watching": "觀察", + "loading": "讀取中", + "unavailable": "未回應" }, "delivered": { "cicdTimeline": { - "title": "CI/CD notifications enter AwoooP Timeline", - "detail": "Gitea main deploys, deploy markers, and post-deploy notifications flow through the AWOOI API and AwoooP Run Timeline." + "title": "CI/CD 通知進 AwoooP 時間線", + "detail": "Gitea main 推版、deploy marker、post-deploy 通知已走 AWOOI API 與 AwoooP 執行時間線。" }, "sourceDossier": { - "title": "Sentry / SigNoz source dossier evidence", - "detail": "Latest sources {sources}; Sentry refs {sentry}, SigNoz refs {signoz}. Provider filters verify this, so the overall sample no longer hides source evidence." + "title": "Sentry / SigNoz 來源卷宗證據", + "detail": "最近來源 {sources} 筆;Sentry refs {sentry}、SigNoz refs {signoz},用 provider 篩選驗證,不再被整體樣本誤判。" }, "callbackEvidence": { - "title": "Telegram detail / history DB truth chain", - "detail": "{total} callback evidence rows are available for Run detail, history, and snapshot lookup." + "title": "Telegram 詳情 / 歷史 DB 真相鏈", + "detail": "callback evidence 目前 {total} 筆,可從 Runs 反查詳情、歷史與快照。" }, "callbackTrace": { - "title": "Callback trace recovery and backlog action lens", - "detail": "Recovery {status}, traced after gap {recovered}, 24h backlog {recent24h}." + "title": "Callback trace 復原與 backlog action lens", + "detail": "復原狀態 {status},gap 後 traced {recovered},24h backlog {recent24h}。" }, "aiRoute": { - "title": "AI Provider lane visibility", - "detail": "Current lane={lane}, selected provider={provider}; governance order is GCP-A / GCP-B / 111 / Gemini." + "title": "AI Provider lane 可視化", + "detail": "目前 lane={lane},selected provider={provider};順序以 GCP-A / GCP-B / 111 / Gemini 為治理方向。" } }, "remaining": { "fullAutoRepairClaim": { - "title": "Full auto-repair loop", - "detail": "Production quality is verified {verified}/{evaluated}; the system cannot claim full automation before this reaches the gate." + "title": "完整自動修復閉環", + "detail": "production quality 目前 verified {verified}/{evaluated};未達標前不能宣稱全自動完成。" }, "qualityGateBacklog": { - "title": "Auto-repair quality gate backlog", - "detail": "Top gap {gate}, {count} rows; execution, auto-repair, approval, or learning evidence must be completed." + "title": "自動修復品質閘門缺口", + "detail": "最大缺口 {gate},目前 {count} 筆;需補 execution、auto-repair、approval 或 learning evidence。" }, "ansibleRuntime": { - "title": "Ansible check-mode / apply wiring", - "detail": "check-mode {checkMode}, pending check-mode {pending}; blocker={blocker}." + "title": "Ansible check-mode / apply 接線", + "detail": "check-mode {checkMode},待 check-mode {pending};目前 阻塞點={blocker}。" }, "kmGovernance": { - "title": "Stale KM governance", - "detail": "{stale}/{total} KM rows are older than {days} days ({ratio}); pending owner reviews {pending}, entries still needed for threshold {remaining}." + "title": "KM 陳舊資料治理", + "detail": "超過 {days} 天未更新 KM:{stale}/{total}({ratio});待 owner 審核 {pending} 筆,距離門檻還需處理 {remaining} 筆。" }, "callbackBacklogDecay": { "title": "Callback legacy backlog 24h decay", - "detail": "Missing trace total {missing}, 1h {recent1h}, 24h {recent24h}; closes only when 24h reaches zero." + "detail": "缺 trace 總數 {missing},1h {recent1h},24h {recent24h};24h 歸零才算關閉。" } } }, "automationDiagrams": { - "eyebrow": "Professional Visual Views", - "title": "Technical Diagrams For The Product", - "openTopology": "Open Topology", + "eyebrow": "專業圖像化視圖", + "title": "產品要用哪些圖來呈現", + "openTopology": "查看拓樸圖", "cards": { "c4Runtime": { "standard": "C4 / Deployment", - "title": "Product Architecture And Runtime Topology", - "detail": "Use C4 layers to explain users, Web, API, K8s, databases, external tools, and model providers.", + "title": "產品架構與 Runtime 拓樸", + "detail": "用 C4 分層說明使用者、Web、API、K8s、資料庫、外部工具與模型供應商的關係。", "nodes": { "user": "Operator / Tenant", "web": "AwoooP Web", @@ -380,19 +382,19 @@ }, "incidentFlow": { "standard": "BPMN / Swimlane", - "title": "Alert-To-Repair Flow", - "detail": "Use swimlanes to separate Telegram, OpenClaw, Hermes, MCP, Ansible, human approval, and verification ownership.", + "title": "告警到修復流程", + "detail": "用泳道圖拆開 Telegram、OpenClaw、Hermes、MCP、Ansible、人工審批與驗證責任。", "nodes": { "alert": "Alert / Sentry / SigNoz", - "ai": "AI Analysis", + "ai": "AI 分析", "playbook": "PlayBook / MCP", - "verify": "Verify / KM" + "verify": "驗證 / KM" } }, "decisionRules": { "standard": "DMN / Decision Table", - "title": "AI Decision And Approval Rules", - "detail": "Represent risk, confidence, policy, model routing, and auto-repair eligibility as auditable decision tables.", + "title": "AI 判斷與審批規則", + "detail": "把風險、信心分數、政策、模型路由與是否自動修復整理成可稽核決策表。", "nodes": { "risk": "Risk", "confidence": "Confidence", @@ -402,8 +404,8 @@ }, "evidenceLineage": { "standard": "Trace / Lineage", - "title": "Evidence Chain And Callback Trace", - "detail": "Show whether Telegram messages, DB events, Run Timeline, and KM / PlayBook writeback agree.", + "title": "證據鏈與 Callback Trace", + "detail": "用 trace lineage 呈現 Telegram 訊息、DB 事件、執行時間線、KM / PlayBook 回寫是否一致。", "nodes": { "telegram": "Telegram", "db": "DB Truth", @@ -414,25 +416,25 @@ }, "workspace": { "eyebrow": "Live Blueprint", - "title": "AI Automation Operating Map", - "subtitle": "This view puts process, runtime, decision table, and evidence lineage in one operating surface so the homepage can show where work is, what is blocked, and who continues it.", + "title": "AI 自動化完整作戰圖", + "subtitle": "這一區把流程、Runtime、決策表與證據鏈放在同一個作戰視圖,讓首頁能直接回答目前跑到哪裡、卡在哪一關、該由誰接續。", "flow": { - "title": "BPMN / Swimlane Flow", - "subtitle": "The main path from alert intake through analysis, investigation, approval, execution, verification, and learning.", + "title": "BPMN / Swimlane 流程", + "subtitle": "告警進來後,從分析、調查、審批、執行到驗證的主幹流程。", "stages": { "signal": "Alert / Sentry / SigNoz", - "intake": "AwoooP Intake", + "intake": "AwoooP 收件", "ai": "OpenClaw / Hermes", - "mcp": "MCP Evidence", - "playbook": "PlayBook Gate", + "mcp": "MCP 證據", + "playbook": "PlayBook 閘門", "ansible": "Ansible Check", "approval": "Approval / Apply", "verify": "Verify / KM" } }, "topology": { - "title": "C4 / Runtime Topology", - "subtitle": "Runtime relationships across product, data, executors, MCP, and model providers.", + "title": "C4 / Runtime 拓樸", + "subtitle": "產品、資料、執行器、MCP 與模型供應商的 runtime 關係。", "layers": { "channels": "Channels", "product": "Product", @@ -442,8 +444,8 @@ } }, "decision": { - "title": "DMN Decision Table", - "subtitle": "Auditable conditions for whether AI can safely auto-repair.", + "title": "DMN 決策表", + "subtitle": "把 AI 是否能自動修復的判斷拆成可稽核條件。", "headers": { "signal": "Signal", "value": "Current value", @@ -451,29 +453,29 @@ }, "rows": { "claim": "Production claim", - "qualityGate": "Quality gate", + "qualityGate": "Quality 閘門", "ansible": "Ansible runtime", "aiRoute": "AI route", "km": "KM freshness", "callback": "Callback trace" }, "outcomes": { - "claimReady": "Full loop can be claimed", - "claimBlocked": "Full loop cannot be claimed", - "fillEvidence": "Fill execution / repair / approval / learning evidence", - "ansibleReady": "Ready for check-mode", - "ansibleBlocked": "Fix Ansible runtime first", - "monitor": "Primary lane is monitored", - "ownerReview": "Hermes drafts, owner reviews", - "watchDecay": "Wait for 24h backlog decay" + "claimReady": "可宣稱完整閉環", + "claimBlocked": "不可宣稱完整閉環", + "fillEvidence": "補 execution / repair / approval / learning evidence", + "ansibleReady": "可進 check-mode", + "ansibleBlocked": "先修 Ansible runtime", + "monitor": "Primary lane 監控中", + "ownerReview": "Hermes 產草稿,owner 審核", + "watchDecay": "等待 24h backlog 歸零" } }, "lineage": { - "title": "Trace / Lineage Evidence", - "subtitle": "Every Telegram alert, button, Run, KM, and PlayBook should link back to one evidence chain.", + "title": "Trace / Lineage 證據鏈", + "subtitle": "每一則 Telegram 告警、按鈕、Run、KM 與 PlayBook 都要能串回同一條證據。", "nodes": { "telegram": "Telegram Message", - "callback": "Callback Evidence", + "callback": "Callback 證據", "db": "DB Truth", "run": "Run Timeline", "km": "KM / PlayBook" @@ -481,62 +483,62 @@ }, "inspector": { "title": "Stage Inspector", - "openTarget": "Open Work Surface", + "openTarget": "打開工作面", "fields": { - "owner": "Owner", - "evidence": "Evidence Source", - "nextAction": "Next Step" + "owner": "主責", + "evidence": "證據來源", + "nextAction": "下一步" }, "stages": { "signal": { "owner": "OpenClaw + AlertChain", "evidence": "Alertmanager / Sentry / SigNoz / Telegram callback trace", - "nextAction": "Attach the signal to an AwoooP run dossier and produce a traceable fingerprint" + "nextAction": "把 signal 併入 AwoooP run dossier,產生可追蹤 fingerprint" }, "intake": { "owner": "AwoooP Run Monitor", - "evidence": "Runs list / timeline / alert_operation_log / callback evidence", - "nextAction": "Link incident_id, trace_ref, and run_id so the alert does not stop at Telegram" + "evidence": "runs list / timeline / alert_operation_log / callback evidence", + "nextAction": "關聯 incident_id、trace_ref、run_id,避免告警只停在 Telegram" }, "ai": { - "owner": "OpenClaw leads decisions; Hermes drafts KM", + "owner": "OpenClaw 主判斷;Hermes 產 KM 草稿", "evidence": "AI route status / selected provider / skipped lanes", - "nextAction": "Keep GCP-A -> GCP-B -> 111 -> Gemini fallback order and record the lane" + "nextAction": "維持 GCP-A → GCP-B → 111 → Gemini fallback 順序並記錄 lane" }, "mcp": { - "owner": "MCP Gateway", - "evidence": "K8s / Prometheus / Sentry / SigNoz / Gitea / self-hosted MCP results", - "nextAction": "Write MCP evidence back to the dossier so the LLM does not decide by guessing" + "owner": "MCP 閘道", + "evidence": "K8s / Prometheus / Sentry / SigNoz / Gitea / 自建 MCP 查證結果", + "nextAction": "把 MCP 查證結果寫回 dossier,讓 LLM 不靠猜測判斷" }, "playbook": { - "owner": "OpenClaw + PlayBook trust gate", - "evidence": "Quality gate / work items / playbook match / execution history", - "nextAction": "Fill execution, repair, approval, and learning evidence before promotion" + "owner": "OpenClaw + PlayBook trust 閘門", + "evidence": "quality 閘門 / work items / playbook match / execution history", + "nextAction": "補齊 execution、repair、approval、learning evidence 後才允許升級" }, "ansible": { "owner": "AwoooP Executor + Ansible lane", - "evidence": "ansible_runtime / check-mode count / pending check-mode / blockers", - "nextAction": "Clear ansible_playbook_binary_missing first, then run check-mode without direct apply" + "evidence": "ansible_runtime / check-mode count / pending check-mode / 阻塞點", + "nextAction": "先解除 ansible_playbook_binary_missing,再跑 check-mode,不直接 apply" }, "approval": { "owner": "Approval Coordinator + SRE owner", - "evidence": "Approvals / risk gate / run timeline / manual_required reason", - "nextAction": "Allow low-risk automation, keep high-risk work under human approval and audit trail" + "evidence": "approvals / risk 閘門 / run timeline / manual_required reason", + "nextAction": "低風險才進自動化,高風險保留人工審批與 audit trail" }, "verify": { "owner": "Hermes + KM owner", "evidence": "KM stale candidates / post-execution verification / playbook learning", - "nextAction": "Hermes drafts updates, owners review before KM write, then stale ratio is monitored" + "nextAction": "Hermes 產草稿,owner 審核後寫入 KM,並觀察 stale ratio 下降" } } }, "liveEvidence": { - "title": "Live Evidence", - "realtime": "Live read", + "title": "Live 證據", + "realtime": "即時讀取", "fields": { - "metric": "Metric", - "detail": "Detail", - "source": "Read Source" + "metric": "指標", + "detail": "細節", + "source": "讀取來源" }, "sources": { "dossierCoverage": "/api/v1/platform/events/dossier/coverage", @@ -550,639 +552,639 @@ "kmBurndown": "/api/v1/ai/governance/km-stale-owner-review-burndown" }, "signal": { - "metric": "sources {sources} / refs {refs}", - "detail": "missing refs {missing}, duplicates {duplicates}; Alert {alert} / Sentry(provider) {sentry} / SigNoz(provider) {signoz}" + "metric": "來源 {sources} / refs {refs}", + "detail": "missing refs {missing},duplicates {duplicates};Alert {alert} / Sentry(provider) {sentry} / SigNoz(provider) {signoz}" }, "intake": { "metric": "Runs {runs} / linked {linked}", - "detail": "latest CI/CD {stage}:{status}, commit {commit}, needs attention {attention}" + "detail": "最新 CI/CD {stage}:{status},commit {commit},需注意 {attention}" }, "ai": { "metric": "{lane} / {provider}", - "detail": "skipped lanes {skipped}, operator action={action}, reason={reason}" + "detail": "skipped lanes {skipped},operator action={action},reason={reason}" }, "mcp": { - "metric": "MCP observations {observations} / gateway {gateway}", - "detail": "success {success}, failed {failed}, server={server}, route={route}" + "metric": "MCP 觀測 {observations} / 閘道 {gateway}", + "detail": "success {success},failed {failed},server={server},route={route}" }, "playbook": { - "metric": "gate {gate} / automation gaps {gaps}", - "detail": "open work items {workItems}, verified groups {verifiedGroups}, auto-repair linked {linkedAutoRepair}" + "metric": "閘門 {gate} / automation gaps {gaps}", + "detail": "open work items {workItems},verified groups {verifiedGroups},auto-repair linked {linkedAutoRepair}" }, "ansible": { "metric": "check-mode {checkMode} / pending {pending}", - "detail": "blocker={blocker}, candidates={candidates}, operations={operations}" + "detail": "阻塞點={blocker},candidates={candidates},operations={operations}" }, "approval": { "metric": "pending {pending} / verified {verified}/{evaluated}", - "detail": "human gates {humanGates}, auto-repair records {autoRepairRecords}, operation records {operations}" + "detail": "human 閘門s {humanGates},auto-repair records {autoRepairRecords},operation records {operations}" }, "verify": { "metric": "stale {stale} / ratio {ratio}", - "detail": "owner review pending {pending}, completed {completed}, remaining to threshold {remaining}" + "detail": "owner review pending {pending},completed {completed},距離門檻剩 {remaining}" } }, "values": { "verified": "verified {verified}/{evaluated}", - "topGate": "{gate} missing {count}", - "ansible": "check-mode {checkMode}, pending {pending}, blocker {blocker}", + "topGate": "{gate} 缺 {count}", + "ansible": "check-mode {checkMode},pending {pending},阻塞點 {blocker}", "aiRoute": "{lane} / {provider}", "km": "{stale} stale over {days} days", - "callback": "missing {missing}, 1h {recent1h}, 24h {recent24h}" + "callback": "missing {missing},1h {recent1h},24h {recent24h}" } } } }, "openclaw": { "name": "OpenClaw", - "monitoring": "Monitoring", - "statusOk": "OK", - "statusWarning": "WARNING", - "messageOk": "All systems operational. No action required.", - "messageWarning": "{host} status abnormal. Recommend checking related services." + "monitoring": "即時監控中", + "statusOk": "正常", + "statusWarning": "警告", + "messageOk": "所有系統運作正常,無需處理。", + "messageWarning": "{host} 狀態異常,建議檢查相關服務。" }, "ai": { - "title": "AI Decision Engine", - "intercepting": "[SYS] Intercepting anomaly signals...", - "analyzing": "OpenClaw analyzing blast radius...", - "calculating": "Calculating risk matrix & approval threshold...", - "generating": "Generating remediation script...", - "complete": "Analysis complete. Approval card created.", - "processingAlert": "Processing alert...", - "analysisComplete": "Analysis complete", - "patrolling": "Patrolling...", - "standby": "STANDBY", - "processFlow": "AI Decision Flow", - "processing": "Processing" + "title": "AI 決策引擎", + "intercepting": "[SYS] 攔截異常訊號...", + "analyzing": "OpenClaw 正在分析爆炸半徑...", + "calculating": "計算風險矩陣與簽核門檻...", + "generating": "生成修復腳本建議...", + "complete": "分析完成,待簽核卡片已建立", + "processingAlert": "正在處理告警...", + "analysisComplete": "分析完成", + "patrolling": "巡邏中...", + "standby": "待命", + "processFlow": "AI 決策流程", + "processing": "處理中" }, "agent": { - "title": "AI Agent", - "state": "State", - "idle": "Idle", - "standby": "Standby", - "patrolling": "Patrolling", - "intercepting": "Intercepting", - "analyzing": "Analyzing", - "generating": "Generating", - "complete": "Complete", - "executing": "Executing", - "waitingApproval": "Awaiting Approval", - "error": "Error", - "lastCheck": "Last check" + "title": "AI 代理", + "state": "狀態", + "idle": "待命", + "standby": "待命中", + "patrolling": "巡邏中", + "intercepting": "攔截異常中", + "analyzing": "分析中", + "generating": "生成提案中", + "complete": "分析完成", + "executing": "執行中", + "waitingApproval": "等待授權", + "error": "錯誤", + "lastCheck": "最後檢查" }, "metrics": { - "title": "Global Pulse", - "realtime": "Real-time", - "rps": "Requests/sec", - "errorRate": "Error Rate", - "p99Latency": "P99 Latency", - "aiSuccess": "AI Success" + "title": "全局脈搏", + "realtime": "即時更新", + "rps": "每秒請求", + "errorRate": "錯誤率", + "p99Latency": "P99 延遲", + "aiSuccess": "AI 成功率" }, "connection": { - "disconnected": "Disconnected", - "connecting": "Connecting...", - "subscribing": "Subscribing...", - "connected": "Live", - "streaming": "Streaming", - "reconnecting": "Reconnecting...", - "error": "Connection Error", - "mockMode": "MOCK" + "disconnected": "已斷線", + "connecting": "連線中...", + "subscribing": "訂閱中...", + "connected": "即時", + "streaming": "串流中", + "reconnecting": "重新連線...", + "error": "連線錯誤", + "mockMode": "模擬" }, "terminal": { - "title": "AWOOOI Terminal", - "version": "Version", - "waiting": "> Waiting for command...", - "initiate": "INITIATE SYNC", - "executing": ">_ EXECUTING...", - "events": "{count} events", - "stream": "STREAM: /agent/thinking", - "waitingForData": "Waiting for decision chain data...", - "steps": "Steps", - "streaming": "Streaming", - "paused": "Paused", - "blastRadius": "[ BLAST RADIUS ]", - "rootCauseChain": "[ ROOT CAUSE CHAIN ]", - "upstreamImpact": "[ UPSTREAM IMPACT ]", - "downstreamDependencies": "[ DOWNSTREAM DEPENDENCIES ]", - "dependsOn": "depends on", - "calls": "calls", - "finopsAnalysis": "[ FINOPS ANALYSIS ]", - "wastedPerMonth": "Wasted/mo", - "realizable": "Realizable", - "freed": "Freed", - "connecting": "Connecting...", - "connected": "Connected", - "streamComplete": "Stream complete", - "streamAborted": "Stream aborted", - "stop": "STOP", - "clear": "CLEAR" + "title": "AWOOOI 終端機", + "version": "版本", + "waiting": "> 等待指令...", + "initiate": "啟動同步", + "executing": ">_ 執行中...", + "events": "{count} 事件", + "stream": "串流: /agent/thinking", + "waitingForData": "等待決策鏈資料...", + "steps": "步驟", + "streaming": "串流中", + "paused": "已暫停", + "blastRadius": "[ 爆炸半徑 ]", + "rootCauseChain": "[ 根因分析鏈 ]", + "upstreamImpact": "[ 上游影響 ]", + "downstreamDependencies": "[ 下游依賴 ]", + "dependsOn": "依賴", + "calls": "呼叫", + "finopsAnalysis": "[ FINOPS 分析 ]", + "wastedPerMonth": "每月浪費", + "realizable": "可實現", + "freed": "已釋放", + "connecting": "連線中...", + "connected": "已連線", + "streamComplete": "串流完成", + "streamAborted": "串流已中斷", + "stop": "停止", + "clear": "清除" }, "omniTerminal": { "title": "OMNI-TERMINAL", "fullTitle": "AWOOOI // OMNI-TERMINAL", "shortcut": "⌘J", - "open": "Open Terminal", - "close": "Close Terminal", - "inputPlaceholder": "Enter command...", - "inputPlaceholderFull": "Enter command or ask AI... (e.g., /approval list)", - "sseLive": "SSE Live", - "offline": "Offline", + "open": "開啟終端機", + "close": "關閉終端機", + "inputPlaceholder": "輸入指令...", + "inputPlaceholderFull": "輸入指令或詢問 AI... (例如: /approval list)", + "sseLive": "SSE 即時連線", + "offline": "離線", "system": "[SYS]", "agent": "[AI]", "user": "$", - "unknownComponent": "Unknown Component", - "executing": "Executing", - "completed": "Completed", - "failed": "Failed" + "unknownComponent": "未知組件", + "executing": "執行中", + "completed": "已完成", + "failed": "失敗" }, "nuclearKey": { - "authorize": "Authorize Execution", - "authorized": "Authorized", - "authorizing": "Authorizing...", - "holdToAuthorize": "Hold to authorize...", - "holdHintMobile": "Press and hold to authorize", - "holdHintDesktop": "Hold Y key or click and hold to authorize", - "keepHolding": "Keep holding to authorize...", - "highBlastRadius": "This action has a HIGH blast radius", - "executionAuthorized": "Execution Authorized & Completed", - "executionFailed": "Execution Failed", + "authorize": "授權執行", + "authorized": "已授權", + "authorizing": "授權中...", + "holdToAuthorize": "長按以授權...", + "holdHintMobile": "按住以授權", + "holdHintDesktop": "按住 Y 鍵或點擊長按以授權", + "keepHolding": "繼續按住以授權...", + "highBlastRadius": "此操作具有高影響範圍", + "executionAuthorized": "執行已授權並完成", + "executionFailed": "執行失敗", "riskLevel": { - "low": "LOW", - "medium": "MEDIUM", - "high": "HIGH", - "critical": "CRITICAL" + "low": "低風險", + "medium": "中風險", + "high": "高風險", + "critical": "危急" } }, "incident": { - "title": "Incident Management", - "activeIncidents": "Active Incidents", - "noActiveIncidents": "No active incidents", - "systemStable": "System Stable", - "activeAlerts": "active alerts", - "signals": "signals", - "proposals": "proposals", - "affectedServices": "Affected Services", - "emptyState": "No active incidents", - "emptyStateDescription": "All systems operational", + "title": "事件管理", + "activeIncidents": "活躍事件", + "noActiveIncidents": "目前無活躍事件", + "systemStable": "系統穩定", + "activeAlerts": "筆活躍告警", + "signals": "筆告警", + "proposals": "筆提案", + "affectedServices": "受影響服務", + "emptyState": "目前沒有活躍事件", + "emptyStateDescription": "系統運作正常,無需處理", "status": { - "investigating": "Investigating", - "mitigating": "Mitigating", - "resolved": "Resolved", - "closed": "Closed" + "investigating": "調查中", + "mitigating": "緩解中", + "resolved": "已解決", + "closed": "已關閉" }, "severity": { - "P0": "P0 (Critical)", - "P1": "P1 (High)", - "P2": "P2 (Warning)", - "P3": "P3 (Info)" + "P0": "P0 (危急)", + "P1": "P1 (嚴重)", + "P2": "P2 (警告)", + "P3": "P3 (資訊)" }, - "generateProposal": "Generate Proposal", - "viewDetails": "View Details", + "generateProposal": "生成提案", + "viewDetails": "查看詳情", "card": { - "executing": "Executing...", - "approved": "[ APPROVED ]", - "rejected": "[ REJECTED ]", - "error": "Error", - "timeout": "Timeout", - "retry": "Retry", - "timeoutMessage": "Execution timeout, please check API logs", - "checkApiLogs": "Please check API logs", - "analyzing": "Brain analyzing...", - "waitingDecision": "Waiting for decision", - "authorizeExecution": "Authorize execution", - "rejectProposal": "Reject proposal", - "aiExecuting": ">_ AI Executing (Tier 1)", - "brainAnalyzing": ">_ Brain analyzing...", - "decisionReady": ">_ Decision ready (Tier {tier})", - "waitingCommander": ">_ Awaiting commander approval (Tier {tier})", - "suggestedAction": "> Suggested action:", - "authorize": "Authorize", - "reject": "Reject", - "anomaly": "anomaly", - "affectedServices": "Affected Services", - "signalCount": "Signals", - "statusLabel": "Status", - "aiProposal": "AI Proposal", - "aiProposalPreview": "AI Proposal: {action}", - "flowCurrentLabel": "Current stage", - "flowNextLabel": "Next step", - "flowSourceLabel": "Source", + "executing": "執行中...", + "approved": "[ 已授權 ]", + "rejected": "[ 已拒絕 ]", + "error": "錯誤", + "timeout": "超時", + "retry": "重試", + "timeoutMessage": "執行超時,請檢查 API 日誌", + "checkApiLogs": "請檢查 API 日誌", + "analyzing": "大腦分析中...", + "waitingDecision": "等待決策", + "authorizeExecution": "授權執行", + "rejectProposal": "拒絕提案", + "aiExecuting": ">_ AI 執行中 (Tier 1)", + "brainAnalyzing": ">_ 大腦分析中...", + "decisionReady": ">_ 決策就緒 (Tier {tier})", + "waitingCommander": ">_ 等待統帥親核 (Tier {tier})", + "suggestedAction": "> 建議行動:", + "authorize": "授權", + "reject": "拒絕", + "anomaly": "異常", + "affectedServices": "影響服務", + "signalCount": "信號數", + "statusLabel": "狀態", + "aiProposal": "AI 提案", + "aiProposalPreview": "AI 提案:{action}", + "flowCurrentLabel": "目前階段", + "flowNextLabel": "下一步", + "flowSourceLabel": "來源", "flowSourceTruthChain": "真相鏈 / ADR-100", - "flowSourceHeuristic": "incident status heuristic", - "flowVerdictLabel": "Verdict", + "flowSourceHeuristic": "事件狀態推導", + "flowVerdictLabel": "判定", "flowEvidenceMcp": "MCP {count}", - "flowEvidenceOps": "Ops {count}", + "flowEvidenceOps": "操作 {count}", "flowEvidenceKm": "KM {count}", - "flowEvidenceRepair": "Repair {count}", - "flowMcpDetail": "MCP detail: Gateway success {success} / failed {failed} / blocked {blocked}; first-class {firstClass}; legacy {legacy}; tools {tools}", - "flowExecutionDetail": "Execution detail: Executor {executor}; Operation {operation} / {status}; Ansible {ansible}; PlayBook {playbook}", - "flowExecutionAnsibleConsidered": "considered ({records} records / {candidates} candidates)", - "flowExecutionAnsibleNotUsed": "not used: {reason}", + "flowEvidenceRepair": "修復 {count}", + "flowMcpDetail": "MCP 明細:Gateway 成功 {success} / 失敗 {failed} / 阻擋 {blocked};一級治理 {firstClass};Legacy {legacy};工具 {tools}", + "flowExecutionDetail": "執行明細:Executor {executor};Operation {operation} / {status};Ansible {ansible};PlayBook {playbook}", + "flowExecutionAnsibleConsidered": "已納入 ({records} records / {candidates} candidates)", + "flowExecutionAnsibleNotUsed": "未使用:{reason}", "flowExecutionAnsibleEmpty": "--", - "flowSourceRefsDetail": "Source detail: Inbound {inbound} / Outbound {outbound}; Alert {alert}; Sentry {sentry}; SigNoz {signoz}; linked {linked} / candidate {candidate} ({correlation}); latest {latest}", + "flowSourceRefsDetail": "來源明細:Inbound {inbound} / Outbound {outbound};Alert {alert};Sentry {sentry};SigNoz {signoz};關聯 {linked} / 候選 {candidate}({correlation});最新 {latest}", "flowSourceCorrelationStatus": { - "linked": "Directly linked", - "candidateFound": "Candidate found", - "providerFreshNoMatch": "Provider fresh, no match", - "missing": "No match yet", - "noIncidentContext": "Missing incident context", - "fetchFailed": "Read failed" + "linked": "已直接關聯", + "candidateFound": "找到候選", + "providerFreshNoMatch": "Provider 新鮮但未匹配", + "missing": "尚無匹配", + "noIncidentContext": "缺 Incident 脈絡", + "fetchFailed": "讀取失敗" }, "flowTruthChainCurrent": "{stage} / {status}", - "flowComplete": "Complete", + "flowComplete": "已完成", "flowStages": { - "alert": "Alert received", - "detection": "AI detection", - "analysis": "AI analysis", - "proposal": "Proposal generated", - "approval": "Waiting approval", - "execution": "Repair execution", - "resolved": "Complete" + "alert": "告警收到", + "detection": "AI 偵測", + "analysis": "AI 分析", + "proposal": "提案生成", + "approval": "等待授權", + "execution": "執行修復", + "resolved": "完成" }, - "processingTimeline": "Processing 時間線", - "timelineLoading": "Loading processing timeline...", - "timelineEvents": "Event Details", - "timelineSource": "Source", + "processingTimeline": "處理歷程", + "timelineLoading": "載入處理歷程...", + "timelineEvents": "事件明細", + "timelineSource": "來源", "timelineRoute": "MCP", - "timelineWrites": "Writes" + "timelineWrites": "寫入" } }, "status": { - "idle": "Idle", - "thinking": "Thinking", - "syncing": "Syncing", - "executing": "Executing", - "waitingApproval": "Waiting Approval", - "error": "Error", - "healthy": "Healthy", - "warning": "Warning", - "critical": "Critical", - "degraded": "Degraded", - "unhealthy": "Unhealthy" + "idle": "待命", + "thinking": "思考中", + "syncing": "同步中", + "executing": "執行中", + "waitingApproval": "等待授權", + "error": "錯誤", + "healthy": "健康", + "warning": "警告", + "critical": "危急", + "degraded": "降級", + "unhealthy": "異常" }, "approval": { - "title": "Approval Request", - "card": "Approval Card", - "approve": "APPROVE", - "reject": "REJECT", - "holdToApprove": "HOLD TO APPROVE", - "holdToConfirm": "HOLD TO CONFIRM", - "holdToSign": "HOLD TO SIGN", - "confirming": "CONFIRMING...", - "signing": "SIGNING...", - "needMore": "NEED {count} MORE", - "confirmDestructive": "CONFIRM DESTRUCTIVE", - "approveDestructive": "APPROVE (DESTRUCTIVE)", - "pendingApprovals": "Pending Approvals", - "riskLevel": "Risk Level", - "signatures": "SIGNATURES", - "requiredSignatures": "Required Signatures", - "currentSignatures": "Current Signatures", - "requestedBy": "Requested by", - "expiresAt": "Expires At", - "holdHint": "Hold button for {seconds}s to {action}", - "actionApprove": "approve", - "actionConfirm": "confirm destructive action", - "actionSign": "sign", - "waitingSecondSig": "Waiting for second approver", - "signedBy": "Signed by {name}", - "signedAt": "at {time}", - "signSuccess": "Signed successfully", - "executionTriggered": "Execution triggered", - "rejectSuccess": "Rejected", - "rejectReason": "Rejection reason", - "enterReason": "Enter rejection reason...", - "signComment": "Sign comment (optional)", - "enterComment": "Enter comment...", - "noApprovals": "No pending approvals", - "fetchError": "Failed to fetch approvals", - "noPendingApprovals": "No pending approvals", - "selectApproval": "Select an approval to view details", - "backToList": "Back to list", - "previousApproval": "Previous", - "nextApproval": "Next", - "holdToApproveHint": "Hold button to approve or reject", - "swipeHint": "Swipe left for details, swipe right to go back", - "holdYToApprove": "Hold Y to approve (2s)", - "pressNToReject": "Press N to reject", - "justNow": "just now", - "minutesAgo": "{count}m ago", - "hoursAgo": "{count}h ago", - "daysAgo": "{count}d ago", + "title": "授權請求", + "card": "授權卡片", + "approve": "批准", + "reject": "拒絕", + "holdToApprove": "長按以批准", + "holdToConfirm": "長按以確認", + "holdToSign": "長按以簽核", + "confirming": "確認中...", + "signing": "簽核中...", + "needMore": "還需 {count} 人簽核", + "confirmDestructive": "確認毀滅性操作", + "approveDestructive": "批准 (毀滅性)", + "pendingApprovals": "待授權項目", + "riskLevel": "風險等級", + "signatures": "簽核", + "requiredSignatures": "所需簽核數", + "currentSignatures": "已簽核數", + "requestedBy": "申請者", + "expiresAt": "到期時間", + "holdHint": "長按按鈕 {seconds} 秒以{action}", + "actionApprove": "批准", + "actionConfirm": "確認毀滅性操作", + "actionSign": "簽核", + "waitingSecondSig": "等待第二位主管簽核", + "signedBy": "已由 {name} 簽核", + "signedAt": "於 {time}", + "signSuccess": "簽核成功", + "executionTriggered": "已觸發執行", + "rejectSuccess": "已拒絕", + "rejectReason": "拒絕原因", + "enterReason": "請輸入拒絕原因...", + "signComment": "簽核備註 (選填)", + "enterComment": "輸入備註...", + "noApprovals": "目前沒有待簽核項目", + "fetchError": "無法取得授權清單", + "noPendingApprovals": "目前無待授權項目", + "selectApproval": "請選擇一個待授權項目", + "backToList": "返回列表", + "previousApproval": "上一個項目", + "nextApproval": "下一個項目", + "holdToApproveHint": "長按按鈕以批准或拒絕", + "swipeHint": "向左滑動查看詳情,向右滑動返回列表", + "holdYToApprove": "長按 Y 鍵核准 (2秒)", + "pressNToReject": "按 N 鍵拒絕", + "justNow": "剛剛", + "minutesAgo": "{count} 分鐘前", + "hoursAgo": "{count} 小時前", + "daysAgo": "{count} 天前", "batch": { - "title": "Batch Mode", - "bulkApprove": "Accept All", - "sequential": "Review One by One", - "criticalOnly": "CRITICAL Only", - "eligible": "eligible", - "items": "items", - "securityNote": "CRITICAL risk and DESTRUCTIVE data impact items require individual review." + "title": "批次處理模式", + "bulkApprove": "全部接受", + "sequential": "逐一審核", + "criticalOnly": "僅顯示 CRITICAL", + "eligible": "項可批次", + "items": "項", + "securityNote": "CRITICAL 風險與 DESTRUCTIVE 資料影響的項目需單獨審核,無法批次核准。" } }, "risk": { - "low": "LOW RISK", - "medium": "MEDIUM RISK", - "high": "HIGH RISK", - "critical": "CRITICAL" + "low": "低風險", + "medium": "中風險", + "high": "高風險", + "critical": "危急" }, "dryRun": { - "title": "Dry-Run", - "validation": "DRY-RUN VALIDATION", - "passed": "Passed", - "failed": "Failed", - "checks": "Checks", - "rbac": "RBAC Check", - "syntax": "Syntax Check", - "resource": "Resource Check", - "replicaCount": "Replica Count", - "backupAvailable": "Backup Available", - "clusterAdmin": "cluster-admin", - "dbAdmin": "db-admin", - "deploymentAdmin": "deployment-admin", - "noRecentBackup": "No recent backup!", - "ok": "OK" + "title": "預演檢查", + "validation": "DRY-RUN 驗證", + "passed": "通過", + "failed": "失敗", + "checks": "檢查項目", + "rbac": "權限驗證", + "syntax": "語法驗證", + "resource": "資源檢查", + "replicaCount": "副本數量", + "backupAvailable": "備份可用", + "clusterAdmin": "叢集管理員", + "dbAdmin": "資料庫管理員", + "deploymentAdmin": "部署管理員", + "noRecentBackup": "無近期備份!", + "ok": "正常" }, "blastRadius": { - "title": "BLAST RADIUS", - "affectedPods": "AFFECTED PODS", - "estimatedDowntime": "EST. DOWNTIME", - "relatedServices": "RELATED SERVICES", - "dataImpact": "DATA IMPACT", - "none": "NONE", - "readOnly": "READ ONLY", - "write": "WRITE", - "destructive": "DESTRUCTIVE" + "title": "爆炸半徑", + "affectedPods": "受影響 Pod", + "estimatedDowntime": "預估停機時間", + "relatedServices": "相關服務", + "dataImpact": "資料影響", + "none": "無", + "readOnly": "唯讀", + "write": "可寫", + "destructive": "毀滅性" }, "graphRag": { - "title": "Topology Analysis", - "blastRadius": "Blast Radius", - "rootCause": "Root Cause", - "upstreamImpact": "Upstream Impact", - "downstreamChain": "Downstream Chain", - "dependsOn": "depends on", - "calls": "calls", - "affectedCount": "Affected Count", - "probableRootCauses": "Probable Root Causes" + "title": "拓撲分析", + "blastRadius": "爆炸半徑", + "rootCause": "根本原因", + "upstreamImpact": "上游影響", + "downstreamChain": "下游依賴鏈", + "dependsOn": "依賴於", + "calls": "呼叫", + "affectedCount": "受影響數量", + "probableRootCauses": "可能的根本原因" }, "finops": { - "title": "Cost Analysis", - "totalWasted": "Monthly Waste", - "realizableSavings": "Realizable Savings", - "freedResources": "Freed Resources", - "annualProjection": "Annual Projection", - "topActions": "Top Actions", - "orphanedPvc": "Orphaned PVC", - "zombiePod": "Zombie Pod", - "overProvisioned": "Over-provisioned" + "title": "成本分析", + "totalWasted": "每月浪費", + "realizableSavings": "可實現節省", + "freedResources": "釋放資源", + "annualProjection": "年度預估", + "topActions": "主要建議", + "orphanedPvc": "孤兒儲存卷", + "zombiePod": "殭屍容器", + "overProvisioned": "過度配置" }, "trustEngine": { - "title": "Trust Engine", - "trustScore": "Trust Score", - "progressive": "Progressive Autonomy", - "approved": "Approved", - "rejected": "Rejected", - "neverDowngrade": "Never Downgrade" + "title": "信任引擎", + "trustScore": "信任分數", + "progressive": "漸進自治", + "approved": "已批准", + "rejected": "已拒絕", + "neverDowngrade": "永不降級" }, "multiSig": { - "title": "Multi-Sig", - "signature": "Signature", - "signedBy": "Signed By", - "signedAt": "Signed At", - "voided": "Voided", - "toctouWarning": "State Changed Warning" + "title": "多重簽核", + "signature": "簽章", + "signedBy": "簽署人", + "signedAt": "簽署時間", + "voided": "已作廢", + "toctouWarning": "狀態變更警告" }, "privacy": { - "title": "Privacy Shield", - "redacted": "Redacted", - "piiDetected": "PII Detected" + "title": "隱私防護", + "redacted": "已脫敏", + "piiDetected": "偵測到個資" }, "mockData": { - "deletePod": "Delete Pod: nginx-frontend-7d4b8c9f5-xk2m3", - "deletePodDesc": "Clean up unresponsive frontend Pod, ReplicaSet will auto-rebuild", - "dropTable": "DROP TABLE: user_sessions", - "dropTableDesc": "Clear all user sessions, will force logout all users", - "scaleDeployment": "Scale Deployment: api-backend", - "scaleDeploymentDesc": "Scale from 3 to 5 replicas for increased traffic", + "deletePod": "刪除 Pod: nginx-frontend-7d4b8c9f5-xk2m3", + "deletePodDesc": "清理無回應的前端 Pod,將觸發 ReplicaSet 自動重建", + "dropTable": "刪除資料表: user_sessions", + "dropTableDesc": "清除所有使用者 Session,將強制登出所有用戶", + "scaleDeployment": "擴展部署: api-backend", + "scaleDeploymentDesc": "從 3 個副本擴展至 5 個以應對流量增加", "testActions": { - "lowAction": "Scale deployment api-backend to 5 replicas", - "lowDesc": "Increase backend replicas to handle traffic growth", - "mediumAction": "kubectl delete pod nginx-ingress-7d6f8c9b5-abc12", - "mediumDesc": "Clean up unresponsive frontend Pod, ReplicaSet will auto-rebuild", - "criticalAction": "DROP TABLE user_sessions", - "criticalDesc": "Clear all user sessions to force re-login. This will affect all online users." + "lowAction": "擴展部署 api-backend 至 5 副本", + "lowDesc": "增加後端服務副本數以應對流量增長", + "mediumAction": "刪除 Pod nginx-ingress-7d6f8c9b5-abc12", + "mediumDesc": "清理無回應的前端 Pod,ReplicaSet 將自動重建", + "criticalAction": "刪除資料表 user_sessions", + "criticalDesc": "清除所有用戶 session 以強制重新登入。此操作將影響所有線上用戶。" } }, "actionLog": { - "title": "Action Log", - "subtitle": "K8s Operation Execution Audit Trail", - "noLogs": "No execution records", - "loading": "Loading...", - "fetchError": "Failed to fetch audit logs", + "title": "行動日誌", + "subtitle": "K8s 操作執行稽核軌跡", + "noLogs": "目前沒有執行紀錄", + "loading": "載入中...", + "fetchError": "無法取得稽核日誌", "columns": { - "time": "Execution Time", - "operation": "Operation Type", - "target": "Target Resource", - "namespace": "Namespace", - "status": "Status", - "duration": "Duration", - "executor": "Executor" + "time": "執行時間", + "operation": "操作類型", + "target": "目標資源", + "namespace": "命名空間", + "status": "狀態", + "duration": "耗時", + "executor": "執行者" }, "operations": { - "DELETE_POD": "Delete Pod", - "RESTART_DEPLOYMENT": "Restart Deployment", - "SCALE_DEPLOYMENT": "Scale Deployment" + "DELETE_POD": "刪除 Pod", + "RESTART_DEPLOYMENT": "重啟部署", + "SCALE_DEPLOYMENT": "擴展部署" }, "status": { - "success": "Success", - "failure": "Failure" + "success": "成功", + "failure": "失敗" }, "stats": { - "title": "Statistics", - "total": "Total Executions", - "successRate": "Success Rate", - "avgDuration": "Avg Duration", - "last24h": "Last 24 Hours" + "title": "統計概覽", + "total": "總執行數", + "successRate": "成功率", + "avgDuration": "平均耗時", + "last24h": "過去 24 小時" }, "dryRun": { - "passed": "Dry-Run Passed", - "failed": "Dry-Run Failed" + "passed": "Dry-Run 通過", + "failed": "Dry-Run 失敗" }, "pagination": { - "page": "Page {current} of {total}", - "prev": "Previous", - "next": "Next" + "page": "第 {current} 頁,共 {total} 頁", + "prev": "上一頁", + "next": "下一頁" } }, "placeholder": { - "underConstruction": "Under Construction", - "authorizations": "[ AUTHORIZATIONS MODULE UNDER CONSTRUCTION ]", - "knowledgeBase": "[ KNOWLEDGE BASE MODULE UNDER CONSTRUCTION ]", - "settings": "[ SETTINGS MODULE UNDER CONSTRUCTION ]" + "underConstruction": "建置中", + "authorizations": "[ 授權中心建置中 ]", + "knowledgeBase": "[ 知識殿堂建置中 ]", + "settings": "[ 系統設定建置中 ]" }, "footer": { "copyright": "© 2026 岑洋國際行銷有限公司", - "poweredBy": "Powered by leWOOOgo Engine" + "poweredBy": "由 leWOOOgo 引擎驅動" }, "errorBoundary": { - "systemFailure": "[SYSTEM FAILURE]", - "criticalError": "Critical UI rendering error detected. Auto-healing attempts exhausted.", - "escalating": "Escalating to OpenClaw AIOps Agent...", - "forceRestart": "FORCE MANUAL RESTART", - "detectingAnomaly": "[ DETECTING ANOMALY ]", - "autoHealingAttempt": "Initiating Auto-Healing Protocol (Attempt {attempt}/3)" + "systemFailure": "[系統故障]", + "criticalError": "偵測到嚴重的 UI 渲染錯誤。自動修復嘗試已耗盡。", + "escalating": "正在升級至 OpenClaw AIOps 代理...", + "forceRestart": "強制手動重啟", + "detectingAnomaly": "[ 偵測異常中 ]", + "autoHealingAttempt": "啟動自動修復協議 (嘗試 {attempt}/3)" }, "errors": { - "title": "Error Tracking", - "subtitle": "Sentry Error Tracking + OpenClaw AI Analysis", - "overview": "Error Overview", - "recentIssues": "Recent Issues", - "errorTrend": "Error Trend", - "noData": "No error data", - "noIssues": "No issues at the moment", - "noTrendData": "No trend data", - "unresolvedIssues": "Unresolved Issues", - "errors24h": "Errors (24h)", - "criticalErrors": "Critical Errors", - "totalIssues": "Total Issues", - "totalErrors": "Total Errors ({period})", - "projects": "Projects", - "aiAnalyze": "AI Analyze", - "aiAnalysis": "AI Analysis Result", - "analyzing": "Analyzing...", - "rootCause": "Root Cause", - "fixSummary": "Fix Recommendation", - "category": "Category", - "confidence": "Confidence", - "loading": "Loading...", - "refresh": "Refresh", - "sentryDashboard": "Sentry Dashboard", - "footerInfo": "Data from Sentry Self-Hosted | AI Analysis: OpenClaw | Auto-refresh: 60s", + "title": "錯誤追蹤", + "subtitle": "Sentry 錯誤追蹤 + OpenClaw AI 分析", + "overview": "錯誤概覽", + "recentIssues": "近期問題", + "errorTrend": "錯誤趨勢", + "noData": "無錯誤數據", + "noIssues": "目前沒有錯誤", + "noTrendData": "無趨勢數據", + "unresolvedIssues": "未解決問題", + "errors24h": "24 小時內錯誤", + "criticalErrors": "嚴重錯誤", + "totalIssues": "總問題數", + "totalErrors": "錯誤總數 ({period})", + "projects": "專案", + "aiAnalyze": "AI 分析", + "aiAnalysis": "AI 分析結果", + "analyzing": "分析中...", + "rootCause": "根因", + "fixSummary": "修復建議", + "category": "類別", + "confidence": "信心度", + "loading": "載入中...", + "refresh": "重新整理", + "sentryDashboard": "Sentry 儀表板", + "footerInfo": "資料來源: Sentry Self-Hosted | AI 分析: OpenClaw | 自動刷新: 60 秒", "timeAgo": { - "minutes": "{count}m ago", - "hours": "{count}h ago", - "days": "{count}d ago" + "minutes": "{count} 分鐘前", + "hours": "{count} 小時前", + "days": "{count} 天前" }, "uxAudit": { - "title": "UX Audit", - "noData": "No Session Replay data", - "replaysWithErrors": "Replays with Errors", - "uiErrors": "UI Errors", - "rageClicks": "Rage Clicks", - "deadClicks": "Dead Clicks", - "recentReplays": "Recent Replays", - "recentUIErrors": "Recent UI Errors", - "replayWithErrors": "Replay with {count} errors", - "occurrences": "{count} occurrences", - "viewDashboard": "View Replay Dashboard", + "title": "UX 審計", + "noData": "無 Session Replay 數據", + "replaysWithErrors": "有錯誤的 Replay", + "uiErrors": "UI 錯誤", + "rageClicks": "憤怒點擊", + "deadClicks": "死亡點擊", + "recentReplays": "近期 Replay", + "recentUIErrors": "近期 UI 錯誤", + "replayWithErrors": "Replay 包含 {count} 個錯誤", + "occurrences": "{count} 次發生", + "viewDashboard": "查看 Replay Dashboard", "health": { - "good": "Good", - "moderate": "Moderate", - "poor": "Poor" + "good": "良好", + "moderate": "中等", + "poor": "不佳" } } }, "alerts": { - "autoRefresh": "Auto-refresh every {seconds}s", - "incidentCount": "{count, plural, one {# incident} other {# incidents}}", - "pageSummary": "Showing {from}-{to} of {total}", - "statusChainWindow": "AI flow evidence: {loaded}/{shown} on this page connected to 真相鏈", - "previousPage": "Previous", - "nextPage": "Next", - "pageIndicator": "Page {page} of {totalPages}", - "sourceCoverageTitle": "Source Dossier Coverage", - "sourceCoverageSubtitle": "DB persistence and Sentry / SigNoz references across the latest {limit} inbound source events", - "sourceCoverageError": "Source dossier coverage failed to load: {error}", - "sourceCoverageWithRefs": "With refs", - "sourceCoverageMissing": "Missing refs", - "sourceCoverageAlert": "Alert refs", - "sourceCoverageSentry": "Sentry refs", - "sourceCoverageSigNoz": "SigNoz refs", - "sourceCoverageRatio": "source refs coverage {ratio} / total {total}", - "sourceCoverageProvider": "{provider}: total {total}, missing {missing}, Sentry {sentry}, SigNoz {signoz}, latest {latest} ({age})", - "sourceCoverageProviderWindow": "{provider} window: total {total}, with refs {withRefs}, missing {missing}, latest {latest} ({age})", - "sourceCoverageFreshness": "{provider} latest {latest} ({age})", - "sourceCoverageFresh": "fresh", - "sourceCoverageStaleHours": "stale {hours}h", - "sourceCoverageStaleDays": "stale {days}d", - "sourceCoverageNoEvents": "no events" + "autoRefresh": "每 {seconds} 秒自動刷新", + "incidentCount": "{count, plural, one {# 個事件} other {# 個事件}}", + "pageSummary": "顯示第 {from}-{to} 筆 / 共 {total} 筆", + "statusChainWindow": "AI 流程證據:本頁 {loaded}/{shown} 筆已接上 真相鏈", + "previousPage": "上一頁", + "nextPage": "下一頁", + "pageIndicator": "第 {page} / {totalPages} 頁", + "sourceCoverageTitle": "來源卷宗覆蓋率", + "sourceCoverageSubtitle": "最近 {limit} 筆進站來源事件的 DB 保存與 Sentry / SigNoz 關聯", + "sourceCoverageError": "來源卷宗覆蓋率讀取失敗:{error}", + "sourceCoverageWithRefs": "含來源參照", + "sourceCoverageMissing": "缺來源參照", + "sourceCoverageAlert": "告警參照", + "sourceCoverageSentry": "Sentry 參照", + "sourceCoverageSigNoz": "SigNoz 參照", + "sourceCoverageRatio": "來源參照覆蓋率 {ratio} / 總數 {total}", + "sourceCoverageProvider": "{provider}: 總數 {total},缺參照 {missing},Sentry {sentry},SigNoz {signoz},最新 {latest}({age})", + "sourceCoverageProviderWindow": "{provider} 視窗:總數 {total},含參照 {withRefs},缺參照 {missing},最新 {latest}({age})", + "sourceCoverageFreshness": "{provider} 最新 {latest}({age})", + "sourceCoverageFresh": "新鮮", + "sourceCoverageStaleHours": "已過期 {hours} 小時", + "sourceCoverageStaleDays": "已過期 {days} 天", + "sourceCoverageNoEvents": "無事件" }, "navSection": { - "aiCore": "AI Core", - "monitoring": "Monitoring & Security", - "ops": "Operations", - "knowledge": "Knowledge & 工具" + "aiCore": "AI 核心", + "monitoring": "監控與安全", + "ops": "運維管理", + "knowledge": "知識與工具" }, "sidebar": { - "expand": "Expand sidebar", - "collapse": "Collapse sidebar" + "expand": "展開側欄", + "collapse": "收合側欄" }, "settings": { - "title": "Settings", - "appearance": "Appearance", - "appearanceDesc": "Theme, fonts, density", - "appearanceSettings": "Appearance Settings", - "language": "Language", - "languageDesc": "Interface language", - "languageSettings": "Language Settings", - "notify": "Notifications", - "notifyDesc": "Telegram / browser notification preferences", - "notifySettings": "Notification Settings", - "system": "System Info", - "systemDesc": "Version & API endpoints", - "systemSettings": "System Info", - "compactMode": "Compact Mode", - "compactModeDesc": "Reduce spacing, show more content", - "designSystem": "Design System", - "designSystemValue": "Nothing.tech Pure White Industrial (fixed)", - "themeColor": "Theme Color", - "themeColorValue": "OpenClaw Blue + Orange Accent (fixed)", - "browserNotify": "Browser Push Notifications", - "browserNotifyDesc": "Show system notification on new Incident", - "p0Only": "P0 CRITICAL Only", - "p0OnlyDesc": "Filter low-severity alerts to reduce noise", - "telegramNotify": "Telegram Notifications", - "telegramNotifyDesc": "Pushed by OpenClaw Bot (requires backend config)", - "backendConfig": "Backend Config", - "frontendVersion": "Frontend Version", - "apiEndpoint": "API Endpoint", - "notConfigured": "(not configured)", + "title": "系統設定", + "appearance": "外觀", + "appearanceDesc": "主題、字體、密度", + "appearanceSettings": "外觀設定", + "language": "語言", + "languageDesc": "介面語言設定", + "languageSettings": "語言設定", + "notify": "通知", + "notifyDesc": "Telegram / 瀏覽器通知偏好", + "notifySettings": "通知設定", + "system": "系統資訊", + "systemDesc": "版本與 API 端點", + "systemSettings": "系統資訊", + "compactMode": "緊湊模式", + "compactModeDesc": "減少各元件間距,顯示更多資訊", + "designSystem": "設計系統", + "designSystemValue": "Nothing.tech 純白工業風(固定)", + "themeColor": "主題色", + "themeColorValue": "OpenClaw Blue + 橘紅 Accent(固定)", + "browserNotify": "瀏覽器推播通知", + "browserNotifyDesc": "新 Incident 時顯示系統通知", + "p0Only": "僅 P0 CRITICAL 通知", + "p0OnlyDesc": "過濾低嚴重度告警,減少噪音", + "telegramNotify": "Telegram 通知", + "telegramNotifyDesc": "由 OpenClaw Bot 推送(需後端設定)", + "backendConfig": "後端設定", + "frontendVersion": "前端版本", + "apiEndpoint": "API 端點", + "notConfigured": "(未設定)", "phase": "Phase", - "save": "Save Settings", - "saved": "Saved", - "zhTW": "繁體中文", + "save": "儲存設定", + "saved": "已儲存", + "zhTW": "繁", "zhTWSub": "Traditional Chinese", "en": "EN", "enSub": "English (US)" }, "autoRepair": { - "subtitle": "High-quality Playbook auto-execution · Risk ≤ MEDIUM · Success ≥ 95%", - "approvedPlaybooks": "Approved Playbooks", - "highQualityPlaybooks": "High-Quality Playbooks", - "highQualitySub": "Success ≥ 95% · Runs ≥ 10", - "totalExecutions": "Total Executions", - "overallSuccessRate": "Overall Success Rate", - "eligible": "✓ Auto-repair available", - "notEligible": "No high-quality Playbook yet", - "ready": "Auto-repair Ready", - "notReady": "Auto-repair Not Ready", - "readyDesc": "{count} high-quality Playbooks available", - "notReadyDesc": "Need at least 1 high-quality Playbook (success ≥ 95%, runs ≥ 10)", - "incidentEval": "Active Incident Evaluation (P1/P2)", - "canAutoRepair": "Can auto-repair", - "notEligibleShort": "Not eligible", - "riskLevel": "Risk Level", - "successRate": "Success Rate", - "execCount": "Executions", - "decisionReason": "Decision Reason", - "execSuccess": "Success ({ms}ms)", - "execFailed": "Failed: {error}", - "executing": "Executing...", - "execute": "Execute Repair", - "noEligible": "No incidents eligible for auto-repair", - "dispositionAuto": "Auto Repair", - "dispositionHuman": "Human Approved", - "dispositionManual": "Manual Resolved", - "dispositionCold": "Cold Start Trust" + "subtitle": "高品質 Playbook 自動執行 · 風險 ≤ MEDIUM · 成功率 ≥ 95%", + "approvedPlaybooks": "已批准 Playbooks", + "highQualityPlaybooks": "高品質 Playbooks", + "highQualitySub": "成功率 ≥ 95% · 執行 ≥ 10 次", + "totalExecutions": "總執行次數", + "overallSuccessRate": "整體成功率", + "eligible": "✓ 可啟用自動修復", + "notEligible": "尚無高品質 Playbook", + "ready": "自動修復已就緒", + "notReady": "自動修復未就緒", + "readyDesc": "{count} 個高品質 Playbook 可用", + "notReadyDesc": "需要至少 1 個高品質 Playbook(成功率 ≥ 95%、執行 ≥ 10 次)", + "incidentEval": "活躍 Incident 評估(P1/P2)", + "canAutoRepair": "可自動修復", + "notEligibleShort": "不符合條件", + "riskLevel": "風險等級", + "successRate": "成功率", + "execCount": "執行次數", + "decisionReason": "決策原因", + "execSuccess": "執行成功 ({ms}ms)", + "execFailed": "執行失敗: {error}", + "executing": "執行中...", + "execute": "執行修復", + "noEligible": "目前無符合自動修復條件的 Incident", + "dispositionAuto": "自動修復", + "dispositionHuman": "人工審核", + "dispositionManual": "手動處理", + "dispositionCold": "冷啟動信任" }, "openclawPanel": { "patrolling": "[AGENT] patrolling...", @@ -1192,245 +1194,247 @@ "complete": "[SYS] Analysis complete" }, "knowledgeBase": { - "title": "Knowledge Base", - "searchPlaceholder": "Search knowledge entries...", - "allCategories": "All", - "noResults": "No knowledge entries found", - "createEntry": "New Entry", - "viewCount": "views", - "relatedPlaybook": "Related Playbook", - "relatedIncident": "Related Incident", - "approve": "Approve", - "approving": "Approving...", - "archive": "Archive", - "archiving": "Archiving...", + "title": "知識殿堂", + "searchPlaceholder": "搜尋知識條目...", + "allCategories": "全部", + "noResults": "找不到相關知識條目", + "createEntry": "新增條目", + "viewCount": "瀏覽", + "relatedPlaybook": "相關 Playbook", + "relatedIncident": "相關事件", + "approve": "審核通過", + "approving": "審核中...", + "archive": "封存", + "archiving": "封存中...", "status": { - "draft": "Draft", - "review": "In Review", - "approved": "Approved", - "archived": "Archived", - "published": "Published" + "draft": "草稿", + "review": "審核中", + "approved": "已批准", + "archived": "已封存", + "published": "已發布" }, "type": { - "incident_case": "Incident Case", - "runbook": "Runbook", - "best_practice": "Best Practice", - "postmortem": "Postmortem", - "auto_runbook": "Auto Runbook", - "anti_pattern": "Anti-Pattern" + "incident_case": "案例分析", + "runbook": "操作手冊", + "best_practice": "最佳實踐", + "postmortem": "事後分析", + "auto_runbook": "AI 自動 Runbook", + "anti_pattern": "失敗案例" }, "source": { - "ai_extracted": "AI Extracted", - "human": "Manual" + "ai_extracted": "AI 萃取", + "human": "人工建立" }, "category": { - "infrastructure": "Infrastructure", - "application": "Application", - "ai_system": "AI System", - "security": "Security / Compliance" + "infrastructure": "基礎設施", + "application": "應用層", + "ai_system": "AI 系統", + "security": "安全 / 合規" }, - "filterByType": "Filter by type", - "filterByStatus": "Filter by status", - "entries": "entries", - "empty": "No knowledge entries yet", - "emptyDescription": "Entries will be auto-extracted from incidents, or you can create them manually", - "semanticSearchPlaceholder": "Enter semantic search query...", - "semanticOn": "Semantic", - "semanticOff": "Semantic", - "switchToSemantic": "Switch to semantic search (pgvector)", - "switchToKeyword": "Switch to keyword search", - "semanticSearchHint": "Enter a query to search with AI vector similarity" + "filterByType": "篩選類型", + "filterByStatus": "篩選狀態", + "entries": "筆", + "empty": "尚未建立任何知識條目", + "emptyDescription": "知識庫將自動從 Incident 中萃取案例,你也可以手動新增", + "semanticSearchPlaceholder": "輸入語意搜尋查詢...", + "semanticOn": "語意", + "semanticOff": "語意", + "switchToSemantic": "切換至語意搜尋 (pgvector)", + "switchToKeyword": "切換至關鍵字搜尋", + "semanticSearchHint": "輸入查詢內容,使用 AI 向量搜尋相關知識" }, "monitoring": { - "healthy": "Healthy", - "warning": "Warning", - "critical": "Critical", - "goldMetrics": "GOLD METRICS", - "hostStatus": "HOST STATUS (FOUR-HOST ARCHITECTURE)", - "serviceList": "SERVICE LIST", - "serviceName": "Service", - "status": "Status", - "latency": "Latency", - "uptime": "Uptime", - "lastCheck": "Last Check" + "healthy": "正常", + "warning": "警告", + "critical": "異常", + "goldMetrics": "黃金指標 (GOLD METRICS)", + "hostStatus": "主機狀態 (FOUR-HOST ARCHITECTURE)", + "serviceList": "服務清單", + "serviceName": "服務名稱", + "status": "狀態", + "latency": "延遲", + "uptime": "可用率", + "lastCheck": "最後檢查" }, "services": { - "title": "Services", - "subtitle": "All services across hosts", - "name": "Service Name", - "host": "Host", - "status": "Status", + "title": "服務目錄", + "subtitle": "所有主機上的服務清單", + "name": "服務名稱", + "host": "主機", + "status": "狀態", "cpu": "CPU%", "ram": "RAM%", - "noServices": "No service data available", - "fetchError": "Failed to load services" + "noServices": "目前無服務資料", + "fetchError": "無法取得服務清單" }, "topology": { - "title": "Topology", - "subtitle": "Service dependencies & health status", - "noHosts": "No host data available", - "fetchError": "Failed to load host data", - "services": "Services", + "title": "拓撲圖", + "subtitle": "服務依賴與健康狀態", + "noHosts": "目前無主機資料", + "fetchError": "無法取得主機資料", + "services": "服務", "cpu": "CPU", "ram": "RAM", - "groupInfra": "Infrastructure", - "groupSecurity": "Security", - "groupK3s": "K3s Cluster", - "groupAiData": "AI/Data Center", - "allHealthy": "All Healthy", - "allReachable": "All Reachable", - "warning": "Warning", - "healthy": "Healthy", - "investigating": "Investigating", - "groupExternal": "External Services", - "hostDevops": "DevOps Vault", - "hostAiData": "AI+Web Hub", + "groupInfra": "基礎設施", + "groupSecurity": "安全中心", + "groupK3s": "K3s 叢集", + "groupAiData": "AI/數據中心", + "allHealthy": "全部健康", + "allReachable": "全部可達", + "warning": "異常", + "healthy": "健康", + "investigating": "調查中", + "groupExternal": "外部服務", + "hostDevops": "DevOps 金庫", + "hostAiData": "AI+Web 中心", "hostK3sMaster": "K3s Master", "hostK3sWorker": "K3s Worker" }, "notifications": { - "title": "Notifications", - "subtitle": "Notification channel settings", - "channel": "Channel", - "type": "Type", - "status": "Status", - "noChannels": "No notification channels", - "fetchError": "Failed to load notification channels" + "title": "通知", + "subtitle": "通知頻道設定", + "channel": "頻道", + "type": "類型", + "status": "狀態", + "noChannels": "目前無通知頻道", + "fetchError": "無法取得通知頻道" }, "reports": { - "title": "Reports", - "subtitle": "Incident statistics summary", - "incidentSummary": "Incident Summary", - "resolutionStats": "Resolution Statistics", - "total": "Total", - "resolved": "Resolved", - "unresolved": "Unresolved", - "avgResolutionTime": "Avg Resolution Time", - "resolutionRate": "Resolution Rate", - "fetchError": "Failed to load report data", - "noData": "No statistics available", - "totalDispositions": "Total Dispositions", - "autoRate": "Automation Rate", - "humanRate": "Human Intervention Rate", - "autoRepair": "Auto Repair", - "humanApproved": "Human Approved", - "manualResolved": "Manual Resolved", - "coldStartTrust": "Cold Start Trust", - "dispositionBreakdown": "Disposition Breakdown", - "byAnomalyType": "By Anomaly Type", - "anomalyKey": "Anomaly Type" + "title": "報表", + "subtitle": "事件統計摘要", + "incidentSummary": "事件摘要", + "resolutionStats": "解決率統計", + "total": "總計", + "resolved": "已解決", + "unresolved": "未解決", + "avgResolutionTime": "平均解決時間", + "resolutionRate": "解決率", + "fetchError": "無法取得報表資料", + "noData": "目前無統計資料", + "totalDispositions": "處置總次數", + "autoRate": "自動化率", + "humanRate": "人工介入率", + "autoRepair": "自動修復", + "humanApproved": "人工審核", + "manualResolved": "手動處理", + "coldStartTrust": "冷啟動信任", + "dispositionBreakdown": "處置方式分佈", + "byAnomalyType": "按異常類型明細", + "anomalyKey": "異常類型" }, "apm": { "title": "APM", - "subtitle": "Application Performance Monitoring — Golden Signals", - "loading": "Loading...", - "metric": "Metric", - "value": "Value", - "status": "Status", - "openSignoz": "Open SigNoz", - "noData": "No APM data", - "noDataDescription": "APM integration pending, will display automatically after SignOz connects" + "subtitle": "應用性能監控 — 黃金指標", + "loading": "載入中...", + "metric": "指標", + "value": "數值", + "status": "狀態", + "openSignoz": "開啟 SigNoz", + "noData": "暫無 APM 數據", + "noDataDescription": "APM 整合尚未啟用,待 SignOz 連線後自動顯示" }, "apps": { - "title": "Applications", - "subtitle": "All host services status", - "loading": "Loading...", - "host": "Host", - "service": "Service", + "title": "應用", + "subtitle": "所有主機服務狀態", + "loading": "載入中...", + "host": "主機", + "service": "服務", "port": "Port", - "latency": "Latency", - "status": "Status", - "error": "Load failed", - "noApps": "No service data" + "latency": "延遲", + "status": "狀態", + "error": "載入失敗", + "noApps": "無服務資料" }, "billing": { - "title": "Usage", - "subtitle": "System operation usage statistics", - "loading": "Loading...", - "totalExecutions": "Total Executions", - "last24h": "Last 24h", - "successRate": "Success Rate", - "avgDuration": "Avg Duration", - "currentMonth": "This Month", - "totalUsage": "Total Usage", - "error": "Load failed", - "noData": "No usage data" + "title": "使用量", + "subtitle": "系統操作使用量統計", + "loading": "載入中...", + "totalExecutions": "總執行數", + "last24h": "近 24 小時", + "successRate": "成功率", + "avgDuration": "平均耗時", + "currentMonth": "本月執行數", + "totalUsage": "總用量", + "error": "載入失敗", + "noData": "無使用量資料" }, "compliance": { - "title": "Compliance", - "subtitle": "System governance & compliance status", - "loading": "Loading...", - "totalIncidents": "Total Incidents", - "resolvedRate": "Resolution Rate", - "approvedPlaybooks": "Playbooks", - "highQualityPlaybooks": "High-Quality Playbooks", - "executionSuccessRate": "Execution Success Rate", - "autoRepairEligible": "Auto-Repair Eligible", - "yes": "Yes", - "no": "No", - "error": "Load failed", - "noData": "No compliance data" + "title": "合規", + "subtitle": "系統治理合規狀態", + "loading": "載入中...", + "totalIncidents": "事件總數", + "resolvedRate": "解決率", + "approvedPlaybooks": "Playbook 數", + "highQualityPlaybooks": "高品質 Playbook", + "executionSuccessRate": "執行成功率", + "autoRepairEligible": "可自動修復", + "yes": "是", + "no": "否", + "error": "載入失敗", + "noData": "無合規資料", + "window30Days": "近 30 天", + "severityDistribution": "嚴重度分布" }, "cost": { - "title": "Cost Analysis", - "subtitle": "AI execution efficiency stats", - "loading": "Loading...", - "totalProposals": "Total Proposals", - "executionRate": "Execution Rate", - "successRate": "Success Rate", - "avgEffectiveness": "Avg Effectiveness", - "error": "Load failed", - "noData": "No cost data" + "title": "成本分析", + "subtitle": "AI 執行效能統計", + "loading": "載入中...", + "totalProposals": "提案總數", + "executionRate": "執行率", + "successRate": "成功率", + "avgEffectiveness": "平均有效性", + "error": "載入失敗", + "noData": "無成本資料" }, "deployments": { - "title": "Deployments", - "subtitle": "K3s service deployment status", - "loading": "Loading...", - "service": "Service", + "title": "部署管理", + "subtitle": "K3s 服務部署狀態", + "loading": "載入中...", + "service": "服務", "port": "Port", - "latency": "Latency", - "status": "Status", - "host": "Host", - "error": "Load failed", - "noDeployments": "No deployment data", - "name": "Service Name", - "version": "Version", - "time": "Time", + "latency": "延遲", + "status": "狀態", + "host": "主機", + "error": "載入失敗", + "noDeployments": "無部署資料", + "name": "服務名稱", + "version": "版本", + "time": "時間", "cicd": { - "title": "CI/CD Deployment Evidence", - "subtitle": "Deployment, test, and rollout-risk status from AwoooP audit data", - "visibleCount": "{count} items", - "loading": "Loading CI/CD evidence...", - "error": "Failed to load CI/CD evidence", - "empty": "No CI/CD evidence yet", + "title": "CI/CD 部署證據", + "subtitle": "從 AwoooP 稽核資料讀取部署、測試與 rollout-risk 狀態", + "visibleCount": "{count} 筆", + "loading": "載入 CI/CD 證據中...", + "error": "無法載入 CI/CD 證據", + "empty": "尚無 CI/CD 證據", "emptyValue": "--", - "durationSeconds": "{seconds}s", - "durationNotRecorded": "Duration not recorded", - "openWorkflow": "Open workflow", + "durationSeconds": "{seconds} 秒", + "durationNotRecorded": "未記錄耗時", + "openWorkflow": "查看 workflow", "status": { - "failed": "Failed", - "pending": "Needs attention", - "running": "Running", - "success": "Success" + "failed": "失敗", + "pending": "需注意", + "running": "執行中", + "success": "成功" }, "stage": { - "buildDeploy": "Build and deploy", - "codeReview": "Code review", - "postDeploy": "Post deploy", - "postDeployChecks": "Post deploy checks", - "rolloutRisk": "Rollout risk recovered", - "tests": "Tests" + "buildDeploy": "建置與部署", + "codeReview": "程式碼審查", + "postDeploy": "部署後驗證", + "postDeployChecks": "部署後驗證", + "rolloutRisk": "部署風險已恢復", + "tests": "測試" } } }, "help": { - "title": "Help", - "subtitle": "System information", - "version": "Version Info", - "appVersion": "Application Version", - "platform": "Platform", - "docs": "Documentation", - "docsDescription": "Visit AWOOOI Docs for full documentation" + "title": "說明", + "subtitle": "系統資訊與說明", + "version": "版本資訊", + "appVersion": "應用程式版本", + "platform": "平台", + "docs": "文件", + "docsDescription": "查閱完整說明文件請造訪 AWOOOI Docs" }, "security": { "title": "安全", @@ -1477,287 +1481,287 @@ } }, "tickets": { - "title": "Tickets", - "subtitle": "Incident ticket tracking", - "loading": "Loading...", - "id": "Ticket ID", - "title_col": "Title", - "status": "Status", - "priority": "Priority", - "createdAt": "Created At", - "error": "Load failed", - "noTickets": "No tickets" + "title": "工單", + "subtitle": "事件工單追蹤", + "loading": "載入中...", + "id": "工單 ID", + "title_col": "標題", + "status": "狀態", + "priority": "優先級", + "createdAt": "建立時間", + "error": "載入失敗", + "noTickets": "目前無工單" }, "users": { - "title": "Audit Log", - "subtitle": "K8s operation execution records", - "loading": "Loading...", - "totalExecutions": "Total Executions", - "successCount": "Success", - "failureCount": "Failures", - "successRate": "Success Rate", - "avgDuration": "Avg Duration", - "recentOps": "Recent Operations", - "operation": "Operation Type", - "namespace": "Namespace", - "result": "Result", - "time": "Time", - "error": "Load failed", - "noUsers": "No audit records", - "name": "Name", - "role": "Role", - "status": "Status" + "title": "操作稽核", + "subtitle": "K8s 操作執行紀錄", + "loading": "載入中...", + "totalExecutions": "總執行數", + "successCount": "成功數", + "failureCount": "失敗數", + "successRate": "成功率", + "avgDuration": "平均耗時", + "recentOps": "最近操作", + "operation": "操作類型", + "namespace": "命名空間", + "result": "結果", + "time": "執行時間", + "error": "載入失敗", + "noUsers": "無稽核紀錄", + "name": "姓名", + "role": "角色", + "status": "狀態" }, "emptyState": { "noData": "--", - "comingSoon": "Integration pending" + "comingSoon": "資料尚未整合" }, "drift": { - "title": "Config Drift Detection", - "subtitle": "GitOps Guardian — Detects drift between K8s actual state and Git YAML", - "scan": "Scan Now", - "scanning": "Scanning...", - "loading": "Loading...", - "noReports": "No drift reports yet", - "noReportsHint": "CronJob scans hourly automatically, or click \"Scan Now\" to trigger manually", - "noDrift": "No Drift", - "reportId": "Report ID", - "scannedAt": "Scanned At", + "title": "配置漂移偵測", + "subtitle": "GitOps 守門員 — 偵測 K8s 實際狀態 vs Git YAML 的漂移", + "scan": "立即掃描", + "scanning": "掃描中...", + "loading": "載入中...", + "noReports": "目前無漂移報告", + "noReportsHint": "CronJob 每小時自動掃描,或點擊「立即掃描」手動觸發", + "noDrift": "無漂移", + "reportId": "報告 ID", + "scannedAt": "掃描時間", "namespace": "Namespace", - "triggeredBy": "觸發來源ed By", - "highCount": "High", - "mediumCount": "Medium", - "infoCount": "Info", - "status": "Status", + "triggeredBy": "觸發來源", + "highCount": "高", + "mediumCount": "中", + "infoCount": "低", + "status": "狀態", "driftLevel": { - "high": "High", - "medium": "Medium", - "info": "Info" + "high": "高", + "medium": "中", + "info": "低" }, - "interpretation": "Nemotron Intent Analysis", - "noInterpretation": "No analysis needed (no drift)", - "rollback": "Rollback to Git", - "adopt": "Adopt Change", - "rollbackConfirm": "Rollback this resource to Git state?", - "adoptConfirm": "Adopt this change and update Git?", - "pending": "Pending", - "resolved": "Resolved", - "acknowledged": "Acknowledged", - "rolled_back": "Rolled back", - "adopted": "Adopted", - "ignored": "Ignored", + "interpretation": "Nemotron 意圖分析", + "noInterpretation": "無需分析(無漂移)", + "rollback": "覆蓋回 Git", + "adopt": "承認變更", + "rollbackConfirm": "確定要將此資源覆蓋回 Git 狀態嗎?", + "adoptConfirm": "確定要將此變更承認並更新至 Git 嗎?", + "pending": "待處理", + "resolved": "已解決", + "acknowledged": "已知悉", + "rolled_back": "已回滾", + "adopted": "已採納", + "ignored": "已忽略", "fingerprintState": { - "title": "Same-fingerprint state chain", - "occurrences": "12h {count}x", - "report": "Report: {report}", - "state": "State: {state}", - "next": "Next: {step}", - "writes": "Writes: drift={drift}; incident={incident}; repair={repair}; ticket={ticket}", - "pr": "PR: {pr}; zeroDiff={zeroDiff}", - "p0Dedup": "P0 dedupe {hours}h", - "remediation": "Remediation: {status}; verification report: {report}", - "remediationKind": "Remediation kind: {kind}", - "remediationVerification": "Verification: {summary}", - "remediationNote": "Note: {note}" + "title": "同指紋狀態鏈", + "occurrences": "12h {count} 次", + "report": "Report:{report}", + "state": "狀態:{state}", + "next": "下一步:{step}", + "writes": "寫入:drift={drift};incident={incident};repair={repair};ticket={ticket}", + "pr": "PR:{pr};zeroDiff={zeroDiff}", + "p0Dedup": "P0 去重 {hours}h", + "remediation": "修復:{status};驗證 Report:{report}", + "remediationKind": "修復方式:{kind}", + "remediationVerification": "驗證結果:{summary}", + "remediationNote": "備註:{note}" } }, "neuralCommand": { - "title": "Neural Command Center", - "subtitle": "SSH_COMMAND Chain of Command · OpenClaw 🦞 × NemoTron ⚡", - "lastRefresh": "Updated {time}", - "refresh": "Refresh", - "preFlightAudit": "Pre-Flight Audit", - "liveCommand": "Live Command", - "statsHistory": "Stats & History", - "nuclearApproval": "Nuclear Approval", - "preFlightTitle": "SSH_COMMAND Architecture Security Audit", - "preFlightSubtitle": "WHITELIST updated to production standard", - "progress": "Progress", - "riskLevel": "Risk Level", - "riskLow": "Low", - "auditStatus": "Audit Status", - "passed": "Passed", - "pending": "Pending", - "passBannerTitle": "Pre-Flight Passed — Architecture meets security standards", - "passBannerDesc": "8/8 checks passed · Shell Injection protection enabled · known_hosts mounted", - "statusFixed": "Fixed", - "statusPending": "Pending", - "featureToggles": "Feature Toggle Status", - "approvedPlaybooks": "Approved Playbooks", - "highQuality": "High Quality", - "totalExecutions": "Total Executions", - "successRate": "Success Rate", - "checkA1Label": "Key Check (known_hosts)", - "checkA1Desc": "K8s Secret mounted at /etc/repair-ssh/known_hosts", - "checkA2Label": "Whitelist (ConfigMap)", + "title": "神經指揮中心", + "subtitle": "SSH_COMMAND 指揮權鏈 · OpenClaw 🦞 × NemoTron ⚡", + "lastRefresh": "更新於 {time}", + "refresh": "重新整理", + "preFlightAudit": "Pre-Flight 審查", + "liveCommand": "指揮中心", + "statsHistory": "統計 & 歷史", + "nuclearApproval": "核鑰授權", + "preFlightTitle": "SSH_COMMAND 架構安全預審", + "preFlightSubtitle": "WHITELIST 已更新至生產標準", + "progress": "修復進度", + "riskLevel": "風險等級", + "riskLow": "低", + "auditStatus": "審查狀態", + "passed": "通過", + "pending": "待處理", + "passBannerTitle": "預審通過 — 架構符合安全規範", + "passBannerDesc": "8/8 檢查項目已通過 · Shell Injection 防護已啟用 · known_hosts 已掛載", + "statusFixed": "已修復", + "statusPending": "待處理", + "featureToggles": "功能開關狀態", + "approvedPlaybooks": "已核准 Playbooks", + "highQuality": "高品質", + "totalExecutions": "總執行次數", + "successRate": "成功率", + "checkA1Label": "密鑰檢查 (known_hosts)", + "checkA1Desc": "K8s Secret 掛載至 /etc/repair-ssh/known_hosts", + "checkA2Label": "白名單 (ConfigMap)", "checkA2Desc": "Hardcoded Whitelist → K8s ConfigMap", - "checkA3Label": "Command Injection Filter", - "checkA3Desc": "Block ; | && $() · Max 512 chars", - "checkB1Label": "Audit Log", - "checkB1Desc": "Missing AuditLog → PostgreSQL write", - "checkB2Label": "Langfuse Trace", - "checkB2Desc": "SSH Trace Missing → Decision tracing added", - "checkC1Label": "Idempotency Lock (Redis)", - "checkC1Desc": "repair_lock prevents duplicate execution", - "checkC2Label": "Feedback Loop", - "checkC2Desc": "Success Rate Update → RAG confidence self-updates", - "checkC3Label": "Execution Path (.188)", - "checkC3Desc": "ansible:// forced to .188 control node", - "agentRoleOC": "Diagnosis & RAG Matching", - "agentRoleNemo": "Decision & Execution", - "todayMatches": "Today's Matches", - "ragConf": "RAG Conf", - "execSuccess": "Exec Success", - "avgDuration": "Avg Duration", - "pendingApproval": "Pending", - "alertRadar": "Alert Radar", - "chainTitle": "Neural Transmission Path", - "nodeDone": "Done", - "nodeActive": "Running", - "nodeWaiting": "Waiting", - "execStream": "Execution Stream", - "waitingApproval": "Awaiting commander approval", - "kpiSuccessRate": "Overall Success Rate", - "kpiTotalExec": "Total Executions", + "checkA3Label": "指令注入過濾", + "checkA3Desc": "禁止 ; | && $() · 長度上限 512 字元", + "checkB1Label": "稽核日誌 (AuditLog)", + "checkB1Desc": "Missing AuditLog → PostgreSQL 寫入", + "checkB2Label": "Langfuse 鍵路追蹤", + "checkB2Desc": "SSH Trace Missing → 決策溯源已補上", + "checkC1Label": "冪等鎖 (Redis)", + "checkC1Desc": "repair_lock 防止重複執行", + "checkC2Label": "反饋閉環 (Success Rate)", + "checkC2Desc": "Success Rate Update → RAG 信心自更新", + "checkC3Label": "執行路徑明確化 (.188)", + "checkC3Desc": "ansible:// 強制路由至 .188 控制節點", + "agentRoleOC": "診斷 & RAG 匹配", + "agentRoleNemo": "決策 & 執行下令", + "todayMatches": "本日匹配", + "ragConf": "RAG 信心", + "execSuccess": "執行成功", + "avgDuration": "平均耗時", + "pendingApproval": "待審核", + "alertRadar": "告警雷達", + "chainTitle": "神經傳導路徑", + "nodeDone": "完成", + "nodeActive": "執行中", + "nodeWaiting": "等待中", + "execStream": "執行串流", + "waitingApproval": "等待統帥授權", + "kpiSuccessRate": "整體成功率", + "kpiTotalExec": "總執行次數", "kpiPlaybooks": "Playbooks", - "kpiAvgDuration": "Avg Repair Time", - "kpiPendingAppr": "Pending Approvals", - "trendUp": "↑ {n}% this week", - "trendDown": "↓ {n}s this week", - "schemeBreakdown": "Execution Path Breakdown", - "playbookRanking": "Playbook Performance Ranking", - "thName": "Name", - "thType": "Type", - "thRate": "Success Rate", - "thCount": "Count", - "historyTimeline": "Repair History 時間線", - "ago": "ago", - "approvalTitle": "Host Layer Command — Commander Authorization Required", - "diagnosis": "Diagnosis", - "recommendation": "Recommendation", - "execPathDetails": "Execution Path Details", + "kpiAvgDuration": "平均修復時間", + "kpiPendingAppr": "待審核授權", + "trendUp": "↑ {n}% 本週", + "trendDown": "↓ {n}s 本週", + "schemeBreakdown": "執行路徑分佈", + "playbookRanking": "Playbook 成效排名", + "thName": "名稱", + "thType": "類型", + "thRate": "成功率", + "thCount": "執行", + "historyTimeline": "修復歷史時間軸", + "ago": "前", + "approvalTitle": "主機層指揮令 — 需要統帥授權", + "diagnosis": "診斷", + "recommendation": "建議", + "execPathDetails": "執行路徑詳情", "uriScheme": "URI Scheme", - "controlNode": "Control Node", - "targetHost": "Target Host", + "controlNode": "控制節點", + "targetHost": "目標主機", "playbookPath": "Playbook", - "repairLock": "Idempotency Lock", - "riskMediumDesc": "Operation cannot be immediately reverted, but backup protection exists", - "confirmExec": "Hold 5s to Confirm Execution", - "rejectApproval": "Reject — Transfer to Manual", - "approvalGranted": "Authorization Granted", - "approvalGrantedDesc": "NemoTron is executing ansible-playbook...", - "approvalRejected": "Authorization Rejected", - "approvalRejectedDesc": "Transferred to manual handling", - "noHistory": "No repair history yet", - "noActiveAlerts": "No active alerts", - "noPlaybooks": "No playbook records yet", - "noApprovals": "No pending approvals", - "noApprovalsDesc": "All authorization requests have been processed", - "chainAlert": "Alert 觸發來源ed", - "chainRAG": "🦞 OpenClaw RAG Diagnosis", - "chainDecide": "⚡ NemoTron Decision", - "chainExec": "Executor Routing", - "chainIdleSub": "Waiting for new alerts...", - "backToList": "Back to List", - "approvalError": "Operation failed", - "processing": "Processing...", - "blastRadius": "Blast Radius", - "affectedPods": "Affected Pods", - "estimatedDowntime": "Est. Downtime", - "relatedServices": "Related Services", - "dataImpact": "Data Impact", - "dryRunChecks": "Dry-Run Checks", - "approvalQueueCount": "{count} pending approvals", - "dispositionBreakdown": "Disposition Breakdown", - "dispositionAuto": "Auto Repair", - "dispositionHuman": "Human Approved", - "dispositionManual": "Manual Resolved", - "dispositionCold": "Cold Start Trust", - "autoRateLabel": "Automation Rate" + "repairLock": "冪等鎖", + "riskMediumDesc": "操作不可即時撤銷,但有備份保護", + "confirmExec": "長按 5 秒確認授權執行", + "rejectApproval": "拒絕授權 — 轉人工處理", + "approvalGranted": "授權已核准", + "approvalGrantedDesc": "NemoTron 正在執行 ansible-playbook...", + "approvalRejected": "授權已拒絕", + "approvalRejectedDesc": "已轉交人工處理", + "noHistory": "尚無修復紀錄", + "noActiveAlerts": "目前無活躍告警", + "noPlaybooks": "尚無 Playbook 紀錄", + "noApprovals": "目前無待審核項目", + "noApprovalsDesc": "所有授權請求已處理完畢", + "chainAlert": "告警觸發", + "chainRAG": "🦞 OpenClaw RAG 診斷", + "chainDecide": "⚡ NemoTron 決策", + "chainExec": "Executor 路由", + "chainIdleSub": "等待新告警進入...", + "backToList": "返回列表", + "approvalError": "操作失敗", + "processing": "處理中...", + "blastRadius": "爆炸半徑", + "affectedPods": "影響 Pods", + "estimatedDowntime": "預估停機", + "relatedServices": "相關服務", + "dataImpact": "資料影響", + "dryRunChecks": "Dry-Run 檢查", + "approvalQueueCount": "共 {count} 個待審核項目", + "dispositionBreakdown": "告警處置分佈", + "dispositionAuto": "自動修復", + "dispositionHuman": "人工審核", + "dispositionManual": "手動處理", + "dispositionCold": "冷啟動信任", + "autoRateLabel": "自動化率" }, "alertOpLogs": { - "title": "Alert Operation Logs", - "subtitle": "alert_operation_log · Full event stream", - "refresh": "Refresh", - "totalEvents24h": "24h Total Events", - "allEventTypes": "All Event Types", - "incidentIdFilter": "Filter by 事件 ID...", - "totalCount": "{count} total", - "colTime": "Time", - "colEventType": "Event Type", - "colIncident": "Incident", - "colActor": "Actor", - "colDetail": "Detail", - "colResult": "Result", - "loading": "Loading...", - "noRecords": "No records", - "loadError": "Failed to load, please retry", - "pageInfo": "Page {page} / {total}", - "prevPage": "Previous", - "nextPage": "Next", - "eventAlertReceived": "Alert Received", - "eventTelegramSent": "TG Notified", - "eventUserAction": "User Action", - "eventAutoRepairTriggered": "Auto Repair", - "eventExecutionStarted": "Execution Started", - "eventExecutionCompleted": "Execution Completed", - "eventTelegramResultSent": "TG Result", - "eventResolved": "Resolved", - "eventSilenced": "Silenced", - "eventEscalated": "Escalated", - "eventGuardrailBlocked": "Guardrail Blocked", - "eventPreFlightPassed": "Pre-flight Passed", - "eventPreFlightFailed": "Pre-flight Failed", - "eventBackupTriggered": "Backup 觸發來源ed", - "eventBackupCompleted": "Backup Completed", - "eventBackupFailed": "Backup Failed", - "eventApprovalEscalated": "Approval Escalated", - "eventChangeApplied": "Change Applied" + "title": "告警操作日誌", + "subtitle": "alert_operation_log · 全事件流追蹤", + "refresh": "重新整理", + "totalEvents24h": "24h 總事件", + "allEventTypes": "全部事件類型", + "incidentIdFilter": "事件 ID 篩選...", + "totalCount": "共 {count} 筆", + "colTime": "時間", + "colEventType": "事件類型", + "colIncident": "事件", + "colActor": "操作者", + "colDetail": "說明", + "colResult": "結果", + "loading": "載入中...", + "noRecords": "無記錄", + "loadError": "載入失敗,請重試", + "pageInfo": "第 {page} / {total} 頁", + "prevPage": "上一頁", + "nextPage": "下一頁", + "eventAlertReceived": "告警收到", + "eventTelegramSent": "TG 通知", + "eventUserAction": "用戶操作", + "eventAutoRepairTriggered": "自動修復", + "eventExecutionStarted": "執行開始", + "eventExecutionCompleted": "執行完成", + "eventTelegramResultSent": "TG 結果", + "eventResolved": "已解決", + "eventSilenced": "已靜音", + "eventEscalated": "已升級", + "eventGuardrailBlocked": "護欄攔截", + "eventPreFlightPassed": "預檢通過", + "eventPreFlightFailed": "預檢失敗", + "eventBackupTriggered": "備份觸發", + "eventBackupCompleted": "備份完成", + "eventBackupFailed": "備份失敗", + "eventApprovalEscalated": "審批升級", + "eventChangeApplied": "變更套用" }, "commandPalette": { - "placeholder": "Search commands, pages or events...", - "noResults": "No results found", - "hint": "↑↓ Navigate Enter Select Esc Close", - "groupNav": "Navigation", - "groupActions": "Quick Actions", - "groupRecent": "Recent Events", - "actionOpenTerminal": "Open Omni-Terminal", - "actionGoHome": "Go to Command Center", - "actionGoObservability": "Go to Observability", - "actionGoAutomation": "Go to Automation", - "actionGoOperations": "Go to Operations", - "actionGoSecurity": "Go to Security & Compliance", - "actionGoKnowledge": "Go to Knowledge Hall", - "actionGoSettings": "Go to Settings", - "actionGoTerminal": "Go to Terminal", - "actionGoApprovals": "Go to Authorizations", - "actionGoIwooos": "Go to IwoooS" + "placeholder": "搜尋指令、頁面或事件...", + "noResults": "找不到符合結果", + "hint": "↑↓ 選擇 Enter 確認 Esc 關閉", + "groupNav": "導航", + "groupActions": "快速動作", + "groupRecent": "最近事件", + "actionOpenTerminal": "開啟 Omni-Terminal", + "actionGoHome": "前往指令中心", + "actionGoObservability": "前往可觀測性", + "actionGoAutomation": "前往自動化", + "actionGoOperations": "前往營運", + "actionGoSecurity": "前往安全合規", + "actionGoKnowledge": "前往知識殿堂", + "actionGoSettings": "前往設定", + "actionGoTerminal": "前往終端頁面", + "actionGoApprovals": "前往授權中心", + "actionGoIwooos": "前往 IwoooS" }, "aiopsTimeline": { - "title": "AIOps Full 時間線", - "subtitle": "Alert → Investigation → Decision → Execution → Verification → Learning", - "mockBadge": "MOCK MODE", + "title": "AIOps 全景時序", + "subtitle": "告警→感官調查→AI決策→自動執行→驗證→學習 完整鏈路", + "mockBadge": "MOCK 模式", "stages": { - "alert": "Alert 觸發來源ed", - "diagnose": "Investigation", - "decide": "AI Decision", - "execute": "Auto Execute", - "verify": "Verification", - "learn": "Learning Update" + "alert": "告警觸發", + "diagnose": "感官調查", + "decide": "AI 決策", + "execute": "自動執行", + "verify": "結果驗證", + "learn": "學習更新" }, "status": { - "success": "Success", - "running": "Running", - "failed": "Failed", - "skipped": "Skipped", - "pending": "Pending" + "success": "成功", + "running": "執行中", + "failed": "失敗", + "skipped": "跳過", + "pending": "待執行" }, "filters": { - "incident_id": "事件 ID", - "incident_id_placeholder": "Search incident ID...", - "time_range": "Time Range", - "status_filter": "Status Filter", - "incident_count": "{count} incidents", + "incident_id": "事件編號", + "incident_id_placeholder": "搜尋事件 ID...", + "time_range": "時間範圍", + "status_filter": "狀態篩選", + "incident_count": "{count} 筆事件", "timeRange": { "1h": "1H", "6h": "6H", @@ -1765,522 +1769,522 @@ "7d": "7D" }, "statusFilter": { - "all": "All", - "success": "Success", - "failed": "Failed", - "running": "Running" + "all": "全部", + "success": "成功", + "failed": "失敗", + "running": "進行中" } }, "incident": { - "started_at": "Started At", - "resolved_at": "Resolved At", - "duration": "Duration", - "in_progress": "In Progress", - "severity": "Severity", - "stages_summary": "{success} success / {total} stages", - "expand_all": "Expand All", - "collapse_all": "Collapse All" + "started_at": "開始時間", + "resolved_at": "結束時間", + "duration": "持續時長", + "in_progress": "處理中", + "severity": "嚴重度", + "stages_summary": "{success} 成功 / {total} 階段", + "expand_all": "展開全部", + "collapse_all": "收合全部" }, "stage": { - "toggle_details": "Toggle {stage} details" + "toggle_details": "展開 {stage} 詳情" }, "evidence": { - "dimensions": "8D Dimensions", - "anomalyCount": "{count}/{total} anomaly dimensions", + "dimensions": "8D 維度", + "anomalyCount": "{count}/{total} 異常維度", "noData": "N/A" }, "stageDetails": { "alert": { - "name": "Alert Name", - "rule": "Rule", - "value": "Current Value", - "labels": "Labels" + "name": "告警名稱", + "rule": "規則", + "value": "當前值", + "labels": "標籤" }, "diagnose": { - "investigator": "Investigator", + "investigator": "調查器", "tools_used": "MCP 工具", - "hypothesis": "Root Cause Hypothesis", - "evidence": "8D Evidence" + "hypothesis": "根因假設", + "evidence": "8D 證據" }, "decide": { - "engine": "Decision Engine", - "fusion": "Fusion Method", - "confidence": "Confidence", - "confidenceThreshold": "Threshold {value}%", - "auto_execute": "Auto Execute", - "auto_yes": "Yes", - "auto_no": "No (requires approval)", + "engine": "決策引擎", + "fusion": "融合方法", + "confidence": "信心度", + "confidenceThreshold": "門檻 {value}%", + "auto_execute": "自動執行", + "auto_yes": "是", + "auto_no": "否(需授權)", "playbook": "Playbook", - "decision": "Decision Command", - "reasoning": "Reasoning", - "alternates": "Alternate Decisions" + "decision": "決策指令", + "reasoning": "推理依據", + "alternates": "備選方案" }, "execute": { - "command": "Command", - "target": "Target", - "executor": "Executor", - "duration": "Duration", - "stdout": "Output", - "exit_code": "Exit Code" + "command": "執行指令", + "target": "執行目標", + "executor": "執行器", + "duration": "耗時", + "stdout": "輸出", + "exit_code": "退出碼" }, "verify": { - "verifier": "Verifier", - "outcome": "Outcome", - "checks": "Checks", - "trust_delta": "Trust Delta", - "notes": "Notes" + "verifier": "驗證器", + "outcome": "結果", + "checks": "檢查項", + "trust_delta": "信任度變化", + "notes": "備註" }, "learn": { "playbook": "Playbook", - "trust_update": "Trust Update", - "km_entry": "Knowledge Base Entry", - "summary": "Learning Summary" + "trust_update": "信任度更新", + "km_entry": "知識庫記錄", + "summary": "學習摘要" } }, - "loading": "Loading timeline data...", + "loading": "載入時序資料中...", "empty": { - "title": "No incidents found", - "subtitle": "No AIOps incidents match the current filters" + "title": "無事件記錄", + "subtitle": "目前沒有符合條件的 AIOps 事件" }, "error": { - "title": "Failed to load data", - "retry": "Retry" + "title": "資料載入失敗", + "retry": "重試" } }, "governance": { - "title": "AI Governance", + "title": "AI 治理中樞", "complianceBadge": { - "label": "AI Governance", - "loading": "Loading...", - "score": "Overall Compliance", - "target": "Target ≥ 95%" + "label": "AI 治理中樞", + "loading": "載入中...", + "score": "整體合規率", + "target": "目標 ≥ 95%" }, "tabs": { - "slo": "SLO Dashboard", - "events": "Governance Events", - "queue": "AI Queue" + "slo": "SLO 儀表", + "events": "治理事件", + "queue": "AI 待辦" }, - "comingSoon": "This tab is coming soon", + "comingSoon": "本 Tab 即將上線", "slo": { "kpi": { - "autonomy_rate": "Autonomy Rate", - "decision_accuracy": "Decision Accuracy", - "confidence_calibration": "Confidence Calibration", - "km_growth_rate": "KM Growth Rate", - "mcp_call_diversity": "MCP Call Diversity", - "auto_execute_success_rate": "Auto Execute Success", - "human_override_rate": "Human Override Rate", - "verifier_false_neg_rate": "Verifier False Negative", - "current": "Current", - "target": "Target", - "sparkline": "7-day trend", - "loading": "Loading...", - "error": "Failed to load", - "noData": "No data", - "sampleCount": "Samples {count}", - "window": "Window {window}", + "autonomy_rate": "自主化率", + "decision_accuracy": "決策準確率", + "confidence_calibration": "信心校準", + "km_growth_rate": "KM 成長率", + "mcp_call_diversity": "MCP 呼叫多樣性", + "auto_execute_success_rate": "自動執行成功率", + "human_override_rate": "人工推翻率", + "verifier_false_neg_rate": "驗證漏判率", + "current": "當前", + "target": "目標", + "sparkline": "7 日趨勢", + "loading": "載入中...", + "error": "無法載入", + "noData": "暫無資料", + "sampleCount": "樣本 {count}", + "window": "視窗 {window}", "state": { - "ok": "OK", - "warning": "Below target", - "violated": "Hard red line", - "skipped_low_volume": "Low sample wait", - "no_data": "No data", - "error": "Query failed", - "partial": "Partially evaluable" + "ok": "正常", + "warning": "低於目標", + "violated": "硬紅線", + "skipped_low_volume": "低樣本等待", + "no_data": "沒有資料", + "error": "查詢失敗", + "partial": "部分可評估" }, "reason": { - "none": "None", - "denominator_below_minimum_events": "Denominator events too low", - "prometheus_nan_or_inf": "Prometheus has no valid denominator yet", - "prometheus_empty_result_metric_not_emitted": "Prometheus has not returned the metric yet", - "unknown": "Reason pending" + "none": "無", + "denominator_below_minimum_events": "分母事件不足", + "prometheus_nan_or_inf": "Prometheus 暫無有效分母", + "prometheus_empty_result_metric_not_emitted": "Prometheus 尚未回傳指標", + "unknown": "原因待查" } }, "chart": { - "title": "30-day Violation 時間線", - "xAxisLabel": "Date", - "yAxisLabel": "Count", - "loading": "Loading chart...", - "error": "Chart failed to load", - "empty": "No violations in the last 30 days", - "tooltip": "Violations" + "title": "30 日違反事件時序", + "xAxisLabel": "日期", + "yAxisLabel": "次數", + "loading": "載入圖表...", + "error": "圖表載入失敗", + "empty": "30 日內無違反事件", + "tooltip": "違反次數" }, "compliance": { - "title": "Overall Compliance", - "target": "Target ≥ 95%" + "title": "整體合規率", + "target": "目標 ≥ 95%" }, "coverage": { - "title": "Verification Coverage", - "subtitle": "Auto-repair executions and verifier writeback in the last {window}", - "totalAuto": "Auto repairs", - "verifiedAuto": "Verified", - "unverifiedAuto": "Unverified", - "coverageRate": "Coverage", - "successRate": "Success verification", - "lastVerified": "Last verified execution", - "reasonLabel": "Reason", - "failureBreakdown": "Non-success Verification Classes", - "recentFindings": "Recent Non-success Verification", - "remediationQueue": "Remediation Work Queue", - "queueSummary": "Total {total}; AI-ready {ready}; human {human}", - "dryRunButton": "Dry run", - "dryRunLoading": "Running", - "dryRunResult": "{mode}; preview {result}; tools {tools}", - "dryRunHistoryRecorded": "History recorded", - "dryRunHistorySummary": "History {count}x; last {time}; {route}", - "dryRunBlocked": "Dry run blocked", - "dryRunError": "Dry run failed", + "title": "驗證覆蓋率", + "subtitle": "近 {window} 自動修復執行與 verifier 寫回狀態", + "totalAuto": "自動修復", + "verifiedAuto": "已驗證", + "unverifiedAuto": "待驗證", + "coverageRate": "覆蓋率", + "successRate": "成功驗證", + "lastVerified": "最後已驗證執行", + "reasonLabel": "原因", + "failureBreakdown": "非成功驗證分類", + "recentFindings": "近期非成功驗證", + "remediationQueue": "補救工作佇列", + "queueSummary": "總數 {total};AI 可接手 {ready};人工 {human}", + "dryRunButton": "試跑", + "dryRunLoading": "試跑中", + "dryRunResult": "{mode};預覽 {result};工具 {tools}", + "dryRunHistoryRecorded": "已寫入歷史", + "dryRunHistorySummary": "歷史 {count} 次;上次 {time};{route}", + "dryRunBlocked": "試跑未放行", + "dryRunError": "試跑失敗", "state": { - "ok": "OK", - "warning": "Needs tracking", - "violated": "Hard red line", - "skipped_low_volume": "Waiting for samples", - "no_data": "No data", - "error": "Query failed" + "ok": "正常", + "warning": "需追蹤", + "violated": "硬紅線", + "skipped_low_volume": "等待樣本", + "no_data": "沒有資料", + "error": "查詢失敗" }, "reason": { - "none": "None", - "no_auto_repair_executions_24h": "No auto-repair executions in the last 24h", - "verification_backlog_present": "Some auto repairs are missing verification results", - "non_success_verification_present": "degraded / failed / timeout verification exists", - "postgresql_query_error": "PostgreSQL query failed" + "none": "無", + "no_auto_repair_executions_24h": "近 24h 無自動修復執行", + "verification_backlog_present": "有自動修復尚未寫入驗證結果", + "non_success_verification_present": "存在 degraded / failed / timeout 驗證結果", + "postgresql_query_error": "PostgreSQL 查詢失敗" }, "failureClass": { - "unsupported_action_scheme": "PlayBook action misses supported executor", - "verifier_missing_promql": "Verifier missing PromQL query", - "verifier_target_missing_pod": "Verifier missing pod target", - "auto_repair_execution_failed": "Auto repair execution failed", - "verification_failed": "Verification failed", - "verification_timeout": "Verification timed out", - "verification_degraded": "Verification degraded", - "unknown": "Pending classification" + "unsupported_action_scheme": "PlayBook 動作未走支援執行器", + "verifier_missing_promql": "Verifier 缺 PromQL 查詢", + "verifier_target_missing_pod": "Verifier 缺 Pod 目標", + "auto_repair_execution_failed": "自動修復執行失敗", + "verification_failed": "驗證失敗", + "verification_timeout": "驗證逾時", + "verification_degraded": "驗證降級", + "unknown": "待分類" }, "nextStep": { - "normalize_playbook_executor": "Fix PlayBook executor", - "add_verifier_query_template": "Add verifier query template", - "map_verifier_target": "Map verifier target", - "review_auto_repair_execution": "Inspect auto repair record", - "escalate_verification_failure": "Escalate verification failure", - "review_degraded_verification": "Review degraded evidence" + "normalize_playbook_executor": "修正 PlayBook 執行器", + "add_verifier_query_template": "補 verifier 查詢模板", + "map_verifier_target": "補 verifier 目標映射", + "review_auto_repair_execution": "檢查自動修復紀錄", + "escalate_verification_failure": "升級驗證失敗", + "review_degraded_verification": "檢查降級證據" }, "remediationStatus": { - "ready_for_replay": "Ready for replay", - "ready_for_reverify": "Ready to reverify", - "needs_target_mapping": "Needs target mapping", - "needs_playbook_ticket": "Needs ticket", - "manual_review": "Manual review", - "unknown": "Pending classification" + "ready_for_replay": "可重跑", + "ready_for_reverify": "可重驗", + "needs_target_mapping": "待補目標", + "needs_playbook_ticket": "待建 Ticket", + "manual_review": "人工檢查", + "unknown": "待分類" }, "remediationAction": { - "replay_with_supported_executor": "Replay with supported executor", - "reverify_with_promql_template": "Reverify with PromQL template", - "map_target_and_reverify": "Map target and reverify", - "create_playbook_ticket": "Create PlayBook ticket", - "escalate_verification_failure": "Escalate verification failure", - "inspect_degraded_evidence": "Inspect degraded evidence" + "replay_with_supported_executor": "用支援 executor 重跑", + "reverify_with_promql_template": "用 PromQL 模板重驗", + "map_target_and_reverify": "補目標後重驗", + "create_playbook_ticket": "建立 PlayBook Ticket", + "escalate_verification_failure": "升級驗證失敗", + "inspect_degraded_evidence": "檢查降級證據" } }, "legacyHitl": { - "title": "Legacy HITL Pending", - "subtitle": "These items come from approval_records, not AwoooP run approvals. They still need to be visible in the operator console.", - "openAuthorizations": "Open Authorizations", - "loadFailed": "Failed to load Legacy HITL backlog: {error}", - "tableLabel": "Legacy HITL pending approvals", - "moreRows": "Showing the latest 8 items. Open Authorizations for the remaining {count}.", + "title": "Legacy HITL 待人工處理", + "subtitle": "這批來自 approval_records,不屬於 AwoooP run approval;仍需在前台可見。", + "openAuthorizations": "開啟授權中心", + "loadFailed": "Legacy HITL backlog 載入失敗:{error}", + "tableLabel": "Legacy HITL 待人工處理", + "moreRows": "只顯示最新 8 筆,其餘 {count} 筆請到授權中心處理。", "noTelegram": "no TG", "telegramRef": "TG #{id}", "summary": { - "pending": "Pending", - "noTelegram": "No Telegram message", - "observe": "Observe/no action", + "pending": "待處理", + "noTelegram": "無 Telegram 訊息", + "observe": "觀察/無動作", "critical": "Critical" }, "columns": { - "risk": "Risk", - "action": "Action", - "incident": "Incident", - "source": "Source", - "created": "Created" + "risk": "風險", + "action": "動作", + "incident": "事件", + "source": "來源", + "created": "建立" } } }, "events": { "filter": { - "eventType": "Event Type", - "dateRange": "Date Range", - "status": "Status", - "severity": "Severity", - "eventId": "Event ID", - "eventIdPlaceholder": "Paste governance_event_id", - "clearAll": "Clear All", - "allStatuses": "All Statuses", - "resolved": "Resolved", - "unresolved": "Unresolved", - "allSeverities": "All Severities", - "critical": "Critical", - "warning": "Warning", - "info": "Info", - "placeholder": "Select event types...", - "from": "From", - "to": "To" + "eventType": "事件類型", + "dateRange": "時間範圍", + "status": "狀態", + "severity": "嚴重度", + "eventId": "事件 ID", + "eventIdPlaceholder": "貼上 governance_event_id", + "clearAll": "清除全部", + "allStatuses": "全部狀態", + "resolved": "已解決", + "unresolved": "未解決", + "allSeverities": "全部嚴重度", + "critical": "危急", + "warning": "警告", + "info": "資訊", + "placeholder": "選擇事件類型...", + "from": "起始日期", + "to": "結束日期" }, "column": { - "eventType": "Event Type", - "triggeredAt": "觸發來源ed At", - "status": "Status", - "impact": "Impact Summary", - "actions": "Actions" + "eventType": "事件類型", + "triggeredAt": "觸發時間", + "status": "狀態", + "impact": "影響摘要", + "actions": "操作" }, "detail": { - "rawData": "Raw Data", - "remediation": "Remediation", - "dispatch": "Dispatch Log", - "noRemediation": "No remediation available", - "noDispatch": "No dispatch records" + "rawData": "原始資料", + "remediation": "修復建議", + "dispatch": "派遣記錄", + "noRemediation": "暫無修復建議", + "noDispatch": "暫無派遣記錄" }, "eventType": { - "slo_violation": "SLO Violation", - "governance_slo_data_gap": "SLO Data Gap", - "knowledge_degradation": "KM Needs Update", - "kb_stale": "Stale KM", - "execution_blast_radius": "Execution Blast Radius", - "conservative_mode": "Conservative Mode", - "replay_degraded": "Replay Degraded", - "self_demotion": "AI Self-demotion", - "slo_breach": "SLO Breach", - "accuracy_drop": "Accuracy Drop", - "km_stall": "KM Stall", - "mcp_failure": "MCP Failure", - "trust_degradation": "Trust Degradation", - "unknown": "Unknown" + "slo_violation": "SLO 違反", + "governance_slo_data_gap": "SLO 資料缺口", + "knowledge_degradation": "KM 需要更新", + "kb_stale": "KM 陳舊", + "execution_blast_radius": "執行爆炸半徑", + "conservative_mode": "保守模式", + "replay_degraded": "回放品質下降", + "self_demotion": "AI 自我降級", + "slo_breach": "SLO 違反", + "accuracy_drop": "準確率下降", + "km_stall": "KM 停滯", + "mcp_failure": "MCP 失敗", + "trust_degradation": "信任降級", + "unknown": "未知類型" }, "status": { - "resolved": "Resolved", - "unresolved": "Unresolved" + "resolved": "已解決", + "unresolved": "未解決" }, "severity": { - "critical": "Critical", - "warning": "Warning", - "info": "Info" + "critical": "危急", + "warning": "警告", + "info": "資訊" }, - "emptyState": "No governance events", - "emptyStateHint": "System is operating normally", - "errorState": "Failed to load events", - "retry": "Retry", - "page": "Page", - "of": "of", - "prevPage": "Previous", - "nextPage": "Next", - "perPage": "20 per page ·", - "expand": "Expand details", - "collapse": "Collapse details" + "emptyState": "暫無治理事件", + "emptyStateHint": "目前系統運作正常,無違規事件", + "errorState": "無法載入事件列表", + "retry": "重試", + "page": "第", + "of": "頁,共", + "prevPage": "上一頁", + "nextPage": "下一頁", + "perPage": "每頁 20 筆 ·", + "expand": "展開詳情", + "collapse": "收合詳情" }, "queue": { "status": { - "connected": "Live updates", - "disconnected": "Offline mode", - "connecting": "Connecting..." + "connected": "即時更新中", + "disconnected": "離線模式", + "connecting": "連線中..." }, "column": { - "eventType": "Event Type", - "createdAt": "Created At", - "proposedAction": "Proposed Action", - "playbookTrust": "Playbook Trust", - "dispatchStatus": "Status" + "eventType": "事件類型", + "createdAt": "建立時間", + "proposedAction": "建議操作", + "playbookTrust": "Playbook 信任度", + "dispatchStatus": "派遣狀態" }, "action": { - "approve": "Approve", - "reject": "Reject", - "approveTitle": "Approve this action", - "rejectTitle": "Reject this action" + "approve": "批准", + "reject": "拒絕", + "approveTitle": "批准此操作", + "rejectTitle": "拒絕此操作" }, "history": { - "title": "History", - "succeeded": "Succeeded", - "failed": "Failed", - "empty": "No history records" + "title": "歷史記錄", + "succeeded": "已成功", + "failed": "已失敗", + "empty": "暫無歷史記錄" }, "emptyState": { - "noTable": "Dispatch table not yet built", - "noTableHint": "Track D dispatch table is initializing", - "noPending": "No pending items", - "noPendingHint": "AI system is operating normally" + "noTable": "派遣表尚未建立", + "noTableHint": "Track D 派遣表正在初始化中", + "noPending": "目前無待辦事項", + "noPendingHint": "AI 系統運作正常,無需人工介入" }, "sse": { - "label": "Live Updates", - "connected": "Connected", - "disconnected": "Disconnected" + "label": "即時更新", + "connected": "已連線", + "disconnected": "已斷線" }, - "pendingSection": "Pending", - "loading": "Loading queue...", - "error": "Failed to load queue", - "retry": "Retry" + "pendingSection": "待辦", + "loading": "載入待辦佇列...", + "error": "無法載入待辦佇列", + "retry": "重試" } }, "awooop": { "home": { - "eyebrow": "AI Automation 控制面", - "title": "AwoooP Governance Overview", - "subtitle": "Unifies tenants, contracts, runs, approvals, and channel state into one operator surface so the AI flywheel and governance plane do not drift apart.", - "refresh": "Refresh", - "snapshotStatus": "Snapshot Status", - "lastUpdated": "Last Updated", - "migrationMode": "Migration Mode", + "eyebrow": "AI 自動化飛輪控制面", + "title": "AwoooP 治理總覽", + "subtitle": "把租戶、合約、Run、審批與通道狀態收斂到同一個操作面,避免 AI 自動化飛輪和治理面各自長出一套邏輯。", + "refresh": "重新整理", + "snapshotStatus": "快照狀態", + "lastUpdated": "最後更新", + "migrationMode": "遷移模式", "migrationValue": "mirror / shadow", - "ready": "In Sync", - "loading": "Loading", - "degraded": "Degraded", + "ready": "同步中", + "loading": "讀取中", + "degraded": "降級", "sourceFlow": { - "title": "Source Flow and Work Progress", - "subtitle": "Reads recent Channel Event recurrence data so the overview shows source persistence, run linkage, work items, and source correlation state.", - "sourceEvents": "{count} source events", - "unavailable": "Unavailable", - "loadFailed": "Unable to load the source flow overview. Check the Work Chain or 執行監控 recurrence API.", - "empty": "No source event data is available yet.", + "title": "來源流程與工作進度", + "subtitle": "從 Channel Event recurrence 讀取最近來源事件,讓首頁直接呈現來源落庫、Run 連結、工作項與 source correlation 狀態。", + "sourceEvents": "來源事件 {count}", + "unavailable": "無法讀取", + "loadFailed": "無法讀取來源流程總覽。請回工作鏈路或 Run 監控檢查 recurrence API。", + "empty": "尚無來源事件資料。", "metrics": { - "linkedRuns": "Run 連結age", - "linkedRunsDetail": "Unlinked events: {unlinked}", - "openWork": "Open Work", - "openWorkDetail": "No repair {gap} / manual gates {manual} / failed repairs {failed}", - "sourceDecision": "Source Decision", - "sourceDecisionNone": "No Review", - "sourceDecisionDetail": "Recorded reviews: {recorded}", - "latest": "Latest Event", - "latestDetail": "{groups} recurrence groups" + "linkedRuns": "Run 連結", + "linkedRunsDetail": "未連結事件:{unlinked}", + "openWork": "待處理工作", + "openWorkDetail": "無修復 {gap} / 人工閘門 {manual} / 修復失敗 {failed}", + "sourceDecision": "來源決策", + "sourceDecisionNone": "無待審", + "sourceDecisionDetail": "已記錄審核:{recorded}", + "latest": "最新事件", + "latestDetail": "共 {groups} 個 recurrence group" }, "progress": { - "linked": "Source to Run Coverage", - "linkedDetail": "Whether source events can be traced back to Run / Incident", - "work": "Work Item Cleanup", - "workDetail": "Whether recurrence groups still have open work", - "decision": "Source Match Decision", - "decisionDetail": "Whether source review / apply has a decision record" + "linked": "來源到 Run 覆蓋", + "linkedDetail": "來源事件是否已能回到 Run / Incident", + "work": "工作項清理", + "workDetail": "recurrence group 是否仍有待處理項", + "decision": "來源配對決策", + "decisionDetail": "source review / apply 是否已有決策紀錄" }, "actions": { - "workItems": "Handle Work Items", - "workItemsDetail": "{count} open groups need handling or confirmation", - "runs": "Inspect Run 連結age", - "runsDetail": "Unlinked events: {unlinked}", - "approvals": "Check Human Gates", - "approvalsDetail": "{count} manual gates need human judgment", - "sourceReviews": "Review Source Matches", - "sourceReviewsDetail": "{count} source reviews need a decision" + "workItems": "處理工作項", + "workItemsDetail": "{count} 個 open group 需要處理或確認", + "runs": "查看 Run 連結", + "runsDetail": "未連結事件:{unlinked}", + "approvals": "檢查人工閘門", + "approvalsDetail": "{count} 個 manual gate 需要人工判斷", + "sourceReviews": "審核來源配對", + "sourceReviewsDetail": "{count} 個 source review 待決策" } }, "quality": { - "title": "Automation Quality", - "subtitle": "Whether recent alerts actually reached AI auto-repair, verification, and learning writeback in the last 24 hours.", - "claimReady": "Full Loop Claim Ready", - "claimBlocked": "Full Loop Claim Blocked", - "unavailable": "Unavailable", - "loadFailed": "Unable to load the automation quality summary. Check Operator permissions and the 真相鏈 API.", - "empty": "No alert quality data is available yet.", - "yes": "Yes", - "no": "No", + "title": "自動化品質", + "subtitle": "最近 24 小時告警是否真正走到 AI 自動修復、驗證與學習回寫。", + "claimReady": "可宣稱完整閉環", + "claimBlocked": "不可宣稱完整閉環", + "unavailable": "無法讀取", + "loadFailed": "無法讀取自動化品質總覽。請確認 Operator 權限與 真相鏈 API 狀態。", + "empty": "尚無可評估的告警品質資料。", + "yes": "是", + "no": "否", "metrics": { - "evaluated": "Evaluated Alerts", - "evaluatedDetail": "Same quality gate applied", - "verified": "Verified Auto-Repairs", - "verifiedDetail": "Requires auto-repair plus verification", - "averageScore": "Average Score", - "averageScoreDetail": "0 to 100 process completeness", - "claim": "Production Claim", - "claimReadyDetail": "Every alert completed the verified loop", - "claimBlockedDetail": "Some alerts still lack execution, verification, or learning records" + "evaluated": "已評估告警", + "evaluatedDetail": "套用同一組品質閘門", + "verified": "已驗證自動修復", + "verifiedDetail": "必須有自動修復與驗證記錄", + "averageScore": "平均分數", + "averageScoreDetail": "0 到 100 的流程完整度", + "claim": "生產宣稱", + "claimReadyDetail": "所有告警都完成驗證閉環", + "claimBlockedDetail": "仍有告警缺少執行、驗證或學習記錄" }, - "scoreBuckets": "Score Buckets", - "scoreBucketsDetail": "{total} evaluated alerts", - "green": "Green", - "yellow": "Yellow", - "red": "Red", - "verdictTitle": "Verdict Distribution", - "gateFailureTitle": "Top Gaps", - "scoreRange": "min {min} / max {max} / avg {avg}", + "scoreBuckets": "分數區間", + "scoreBucketsDetail": "共 {total} 筆已評估告警", + "green": "綠", + "yellow": "黃", + "red": "紅", + "verdictTitle": "流程判定分布", + "gateFailureTitle": "主要缺口", + "scoreRange": "最低 {min} / 最高 {max} / 平均 {avg}", "verdicts": { - "autoRepairedVerified": "Auto-Repaired and Verified", - "executionUnverified": "Executed but Unverified", - "executionFailed": "Execution Failed", - "manualRequiredNoAction": "Manual Required: NO_ACTION", - "approvalRequired": "Waiting for Approval", - "observedNotExecuted": "Observed but Not Executed", - "receivedOnly": "Received Only" + "autoRepairedVerified": "已驗證自動修復", + "executionUnverified": "已執行但未驗證", + "executionFailed": "執行失敗", + "manualRequiredNoAction": "人工介入:NO_ACTION", + "approvalRequired": "等待審批", + "observedNotExecuted": "已觀測但未執行", + "receivedOnly": "僅收到告警" }, "gates": { - "sourcePersisted": "Source Persisted", - "outboundRecorded": "Outbound Recorded", - "evidenceCollected": "Evidence Collected", + "sourcePersisted": "來源已落庫", + "outboundRecorded": "Outbound 記錄", + "evidenceCollected": "證據收集", "mcpGatewayObserved": "MCP 閘道", - "approvalState": "Approval State", - "executionRecorded": "Execution Recorded", - "autoRepairRecorded": "Auto-Repair Recorded", - "verificationRecorded": "Verification Recorded", - "learningRecorded": "Learning Writeback", - "timelineRecorded": "時間線 Recorded", - "unknown": "Unknown Gate" + "approvalState": "審批狀態", + "executionRecorded": "執行記錄", + "autoRepairRecorded": "自動修復記錄", + "verificationRecorded": "驗證記錄", + "learningRecorded": "學習回寫", + "timelineRecorded": "時間線 記錄", + "unknown": "未知閘門" }, "gateStatuses": { - "failed": "Failed", - "missing": "Missing" + "failed": "失敗", + "missing": "缺少" }, - "claimReadyDetail": "Every alert completed the verified loop", - "claimBlockedDetail": "Some alerts still lack execution, verification, or learning records" + "claimReadyDetail": "所有告警都完成驗證閉環", + "claimBlockedDetail": "仍有告警缺少執行、驗證或學習記錄" }, "metrics": { - "tenants": "Tenants", - "tenantsDetail": "{active} active, {shadow} in shadow", + "tenants": "租戶", + "tenantsDetail": "{active} 個啟用,{shadow} 個 shadow", "runs": "操作執行紀錄", - "runsDetail": "執行狀態 is the single view into async work", - "approvals": "Pending Approvals", - "approvalsDetail": "Every high-risk action must stop at the human gate", - "contracts": "Contracts", - "contractsDetail": "專案 / 代理 / Policy contract publish state" + "runsDetail": "執行狀態 是非同步任務的唯一觀測入口", + "approvals": "待審批", + "approvalsDetail": "所有高風險動作都必須停在人工閘門", + "contracts": "合約", + "contractsDetail": "專案 / 代理 / Policy contract 發布狀態" }, "disposition": { - "title": "Disposition Semantics", + "title": "處置語義", "diagnosis": { - "title": "Read-only Diagnosis", - "signal": "AI collected evidence", - "owner": "Owner: AI summarizes, SRE judges", - "route": "Route: Run monitor / incident detail" + "title": "只讀診斷", + "signal": "AI 已收集證據", + "owner": "負責:AI 先整理,SRE 判讀", + "route": "流向:Run 監控 / 事件詳情" }, "approval": { - "title": "Human Gate", - "signal": "High-risk approval pending", - "owner": "Owner: SRE approve / reject", - "route": "Route: Approval queue" + "title": "人工閘門", + "signal": "高風險待批准", + "owner": "負責:SRE approve / reject", + "route": "流向:審批佇列" }, "execute": { - "title": "Auto Execution", - "signal": "Low-risk closure path", - "owner": "Owner: MCP 閘道 executes and audits", - "route": "Route: 執行狀態 / Audit" + "title": "自動執行", + "signal": "低風險可閉環", + "owner": "負責:MCP 閘道 執行並稽核", + "route": "流向:執行狀態 / Audit" }, "manual": { - "title": "Manual Escalation", - "signal": "AI cannot safely repair", - "owner": "Owner: war room takes over", - "route": "Route: AwoooI SRE war room" + "title": "人工升級", + "signal": "AI 無法安全修復", + "owner": "負責:戰情室接手", + "route": "流向:AwoooI SRE 戰情室" } }, "lanes": { - "title": "Flywheel Lanes", - "live": "Live", + "title": "飛輪鏈路", + "live": "已接線", "mirror": "Mirror", - "providerName": "Provider Order", + "providerName": "Provider 順序", "providerDetail": "GCP-A Ollama -> GCP-B Ollama -> 111 Ollama -> OpenClaw/Nemo -> Gemini", "mcpName": "MCP 閘道", - "mcpDetail": "MCP 閘道 stays in mirror / wrap mode before audit and redaction are proven as the only execution gate", + "mcpDetail": "MCP 閘道 先 mirror / wrap,確認 audit 與 redaction 後才切成唯一閘門", "channelName": "Channel Hub", - "channelDetail": "Telegram / LINE / Slack enter Channel Event first, then message ownership moves gradually", + "channelDetail": "Telegram / LINE / Slack 先進 Channel Event,再逐步切換發送責任", "approvalName": "Approval Plane", - "approvalDetail": "執行狀態 and Approval plane share one approval meaning" + "approvalDetail": "執行狀態 與 Approval plane 共享同一條審批語義" }, "next": { - "title": "Next Actions", - "item1": "Review run monitor and provider fallback", - "item2": "Handle pending high-risk approvals", - "item3": "Review contract lifecycle", - "item4": "Open the AwoooP work map" + "title": "下一步操作", + "item1": "查看 Run 監控與 provider fallback", + "item2": "處理等待審批的高風險操作", + "item3": "審查 Contract lifecycle", + "item4": "查看 AwoooP 工作鏈路地圖" }, "securityMirror": { "title": "IwoooS 資安鏡像", @@ -2294,7 +2298,7 @@ "metrics": { "headline": { "label": "整體資安網", - "detail": "已因 AwoooP 正式只讀 landing 證據保守重估;其餘 owner response、runtime gate 與 GitHub primary 仍等待。" + "detail": "已因 AwoooP 正式只讀落地證據保守重估;其餘負責人回覆、執行期閘門與 GitHub 主要來源仍等待。" }, "framework": { "label": "框架成熟度", @@ -2330,520 +2334,520 @@ }, "githubPrimaryReadiness": { "title": "GitHub 主要來源就緒度", - "subtitle": "AwoooP home mirrors the source-control readiness gap for moving from Gitea to GitHub. It is framework-phase visibility only: no repo creation, refs mutation, 機密明文值 collection, or primary switch.", - "badge": "Read-only summary", - "openIwooos": "Open IwoooS", - "readinessRefsTitle": "Readiness Evidence Refs", - "boundaryLabel": "GitHub Primary Boundary", - "boundaryTitle": "Primary switch is still blocked", - "boundaryDetail": "This summary only displays committed snapshots and 負責人回覆 gaps. It is not GitHub primary approval, repo creation authorization, refs mutation, secret collection, Gitea disablement, or runtime execution.", + "subtitle": "AwoooP 首頁同步顯示 Gitea 轉 GitHub 的原始碼管控就緒度缺口;目前只做框架期可視化,不建立專案庫、不改分支 / 標籤參照、不收機密明文值,也不切換主要來源。", + "badge": "只讀摘要", + "openIwooos": "開啟 IwoooS", + "readinessRefsTitle": "就緒度證據參照", + "boundaryLabel": "GitHub 主要來源邊界", + "boundaryTitle": "目前仍不可推進主要來源切換", + "boundaryDetail": "這個摘要只顯示已提交快照與負責人回覆缺口,不能被解讀成 GitHub 主要來源批准、專案庫建立授權、分支 / 標籤參照變更、機密值收集、Gitea 停用或執行期執行。", "metrics": { "candidateRepos": { "label": "候選專案庫", - "detail": "S2.63 has identified 8 candidate repos. This does not authorize GitHub repo creation." + "detail": "S2.63 起已盤點 8 個候選專案庫;這不是建立 GitHub 專案庫的授權。" }, "inScopeRepos": { "label": "範圍內專案庫", - "detail": "7 repos are in the primary readiness scope and still wait for 負責人回覆." + "detail": "目前 7 個專案庫進入主要來源就緒度範圍,仍等待負責人回覆。" }, "primaryReady": { - "label": "Primary Ready", - "detail": "The ready count remains 0; do not switch GitHub primary or disable Gitea." + "label": "主要來源就緒數", + "detail": "就緒數維持 0,不能切換 GitHub 主要來源或停用 Gitea。" }, "ownerResponses": { - "label": "Owner Responses", - "detail": "22 response templates remain 0 received / 0 accepted." + "label": "負責人回覆", + "detail": "22 個回覆範本仍為 0 收到 / 0 接受。" }, "workflowInventory": { "label": "工作流程清冊", - "detail": "工作流程 / 機密 name inventory is still incomplete for 7 repos." + "detail": "7 個專案庫的工作流程 / 機密名稱清冊尚未完成。" } }, "readinessRefs": { - "primaryReadiness": "The GitHub primary readiness gate remains a candidate and must not trigger repo creation or visibility changes.", - "ownerValidation": "The 負責人回覆 validation rollup shows all four response packets still waiting for human reply and acceptance.", - "rollbackAdr": "The rollback ADR has no owner-approved dry-run yet, so GitHub cannot become primary.", - "workflowInventory": "工作流程 / 機密 name inventory collects names and routing only; it does not collect 機密明文值s or change GitHub 機密設定." + "primaryReadiness": "GitHub 主要來源就緒度閘門仍是候選狀態,不能觸發專案庫建立或可見性變更。", + "ownerValidation": "負責人回覆驗證彙總顯示四包回覆資料都仍等待人工回覆與驗收。", + "rollbackAdr": "回復架構決策紀錄尚未完成負責人批准的演練,因此不能把 GitHub 切為主要來源。", + "workflowInventory": "工作流程 / 機密名稱清冊只收集名稱與路由,不收機密明文值、不改 GitHub 機密設定。" } }, "ownerResponseValidation": { - "title": "Owner Response Validation Rollup", - "subtitle": "AwoooP home shows the S4.9-S4.12 負責人回覆 packets, intake, validation, and audit checks in one read-only board. 已收到 / 已接受 / rejected all remain 0, so this is not approval or execution authorization.", - "badge": "Read-only validation", - "openIwooos": "Open IwoooS", - "packetsTitle": "Four Waiting Response Packets", - "validationTitle": "Validation And Audit Checks", - "boundaryLabel": "Validation Boundary", - "boundaryTitle": "Still waiting for owner evidence", - "boundaryDetail": "This rollup only displays source_control_owner_response_validation_rollup_v1. It must not be treated as 負責人回覆 received, 負責人回覆 accepted, GitHub primary approval, repo / refs / 工作流程 / 機密 authorization, or runtime execution.", + "title": "負責人回覆驗收總覽", + "subtitle": "AwoooP 首頁把 S4.9 到 S4.12 四包負責人回覆的收件、驗收與稽核檢查放在同一張只讀看板;目前收到 / 接受 / 拒收都是 0,不代表任何批准或執行授權。", + "badge": "只讀驗收", + "openIwooos": "開啟 IwoooS", + "packetsTitle": "四包待收回覆", + "validationTitle": "驗收與稽核檢查", + "boundaryLabel": "驗收邊界", + "boundaryTitle": "仍等待負責人證據,不開執行權限", + "boundaryDetail": "這個總覽只顯示 source_control_owner_response_validation_rollup_v1 的只讀狀態;不能被解讀成負責人回覆已收到、已接受、GitHub 主要來源已批准、專案庫 / 分支與標籤參照 / 工作流程 / 機密設定可修改,或執行期可執行。", "fields": { - "templates": "Templates", - "received": "Received", - "accepted": "Accepted", - "rejected": "Rejected" + "templates": "範本", + "received": "收到", + "accepted": "接受", + "rejected": "拒收" }, "metrics": { "packets": { - "label": "Response Packets", - "detail": "S4.9-S4.12 are all still waiting for 負責人回覆s." + "label": "回覆包", + "detail": "S4.9 到 S4.12 四包都仍是等待收件狀態。" }, "templates": { - "label": "Response Templates", - "detail": "22 templates are questions for owners, not sent requests." + "label": "回覆範本", + "detail": "22 個範本只是負責人要回覆的問題,不代表請求已送出。" }, "received": { - "label": "Received", - "detail": "Still 0; visibility is not receipt completion." + "label": "已收到", + "detail": "目前仍為 0,不得把可見看板當成收件完成。" }, "accepted": { - "label": "Accepted", - "detail": "Still 0; GitHub primary and 執行期閘門s remain blocked." + "label": "已接受", + "detail": "目前仍為 0,不得推進 GitHub 主要來源或執行期閘門。" }, "rejected": { - "label": "Rejected", - "detail": "Still 0; raw payload or 機密明文值s must be quarantined." + "label": "已拒收", + "detail": "目前仍為 0;若收到原始載荷或機密明文值必須隔離。" } }, "packets": { "giteaInventory": { - "title": "Gitea Inventory Owner Attestation", - "detail": "Collect public-only / local gap, org / user endpoint, 110 adjacent scope, canonical owner, and legacy disposition." + "title": "Gitea 清冊負責人聲明", + "detail": "先收公開範圍 / 本地缺口、組織 / 使用者端點、110 相鄰範圍、標準負責人與舊版處置五題。" }, "githubTarget": { - "title": "GitHub Target Owner Decision", - "detail": "Confirm target, visibility, and canonical owner per repo; do not create repos or change visibility." + "title": "GitHub 目標負責人判定", + "detail": "逐專案庫確認 GitHub 目標、可見性、標準負責人;不能自動建立專案庫或變更可見性。" }, "refTruth": { - "title": "Refs Truth Owner Response", - "detail": "Confirm main / dev truth, deprecated drift, release tags, and GitHub-only refs; do not sync, delete, or force push refs." + "title": "分支 / 標籤真相來源負責人回覆", + "detail": "確認 main / dev 真相來源、棄用漂移、release tag 與 GitHub-only 分支 / 標籤參照;不能自動同步、刪除或強制推送。" }, "workflowSecret": { - "title": "Workflow / Secret Name Owner Response", - "detail": "Collect workflow, runner, deploy key, branch protection, secret names, and owner metadata only; never collect 機密明文值s." + "title": "工作流程 / 機密名稱負責人回覆", + "detail": "只收工作流程、執行器、部署金鑰、分支保護、機密名稱與負責人中繼資料;不收機密明文值。" } }, "checks": { "crossPacket": { - "label": "Cross-Packet Checks", - "detail": "10 cross-packet checks only validate consistency." + "label": "跨包驗收", + "detail": "10 個跨包檢查只做一致性檢查。" }, "evidenceRouting": { - "label": "Evidence Routing", - "detail": "6 routing rules only route to more evidence, quarantine, or read-only updates." + "label": "證據路由", + "detail": "6 條路由規則只分流補證、隔離或只讀更新。" }, "displaySections": { - "label": "Display Sections", - "detail": "8 sections define AwoooP read-only display order." + "label": "顯示區塊", + "detail": "8 個區塊固定 AwoooP 只讀呈現順序。" }, "stateTransitions": { - "label": "State Transitions", - "detail": "7 rules define review semantics only; no execution." + "label": "狀態轉移", + "detail": "7 條規則只定義審查狀態語義,不執行。" }, "reviewerChecklist": { - "label": "Reviewer Checklist", - "detail": "9 checklist items guide human review." + "label": "審查清單", + "detail": "9 個清單項目給人工審查者判讀。" }, "reviewerOutcomes": { - "label": "Reviewer Outcomes", - "detail": "7 lanes only route to more evidence, quarantine, rejection, or later gates." + "label": "審查結果", + "detail": "7 條結果分流只導向補證、隔離、拒收或等待後續閘門。" } } } }, "workItems": { - "title": "Work Chain", - "subtitle": "{count} control points synced from production 真相鏈 and governance data", - "refresh": "Refresh", - "lastUpdated": "Last updated {time}", - "tableLabel": "AwoooP work chain", - "open": "Open", + "title": "工作鏈路", + "subtitle": "{count} 個控制點,依 production 真相鏈 與治理資料同步狀態", + "refresh": "重新整理", + "lastUpdated": "最後更新 {time}", + "tableLabel": "AwoooP 工作鏈路", + "open": "開啟", "summary": { - "live": "Completed", - "inProgress": "In Progress", - "watching": "Watching", - "blocked": "Blocked" + "live": "已完成", + "inProgress": "推進中", + "watching": "觀察期", + "blocked": "阻塞" }, "status": { - "live": "Completed", - "in_progress": "In Progress", - "blocked": "Blocked", - "watching": "Watching" + "live": "已完成", + "in_progress": "推進中", + "blocked": "阻塞", + "watching": "觀察期" }, "columns": { - "phase": "Phase", - "work": "Work Item", - "status": "Status", - "surface": "Frontend Surface", - "source": "Data Source", - "evidence": "Production Evidence", - "gate": "Completion Gate", + "phase": "階段", + "work": "工作項目", + "status": "狀態", + "surface": "前端操作面", + "source": "資料來源", + "evidence": "正式環境證據", + "gate": "完成閘門", "link": "連結" }, "surfaces": { - "runs": "執行監控 / 執行詳情", - "governance": "Governance Events / SLO", - "workItems": "Work Chain", - "iwooos": "IwoooS / Security Mirror" + "runs": "Run 監控 / 執行詳情", + "governance": "治理事件 / SLO", + "workItems": "工作鏈路", + "iwooos": "IwoooS / 資安鏡像" }, "items": { "sourceDossier": { - "title": "Source event dossier and 真相鏈 mirror" + "title": "來源事件卷宗與 真相鏈 mirror" }, "autoRepair": { - "title": "Low-risk Alertmanager auto-repair loop" + "title": "低風險 Alertmanager 自動修復閉環" }, "recurrenceWorkItems": { - "title": "Recurring alert work item / ticket entry" + "title": "重複告警工作項 / Ticket 入口" }, "aiRouteRepairWorkItem": { - "title": "AI Provider primary-lane repair work item" + "title": "AI Provider primary lane 修復工作項" }, "configDriftFsm": { - "title": "Config Drift fingerprint state machine" + "title": "Config Drift fingerprint 狀態機" }, "remediationQueue": { - "title": "Non-success verification remediation queue" + "title": "非成功驗證補救工作佇列" }, "telegramCallbacks": { - "title": "Telegram detail / history as DB 真相優先" + "title": "Telegram 詳情 / 歷史改為 DB 真相優先" }, "callbackOwnerReview": { - "title": "Callback missing KM owner-review work item" + "title": "Callback 未匹配 KM Owner Review 工作項" }, "callbackTraceRecoveryBacklog": { - "title": "Callback trace recovery backlog" + "title": "Callback trace 復原 backlog" }, "ciSecretHygiene": { - "title": "CI/CD secret log exposure hardening" + "title": "CI/CD secret log 泄漏面收斂" }, "governanceDispatch": { - "title": "Governance alert dispatch and dedupe" + "title": "治理告警 派送與去重" }, "knowledgeHealthcheck": { - "title": "KM healthcheck dispatch state" + "title": "KM 健康檢查派工狀態" }, "frontendConsole": { - "title": "AwoooP 操作控制台 productization" + "title": "AwoooP 操作控制台 產品化" }, "mcpGateway": { - "title": "MCP 閘道 usage evidence overview" + "title": "MCP 閘道 使用證據總覽" }, "timelineContract": { - "title": "時間線 / KM / PlayBook writeback consistency" + "title": "時間線 / KM / PlayBook 回寫一致性" }, "iwooosSecurityMirror": { - "title": "IwoooS security mirror read-only work item" + "title": "IwoooS 資安鏡像只讀工作項" }, "githubPrimaryReadiness": { - "title": "GitHub 主要來源就緒度 read-only work item" + "title": "GitHub 主要來源就緒度只讀工作項" }, "ownerResponseValidation": { - "title": "負責人回覆 validation read-only work item" + "title": "負責人回覆驗收只讀工作項" } }, "gates": { - "sourceDossier": "Inbound alerts must show received / incident_linked / source refs", - "autoRepair": "Requires auto_repair, verification_result=success, and KM writeback", - "recurrenceWorkItems": "Completed-without-repair, failed repair, and manual gate groups must become trackable work items", - "aiRouteRepairWorkItem": "Provider lane degradation must expose evidence, owner, PlayBook candidate, and auto-repair safety", - "configDriftFsm": "The same drift fingerprint must expose recurrence, PR, zero diff, handoff, and next step", - "remediationQueue": "Every degraded / failed / timeout row must map to replay, reverify, ticket, or manual review", - "telegramCallbacks": "Detail and history buttons cannot depend only on Redis TTL or stale snapshots", - "callbackOwnerReview": "Telegram detail/history callbacks without a KM owner-review link must become trackable work items", - "callbackTraceRecoveryBacklog": "Callback trace gaps must show recovery signal, 24h decay, and the backlog next step", - "ciSecretHygiene": "Workflows must not mount 機密設定 in step env / action inputs; historical logs still need rotation and retention governance", - "governanceDispatch": "Governance alerts must enter dispatch and expose skipped / pending / repaired", - "knowledgeHealthcheck": "knowledge_degradation must show Hermes / OpenClaw / ElephantAlpha ownership, current stage, and owner review point", - "frontendConsole": "Completed and in-progress work must be trackable from the frontend", - "mcpGateway": "MCP usage must show agent, tool, scope, and blocked reason", - "timelineContract": "Incident, Approval, Evidence, KM, and 時間線 must not contradict each other", - "iwooosSecurityMirror": "Track security mesh progress and boundaries as read-only only; do not create scan, execute, repair, deploy, primary switch, or 執行期閘門 actions", - "githubPrimaryReadiness": "Track the Gitea-to-GitHub readiness gap as read-only only; do not create repos, change visibility, sync refs, collect 機密明文值s, switch primary, or disable Gitea", - "ownerResponseValidation": "Track the four 負責人回覆 validation packets as read-only only; do not treat the work item as received, accepted, an approval record, a primary switch, or a 執行期閘門" + "sourceDossier": "入站告警必須能查到 received / incident_linked / source refs", + "autoRepair": "必須同時有 auto_repair、verification_result=success 與 KM 回寫", + "recurrenceWorkItems": "Run 完成無修復、修復失敗與人工閘門必須進入可追蹤工作項", + "aiRouteRepairWorkItem": "Provider lane 降級時必須顯示 evidence、owner、PlayBook 候選與是否可自動修復", + "configDriftFsm": "同一 drift fingerprint 必須顯示重複、PR、零 diff、交接與下一步", + "remediationQueue": "每筆 degraded / failed / timeout 都必須映射到重跑、重驗、Ticket 或人工檢查", + "telegramCallbacks": "按下詳情與歷史不能再只依賴 Redis TTL 或舊快照", + "callbackOwnerReview": "Telegram 詳情 / 歷史若未連到 KM owner-review,必須變成可追蹤工作項", + "callbackTraceRecoveryBacklog": "Callback trace 缺口必須顯示復原訊號、24h decay 與 backlog 下一步", + "ciSecretHygiene": "workflow 不可再把 機密設定 掛在 step env / action input;歷史 log 需另做輪換與保留期治理", + "governanceDispatch": "治理告警必須進 dispatch,並標示 skipped / pending / repaired", + "knowledgeHealthcheck": "knowledge_degradation 必須顯示 Hermes / OpenClaw / ElephantAlpha 分工、目前階段與 owner 審核點", + "frontendConsole": "已完成與推進中的工作必須能從前端直接追蹤", + "mcpGateway": "MCP 使用必須看得到 agent、tool、scope 與 blocked 原因", + "timelineContract": "Incident、Approval、Evidence、KM、時間線 不得互相矛盾", + "iwooosSecurityMirror": "只讀追蹤資安網進度與邊界;不得建立掃描、執行、修復、部署、主要來源切換或執行期閘門", + "githubPrimaryReadiness": "只讀追蹤 Gitea 轉 GitHub 的就緒度缺口;不得建立專案庫、改可見性、同步分支 / 標籤參照、收機密明文值、切主要來源或停用 Gitea", + "ownerResponseValidation": "只讀追蹤四包負責人回覆驗收;不得把工作項當成已收到、已接受、審批紀錄、主要來源切換或執行期閘門" }, "evidence": { - "channelEvents": "Recent Alertmanager 通道事件: {count}", - "autoRepair": "Verified auto-repairs: {verified}/{evaluated}", - "recurrenceWorkItems": "Recurring alert work: {open}; no repair: {gap}; failed repair: {failed}; manual gates: {manual}; source review: {source}", - "recurrenceLatest": "Latest: {alert} / {incident}", - "recurrenceReason": "Reason: {reason}", - "recurrenceSourceReviewRecorded": "Source reviews recorded: {count}", - "recurrenceSourceApplied": "Source matches applied: {count}", - "recurrenceEmpty": "No open recurring-alert work item in the recent window", - "aiRouteRepairWorkItem": "AI route: {lane}; current {selected}; target {target}; {blockers} blockers", - "aiRouteRepairWorkItemId": "Work item: {id}", - "aiRouteRepairSkipped": "Skipped: {skipped}", - "aiRouteRepairOwner": "Owner: {owner}; lead agent: {lead}", - "aiRouteRepairPlaybook": "PlayBook: {playbook}; {steps} steps", - "aiRouteRepairSafety": "Safe auto-repair: {safe}", - "aiRouteRepairUnavailable": "AI route repair evidence has not returned yet", - "driftFingerprint": "Config Drift: {state}; {count}x in 12h", - "driftFingerprintUnavailable": "Config Drift fingerprint state API has not responded", - "driftFingerprintId": "Fingerprint: {fingerprint}; Report: {report}", - "driftFingerprintPr": "PR: {pr}; zeroDiff={zeroDiff}", - "driftFingerprintNext": "Next: {step}", - "driftFingerprintRemediation": "Remediation: {kind} / {status}; verification report: {report}", - "driftFingerprintEmpty": "No Config Drift fingerprint state yet", - "remediationQueue": "Remediation work: {total}; AI-ready: {ready}; human: {human}", - "telegramCallbacks": "Telegram callback lookup and history summary are being repaired", - "telegramCallbacksLive": "Read-only callback toast 400 is nonfatal; detail / history replies now use DB 真相鏈", - "callbackOwnerReview": "Callback owner-review gaps: {open} open; callback evidence: {total}", - "callbackOwnerReviewLatest": "Latest: {incident} / {action}", - "callbackOwnerReviewQueue": "Completion queue: ready {ready}; blocked {blocked}; completed {completed}; failed {failed}", - "callbackOwnerReviewNext": "Next: {next}", - "callbackOwnerReviewFlow": "Flow: {stage}; match: {strategy}", - "callbackOwnerReviewAgents": "Lead: {lead}; support: {support}", - "callbackOwnerReviewAutomation": "Automation: {state}; safe auto-repair={safe}", - "callbackOwnerReviewBlocker": "Blocker: {reason}", - "callbackOwnerReviewEmpty": "Recent callback evidence is matched or no data is available yet", - "callbackTraceRecoveryBacklog": "Callback trace backlog: missing trace {missing}; 1h {recent1h}; 24h {recent24h}; traced after gap {recovered}; recovery {status}", - "callbackTraceRecoveryAction": "Next handling: {action}; human required={human}", - "callbackTraceRecoveryOwner": "Owner: AwoooP Callback Evidence; support: TelegramGateway / Run Timeline", - "callbackTraceRecoveryEvidenceSurface": "Evidence entry: Runs / TG Callback Evidence", - "callbackTraceRecoveryClosure": "Close when 1h=0 and 24h=0; current 1h {recent1h} / 24h {recent24h}", - "callbackTraceRecoveryDecision": "Decision: {gap}; next: {next}", - "callbackTraceRecoveryLatest": "Last gap: {missing}; recovery first: {first}; recovery latest: {latest}", - "callbackTraceRecoveryUnavailable": "Callback trace recovery summary has not returned yet", - "ciSecretHygiene": "Repo-controlled step env / action input exposure is guarded; key rotation and log retention remain", - "governance": "Unresolved governance alerts: {unresolved}; 待派送: {queued}", - "governanceUnavailable": "Governance events API is not responding; 待派送: {queued}", - "governanceQueueMissing": "Governance dispatch table is not ready; unresolved governance alerts: {unresolved}", - "knowledgeHealthcheck": "KM healthcheck dispatches: {total}; current stage: {stage}", - "knowledgeOwner": "Lead: {lead}; human review: {human}", - "knowledgeNext": "Next action: {action}", - "knowledgeDrafts": "KM review drafts: {drafts}; duplicate drafts: {duplicates}", - "knowledgeStaleCandidates": "Stale KM priority queue: {total}; top {top} / {tier}", - "knowledgeCompletionQueue": "Completion queue: ready {ready}; blocked {blocked}; completed {completed}; failed {failed}", - "knowledgeCompletionLatest": "Latest completion: {entry} / {readiness}; next {next}", - "knowledgeEmpty": "No recent knowledge_degradation dispatch trail", - "frontendConsole": "This page now reads production APIs instead of a static list", - "mcpReady": "MCP 閘道 gate is not currently a top gap", - "mcpMissing": "Quality summary still reports an MCP 閘道 observation gap", - "remediationHistory": "試跑 history: {count}x; latest {preview}", - "remediationHistoryEmpty": "No remediation dry-run history yet", - "remediationRoute": "MCP: {route}", - "remediationWrites": "Writes: incident={incident}; autoRepair={autoRepair}", - "timelineReady": "時間線 gate is not currently a top gap", - "timelineMissing": "Quality summary still reports a 時間線 / audit gap", + "channelEvents": "最近 Alertmanager 通道事件:{count}", + "autoRepair": "已驗證自動修復:{verified}/{evaluated}", + "recurrenceWorkItems": "重複告警待處理:{open};無修復:{gap};修復失敗:{failed};人工閘門:{manual};來源待審:{source}", + "recurrenceLatest": "最新:{alert} / {incident}", + "recurrenceReason": "原因:{reason}", + "recurrenceSourceReviewRecorded": "來源審核已寫入歷史:{count}", + "recurrenceSourceApplied": "來源配對已套用:{count}", + "recurrenceEmpty": "近期重複告警尚無待處理工作項", + "aiRouteRepairWorkItem": "AI route:{lane};目前 {selected};目標 {target};阻塞 {blockers} 項", + "aiRouteRepairWorkItemId": "Work item:{id}", + "aiRouteRepairSkipped": "已跳過:{skipped}", + "aiRouteRepairOwner": "Owner:{owner};主責 Agent:{lead}", + "aiRouteRepairPlaybook": "PlayBook:{playbook};步驟 {steps}", + "aiRouteRepairSafety": "可安全自動修復:{safe}", + "aiRouteRepairUnavailable": "AI route repair evidence 尚未回傳", + "driftFingerprint": "Config Drift:{state};12h 內 {count} 次", + "driftFingerprintUnavailable": "Config Drift fingerprint state API 尚未回應", + "driftFingerprintId": "Fingerprint:{fingerprint};Report:{report}", + "driftFingerprintPr": "PR:{pr};zeroDiff={zeroDiff}", + "driftFingerprintNext": "下一步:{step}", + "driftFingerprintRemediation": "修復:{kind} / {status};驗證 Report:{report}", + "driftFingerprintEmpty": "尚無 Config Drift fingerprint 狀態", + "remediationQueue": "補救工作:{total};AI 可接手:{ready};人工:{human}", + "telegramCallbacks": "目前修補 Telegram callback 查詢鏈與歷史摘要", + "telegramCallbacksLive": "read-only callback toast 400 已非致命;詳情 / 歷史改由 DB 真相鏈 回覆", + "callbackOwnerReview": "Callback owner-review 缺口:{open} 個 open;callback evidence:{total}", + "callbackOwnerReviewLatest": "最新:{incident} / {action}", + "callbackOwnerReviewQueue": "Completion queue:可處理 {ready};卡住 {blocked};完成 {completed};失敗 {failed}", + "callbackOwnerReviewNext": "下一步:{next}", + "callbackOwnerReviewFlow": "流程:{stage};匹配:{strategy}", + "callbackOwnerReviewAgents": "主責:{lead};協作:{support}", + "callbackOwnerReviewAutomation": "自動化:{state};可安全自動修復={safe}", + "callbackOwnerReviewBlocker": "卡點:{reason}", + "callbackOwnerReviewEmpty": "近期 callback evidence 均已匹配或尚無資料", + "callbackTraceRecoveryBacklog": "Callback trace backlog:缺 trace {missing};1h {recent1h};24h {recent24h};gap 後 traced {recovered};復原 {status}", + "callbackTraceRecoveryAction": "接續處理:{action};需要人工={human}", + "callbackTraceRecoveryOwner": "主責:AwoooP Callback Evidence;協作:TelegramGateway / 執行時間線", + "callbackTraceRecoveryEvidenceSurface": "查證入口:Runs / TG Callback Evidence", + "callbackTraceRecoveryClosure": "關閉條件:1h=0 且 24h=0;目前 1h {recent1h} / 24h {recent24h}", + "callbackTraceRecoveryDecision": "判讀:{gap};下一步:{next}", + "callbackTraceRecoveryLatest": "最後缺口:{missing};復原首筆:{first};復原最新:{latest}", + "callbackTraceRecoveryUnavailable": "Callback trace recovery summary 尚未回傳", + "ciSecretHygiene": "repo 可控 step env / action input 泄漏面已加 guard;仍需 key rotation 與 log retention 收斂", + "governance": "未解治理告警:{unresolved};待派送:{queued}", + "governanceUnavailable": "治理事件 API 目前無法回應;待派送:{queued}", + "governanceQueueMissing": "治理 dispatch 表尚未就緒;未解治理告警:{unresolved}", + "knowledgeHealthcheck": "KM healthcheck 派工:{total};目前階段:{stage}", + "knowledgeOwner": "主責:{lead};人工覆核:{human}", + "knowledgeNext": "下一步:{action}", + "knowledgeDrafts": "KM 審核草稿:{drafts};重複草稿:{duplicates}", + "knowledgeStaleCandidates": "陳舊 KM 優先清單:{total} 筆;最高 {top} / {tier}", + "knowledgeCompletionQueue": "Completion queue:可處理 {ready};卡住 {blocked};完成 {completed};失敗 {failed}", + "knowledgeCompletionLatest": "最新 completion:{entry} / {readiness};下一步 {next}", + "knowledgeEmpty": "近期沒有 knowledge_degradation dispatch trail", + "frontendConsole": "本頁已改讀 production API,而非靜態清單", + "mcpReady": "MCP 閘道 gate 目前未列為主要缺口", + "mcpMissing": "品質總覽仍指出 MCP 閘道 觀測缺口", + "remediationHistory": "試跑歷史:{count} 次;上次 {preview}", + "remediationHistoryEmpty": "尚無補救試跑歷史", + "remediationRoute": "MCP:{route}", + "remediationWrites": "寫入:incident={incident};autoRepair={autoRepair}", + "timelineReady": "時間線 gate 目前未列為主要缺口", + "timelineMissing": "品質總覽仍指出 時間線 / 稽核記錄缺口", "iwooosSecurityMirror": "整體 {headline};框架 {framework};落地 {runtime};主動執行閘門={gates}", "iwooosSecurityMirrorOwner": "AwoooP 正式只讀 landing 已驗證;負責人回覆仍等待", - "iwooosSecurityMirrorBoundary": "execution_router_linked=false; runtime_execution_authorized=false; action_buttons_allowed=false", + "iwooosSecurityMirrorBoundary": "execution_router_linked=false;runtime_execution_authorized=false;action_buttons_allowed=false", "githubPrimaryReadiness": "候選專案庫={candidates};範圍內={inScope};主要來源就緒={ready}", - "githubPrimaryOwnerResponses": "負責人回覆 remains 0/22; request-ready is not accepted", - "githubPrimaryWorkflowNames": "工作流程 / 機密-name inventory complete=0/7; collect names only, never 機密明文值s", - "githubPrimaryBoundary": "repo_creation=false; refs_mutation=false; github_primary_switch=false; disable_gitea=false", - "ownerResponseValidation": "Packets={packets}; templates={templates}; received={received}; accepted={accepted}; rejected={rejected}", - "ownerResponseValidationChecks": "Cross-packet checks={crossPacket}; evidence routing={routing}; display sections={sections}", - "ownerResponseValidationBoundary": "No approval record, no primary switch, and no 執行期閘門" + "githubPrimaryOwnerResponses": "負責人回覆仍為 0/22;請求可送出不等於已接受", + "githubPrimaryWorkflowNames": "工作流程 / 機密名稱清冊完成=0/7;只收名稱不收機密明文值", + "githubPrimaryBoundary": "repo_creation=false;refs_mutation=false;github_primary_switch=false;disable_gitea=false", + "ownerResponseValidation": "回覆包={packets};範本={templates};已收到={received};已接受={accepted};已拒收={rejected}", + "ownerResponseValidationChecks": "跨包驗收={crossPacket};證據路由={routing};顯示區塊={sections}", + "ownerResponseValidationBoundary": "不建立審批紀錄、不切主要來源、不開執行期閘門" }, "humanRequired": { - "yes": "yes", - "no": "no" + "yes": "是", + "no": "否" }, "callbackTraceRecoveryActions": { - "unavailable": "summary did not return; check the callback-replies API first", - "closed": "close criteria are met; retain the historical evidence", - "investigateActiveGap": "new gaps still exist; check new Telegram reply_markup trace writes", - "verifyInstrumentation": "no recovery signal; check TelegramGateway / Timeline instrumentation", - "waitDecay": "wait for the legacy backlog to decay over 24h; no human action needed", - "observeRecovery": "observe the recovery signal before opening a human task" + "unavailable": "summary 未回傳,先確認 callback-replies API", + "closed": "已符合關閉條件,保留歷史證據即可", + "investigateActiveGap": "仍有新缺口,檢查新 Telegram reply_markup trace 寫入", + "verifyInstrumentation": "沒有復原訊號,檢查 TelegramGateway / 時間線觀測埋點", + "waitDecay": "等待舊 backlog 24h decay,不需人工處理", + "observeRecovery": "觀察復原訊號,先不開人工任務" }, "claim": { - "ready": "Full auto-repair claim: ready", - "notReady": "Full auto-repair claim: not ready", - "loading": "Full auto-repair claim: loading", - "unavailable": "Full auto-repair claim: data unavailable", - "reasonSomeUnverified": "Production 真相鏈 still has events below auto_repaired_verified; execution, verification, and KM / learning writeback remain.", - "reasonUnknown": "production_claim did not return a readable reason.", - "loadingDetail": "Reading the production quality summary before making a claim.", - "unavailableDetail": "The quality summary API did not respond in time; the UI will not pretend 0/0 is complete.", - "verified": "Verified {count}", - "evaluated": "Evaluated {count}", - "gateFailures": "Gaps {count}", - "verifiedUnknown": "Verified --", - "evaluatedUnknown": "Evaluated --", - "gateFailuresUnknown": "Gaps --" + "ready": "完整自動修復聲明:可宣稱", + "notReady": "完整自動修復聲明:不可宣稱", + "loading": "完整自動修復聲明:讀取中", + "unavailable": "完整自動修復聲明:資料不可用", + "reasonSomeUnverified": "production 真相鏈 仍有事件未達 auto_repaired_verified,需繼續補 execution、verification、KM / learning 回寫。", + "reasonUnknown": "production_claim 尚未回傳可判讀原因。", + "loadingDetail": "正在讀取 production quality summary,尚未判讀。", + "unavailableDetail": "quality summary API 未在等待時間內回應,不能用 0/0 假裝已完成。", + "verified": "已驗證 {count}", + "evaluated": "已評估 {count}", + "gateFailures": "缺口 {count}", + "verifiedUnknown": "已驗證 --", + "evaluatedUnknown": "已評估 --", + "gateFailuresUnknown": "缺口 --" }, "knowledgeGovernance": { - "title": "KM Healthcheck Dispatch", - "subtitle": "Tracks knowledge_degradation from detection, Hermes lookup, draft updates, owner review, and stale-ratio recheck", - "total": "Total {count}", - "active": "Active {count}", - "review": "Review {count}", - "drafts": "Drafts {count}", - "duplicates": "Duplicates {count}", - "unavailable": "The governance queue API has not responded, so KM healthcheck dispatch state cannot be claimed.", - "tablePending": "governance_remediation_dispatch is not ready, so no KM healthcheck dispatch rows are trackable yet.", - "empty": "No knowledge_degradation dispatch record is currently present; the next Telegram alert should produce a dispatch trail.", - "stage": "Stage: {stage}", - "next": "Next: {action}", - "lead": "Lead: {agent}", - "human": "Human review: {owner}", - "support": "Support: {agents}", - "worker": "Worker status: {status}", - "draft": "KM draft: {id}", - "duplicateWarning": "{count} duplicate drafts exist for the same event; the new worker dedupes by governance_event, and old rows need owner merge or archive.", - "draftsUnavailable": "The knowledge API has not responded, so KM drafts and duplicate counts cannot be confirmed yet.", - "draftsEmpty": "No Hermes KM healthcheck review draft is currently present.", - "draftSectionTitle": "KM draft dedupe view", - "draftGroup": "Drafts for this event: {count}; duplicates: {duplicates}", - "archiveProposal": "Archive candidates: {count} duplicate drafts", - "ownerAction": "Owner action: {action}", - "readOnlyPlan": "Writes on read: {writes}; archive blocked before review: {blocked}", + "title": "KM 健康檢查派工", + "subtitle": "追蹤 knowledge_degradation 從偵測、Hermes 反查、草稿、owner 審核到 stale ratio 回測的狀態", + "total": "總數 {count}", + "active": "執行中 {count}", + "review": "需審核 {count}", + "drafts": "草稿 {count}", + "duplicates": "重複 {count}", + "unavailable": "governance queue API 尚未回應,不能判定 KM healthcheck 是否已派工。", + "tablePending": "governance_remediation_dispatch 表尚未就緒,KM healthcheck 尚無可追蹤派工列。", + "empty": "目前沒有 knowledge_degradation 派工紀錄;若 Telegram 又告警,下一輪應產生 dispatch trail。", + "stage": "階段:{stage}", + "next": "下一步:{action}", + "lead": "主責:{agent}", + "human": "人工覆核:{owner}", + "support": "支援:{agents}", + "worker": "Worker 狀態:{status}", + "draft": "KM 草稿:{id}", + "duplicateWarning": "同事件另有 {count} 份重複草稿;新 worker 已改用 governance_event 去重,舊資料需 owner 合併或封存。", + "draftsUnavailable": "knowledge API 尚未回應,暫時無法確認 KM 草稿與重複草稿數。", + "draftsEmpty": "目前沒有 Hermes KM healthcheck review 草稿。", + "draftSectionTitle": "KM 草稿去重視圖", + "draftGroup": "同事件草稿 {count} 份;重複 {duplicates} 份", + "archiveProposal": "封存候選:{count} 份重複草稿", + "ownerAction": "Owner 動作:{action}", + "readOnlyPlan": "讀取不寫入:{writes};未審核不封存:{blocked}", "staleCandidates": { - "title": "Stale KM Priority Queue", - "total": "Stale {count}", - "returned": "Shown {count}", - "threshold": "Threshold {days}d", - "unavailable": "The stale candidates API has not responded; only the aggregate count is visible.", - "empty": "No KM entries are currently past the stale threshold.", - "meta": "Stale {days}d; score {score}; views {views}", - "action": "Recommended: {action}", - "sources": "Sources: {sources}", - "refs": "Incident: {incident}; PlayBook: {playbook}; Approval: {approval}", - "noSources": "No Incident / Sentry / SigNoz / PlayBook link yet", - "openKnowledge": "Open KM", - "queueReview": "Queue review", - "queueingReview": "Queueing", - "queueFailed": "Could not queue owner review; refresh and confirm this KM is still stale.", - "queueResult": "Review status: {status}; Dispatch: {dispatch}; Event: {event}", - "ownerReviewState": "Owner review: {status}; stage: {stage}; Dispatch: {dispatch}", - "guardrail": "Guardrail: writes on read={writes}; manual review={review}", + "title": "陳舊 KM 優先處理清單", + "total": "陳舊 {count}", + "returned": "顯示 {count}", + "threshold": "門檻 {days} 天", + "unavailable": "stale candidates API 尚未回應;目前只能看到總數,無法排序處理。", + "empty": "目前沒有超過門檻的陳舊 KM。", + "meta": "陳舊 {days} 天;分數 {score};瀏覽 {views}", + "action": "建議:{action}", + "sources": "關聯來源:{sources}", + "refs": "Incident:{incident};PlayBook:{playbook};Approval:{approval}", + "noSources": "尚無 Incident / Sentry / SigNoz / PlayBook 關聯", + "openKnowledge": "開啟 KM", + "queueReview": "排入審核", + "queueingReview": "排入中", + "queueFailed": "排入 owner review 失敗;請重新整理後再確認此 KM 是否仍為陳舊候選。", + "queueResult": "審核狀態:{status};Dispatch:{dispatch};Event:{event}", + "ownerReviewState": "Owner review:{status};階段:{stage};Dispatch:{dispatch}", + "guardrail": "防護:讀取不寫入={writes};人工覆核={review}", "queueStatuses": { - "dry_run": "試跑", - "queued": "Queued for owner review", - "already_queued": "Already in owner review" + "dry_run": "乾跑", + "queued": "已排入 owner review", + "already_queued": "已在 owner review" }, "ownerReviewInbox": { - "title": "Owner Review Inbox", - "subtitle": "Shows P0/P1 KM already waiting for owner review, with per-item dry-run and completion.", - "total": "Pending {count}", - "returned": "Shown {count}", - "unavailable": "The owner-review inbox API has not responded; use the candidate list for single-item actions.", - "empty": "No pending owner-review KM.", - "meta": "Stale {days}d; score {score}; views {views}", - "state": "Status: {status}; stage: {stage}", - "batch": "Batch: {batch}" + "title": "Owner review 工作台", + "subtitle": "顯示已排入 waiting_owner_review 的 P0/P1 KM,逐筆乾跑與確認完成。", + "total": "待審 {count}", + "returned": "顯示 {count}", + "unavailable": "owner-review inbox API 尚未回應;目前只能從候選清單逐筆操作。", + "empty": "目前沒有 pending owner-review KM。", + "meta": "陳舊 {days} 天;分數 {score};瀏覽 {views}", + "state": "狀態:{status};階段:{stage}", + "batch": "Batch:{batch}" }, "burnDown": { "title": "Stale ratio burn-down", - "subtitle": "Aligns owner review, completion audit, and recheck snapshots so the stale ratio movement is visible.", - "statuses": "Status: {status}", + "subtitle": "把 owner review、completion audit 與 recheck snapshot 對齊,確認陳舊比例是否真的下降。", + "statuses": "狀態:{status}", "status": { - "above_threshold": "Above threshold", - "at_or_below_threshold": "At threshold", - "no_data": "No data" + "above_threshold": "仍高於門檻", + "at_or_below_threshold": "已達門檻", + "no_data": "尚無資料" }, - "remaining": "{count} entries to threshold", - "unavailable": "The burn-down API has not responded; only per-item completion results are visible.", - "empty": "No owner-approved completion audit yet.", - "currentRatio": "Current stale ratio", - "currentCount": "Stale / total", + "remaining": "距離門檻 {count} 筆", + "unavailable": "burn-down API 尚未回應;目前只能看單筆 completion 結果。", + "empty": "尚無 owner-approved completion audit。", + "currentRatio": "目前陳舊比例", + "currentCount": "陳舊 / 總數", "ownerReviews": "Owner review", - "ownerReviewCounts": "pending {pending} / completed {completed}", - "latestDelta": "Latest delta", - "delta": "stale {stale} / ratio {ratio}", + "ownerReviewCounts": "待審 {pending} / 完成 {completed}", + "latestDelta": "最新變化", + "delta": "陳舊 {stale} / 比例 {ratio}", "auditTotal": "Completion audit {count}", "recheckTotal": "Recheck {count}", - "guardrail": "writes on read={writes}; manual review={review}", - "itemState": "stage: {stage}; outcome: {outcome}", - "itemRefs": "Source: {source}; Recheck: {recheck}" + "guardrail": "讀取不寫入={writes};人工覆核={review}", + "itemState": "階段:{stage};結果:{outcome}", + "itemRefs": "Source:{source};Recheck:{recheck}" }, "completionQueue": { - "title": "Completion queue", - "subtitle": "Splits owner review into ready, blocked, completed, and failed work so the next step is visible.", - "ready": "Ready {count}", - "blocked": "Blocked {count}", - "completed": "Completed {count}", - "failed": "Failed {count}", - "pending": "Pending dispatch {count}", - "guardrail": "writes on read={writes}; manual review={review}; batch writes={batch}", - "unavailable": "The completion queue API has not responded; use the owner-review inbox for single-item confirmation.", - "empty": "No owner-review completion work items.", - "state": "Split: {readiness}; stage: {stage}", - "next": "Next: {action}; outcome: {outcome}", - "required": "Required fields: {fields}", - "blockers": "Blockers: {blockers}", + "title": "Completion 分流佇列", + "subtitle": "把 owner review 拆成可乾跑、卡住、已完成、失敗,避免只看到告警卻不知道下一步。", + "ready": "可處理 {count}", + "blocked": "卡住 {count}", + "completed": "完成 {count}", + "failed": "失敗 {count}", + "pending": "待處理 dispatch {count}", + "guardrail": "讀取不寫入={writes};人工覆核={review};批次寫入={batch}", + "unavailable": "completion queue API 尚未回應;目前只能從 owner review 工作台逐筆確認。", + "empty": "目前沒有 owner-review completion 工作項。", + "state": "分流:{readiness};階段:{stage}", + "next": "下一步:{action};結果:{outcome}", + "required": "需要欄位:{fields}", + "blockers": "卡點:{blockers}", "filters": { - "ready": "Ready", - "blocked": "Blocked", - "completed": "Completed", - "failed": "Failed", - "pending": "Pending", - "all": "All", - "priorityAll": "All priorities" + "ready": "可處理", + "blocked": "卡住", + "completed": "已完成", + "failed": "失敗", + "pending": "待處理", + "all": "全部", + "priorityAll": "全部優先級" }, "batchPreview": { - "preview": "Batch preview", - "previewing": "Previewing", - "previewFailed": "Completion batch preview failed", - "summary": "Candidates {candidates}; single-item dry-run ready {previewable}; blocked {blocked}; writes KM={writesKm}; writes audit={writesAudit}; batch writes={batchWrites}", - "planFingerprint": "Preview fingerprint: {fingerprint}", - "next": "Next: {action}" + "preview": "批次預覽", + "previewing": "預覽中", + "previewFailed": "批次 completion 預覽失敗", + "summary": "候選 {candidates};可逐筆乾跑 {previewable};卡住 {blocked};寫 KM={writesKm};寫 audit={writesAudit};批次寫入={batchWrites}", + "planFingerprint": "預覽指紋:{fingerprint}", + "next": "下一步:{action}" }, "readiness": { - "ready": "Ready to dry-run", - "blocked": "Needs manual unblock", - "completed": "Completed", - "failed": "Failed" + "ready": "可乾跑", + "blocked": "需人工排除", + "completed": "已完成", + "failed": "失敗待處理" } }, "batchActions": { - "title": "Batch P0 / P1 stale KM", - "subtitle": "試跑 the latest P0 / P1 candidates first, then create owner-review dispatches in batch; KM is not written directly.", - "preview": "試跑 batch", - "previewing": "試跑ning", - "confirm": "Queue batch", - "confirming": "Queueing", - "previewFailed": "Batch dry-run failed; refresh and verify that the stale candidates API is available.", - "confirmFailed": "Batch queue failed; the backend may have detected changed candidates or dispatch state.", - "missingPreviewFingerprint": "Missing batch dry-run plan fingerprint; run the dry-run again first.", - "summary": "Candidates {candidates}; will queue {queued}; already in review {already}; skipped {skipped}; writes KM: {writesKm}; writes audit: {writesAudit}", - "planFingerprint": "Batch plan fingerprint: {fingerprint}", - "result": "Batch dispatch: {batch}; Event: {event}; queued {queued}; already in review {already}; skipped {skipped}", + "title": "批次處理 P0 / P1 陳舊 KM", + "subtitle": "先乾跑鎖定最新 P0 / P1 候選,再批次建立 owner-review dispatch;不會直接寫入 KM。", + "preview": "乾跑批次", + "previewing": "乾跑中", + "confirm": "批次排入", + "confirming": "排入中", + "previewFailed": "批次乾跑失敗;請重新整理後確認 stale candidates API 是否可用。", + "confirmFailed": "批次排入失敗;後端可能偵測到候選清單或 dispatch 狀態已變更。", + "missingPreviewFingerprint": "缺少批次乾跑 plan fingerprint;請先重新執行乾跑。", + "summary": "候選 {candidates};將排入 {queued};已在審核 {already};略過 {skipped};寫 KM:{writesKm};寫稽核:{writesAudit}", + "planFingerprint": "Batch plan fingerprint:{fingerprint}", + "result": "Batch dispatch:{batch};Event:{event};已排入 {queued};已在審核 {already};略過 {skipped}", "statuses": { - "dry_run": "Batch dry-run complete", - "queued": "Batch queued for owner review", - "noop_already_queued": "All candidates already queued or handled", - "unknown": "Batch status pending" + "dry_run": "批次乾跑完成", + "queued": "批次已排入 owner review", + "noop_already_queued": "全部已在審核或已處理", + "unknown": "批次狀態待確認" }, "itemStatuses": { - "would_queue": "Will queue", - "queued": "Queued", - "already_queued": "Already in review", - "skipped": "Skipped", - "unknown": "Pending" + "would_queue": "將排入", + "queued": "已排入", + "already_queued": "已在審核", + "skipped": "略過", + "unknown": "待確認" } }, "completeActions": { - "preview": "試跑 complete", - "previewing": "Previewing", - "confirm": "Confirm complete", - "confirming": "Writing", - "previewFailed": "試跑 preview failed; refresh and verify that the owner-review dispatch is still active.", - "confirmFailed": "Completion failed; the backend may have detected changed KM or dispatch state.", - "missingDispatch": "Missing owner-review dispatch; queue review first.", - "missingPreviewFingerprint": "Missing dry-run plan fingerprint; run the preview again first.", - "previewResult": "Dry run: {outcome}; writes KM: {writesKm}; writes audit: {writesAudit}", - "planFingerprint": "Plan fingerprint: {fingerprint}", - "result": "Completed; audit dispatch: {audit}; recheck dispatch: {recheck}", - "snapshot": "Current stale {stale} / total {total}; ratio {ratio}; threshold {threshold}", + "preview": "乾跑完成", + "previewing": "預覽中", + "confirm": "確認完成", + "confirming": "寫入中", + "previewFailed": "乾跑預覽失敗;請重新整理後確認 owner review dispatch 仍有效。", + "confirmFailed": "確認完成失敗;後端可能偵測到 KM 或 dispatch 狀態已變更。", + "missingDispatch": "缺少 owner-review dispatch;請先排入審核。", + "missingPreviewFingerprint": "缺少乾跑 plan fingerprint;請先重新執行乾跑預覽。", + "previewResult": "乾跑結果:{outcome};寫 KM:{writesKm};寫稽核:{writesAudit}", + "planFingerprint": "Plan fingerprint:{fingerprint}", + "result": "已完成;稽核 dispatch:{audit};回測 dispatch:{recheck}", + "snapshot": "目前 stale {stale} / total {total};ratio {ratio};門檻 {threshold}", "statuses": { - "dry_run": "Dry run complete", - "completed": "Review completed", - "already_completed": "Already completed", - "unknown": "Status pending" + "dry_run": "乾跑完成", + "completed": "審核完成", + "already_completed": "已完成,無需重複處理", + "unknown": "狀態待確認" }, "outcomes": { - "refresh_with_evidence": "Refresh KM with evidence", - "archive": "Archive stale KM", - "supersede": "Supersede with new KM" + "refresh_with_evidence": "依證據刷新 KM", + "archive": "封存陳舊 KM", + "supersede": "以新 KM 取代" } }, "actions": { - "refresh_with_evidence": "Refresh with Incident / Sentry / SigNoz / PlayBook evidence", - "owner_review": "Route to owner review", - "archive_or_supersede": "Archive or supersede" + "refresh_with_evidence": "依 Incident / Sentry / SigNoz / PlayBook 證據刷新", + "owner_review": "交由 owner 審核內容", + "archive_or_supersede": "封存或以新條目取代" }, "correlationSources": { "incident": "Incident", @@ -2851,756 +2855,756 @@ "playbook": "PlayBook", "sentry": "Sentry", "signoz": "SigNoz", - "unknown": "Unknown source" + "unknown": "未知來源" }, "reasons": { - "linked_incident": "連結ed Incident", - "linked_approval": "連結ed Approval", - "linked_playbook": "連結ed PlayBook", - "sentry_context": "Sentry context", - "signoz_context": "SigNoz context", - "anti_pattern_priority": "Anti-Pattern priority", - "auto_runbook_review_needed": "Auto-runbook review", - "ai_extracted_needs_owner_check": "AI extraction needs review", - "already_waiting_review": "Already waiting review", - "viewed_by_operator": "Viewed by operator", - "older_than_30_days": "Older than 30 days", - "stale_by_age": "Past stale threshold", - "unknown": "Unknown reason" + "linked_incident": "關聯 Incident", + "linked_approval": "關聯 Approval", + "linked_playbook": "關聯 PlayBook", + "sentry_context": "含 Sentry 脈絡", + "signoz_context": "含 SigNoz 脈絡", + "anti_pattern_priority": "Anti-Pattern 優先", + "auto_runbook_review_needed": "自動 Runbook 待審", + "ai_extracted_needs_owner_check": "AI 萃取需覆核", + "already_waiting_review": "已在審核狀態", + "viewed_by_operator": "近期有人查看", + "older_than_30_days": "超過 30 天", + "stale_by_age": "超過陳舊門檻", + "unknown": "未知原因" } }, - "openEventHistory": "Open Event History", + "openEventHistory": "開啟事件歷史", "ownerActions": { - "owner_review_canonical_then_archive_duplicates": "Review the canonical draft, then archive duplicates", - "review_canonical_and_archive_duplicate_drafts": "Review canonical and archive duplicate drafts", - "unknown": "Owner action pending" + "owner_review_canonical_then_archive_duplicates": "審核 canonical 草稿後封存 duplicates", + "review_canonical_and_archive_duplicate_drafts": "審核 canonical 並封存重複草稿", + "unknown": "待補 owner 動作" }, "archiveHistory": { - "title": "Archive / recheck history", - "empty": "No owner archive or stale-ratio recheck dispatch yet; it will appear here after confirmation.", + "title": "封存 / 回測歷史", + "empty": "尚無 owner 封存或 stale ratio 回測 dispatch;完成確認封存後會出現在這裡。", "executors": { - "hermes_km_review_dedupe_owner_archive": "Hermes: owner-confirmed archive", - "hermes_km_stale_ratio_recheck": "Hermes: stale-ratio recheck", - "unknown": "Unknown executor" + "hermes_km_review_dedupe_owner_archive": "Hermes:owner 確認封存", + "hermes_km_stale_ratio_recheck": "Hermes:stale ratio 回測", + "unknown": "未知 executor" }, - "item": "{executor}: {status}; stage {stage}; archived {archived}", - "fingerprint": "Plan fingerprint: {fingerprint}", - "snapshot": "Recheck snapshot: stale {stale} / total {total}; ratio {ratio}; threshold {threshold}" + "item": "{executor}:{status};階段 {stage};封存 {archived} 份", + "fingerprint": "Plan fingerprint:{fingerprint}", + "snapshot": "回測 snapshot:stale {stale} / total {total};ratio {ratio};門檻 {threshold}" }, "archiveActions": { - "archive": "Archive duplicate drafts", - "preview": "試跑 preview", - "previewing": "Previewing", - "confirm": "Confirm archive", - "confirming": "Archiving", - "archiving": "Archiving", - "failed": "Archive action failed; refresh and verify the latest dedupe plan.", - "previewFailed": "試跑 preview failed; refresh and verify the latest dedupe plan.", - "confirmFailed": "Archive confirmation failed; the backend may have detected a changed dedupe plan.", - "missingPreviewFingerprint": "Missing dry-run plan fingerprint; run the preview again first.", - "requiresOwner": "Run the dry-run preview first, then owner-confirm the archive; the backend rechecks the latest plan.", - "previewResult": "Dry run would archive {count}; writes KM: {writesKm}; writes audit: {writesAudit}", - "previewNext": "Next: only after owner confirmation will duplicate KM be soft-archived and audit / stale-ratio recheck rows be written.", - "planFingerprint": "Plan fingerprint: {fingerprint}", - "result": "Archived {archived}; audit dispatch: {audit}", - "recheck": "Stale-ratio recheck: {status}; dispatch: {dispatch}", - "snapshot": "Current stale {stale} / total {total}; ratio {ratio}; threshold {threshold}", + "archive": "封存重複草稿", + "preview": "乾跑預覽", + "previewing": "預覽中", + "confirm": "確認封存", + "confirming": "封存中", + "archiving": "封存中", + "failed": "封存動作失敗;請重新整理後確認最新 dedupe plan。", + "previewFailed": "乾跑預覽失敗;請重新整理後確認最新 dedupe plan。", + "confirmFailed": "確認封存失敗;後端可能偵測到 dedupe plan 已變更。", + "missingPreviewFingerprint": "缺少乾跑 plan fingerprint;請先重新執行乾跑預覽。", + "requiresOwner": "必須先乾跑預覽,再由 owner 確認封存;後端會重新比對最新 plan。", + "previewResult": "乾跑將封存 {count} 份;寫 KM:{writesKm};寫稽核:{writesAudit}", + "previewNext": "下一步:owner 確認後才會 soft archive duplicate KM 並寫入 audit / stale ratio 回測。", + "planFingerprint": "Plan fingerprint:{fingerprint}", + "result": "已封存 {archived} 份;稽核 dispatch:{audit}", + "recheck": "Stale ratio 回測:{status};dispatch:{dispatch}", + "snapshot": "目前 stale {stale} / total {total};ratio {ratio};門檻 {threshold}", "statuses": { - "dry_run": "Dry run complete", - "archived": "Archived", - "noop_already_archived": "Already archived", - "unknown": "Status pending" + "dry_run": "乾跑完成", + "archived": "封存完成", + "noop_already_archived": "已封存,無需重複處理", + "unknown": "狀態待確認" }, "recheckStatuses": { - "dry_run": "Dry run only", - "completed": "Completed", - "already_active": "Already active", - "not_requested": "Not requested", - "unknown": "Status pending" + "dry_run": "乾跑未排程", + "completed": "已完成回測", + "already_active": "已有活躍回測", + "not_requested": "尚未建立", + "unknown": "狀態待確認" } }, "statuses": { - "pending": "Pending", - "dispatched": "Dispatched", - "executing": "Executing", - "succeeded": "Completed", - "failed": "Failed", - "skipped": "Skipped", - "cancelled": "Cancelled", - "unknown": "Unknown" + "pending": "等待處理", + "dispatched": "已派遣", + "executing": "執行中", + "succeeded": "已完成", + "failed": "失敗", + "skipped": "已跳過", + "cancelled": "已取消", + "unknown": "未知" }, "stages": { - "detected": "Detected", - "ai_analyzed": "AI analyzed", - "queued_kb_healthcheck": "Queued for KM healthcheck", - "draft_km_updates": "Drafting KM updates", - "batch_owner_review_previewed": "Batch owner review previewed", - "batch_owner_review_queued": "Batch queued for owner review", - "batch_noop_already_queued": "Batch does not need requeue", - "waiting_owner_review": "Waiting owner review", - "owner_updates_or_archives_km": "Owner updates or archives KM", - "km_writeback_after_approval": "KM writeback after approval", - "km_archive_after_approval": "KM archive after approval", - "km_supersede_after_approval": "KM supersede after approval", - "stale_ratio_recheck": "Stale-ratio recheck", - "owner_approved_duplicate_archive": "Owner approved duplicate archive", - "km_duplicate_archive_after_owner_approval": "Duplicate archive after owner review", - "km_governance_rechecked": "KM governance rechecked", - "km_governance_close_or_continue": "Close or continue governance", - "needs_manual_km_triage": "Manual KM triage needed", - "cancelled": "Cancelled", - "queued_for_review": "Queued for governance review", - "dispatched": "Dispatched", - "executing": "Executing", - "completed": "Completed", - "failed": "Failed", - "skipped": "Skipped", - "unknown": "Unknown stage" + "detected": "已偵測", + "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_noop_already_queued": "批次無需重複排入", + "waiting_owner_review": "等待 owner 審核", + "owner_updates_or_archives_km": "Owner 更新或封存 KM", + "km_writeback_after_approval": "審核後寫回 KM", + "km_archive_after_approval": "審核後封存 KM", + "km_supersede_after_approval": "審核後以新 KM 取代", + "stale_ratio_recheck": "回測 stale ratio", + "owner_approved_duplicate_archive": "Owner 已批准封存重複草稿", + "km_duplicate_archive_after_owner_approval": "Owner 審核後封存重複草稿", + "km_governance_rechecked": "KM 治理已回測", + "km_governance_close_or_continue": "關閉或繼續治理", + "needs_manual_km_triage": "需要人工整理 KM", + "cancelled": "已取消", + "queued_for_review": "等待治理審核", + "dispatched": "已派遣", + "executing": "執行中", + "completed": "已完成", + "failed": "失敗", + "skipped": "已跳過", + "unknown": "未知階段" } }, "driftFingerprint": { - "title": "Config Drift Fingerprint State", - "subtitle": "Collapses hourly drift reports into one state chain with PR, zero diff, P0 dedupe, and human handoff evidence", - "unavailable": "The drift fingerprint state API has not responded, so recurrence, PR, and handoff state cannot be claimed.", - "occurrences": "12h {count}x", + "title": "Config Drift fingerprint 狀態", + "subtitle": "把每小時 drift report 收斂成同一狀態鏈,顯示 PR、零 diff、P0 去重與人工交接", + "unavailable": "drift fingerprint state API 尚未回應,不能判定是否重複、是否已有 PR 或是否已交接。", + "occurrences": "12h {count} 次", "risk": "HIGH {high} / MEDIUM {medium} / INFO {info}", - "report": "Report: {report}; Namespace: {namespace}", - "summary": "Summary: {summary}", - "next": "Next: {step}", - "p0Dedup": "P0 dedupe: {enabled}; window {hours}h", - "writes": "Writes: drift={drift}; incident={incident}; repair={repair}; ticket={ticket}", + "report": "Report:{report};Namespace:{namespace}", + "summary": "摘要:{summary}", + "next": "下一步:{step}", + "p0Dedup": "P0 去重:{enabled};視窗 {hours}h", + "writes": "寫入:drift={drift};incident={incident};repair={repair};ticket={ticket}", "fsmStates": { - "pending_human": "Waiting for human", - "pending_human_repeated": "Repeated human wait", - "pr_open_zero_diff": "PR open but zero diff", - "pr_open_waiting_review": "PR waiting review", - "pr_merged_unverified": "PR merged, unverified", - "handoff_recorded": "Handoff recorded", - "no_drift_verified": "No drift, verified", - "remediated_verified": "Remediated, verified", - "remediation_executed_unverified": "Remediated, unverified", - "remediation_verification_failed": "Remediation verification failed", - "adopted_unverified": "Adopted, unverified", - "rolled_back": "Rolled back", - "acknowledged": "Acknowledged", - "ignored": "Ignored", - "unknown": "Unknown" + "pending_human": "等待人工", + "pending_human_repeated": "重複等待人工", + "pr_open_zero_diff": "PR 開啟但零 diff", + "pr_open_waiting_review": "PR 等待 review", + "pr_merged_unverified": "PR 已 merge 待驗證", + "handoff_recorded": "交接已記錄", + "no_drift_verified": "無漂移且已驗證", + "remediated_verified": "已修復且已驗證", + "remediation_executed_unverified": "已修復待驗證", + "remediation_verification_failed": "修復驗證失敗", + "adopted_unverified": "已採納待驗證", + "rolled_back": "已回滾", + "acknowledged": "已知悉", + "ignored": "已忽略", + "unknown": "未知" }, "nextSteps": { - "close_zero_diff_pr_and_prepare_real_yaml_patch": "Close zero-diff PR and prepare a real YAML patch", - "review_pr_then_merge_or_reject": "Review PR, then merge or reject", - "verify_git_baseline_then_mark_adopted": "Verify Git baseline, then mark adopted", - "operator_review_handoff_and_execute_manual_plan": "Operator reviews handoff and executes manual plan", - "run_verification_scan_then_record_result": "Run verification scan, then record the result", - "open_manual_investigation_with_failed_verification": "Open manual investigation with the failed verification", - "verify_k8s_matches_git_baseline": "Verify K8s matches Git baseline", - "confirm_no_repeat_after_rollback": "Confirm no repeat after rollback", - "monitor_for_recurrence": "Monitor for recurrence", - "retry_pr_lookup_then_review_drift": "Retry PR lookup, then review drift", - "manual_investigation_or_ansible_check_mode": "Manual investigation or Ansible check-mode", - "unknown": "Unknown" + "close_zero_diff_pr_and_prepare_real_yaml_patch": "關閉零 diff PR,準備真實 YAML patch", + "review_pr_then_merge_or_reject": "review PR 後 merge 或 reject", + "verify_git_baseline_then_mark_adopted": "驗證 Git baseline 後標記採納", + "operator_review_handoff_and_execute_manual_plan": "Operator review 交接並執行人工方案", + "run_verification_scan_then_record_result": "執行驗證掃描並記錄結果", + "open_manual_investigation_with_failed_verification": "建立人工調查並附上失敗驗證", + "verify_k8s_matches_git_baseline": "驗證 K8s 與 Git baseline 一致", + "confirm_no_repeat_after_rollback": "確認回滾後不再重複", + "monitor_for_recurrence": "監控是否復發", + "retry_pr_lookup_then_review_drift": "重試 PR 查詢後 review drift", + "manual_investigation_or_ansible_check_mode": "人工調查或 Ansible check-mode", + "unknown": "未知" }, "pr": { "title": "PR / Baseline", - "number": "PR: {number}", - "zeroDiff": "zeroDiff={zeroDiff}; files={files}; commits={commits}", - "status": "Status: {status}" + "number": "PR:{number}", + "zeroDiff": "zeroDiff={zeroDiff};files={files};commits={commits}", + "status": "狀態:{status}" }, "handoff": { - "latest": "Latest handoff: {status}" + "latest": "最近交接:{status}" }, "remediation": { - "title": "Remediation / Verification", - "latest": "Latest remediation: {kind} / {status}", - "verification": "Verification report: {report}; {summary}", - "note": "Note: {note}" + "title": "修復 / 驗證", + "latest": "最近修復:{kind} / {status}", + "verification": "驗證 Report:{report};{summary}", + "note": "備註:{note}" }, "remediationKinds": { - "live_env_rollback": "Live env rollback", - "git_adopted": "Git adopted", - "git_rollback": "Git rollback", - "zero_diff_pr_cleanup": "Zero-diff PR cleanup", - "manual_noop": "Manual no-op", - "unknown": "Unknown" + "live_env_rollback": "線上 env 回滾", + "git_adopted": "Git 採納", + "git_rollback": "Git 回滾", + "zero_diff_pr_cleanup": "零 diff PR 清理", + "manual_noop": "人工確認無需動作", + "unknown": "未知" }, "remediationStatuses": { - "executed_unverified": "Executed, unverified", - "verified_no_drift": "Verified no drift", - "verification_failed": "Verification failed", - "record_failed": "Record failed", - "lookup_failed": "Lookup failed", - "unknown": "No record yet" + "executed_unverified": "已執行待驗證", + "verified_no_drift": "已驗證無漂移", + "verification_failed": "驗證失敗", + "record_failed": "入庫失敗", + "lookup_failed": "查詢失敗", + "unknown": "尚無記錄" }, "actions": { - "record": "Record handoff", - "recording": "Recording", - "openDrift": "Open Drift", - "failed": "The handoff API did not respond, so human handoff cannot be claimed.", - "recorded": "Handoff stored: {recorded}", - "handoffStatus": "Handoff status: {status}" + "record": "記錄交接", + "recording": "記錄中", + "openDrift": "開啟 Drift", + "failed": "交接 API 未回應,不能宣稱已轉人工。", + "recorded": "交接入庫:{recorded}", + "handoffStatus": "交接狀態:{status}" } }, "recurrence": { - "title": "Recurring Alert Work Items", - "subtitle": "Turns run_completed_no_repair, failed repair, and manual gates into trackable work items", - "open": "Open {count}", - "automationGap": "No repair {count}", - "failed": "Failed {count}", - "sourceReview": "Source review {count}", - "sourceApplied": "Applied {count}", - "unavailable": "The recurrence API has not responded, so work item state cannot be claimed.", - "empty": "No open recurring-alert work items in the recent window.", - "occurrences": "{count}x", - "incident": "Incident: {incident}", - "matchedIncident": "Matched target: {incident}", - "stage": "Stage: {stage}", - "sourceEvent": "Source event: {event}", - "sourceRefs": "Source refs: {refs} (Sentry {sentry} / SignOz {signoz})", + "title": "重複告警工作項", + "subtitle": "把 run_completed_no_repair、修復失敗與人工閘門接成可追蹤 work item", + "open": "待處理 {count}", + "automationGap": "無修復 {count}", + "failed": "修復失敗 {count}", + "sourceReview": "來源待審 {count}", + "sourceApplied": "已套用 {count}", + "unavailable": "recurrence API 尚未回應,不能判定工作項狀態。", + "empty": "近期重複告警沒有待處理工作項。", + "occurrences": "{count} 次", + "incident": "Incident:{incident}", + "matchedIncident": "配對目標:{incident}", + "stage": "階段:{stage}", + "sourceEvent": "來源事件:{event}", + "sourceRefs": "來源 refs:{refs}(Sentry {sentry} / SignOz {signoz})", "sourceFlow": { - "label": "Source flow: {status}", + "label": "來源流程:{status}", "detail": "refs={refs}; Sentry={sentry}; SignOz={signoz}; event={event}", "statuses": { - "applied": "Applied", - "reviewed": "Review recorded", - "review": "Awaiting match review", - "evidence": "Source evidence found", - "provider": "Provider received", - "waiting": "Waiting for source" + "applied": "已套用", + "reviewed": "審核已記錄", + "review": "待審核配對", + "evidence": "來源證據已到", + "provider": "Provider 已接收", + "waiting": "等待來源" } }, - "workItem": "Work item: {id}", - "repair": "Repair status: {status}", - "reason": "Reason: {reason}", - "nextStep": "Next: {step}", - "sourceReviewDecision": "Source review: {decision} / {status}", - "sourceApplyStatus": "Source apply: {status} / {event}", - "openRun": "Open Run", - "openRuns": "Back to Runs", + "workItem": "Work item:{id}", + "repair": "修復狀態:{status}", + "reason": "原因:{reason}", + "nextStep": "下一步:{step}", + "sourceReviewDecision": "來源審核:{decision} / {status}", + "sourceApplyStatus": "來源套用:{status} / {event}", + "openRun": "開啟 Run", + "openRuns": "回 Run 監控", "actions": { - "preview": "Preview", - "previewing": "Previewing", - "dryRun": "試跑", - "dryRunning": "試跑ning", - "handoff": "Handoff", - "handoffing": "Handing off", - "sourceAccept": "Record match", - "sourceAccepting": "Recording", - "sourceReject": "Reject source", - "sourceRejecting": "Rejecting", - "sourceApply": "Apply match", - "sourceApplying": "Applying", - "failed": "The safe preview / dry-run / handoff API did not respond, so the next step cannot be claimed.", - "allowed": "Safety gate passed", - "blocked": "Safety gate blocked", - "mode": "Mode: {mode}", - "previewResult": "Result: {result}", - "writes": "Writes: incident={incident}; autoRepair={autoRepair}; ticket={ticket}", - "sourceWrites": "Source event writeback: {source}", - "history": "試跑 stored: {recorded}", - "sourceReviewResult": "Source review: {decision} / {status} / Incident {incident}", - "sourceApplyResult": "Source match apply: {status} / {event}", - "handoffStatus": "Handoff: {kind} / {status}", - "externalTicket": "External ticket created: {created}", - "ticket": "Ticket preview: {title}", + "preview": "預覽", + "previewing": "預覽中", + "dryRun": "乾跑", + "dryRunning": "乾跑中", + "handoff": "交接", + "handoffing": "交接中", + "sourceAccept": "記錄配對", + "sourceAccepting": "記錄中", + "sourceReject": "退回來源", + "sourceRejecting": "退回中", + "sourceApply": "套用配對", + "sourceApplying": "套用中", + "failed": "安全預覽 / 乾跑 / 交接 API 未回應,不能判定下一步。", + "allowed": "安全閘門通過", + "blocked": "安全閘門阻塞", + "mode": "模式:{mode}", + "previewResult": "結果:{result}", + "writes": "寫入:incident={incident};autoRepair={autoRepair};ticket={ticket}", + "sourceWrites": "來源事件回寫:{source}", + "history": "試跑入庫:{recorded}", + "sourceReviewResult": "來源審核:{decision} / {status} / Incident {incident}", + "sourceApplyResult": "來源配對套用:{status} / {event}", + "handoffStatus": "交接:{kind} / {status}", + "externalTicket": "外部 Ticket 建立:{created}", + "ticket": "Ticket 預覽:{title}", "modes": { - "auto": "Auto select", - "ticket": "Ticket preview", - "reverify": "Reverify", - "approval_review": "Approval review", - "observe": "Observe", - "unknown": "Unknown" + "auto": "自動選擇", + "ticket": "Ticket 預覽", + "reverify": "重新驗證", + "approval_review": "審批檢查", + "observe": "觀察", + "unknown": "未知" }, "handoffKinds": { - "ticket_proposal": "Ticket proposal", - "manual_review": "Manual review", - "unknown": "Unknown" + "ticket_proposal": "Ticket 提案", + "manual_review": "人工覆核", + "unknown": "未知" }, "handoffStatuses": { - "ready_to_record": "Ready to record", - "recorded": "Recorded", - "record_failed": "Record failed", - "blocked": "Blocked", - "unknown": "Unknown" + "ready_to_record": "待寫入歷史", + "recorded": "已寫入歷史", + "record_failed": "寫入失敗", + "blocked": "已阻塞", + "unknown": "未知" }, "previews": { - "ticket_preview_ready": "Ticket preview ready", - "reverify_preview_ready": "Reverify preview ready", - "approval_review_required": "Approval review required", - "observe_only": "Observe only", - "blocked": "Blocked", - "unknown": "Unknown" + "ticket_preview_ready": "Ticket 預覽已就緒", + "reverify_preview_ready": "重新驗證預覽已就緒", + "approval_review_required": "需進審批檢查", + "observe_only": "僅觀察", + "blocked": "已阻塞", + "unknown": "未知" }, "sourceDecisions": { - "accepted": "Match accepted", - "rejected": "Rejected", - "needs_more_evidence": "Needs more evidence", - "unknown": "Unknown" + "accepted": "已確認配對", + "rejected": "已退回", + "needs_more_evidence": "需更多證據", + "unknown": "未知" }, "sourceRecordStatuses": { - "recorded": "Recorded", - "record_failed": "Record failed", - "blocked": "Blocked", - "accepted": "Match accepted", - "rejected": "Rejected", - "needs_more_evidence": "Needs more evidence", - "unknown": "Unknown" + "recorded": "已寫入歷史", + "record_failed": "寫入失敗", + "blocked": "已阻塞", + "accepted": "已確認配對", + "rejected": "已退回", + "needs_more_evidence": "需更多證據", + "unknown": "未知" }, "sourceApplyStatuses": { - "ready_to_apply": "Ready to apply", - "applied": "Applied", - "partial": "Partially recorded", - "record_failed": "Record failed", - "blocked": "Blocked", - "unknown": "Unknown" + "ready_to_apply": "待套用", + "applied": "已套用", + "partial": "部分寫入", + "record_failed": "寫入失敗", + "blocked": "已阻塞", + "unknown": "未知" } }, "statuses": { - "auto_repair_verified": "Verified repair", - "auto_repair_succeeded_unverified": "Repair needs verification", - "auto_repair_failed": "Repair failed", - "auto_repair_recorded": "Repair recorded", - "manual_gate": "Manual gate needed", - "investigating": "Investigating", - "run_completed_no_repair": "Run completed without repair", - "source_correlation_review": "Source evidence needs matching", - "source_correlation_accepted": "Source match recorded", - "source_correlation_rejected": "Source match rejected", - "source_correlation_applied": "Source match applied", - "no_repair_record": "No repair record", - "unknown": "Unknown" + "auto_repair_verified": "已驗證修復", + "auto_repair_succeeded_unverified": "修復待驗證", + "auto_repair_failed": "修復失敗", + "auto_repair_recorded": "修復已記錄", + "manual_gate": "需人工閘門", + "investigating": "調查中", + "run_completed_no_repair": "Run 完成無修復", + "source_correlation_review": "來源證據待配對", + "source_correlation_accepted": "來源配對已記錄", + "source_correlation_rejected": "來源配對已退回", + "source_correlation_applied": "來源配對已套用", + "no_repair_record": "無修復記錄", + "unknown": "未知" }, "reasons": { - "auto_repair_missing_verification": "Auto-repair lacks verification", - "auto_repair_failed": "Auto-repair failed", - "auto_repair_record_needs_review": "Repair record needs review", - "approval_required": "Approval required", - "run_still_investigating": "Run is still investigating", - "completed_run_without_auto_repair": "Run completed without an auto-repair record", - "provider_native_evidence_unlinked": "Provider-native source evidence is stored but not matched to an Incident", - "provider_native_evidence_accepted": "Provider source was matched by an operator", - "provider_native_evidence_rejected": "Provider source was rejected and not adopted as Incident evidence", - "provider_native_evidence_needs_more_evidence": "Provider source needs more evidence before matching", - "provider_native_evidence_link_applied": "Provider source link event was appended", - "incident_without_repair_record": "Incident has no repair record", - "none": "None", - "unknown": "Unknown" + "auto_repair_missing_verification": "自動修復缺驗證", + "auto_repair_failed": "自動修復失敗", + "auto_repair_record_needs_review": "修復紀錄待確認", + "approval_required": "需要審批", + "run_still_investigating": "Run 尚在調查", + "completed_run_without_auto_repair": "Run 已完成但沒有自動修復紀錄", + "provider_native_evidence_unlinked": "Provider 原生來源已入庫,尚未配對 Incident", + "provider_native_evidence_accepted": "Provider 來源已由 operator 配對確認", + "provider_native_evidence_rejected": "Provider 來源已退回,不採納為 Incident 證據", + "provider_native_evidence_needs_more_evidence": "Provider 來源需要更多證據才能配對", + "provider_native_evidence_link_applied": "Provider 來源已附加 Incident 連結事件", + "incident_without_repair_record": "Incident 沒有修復紀錄", + "none": "無", + "unknown": "未知" }, "nextSteps": { - "run_post_verification": "Run post-execution verification", - "triage_failed_repair": "Triage failed repair", - "review_repair_record": "Review repair record", - "review_approval": "Review approval", - "wait_for_run_completion": "Wait for Run completion", - "create_repair_ticket": "Create repair ticket", - "review_provider_source_match": "Review source-to-Incident match", - "verify_source_match_in_status_chain": "Verify source match in the status chain", - "verify_source_link_in_status_chain": "Verify source link event in the status chain", - "monitor_for_new_provider_evidence": "Wait for new provider evidence", - "collect_more_source_evidence": "Collect more source evidence", - "triage_missing_repair_record": "Fill missing repair record", - "none": "None" + "run_post_verification": "執行修復後驗證", + "triage_failed_repair": "盤點失敗修復", + "review_repair_record": "檢查修復紀錄", + "review_approval": "處理審批", + "wait_for_run_completion": "等待 Run 完成", + "create_repair_ticket": "建立修復 Ticket", + "review_provider_source_match": "審核來源與 Incident 配對", + "verify_source_match_in_status_chain": "到狀態鏈驗證來源配對", + "verify_source_link_in_status_chain": "到狀態鏈驗證來源連結事件", + "monitor_for_new_provider_evidence": "等待新的 Provider 證據", + "collect_more_source_evidence": "補齊更多來源證據", + "triage_missing_repair_record": "補齊修復紀錄", + "none": "無" } } }, "listEvidence": { - "column": "AI Evidence", + "column": "AI 證據", "callbackColumn": "TG Callback", "sourceFlow": { - "column": "Source Flow", - "notLinked": "incident not linked", + "column": "來源流程", + "notLinked": "尚未關聯 incident", "detail": "providers={providers}; d/c/a={direct}/{candidate}/{applied}", "statuses": { - "verified": "Verified", - "applied": "Applied", - "evidence": "Evidence found", - "provider": "Provider received", - "waiting": "Waiting", - "loading": "Loading" + "verified": "已驗證", + "applied": "已套用", + "evidence": "已找到證據", + "provider": "Provider 已接收", + "waiting": "等待來源", + "loading": "讀取中" } }, - "count": "{count} dry-runs", - "mcpCount": "{count} MCP investigations", - "route": "MCP: {route}", - "emptyShort": "No AI evidence linked", - "manualGate": "Next: human approval", + "count": "試跑 {count} 次", + "mcpCount": "MCP 調查 {count} 次", + "route": "MCP:{route}", + "emptyShort": "尚未連到 AI 證據", + "manualGate": "下一步:人工審批", "filters": { - "label": "AI evidence filter", - "all": "All AI evidence", - "incidentLabel": "事件 ID filter", - "incidentPlaceholder": "Enter 事件 ID" + "label": "AI 證據篩選", + "all": "所有 AI 證據", + "incidentLabel": "事件 ID 篩選", + "incidentPlaceholder": "輸入 事件 ID" }, "incident": { "column": "Incident", - "empty": "Not linked", - "filterTitle": "Show only {incidentId}", - "more": "+{count} more" + "empty": "尚未關聯", + "filterTitle": "只看 {incidentId}", + "more": "+{count} 筆" }, "statuses": { - "noEvidence": "No dry-run yet", - "mcpObserved": "MCP investigated", - "readOnlyDryRun": "AI dry-run: read-only", - "writeObserved": "Write flag observed", - "blocked": "試跑 blocked", - "observed": "Evidence linked" + "noEvidence": "尚無試跑", + "mcpObserved": "MCP 已調查", + "readOnlyDryRun": "AI 已試跑:只讀", + "writeObserved": "有寫入旗標", + "blocked": "試跑受阻", + "observed": "有補救證據" }, "details": { - "noEvidence": "This row is not linked to ADR-100 remediation dry-run or MCP investigation evidence yet.", - "mcpObserved": "AI has gathered evidence through MCP / self-built MCP, but no remediation dry-run or execution has started.", - "readOnlyDryRun": "AI has run the remediation dry-run and the latest record did not write incident or auto-repair state.", - "writeObserved": "The latest remediation record contains write flags; verify the state-change source before approval.", - "blocked": "The remediation dry-run failed or was blocked by a gate; human review is required.", - "observed": "This row is linked to remediation history; open 執行時間線 for the full evidence." + "noEvidence": "此列尚未連到 ADR-100 補救試跑或 MCP 調查證據。", + "mcpObserved": "AI 已透過 MCP / 自建 MCP 收集證據,但尚未進入補救試跑或執行。", + "readOnlyDryRun": "AI 已走補救試跑,且最新紀錄沒有寫入 incident 或 auto-repair 狀態。", + "writeObserved": "最新補救紀錄含寫入旗標,審批前需確認狀態變更來源。", + "blocked": "補救試跑未通過或被 gate 阻擋,需人工確認卡點。", + "observed": "此列已連到補救歷史,請進入 執行時間線 查看完整證據。" }, "summary": { - "mcpObserved": "MCP investigated", - "mcpObservedDetail": "List rows are linked to MCP / self-built MCP investigation evidence", - "readOnly": "Read-only dry-run", - "readOnlyDetail": "Latest evidence shows AI trialed the action without writing state", - "manualGate": "Human gate", - "manualGateDetail": "AI is stopped at the approval gate and needs approve / reject", - "writeObserved": "Write flags", - "writeObservedDetail": "Verify whether this is the expected auto-repair result", + "mcpObserved": "MCP 已調查", + "mcpObservedDetail": "列表已連到 MCP / 自建 MCP 調查證據", + "readOnly": "只讀試跑", + "readOnlyDetail": "最新證據顯示 AI 已試跑且未寫狀態", + "manualGate": "人工閘門", + "manualGateDetail": "AI 已停在 approval gate,需 approve / reject", + "writeObserved": "寫入旗標", + "writeObservedDetail": "需確認是否為預期自動修復結果", "callbackObserved": "TG Callback", - "callbackObservedDetail": "Detail / history replies are tracked; failed {failed}", - "noEvidence": "Missing AI evidence", - "noEvidenceDetail": "The list row is not linked to ADR-100 dry-run or MCP evidence yet", - "approvalReadOnlyDetail": "Read-only remediation evidence is visible before approval", - "approvalNoEvidenceDetail": "Approval still lacks AI evidence; inspect 執行時間線" + "callbackObservedDetail": "詳情 / 歷史回覆已追蹤;失敗 {failed} 筆", + "noEvidence": "缺 AI 證據", + "noEvidenceDetail": "列表尚未連到 ADR-100 dry-run 或 MCP evidence", + "approvalReadOnlyDetail": "審批前已有只讀補救證據可回看", + "approvalNoEvidenceDetail": "審批前仍缺 AI 證據,需進 執行時間線 檢查" } }, "sourceDossierCoverage": { - "title": "Source Dossier Coverage", - "subtitle": "Inbound alert dossiers, dedupe, and Sentry / SignOz references", - "total": "{count} items", - "empty": "No recent source event dossiers.", - "error": "Source dossier coverage failed to load: {error}", + "title": "來源事件覆蓋率", + "subtitle": "入站告警卷宗、去重與 Sentry / SignOz 關聯狀態", + "total": "{count} 筆", + "empty": "目前沒有近期來源事件卷宗。", + "error": "來源卷宗覆蓋率載入失敗:{error}", "metrics": { - "sources": "Source events", - "refs": "Reference index", - "missingRefs": "Missing refs", - "duplicates": "Duplicate events", + "sources": "來源事件", + "refs": "關聯索引", + "missingRefs": "缺關聯", + "duplicates": "重複事件", "sentry": "Sentry refs", "signoz": "SignOz refs" }, "details": { - "latest": "Latest {time}", - "withRefs": "{count} items with source refs", - "missingEnvelope": "{count} items missing source envelope", - "redacted": "{count} items redacted", - "alertRefs": "{count} alert refs", - "limit": "Latest {count} item window" + "latest": "最新 {time}", + "withRefs": "{count} 筆含 source refs", + "missingEnvelope": "{count} 筆缺 source envelope", + "redacted": "{count} 筆已 redacted", + "alertRefs": "{count} 個 alert refs", + "limit": "最近 {count} 筆視窗" }, "provider": { - "latest": "Latest {time}", + "latest": "最新 {time}", "refs": "Refs {count}", - "missing": "Missing {count}", + "missing": "缺 {count}", "redacted": "Redacted {count}", - "duplicates": "Duplicates {count}" + "duplicates": "重複 {count}" } }, "eventRecurrence": { - "title": "Recurring Alert 連結s", - "subtitle": "Grouped by fingerprint / target resource with the latest Run stage", - "total": "{count} groups", - "empty": "No recent recurring alert links.", - "error": "Recurring alert links failed to load: {error}", + "title": "重複告警關聯", + "subtitle": "依 fingerprint / 目標資源聚合,顯示是否重複與最新 Run 階段", + "total": "{count} 組", + "empty": "目前沒有近期重複告警關聯。", + "error": "重複告警關聯載入失敗:{error}", "metrics": { - "groups": "連結 groups", - "recurrent": "Recurring groups", - "duplicates": "Duplicate events", - "linkedRuns": "連結ed Runs", - "autoRepair": "Auto repair", - "sourceReview": "Source review", - "openWorkItems": "Open work items" + "groups": "關聯群組", + "recurrent": "重複群組", + "duplicates": "重複事件", + "linkedRuns": "已連 Run", + "autoRepair": "自動修復", + "sourceReview": "來源待審", + "openWorkItems": "待處理項" }, "details": { - "sourceEvents": "{count} source events", - "latest": "Latest {time}", - "unlinked": "{count} items not linked to a Run", - "limit": "Latest {count} item window", - "verifiedRepair": "{count} verified repair groups", - "sourceReview": "{count} Sentry / SignOz source groups need matching review", - "manualGates": "{count} manual gates" + "sourceEvents": "{count} 筆來源事件", + "latest": "最新 {time}", + "unlinked": "{count} 筆尚未連 Run", + "limit": "最近 {count} 筆視窗", + "verifiedRepair": "{count} 組已驗證修復", + "sourceReview": "{count} 組 Sentry / SignOz 來源需人工配對", + "manualGates": "{count} 組人工閘門" }, "states": { - "pending": "Pending", - "running": "Running", - "waiting_tool": "Waiting for tool", - "waiting_approval": "Waiting approval", - "completed": "Completed", - "failed": "Failed", - "cancelled": "Cancelled", - "timeout": "Timed out", - "unlinked": "Not linked" + "pending": "待執行", + "running": "執行中", + "waiting_tool": "等待工具", + "waiting_approval": "等待審批", + "completed": "已完成", + "failed": "失敗", + "cancelled": "已取消", + "timeout": "已超時", + "unlinked": "尚未連 Run" }, "repairStatuses": { - "no_incident_link": "No Incident link", - "auto_repair_verified": "Verified repair", - "auto_repair_succeeded_unverified": "Repair needs verification", - "auto_repair_failed": "Repair failed", - "auto_repair_recorded": "Repair recorded", - "manual_gate": "Manual gate needed", - "investigating": "Investigating", - "run_completed_no_repair": "Run completed without repair", - "source_correlation_review": "Source evidence needs matching", - "no_repair_record": "No repair record" + "no_incident_link": "尚未連 Incident", + "auto_repair_verified": "已驗證修復", + "auto_repair_succeeded_unverified": "修復待驗證", + "auto_repair_failed": "修復失敗", + "auto_repair_recorded": "修復已記錄", + "manual_gate": "需人工閘門", + "investigating": "調查中", + "run_completed_no_repair": "Run 完成無修復", + "source_correlation_review": "來源證據待配對", + "no_repair_record": "無修復記錄" }, "item": { - "latest": "Latest {time}", - "duplicates": "Duplicates {count}", + "latest": "最新 {time}", + "duplicates": "重複 {count}", "refs": "Refs {count}", - "linkedRuns": "Runs {count}", - "stage": "Stage {stage}", + "linkedRuns": "Run {count}", + "stage": "階段 {stage}", "incident": "Incident {incidentId}", - "repair": "Repair {status}", - "openRun": "Open Run", - "noRun": "No Run yet", - "openWorkItem": "Open work item", - "noWorkItem": "No open work item" + "repair": "修復 {status}", + "openRun": "開啟 Run", + "noRun": "尚無 Run", + "openWorkItem": "開啟工作項", + "noWorkItem": "無待處理項" } }, "callbackReply": { - "count": "{total} items; fallback {fallback}; failed {failed}", - "emptyShort": "No detail / history callback yet", + "count": "{total} 筆;fallback {fallback};失敗 {failed}", + "emptyShort": "尚無詳情 / 歷史 callback", "latest": "{action} · {incidentId}", - "needsHuman": "Callback failure needs human review", - "captureLine": "Snapshot: {status}; captured {captured} / partial {partial} / not captured {notCaptured}", - "captureMissing": "Missing: {items}", + "needsHuman": "Callback 失敗需人工確認", + "captureLine": "Snapshot:{status};已捕捉 {captured} / 部分 {partial} / 未捕捉 {notCaptured}", + "captureMissing": "尚缺:{items}", "captureStatuses": { - "captured": "Captured", - "partial": "Partially captured", - "not_captured": "Not captured", - "observed": "Recorded" + "captured": "已捕捉", + "partial": "部分捕捉", + "not_captured": "未捕捉", + "observed": "已記錄" }, "captureItems": { - "awooopStatusChain": "AwoooP status chain", + "awooopStatusChain": "AwoooP 狀態鏈", "kmCompletionSummary": "KM owner-review snapshot" }, "filters": { - "label": "TG Callback filter", - "all": "All TG callbacks" + "label": "TG Callback 篩選", + "all": "所有 TG Callback" }, "statuses": { - "noCallback": "No callback", - "sent": "Delivered", - "fallbackSent": "Fallback delivered", - "rescueSent": "Rescue delivered", - "failed": "Delivery failed", - "observed": "Recorded" + "noCallback": "尚無 Callback", + "sent": "已送達", + "fallbackSent": "Fallback 已送達", + "rescueSent": "救援已送達", + "failed": "送達失敗", + "observed": "已記錄" }, "details": { - "noCallback": "This run has no detail / history callback reply evidence yet.", - "sent": "The Telegram callback reply was delivered with the original format.", - "fallbackSent": "The Telegram HTML reply failed, then plain-text fallback was delivered.", - "rescueSent": "The Telegram fallback also failed, then rescue plain text was delivered.", - "failed": "The Telegram callback reply ultimately failed to deliver and needs human review.", - "observed": "The Telegram callback reply was recorded with a non-standard status." + "noCallback": "此 Run 尚未有詳情 / 歷史 callback reply 證據。", + "sent": "Telegram callback reply 已用原格式送達。", + "fallbackSent": "Telegram HTML 回覆失敗後,已用純文字 fallback 送達。", + "rescueSent": "Telegram fallback 仍失敗後,已用救援純文字送達。", + "failed": "Telegram callback reply 最終送達失敗,需人工確認。", + "observed": "Telegram callback reply 已記錄,但狀態不屬於標準分類。" }, "events": { "title": "TG Callback Evidence", - "subtitle": "Detail / history reply evidence from the AwoooP outbound mirror", - "total": "{count} items", - "empty": "No callback reply evidence yet.", - "error": "Callback evidence failed to load: {error}", + "subtitle": "詳情 / 歷史回覆證據來自 AwoooP outbound mirror", + "total": "{count} 筆", + "empty": "目前尚無 callback reply evidence。", + "error": "Callback evidence 載入失敗:{error}", "summary": { - "outbound": "Outbound mirror", - "outboundDetail": "source_refs {sourceRefs}; trace refs {traceRefs}; incident refs {incidentRefs}; coverage {coverage}", - "outboundReplyMarkupDetail": "reply_markup {replyMarkup}; missing trace refs {missingTraceRefs}; missing incident refs {missingIncidentRefs}", - "outboundReplyMarkupTraceFreshness": "Missing trace activity: 1h {recent1h} / 24h {recent24h} / latest {latest}", - "outboundReplyMarkupTraceDecision": "Trace gap decision: {status}; next: {action}", - "outboundReplyMarkupTraceRecovery": "Trace gap recovery: {status}; traced after gap {count}; first {first}; latest {latest}", - "outboundReplyMarkupIncidentFreshness": "Missing incident activity: 1h {recent1h} / 24h {recent24h} / latest {latest}", - "outboundReplyMarkupTopPrefixes": "Missing incident top prefixes: {prefixes}", - "outboundReplyMarkupTraceTopPrefixes": "Missing trace top prefixes: {prefixes}", - "outboundReplyMarkupTopPrefixItem": "{prefix} {total} (24h {recent}, last {last})", + "outbound": "出站鏡像", + "outboundDetail": "source_refs {sourceRefs};trace refs {traceRefs};incident refs {incidentRefs};覆蓋 {coverage}", + "outboundReplyMarkupDetail": "reply_markup {replyMarkup};缺 trace refs {missingTraceRefs};缺 incident refs {missingIncidentRefs}", + "outboundReplyMarkupTraceFreshness": "缺 trace 活躍度:1h {recent1h} / 24h {recent24h} / 最新 {latest}", + "outboundReplyMarkupTraceDecision": "缺 trace 判讀:{status};下一步:{action}", + "outboundReplyMarkupTraceRecovery": "缺 trace 復原訊號:{status};gap 後 traced {count};首筆 {first};最新 {latest}", + "outboundReplyMarkupIncidentFreshness": "缺 incident 活躍度:1h {recent1h} / 24h {recent24h} / 最新 {latest}", + "outboundReplyMarkupTopPrefixes": "缺 incident top prefixes:{prefixes}", + "outboundReplyMarkupTraceTopPrefixes": "缺 trace top prefixes:{prefixes}", + "outboundReplyMarkupTopPrefixItem": "{prefix} {total}(24h {recent},最後 {last})", "callbacks": "Callback replies", - "callbackDetail": "detail {detail} / history {history}; incidents {incidents}", + "callbackDetail": "detail {detail} / history {history};Incident {incidents}", "snapshots": "Evidence snapshots", - "snapshotDetail": "captured {captured} / partial {partial} / missing {missing}; coverage {coverage}", - "delivery": "Delivery failures", - "deliveryDetail": "sent {sent}; fallback {fallback}; outbound failed {outboundFailed}", - "next": "Next", - "latest": "Latest callback: {time}", + "snapshotDetail": "captured {captured} / partial {partial} / missing {missing};覆蓋 {coverage}", + "delivery": "送達失敗", + "deliveryDetail": "sent {sent};fallback {fallback};outbound failed {outboundFailed}", + "next": "下一步", + "latest": "最新 callback:{time}", "statuses": { - "captured": "Captured", - "partial": "Partially captured", - "not_captured": "Not captured", - "no_callback": "No callback yet", - "observed": "Recorded" + "captured": "已捕捉", + "partial": "部分捕捉", + "not_captured": "未捕捉", + "no_callback": "尚無 callback", + "observed": "已記錄" }, "traceGapStatuses": { - "clean": "Clean", - "active_gap": "Active gap", - "recent_backlog": "Recent backlog", - "legacy_backlog": "Legacy backlog", - "observed": "Recorded" + "clean": "乾淨", + "active_gap": "新缺口", + "recent_backlog": "近期歷史債", + "legacy_backlog": "歷史待清", + "observed": "已記錄" }, "traceGapNextActions": { - "none": "No follow-up needed", - "inspect_recent_outbound_source_refs": "Inspect outbound source_refs from the last hour", - "watch_24h_decay": "Watch the 24h window decay to zero", - "backfill_or_archive_legacy_callbacks": "Backfill or archive legacy callback gaps", - "observed": "Wait for the next outbound evidence" + "none": "不需補動作", + "inspect_recent_outbound_source_refs": "檢查近 1 小時 outbound source_refs", + "watch_24h_decay": "觀察 24 小時窗口自然歸零", + "backfill_or_archive_legacy_callbacks": "歸檔或回補舊 callback 缺口", + "observed": "等待下一次 outbound evidence" }, "traceGapRecoveryStatuses": { - "not_needed": "Not needed", - "recovered_after_gap": "Recovered", - "no_recovery_signal": "No recovery signal yet", - "observed": "Recorded" + "not_needed": "不需要", + "recovered_after_gap": "已復原", + "no_recovery_signal": "尚無復原訊號", + "observed": "已記錄" }, "nextActions": { - "none": "No follow-up needed", - "press_telegram_detail_or_history": "Press Telegram Detail / History once to create callback evidence", - "press_telegram_detail_or_history_after_rollout": "Press Telegram Detail / History again to capture the new snapshot", - "review_legacy_callback_snapshot_gap": "New callbacks are captured; legacy missing snapshots do not need another press", - "review_outbound_source_refs": "Review outbound source_refs gaps", - "observed": "Wait for the next callback evidence" + "none": "不需補動作", + "press_telegram_detail_or_history": "按一次 Telegram 詳情 / 歷史產生 callback evidence", + "press_telegram_detail_or_history_after_rollout": "重新按 Telegram 詳情 / 歷史補新版 snapshot", + "review_legacy_callback_snapshot_gap": "新版已捕捉;舊 callback 缺 snapshot 不需重複按", + "review_outbound_source_refs": "檢查 outbound source_refs 缺口", + "observed": "等待下一次 callback evidence" } }, - "action": "Action: {action}", - "incident": "Incident: {incidentId}", - "sendStatus": "Send status: {status}", - "providerMessage": "Message: {messageId}", - "previewEmpty": "No preview", - "openRun": "Open Run", - "awooopSnapshotTitle": "Callback-time AwoooP Status Chain", + "action": "動作:{action}", + "incident": "Incident:{incidentId}", + "sendStatus": "送訊狀態:{status}", + "providerMessage": "Message:{messageId}", + "previewEmpty": "無摘要", + "openRun": "開啟 Run", + "awooopSnapshotTitle": "Callback 當下 AwoooP 狀態鏈", "awooopSnapshotMcp": "MCP:total {total} / success {success} / failed {failed} / blocked {blocked};top {topTool}", - "awooopSnapshotExecution": "Execution: executor {executor}; playbook {playbook}; Ansible considered={ansible} / candidates={candidates}", - "awooopSnapshotSource": "Source: {status}; direct {direct} / candidate {candidate} / applied {applied}; {providers}", + "awooopSnapshotExecution": "Execution:executor {executor};playbook {playbook};Ansible considered={ansible} / candidates={candidates}", + "awooopSnapshotSource": "Source:{status};direct {direct} / candidate {candidate} / applied {applied};{providers}", "capture": { - "title": "Evidence Capture Status", - "captured": "Captured: {items}", - "missing": "Missing: {items}", - "nextAction": "Next action: {action}", - "reason": "reason={reason}; rollout={rollout}", - "none": "None", + "title": "Evidence Capture 狀態", + "captured": "已捕捉:{items}", + "missing": "尚缺:{items}", + "nextAction": "下一步:{action}", + "reason": "reason={reason};rollout={rollout}", + "none": "無", "statuses": { - "captured": "Captured", - "partial": "Partially captured", - "not_captured": "Not captured", - "observed": "Recorded" + "captured": "已捕捉", + "partial": "部分捕捉", + "not_captured": "未捕捉", + "observed": "已記錄" }, "items": { - "awooopStatusChain": "AwoooP status chain", + "awooopStatusChain": "AwoooP 狀態鏈", "kmCompletionSummary": "KM owner-review snapshot" }, "nextActions": { - "none": "No follow-up needed", - "press_telegram_detail_or_history_after_rollout": "Press Telegram Detail / History again to create a new callback snapshot", - "observed": "Wait for the next callback evidence" + "none": "不需補動作", + "press_telegram_detail_or_history_after_rollout": "重新按 Telegram 詳情 / 歷史,產生新版 callback snapshot", + "observed": "等待下一次 callback evidence" } }, "kmCompletion": { "title": "KM Owner Review", - "status": "Status: {status}", + "status": "狀態:{status}", "counts": "ready {ready} / blocked {blocked} / completed {completed} / failed {failed}", - "guardrail": "Guardrail: writes_on_read={writesOnRead}; batch_writes_allowed={batchWrite}; manual_review_required={manualReview}", + "guardrail": "Guardrail:writes_on_read={writesOnRead};batch_writes_allowed={batchWrite};manual_review_required={manualReview}", "related": "{entryId} · {readiness} · {nextAction}", - "noRelated": "This incident has no matching owner-review completion item yet.", - "fetchFailed": "KM owner-review summary failed to load: {reason}", - "openWorkItem": "Open work item", - "snapshotTitle": "Callback-time Evidence Snapshot", - "snapshotStatus": "Snapshot status: {status}; ready {ready} / blocked {blocked} / completed {completed} / failed {failed}", - "snapshotFlow": "Snapshot flow: {stage}; match: {strategy}", - "snapshotAutomation": "Snapshot automation: lead {lead}; state {state}; safe auto-repair={safe}; blocker {blocker}", - "triageFlow": "Flow: {stage}; match: {strategy}", - "triageAgents": "Lead: {lead}; support: {support}", - "triageAutomation": "Automation: {state}; safe auto-repair={safe}", - "triageBlocker": "Blocker: {reason}", + "noRelated": "本 Incident 尚未對到 owner-review completion item。", + "fetchFailed": "KM owner-review 摘要讀取失敗:{reason}", + "openWorkItem": "開啟工作項", + "snapshotTitle": "Callback 當下 Evidence Snapshot", + "snapshotStatus": "當下狀態:{status};ready {ready} / blocked {blocked} / completed {completed} / failed {failed}", + "snapshotFlow": "當下流程:{stage};匹配:{strategy}", + "snapshotAutomation": "當下自動化:主責 {lead};狀態 {state};可安全自動修復={safe};卡點 {blocker}", + "triageFlow": "流程:{stage};匹配:{strategy}", + "triageAgents": "主責:{lead};協作:{support}", + "triageAutomation": "自動化:{state};可安全自動修復={safe}", + "triageBlocker": "卡點:{reason}", "statuses": { - "matched_owner_review": "Matched owner review", - "no_related_owner_review": "No matched owner review", - "fetch_failed": "Fetch failed", - "no_incident": "Missing incident", - "observed": "Recorded" + "matched_owner_review": "已匹配 owner review", + "no_related_owner_review": "未匹配 owner review", + "fetch_failed": "讀取失敗", + "no_incident": "缺少 Incident", + "observed": "已記錄" } } } }, "aiRouteStatus": { - "title": "AI Provider Routing", - "subtitle": "Current policy and health checks across GCP-A, GCP-B, 111, and Gemini handoff order", - "selected": "Active: {provider}", - "selectedEmpty": "Active: --", - "empty": "AI provider route status is not available yet.", - "error": "AI provider route failed to load: {error}", + "title": "AI Provider 路由", + "subtitle": "目前策略與健康檢查,顯示 GCP-A、GCP-B、111、Gemini 的接手順序", + "selected": "使用中:{provider}", + "selectedEmpty": "使用中:--", + "empty": "尚未取得 AI provider route 狀態。", + "error": "AI provider route 載入失敗:{error}", "badges": { - "active": "Active", - "skipped": "Skipped", - "standby": "Standby" + "active": "使用中", + "skipped": "已跳過", + "standby": "備援" }, "fields": { "workload": "Workload", - "laneMode": "Lane state", - "primary": "Current handoff", - "reason": "Route Reason", - "checkedAt": "Checked at {time}", - "model": "Model: {model}", - "modelEmpty": "Model: --", - "routeError": "Route check failed: {error}", - "health": "Health: {status}", - "latency": "Latency: {latency}", - "noUrl": "No HTTP URL" + "laneMode": "Lane 狀態", + "primary": "目前接手", + "reason": "路由原因", + "checkedAt": "檢查時間 {time}", + "model": "Model:{model}", + "modelEmpty": "Model:--", + "routeError": "路由檢查失敗:{error}", + "health": "健康:{status}", + "latency": "延遲:{latency}", + "noUrl": "無 HTTP URL" }, "health": { - "healthy": "Healthy", - "slow": "Slow", - "degraded": "Degraded", - "offline": "Offline", - "not_checked": "Standby not checked", - "unknown": "Unknown" + "healthy": "健康", + "slow": "偏慢", + "degraded": "降級", + "offline": "離線", + "not_checked": "待命未檢查", + "unknown": "未知" }, "roles": { - "primary": "First priority", - "secondary": "Second priority", - "local_fallback": "111 local fallback", - "final_fallback": "Gemini final fallback", - "ollama": "Ollama node" + "primary": "第一順位", + "secondary": "第二順位", + "local_fallback": "111 本機備援", + "final_fallback": "Gemini 最終備援", + "ollama": "Ollama 節點" }, "laneModes": { - "primary": "Primary normal", - "degraded_failover": "Degraded handoff", - "cloud_fallback": "Cloud final fallback", - "unavailable": "Route unavailable", - "unknown": "Unknown state" + "primary": "Primary 正常", + "degraded_failover": "降級接手中", + "cloud_fallback": "雲端最終備援", + "unavailable": "路由不可用", + "unknown": "狀態未知" }, "operatorActions": { - "monitor": "Monitor only", - "repair_skipped_primary_lane": "Repair the skipped primary lane", - "restore_ollama_lanes": "Restore Ollama lanes before relying on cloud only", - "inspect_ai_router": "Inspect AI Router / provider status", - "unknown": "Confirm next action" + "monitor": "持續監控即可", + "repair_skipped_primary_lane": "需修復被跳過的 Primary lane", + "restore_ollama_lanes": "需恢復 Ollama lanes,避免只剩雲端", + "inspect_ai_router": "需檢查 AI Router / provider 狀態", + "unknown": "待確認下一步" }, - "degradedSummary": "Current handoff is {active}; skipped {skipped}; next action: {action}", + "degradedSummary": "目前由 {active} 接手;已跳過 {skipped};下一步:{action}", "repairEvidence": { - "title": "Latest repair diagnosis evidence", - "meta": "Event info", - "target": "Target: {target}", - "run": "Run: {run}", - "receivedAt": "Stored: {time}", - "sourceRefs": "{count} source refs", - "blockerTitle": "Current blockers", - "sideEffectTitle": "Side-effect check", - "sideEffectSeparator": ": ", + "title": "最新修復診斷證據", + "meta": "事件資訊", + "target": "目標:{target}", + "run": "Run:{run}", + "receivedAt": "入庫:{time}", + "sourceRefs": "來源證據 {count} 筆", + "blockerTitle": "目前阻塞", + "sideEffectTitle": "副作用檢查", + "sideEffectSeparator": ":", "emptyValue": "--", "values": { - "yes": "yes", - "no": "no", - "unknown": "not reported" + "yes": "有", + "no": "無", + "unknown": "未回報" }, "sideEffects": { - "incident_created": "Incident created", - "telegram_sent": "Telegram sent", - "approval_created": "Approval created", - "runtime_route_changed": "Runtime route changed" + "incident_created": "建立 Incident", + "telegram_sent": "送出 Telegram", + "approval_created": "建立簽核", + "runtime_route_changed": "變更 runtime route" }, "blockers": { - "gcloud_compute_instances_get_missing": "Missing GCP instance get permission", - "gcloud_compute_instances_list_missing": "Missing GCP instance list permission", - "gcloud_projects_get_iam_policy_missing": "Missing GCP IAM read permission", - "gcp_a_ssh_refused": "GCP-A SSH refused", - "gcp_a_ollama_11434_refused": "GCP-A Ollama 11434 refused", - "proxy_110_11435_http_502": "110 proxy 11435 returned 502", + "gcloud_compute_instances_get_missing": "缺 GCP instance get 權限", + "gcloud_compute_instances_list_missing": "缺 GCP instance list 權限", + "gcloud_projects_get_iam_policy_missing": "缺 GCP IAM 讀取權限", + "gcp_a_ssh_refused": "GCP-A SSH 拒絕連線", + "gcp_a_ollama_11434_refused": "GCP-A Ollama 11434 拒絕", + "proxy_110_11435_http_502": "110 proxy 11435 回 502", "unknown": "{blocker}" }, "probes": { @@ -3618,36 +3622,36 @@ }, "incidentEvidence": { "title": "事件證據", - "subtitle": "Telegram, Run, Approval, and Work Item share the same remediation evidence", + "subtitle": "Telegram、Run、Approval 與 Work Item 共用同一組補救證據", "empty": "--", "incidentLabel": "Incident", - "notLinked": "No Incident linked", - "filterTitle": "Show only {incidentId}", - "more": "+{count} more", + "notLinked": "尚未關聯 Incident", + "filterTitle": "只看 {incidentId}", + "more": "+{count} 筆", "dryRuns": "試跑", - "route": "MCP Route", - "writes": "Write flags", + "route": "MCP 路由", + "writes": "寫入旗標", "writeFlags": "incident={incident} / autoRepair={autoRepair}", "runLink": "執行時間線" }, "statusChain": { - "title": "AwoooP Status Chain", - "subtitle": "Source {source}; Source ID {sourceId}", - "empty": "This item is not linked to readable 真相鏈 / ADR-100 history yet.", + "title": "AwoooP 狀態鏈", + "subtitle": "來源 {source};Source ID {sourceId}", + "empty": "此項目尚未連到可判讀的 真相鏈 / ADR-100 history。", "emptyValue": "--", - "blockers": "Blockers", + "blockers": "卡點", "writeFlags": "incident={incident} / autoRepair={autoRepair}", "human": { - "yes": "Needs human", - "no": "No human gate" + "yes": "需人工", + "no": "不需人工" }, "fields": { - "stage": "Stage", - "repair": "AI Repair", - "verification": "Verification", - "nextStep": "Next Step", - "writes": "Write Flags", - "verdict": "Verdict" + "stage": "階段", + "repair": "AI 修復", + "verification": "驗證", + "nextStep": "下一步", + "writes": "寫入旗標", + "verdict": "判定" }, "evidence": { "autoRepair": "Auto-repair", @@ -3657,14 +3661,14 @@ "adr100": "ADR-100 Route" }, "outcome": { - "summary": "Outcome", - "notification": "Human Notification Channels", - "reason": "Human Reason" + "summary": "處置結論", + "notification": "人工通知通道", + "reason": "人工原因" }, "toolchain": { - "title": "AI Agent Evidence Chain", - "mcp": "MCP / Custom MCP", - "mcpValue": "Gateway {success}/{total}, failed {failed}, blocked {blocked}", + "title": "AI Agent 證據鏈", + "mcp": "MCP / 自建 MCP", + "mcpValue": "Gateway {success}/{total},失敗 {failed},阻擋 {blocked}", "mcpDetail": "top={topTool}; first-class={firstClass}; legacy={legacy}; policy={policy}", "source": "Sentry / SigNoz", "sourceValue": "{status}; direct {direct}, candidate {candidate}, applied {applied}", @@ -3680,348 +3684,348 @@ "learningDetail": "verification={verification}; next={nextStep}" }, "source": { - "status": "Source 連結", - "verification": "Status-chain Verification", + "status": "來源關聯", + "verification": "狀態鏈驗證", "directCandidate": "Direct / Candidate / Applied", "directCandidateValue": "{direct} / {candidate} / {applied}", - "latestApplied": "Latest Applied Event", + "latestApplied": "最新套用事件", "providers": "Provider", "flow": { - "providerIngress": "Provider Ingress", - "sourceEvidence": "Source Evidence", - "appliedVerification": "Applied-link Verification", + "providerIngress": "Provider 接收", + "sourceEvidence": "來源證據", + "appliedVerification": "套用關聯驗證", "providerDetail": "provider events={providerEvents}; ready providers={readyProviders}", "verificationDetail": "latest={latest}", "status": { - "ready": "ready", - "waiting": "waiting", - "needsReview": "needs review", - "applied": "applied" + "ready": "已接收", + "waiting": "等待資料", + "needsReview": "待審核", + "applied": "已套用" } }, "statuses": { - "linked": "Directly linked", - "candidateFound": "Candidate found", - "providerFreshNoMatch": "Provider fresh, no match", - "missing": "No match yet", - "noIncidentContext": "Missing incident context", - "fetchFailed": "Read failed" + "linked": "已直接關聯", + "candidateFound": "找到候選", + "providerFreshNoMatch": "Provider 新鮮但未匹配", + "missing": "尚無匹配", + "noIncidentContext": "缺 Incident 脈絡", + "fetchFailed": "讀取失敗" }, "verificationStatuses": { - "appliedLinkVerified": "Applied and verified", - "directRefVerified": "Direct ref verified", - "candidateOnly": "Candidate only", - "providerFreshNoMatch": "Provider fresh, no match", - "missing": "No match yet", - "noIncidentContext": "Missing incident context", - "fetchFailed": "Read failed" + "appliedLinkVerified": "已套用且驗證", + "directRefVerified": "直接關聯已驗證", + "candidateOnly": "僅候選,待確認", + "providerFreshNoMatch": "Provider 新鮮但未匹配", + "missing": "尚無匹配", + "noIncidentContext": "缺 Incident 脈絡", + "fetchFailed": "讀取失敗" } } }, "tenants": { "securityTenantScopeCandidate": { - "title": "IwoooS Tenant Security 範圍 Read-only Candidate", - "subtitle": "Tenant management only displays the protection scope for the AWOOOI first tenant and the IwoooS security mirror. This is not a migration mode change and does not modify tenant policy.", - "badge": "Tenant scope", - "scopeRefsTitle": "Read-only scope refs", - "boundaryLabel": "Tenant Boundary", - "boundaryTitle": "No tenant settings are changeable here", - "boundaryDetail": "This panel does not change migration mode, modify tenant policy, write to the platform tenants API, call GitHub / Gitea / Kali, or add scan, execute, deploy, primary switch, or refs actions.", - "openIwooos": "Open IwoooS", + "title": "IwoooS 租戶資安範圍只讀候選", + "subtitle": "租戶管理只顯示 AWOOOI 第一租戶與 IwoooS 資安鏡像的保護範圍;這不是租戶遷移模式變更,也不會改租戶政策。", + "badge": "租戶範圍", + "scopeRefsTitle": "只讀範圍參照", + "boundaryLabel": "租戶邊界", + "boundaryTitle": "目前沒有租戶設定可變更", + "boundaryDetail": "這個面板不變更租戶遷移模式、不改租戶政策、不寫入平台租戶 API、不呼叫 GitHub / Gitea / Kali,也不新增掃描、執行、部署、主要來源切換或分支 / 標籤參照動作。", + "openIwooos": "開啟 IwoooS", "metrics": { - "primaryTenant": "Primary Tenant", - "primaryTenantDetail": "AWOOOI is the first runtime tenant in AwoooP. This only displays scope and does not change settings.", - "securityEntry": "Security Entry", - "securityEntryDetail": "IwoooS remains the read-only Information Security entrypoint and posture mirror.", - "hostCoverage": "Host coverage", - "hostCoverageDetail": "Kali 112, Dev 168, and Dev 111 are in observe-only view.", - "policyMutations": "Tenant policy changes", - "policyMutationsDetail": "Currently 0. Do not change policy before 負責人回覆 and a 執行期閘門." + "primaryTenant": "第一租戶", + "primaryTenantDetail": "AWOOOI 是 AwoooP 的第一個執行期租戶;此處只顯示範圍,不改設定。", + "securityEntry": "資安入口", + "securityEntryDetail": "IwoooS 仍是資訊安全的只讀入口與態勢鏡像。", + "hostCoverage": "主機覆蓋", + "hostCoverageDetail": "Kali 112、開發主機 168、開發主機 111 已納入只觀察視野。", + "policyMutations": "租戶政策變更", + "policyMutationsDetail": "目前為 0;負責人回覆與執行期閘門前不得改政策。" }, "scopeRefs": { - "awoooiTenant": "Under the AwoooP platform identity, AWOOOI remains the first tenant / runtime host, not a synonym for the whole platform.", - "iwooosMirror": "IwoooS displays security mirror posture, progress, evidence refs, and forbidden actions.", - "hostCoverage": "The three named hosts are included only for security visibility and evidence readiness; no SSH, updates, credentialed scans, or blocking controls are performed.", - "ownerResponse": "S4.9-S4.12 負責人回覆 已收到 / 已接受 remain 0. Tenant scope display is not approval." + "awoooiTenant": "AwoooP 平台身分下,AWOOOI 仍是第一個租戶 / 執行期主機,不是全平台的同義詞。", + "iwooosMirror": "IwoooS 顯示資安鏡像態勢、進度、證據參照與禁止動作。", + "hostCoverage": "三台指定主機目前只納入資安視野與證據就緒度;不做 SSH、更新、憑證式掃描或阻擋型控制。", + "ownerResponse": "S4.9-S4.12 負責人回覆已收到 / 已接受仍為 0,租戶範圍顯示不等於批准。" } }, "githubTenantReadinessScope": { - "title": "GitHub 主要來源就緒度 Tenant 範圍", - "subtitle": "Tenant management mirrors the source-control owner scope gap between the AWOOOI first tenant and the Gitea-to-GitHub path. This is not tenant policy, repo creation, or primary switch authorization.", - "badge": "Read-only scope", - "openIwooos": "Open IwoooS", - "scopeRefsTitle": "Owner 範圍 Refs", - "boundaryLabel": "Tenant / GitHub Boundary", - "boundaryTitle": "Tenant scope still waits for 負責人回覆", - "boundaryDetail": "This panel only displays the relation between tenant scope and source-control readiness. It does not change tenant migration mode, modify tenant policy, create GitHub repos, mutate refs, collect 機密明文值s, switch primary, or disable Gitea.", + "title": "GitHub 主要來源就緒度租戶範圍", + "subtitle": "租戶管理同步顯示 AWOOOI 第一租戶與 Gitea 轉 GitHub 的原始碼管控負責人範圍缺口;這不是租戶政策、專案庫建立或主要來源切換授權。", + "badge": "只讀範圍", + "openIwooos": "開啟 IwoooS", + "scopeRefsTitle": "負責人範圍參照", + "boundaryLabel": "租戶 / GitHub 邊界", + "boundaryTitle": "租戶範圍仍等待負責人回覆", + "boundaryDetail": "這個面板只呈現租戶與原始碼管控就緒度的對應關係;不變更租戶遷移模式、不改租戶政策、不建立 GitHub 專案庫、不改分支 / 標籤參照、不收機密明文值、不切主要來源,也不停用 Gitea。", "metrics": { "candidateRepos": { "label": "候選專案庫", - "detail": "8 candidate repos are scope visibility only and do not authorize GitHub repo creation." + "detail": "8 個候選專案庫只作為範圍可見性,不代表可建立 GitHub 專案庫。" }, "inScopeRepos": { "label": "範圍內專案庫", - "detail": "7 repos still require owner scope decision and source-control response." + "detail": "7 個專案庫仍需負責人範圍決策與原始碼管控回覆。" }, "ownerResponses": { - "label": "Owner Responses", - "detail": "22 response templates remain 0 received / 0 accepted." + "label": "負責人回覆", + "detail": "22 個回覆範本仍為 0 已收到 / 0 已接受。" }, "tenantScopeChanges": { - "label": "Tenant 範圍 Changes", - "detail": "Currently 0. Readiness display must not change tenant policy or migration mode." + "label": "租戶範圍變更", + "detail": "目前為 0;不得因顯示就緒度而改租戶政策或遷移模式。" } }, "scopeRefs": { - "tenantSourceScope": "The AWOOOI first tenant only maps to source-control readiness scope; it does not mean the whole platform or GitHub primary is accepted.", - "giteaInventoryOwner": "S4.9 still waits for Gitea inventory owner attestation. Repo scope must not be filled as accepted before coverage is accepted.", - "githubTargetOwner": "S4.10 still waits for GitHub target owner decision. Do not create repos or change visibility before the target owner accepts.", - "workflowSecretOwner": "S4.12 only waits for 工作流程 / 機密 name 負責人回覆. Secret values must not be collected and GitHub 機密設定 must not be changed." + "tenantSourceScope": "AWOOOI 第一租戶只對應原始碼管控就緒範圍,不代表全平台或 GitHub 主要來源已接受。", + "giteaInventoryOwner": "S4.9 仍等待 Gitea 清冊負責人證明;覆蓋範圍接受前不得補寫專案庫範圍。", + "githubTargetOwner": "S4.10 仍等待 GitHub 目標負責人決策;目標負責人未接受前不得建立專案庫或改可見性。", + "workflowSecretOwner": "S4.12 只等待工作流程 / 機密名稱負責人回覆;仍不得收機密明文值或修改 GitHub 機密設定。" } }, "ownerResponseValidationScope": { - "title": "Owner Response Validation Tenant 範圍", - "subtitle": "Tenant management mirrors that the AWOOOI first tenant is still waiting for the S4.13 validation rollup and S4.9-S4.12 source response packets. This is not tenant policy, repo, refs, 工作流程 / 機密, or runtime authorization.", - "badge": "Read-only validation scope", - "openIwooos": "Open IwoooS", - "scopeRefsTitle": "Tenant Validation Refs", - "boundaryLabel": "Tenant Validation Boundary", - "boundaryTitle": "No tenant policy changes can be applied here", - "boundaryDetail": "This panel only displays four packets, 22 response templates, 已收到 / 已接受 / rejected still at 0, and the validation scope understandable by the AWOOOI first tenant. It does not modify tenant policy, create repos, mutate refs, modify workflows / 機密設定, collect 機密明文值s, switch primary, or open 執行期閘門s.", + "title": "負責人回覆驗收租戶範圍", + "subtitle": "租戶管理同步顯示 AWOOOI 第一租戶仍等待 S4.13 驗收彙整與 S4.9-S4.12 四包來源回覆;這不是租戶政策、專案庫、分支 / 標籤參照、工作流程 / 機密設定或執行期授權。", + "badge": "只讀驗收範圍", + "openIwooos": "開啟 IwoooS", + "scopeRefsTitle": "租戶驗收參照", + "boundaryLabel": "租戶驗收邊界", + "boundaryTitle": "目前沒有可套用的租戶政策變更", + "boundaryDetail": "這個面板只顯示四包、22 個回覆範本、已收到 / 已接受 / 已拒收仍為 0,以及 AWOOOI 第一租戶可理解的驗收範圍;不改租戶政策、不建立專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不開執行期閘門。", "metrics": { - "packets": "Response Packets", - "packetsDetail": "S4.9-S4.12 four packets still wait for 負責人回覆.", - "templates": "Response Templates", - "templatesDetail": "22 templates only describe future intake format. They do not mean sent, received, or accepted.", - "received": "Received", - "receivedDetail": "Still 0. Tenant scope visibility must not rewrite intake state.", - "accepted": "Accepted", - "acceptedDetail": "Still 0. It can change only after redacted evidence passes validation.", - "tenantPolicyChanges": "Tenant Policy Changes", - "tenantPolicyChangesDetail": "Still 0. Tenant policy and migration mode must not change before validation.", - "displaySections": "Display Sections", - "displaySectionsDetail": "8 display sections explain how tenants should understand validation flow and boundaries." + "packets": "回覆包", + "packetsDetail": "S4.9-S4.12 四包仍等待負責人回覆。", + "templates": "回覆範本", + "templatesDetail": "22 個範本只代表未來可收件格式,不代表已送出、已收到或已接受。", + "received": "已收到", + "receivedDetail": "目前仍為 0;租戶範圍可見不得改寫收件狀態。", + "accepted": "已接受", + "acceptedDetail": "目前仍為 0;只有脫敏證據通過驗收後才能改變。", + "tenantPolicyChanges": "租戶政策變更", + "tenantPolicyChangesDetail": "目前仍為 0;驗收前不得改租戶政策或遷移模式。", + "displaySections": "顯示區塊", + "displaySectionsDetail": "8 個顯示區塊只用於說明租戶如何理解驗收流程與邊界。" }, "scopeRefs": { "validationRollup": { - "title": "S4.13 Validation Rollup", - "detail": "Fixes four packets, cross-packet validation, evidence routing, reviewer checklist, and result lanes without creating tenant policy changes." + "title": "S4.13 驗收彙整", + "detail": "固定四包、跨包驗收、證據路由、審查清單與結果分流,但不產生租戶政策變更。" }, "giteaAttestation": { - "title": "S4.9 Gitea Inventory Owner Attestation", - "detail": "5 templates still wait for 負責人回覆. The tenant can only see the next intake focus." + "title": "S4.9 Gitea 清冊負責人證明", + "detail": "5 個範本仍等待負責人回覆;租戶只能看到下一個收件焦點。" }, "githubTarget": { - "title": "S4.10 GitHub Target Owner Decision", - "detail": "7 target owner / visibility / standard responses remain unaccepted. Repos must not be created automatically." + "title": "S4.10 GitHub 目標負責人決策", + "detail": "7 個目標負責人 / 可見性 / 標準回覆仍未接受,不得自動建立專案庫。" }, "refsTruth": { - "title": "S4.11 Ref Truth Owner Response", - "detail": "5 truth decision groups still wait for redacted responses. Refs must not be synced, deleted, or force-pushed." + "title": "S4.11 分支 / 標籤真相負責人回覆", + "detail": "5 類真相判定仍等待脫敏回覆,不得同步、刪除或強制推送分支 / 標籤參照。" }, "workflowSecret": { - "title": "S4.12 Workflow / Secret Name Owner Response", - "detail": "5 name and redacted evidence groups still wait for response. Only name inventory is allowed, not 機密明文值s." + "title": "S4.12 工作流程 / 機密名稱負責人回覆", + "detail": "5 類名稱與脫敏證據仍等待回覆;只允許名稱清冊,不允許機密明文值。" } } } }, "runs": { "securityRunStateCandidate": { - "title": "IwoooS 執行狀態 Read-only Candidate", - "subtitle": "執行監控 only shows how the security mirror can be understood from the AwoooP Run view. This is not run_created and does not connect an execution router.", - "badge": "執行狀態 candidate", - "runRefsTitle": "Read-only run refs", + "title": "IwoooS 執行狀態只讀候選", + "subtitle": "執行監控只顯示資安鏡像可以被 AwoooP 執行視角理解;這不是已建立執行紀錄,也不會接上執行路由器。", + "badge": "執行狀態候選", + "runRefsTitle": "只讀執行參照", "boundaryLabel": "執行邊界", - "boundaryTitle": "No security Run is executable here", - "boundaryDetail": "This panel does not create a platform run, connect an execution router, call GitHub / Gitea / Kali, or add scan, execute, repair, deploy, primary switch, or refs actions.", - "openIwooos": "Open IwoooS", + "boundaryTitle": "目前沒有資安執行可啟動", + "boundaryDetail": "這個面板不建立平台執行紀錄、不接執行路由器、不呼叫 GitHub / Gitea / Kali,也不新增掃描、執行、修復、部署、主要來源切換或分支 / 標籤參照動作。", + "openIwooos": "開啟 IwoooS", "metrics": { - "visibility": "執行可視狀態", - "visibilityValue": "read-only", - "visibilityDetail": "Projects the security mirror into 執行監控 language only. It does not create a real runtime run.", - "runtimeRuns": "資安執行紀錄", - "runtimeRunsDetail": "Currently 0. S2.58 is display-candidate only and does not create a run record.", - "activeGates": "主動執行期閘門", - "activeGatesDetail": "Still 0. Runtime gates need separate approval, rollback, and 後檢證據.", + "visibility": "執行可見性", + "visibilityValue": "只讀", + "visibilityDetail": "只把資安鏡像投影到執行監控語境,不建立真正執行期動作。", + "runtimeRuns": "資安執行數", + "runtimeRunsDetail": "目前為 0;S2.58 只做顯示候選,不建立執行紀錄。", + "activeGates": "主動執行閘門", + "activeGatesDetail": "仍為 0;執行期閘門需獨立批准、回滾與後驗證證據。", "ownerResponse": "負責人已接受", - "ownerResponseDetail": "S4.9-S4.12 負責人回覆 accepted remains 0. Run display is not completed intake." + "ownerResponseDetail": "S4.9-S4.12 負責人回覆已接受仍為 0,執行顯示不等於收件完成。" }, "runRefs": { - "mirrorRunState": "AwoooP 執行監控 can understand the security mirror, but only as a read-only candidate.", - "readOnlyDryRun": "If future 試跑證據 appears, it must still preserve read-only and human-gate semantics.", - "ownerResponse": "負責人回覆 已收到 / 已接受 remain 0, so any further Run movement waits for human intake.", - "activeGates": "主動執行期閘門 remain 0. Do not open gates or create 操作按鈕s from 執行監控." + "mirrorRunState": "AwoooP 執行監控可以理解資安鏡像,但只能當只讀候選。", + "readOnlyDryRun": "若未來產生試跑證據,也必須維持只讀與人工閘門語義。", + "ownerResponse": "負責人回覆已收到 / 已接受仍為 0,任何執行進一步行動都要等待人工收件。", + "activeGates": "主動執行期閘門仍為 0,不從執行監控頁開閘門或建立動作按鈕。" } }, "githubRunReadinessBoundary": { - "title": "GitHub 主要來源就緒度 執行邊界", - "subtitle": "執行監控 mirrors that GitHub primary readiness still cannot create a security run. This is not platform run, execution router, repo creation, or primary switch authorization.", - "badge": "Run boundary", - "openIwooos": "Open IwoooS", - "runRefsTitle": "GitHub Readiness Run Refs", + "title": "GitHub 主要來源就緒度執行邊界", + "subtitle": "執行監控同步顯示 GitHub 主要來源就緒度仍不可產生資安執行;這不是平台執行、執行路由器、專案庫建立或主要來源切換授權。", + "badge": "執行邊界", + "openIwooos": "開啟 IwoooS", + "runRefsTitle": "GitHub 就緒度執行參照", "boundaryLabel": "GitHub / 執行邊界", - "boundaryTitle": "No GitHub primary run is executable", - "boundaryDetail": "This panel only projects source-control readiness into 執行監控 language. It does not create platform runs, connect an execution router, create GitHub repos, mutate refs, change workflows / 機密設定, collect 機密明文值s, switch primary, or disable Gitea.", + "boundaryTitle": "目前沒有 GitHub 主要來源執行可啟動", + "boundaryDetail": "這個面板只把原始碼管控就緒度投影到執行監控語境;不建立平台執行、不接執行路由器、不建立 GitHub 專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不停用 Gitea。", "metrics": { "candidateRepos": { "label": "候選專案庫", - "detail": "8 candidate repos are readiness visibility only and do not create GitHub repo creation runs." + "detail": "8 個候選專案庫只顯示就緒度,不會產生 GitHub 專案庫建立執行。" }, "inScopeRepos": { "label": "範圍內專案庫", - "detail": "7 repos still wait for 負責人回覆. 執行監控 must not open tasks for them." + "detail": "7 個專案庫仍等待負責人回覆;執行監控不得替它們開任務。" }, "securityRuns": { - "label": "GitHub Security Runs", - "detail": "Currently 0. Readiness visibility is not platform run creation." + "label": "GitHub 資安執行數", + "detail": "目前為 0;就緒度可見不等於已建立平台執行。" }, "ownerResponses": { - "label": "Owner Responses", - "detail": "22 response templates remain 0 received / 0 accepted." + "label": "負責人回覆", + "detail": "22 個回覆範本仍為 0 已收到 / 0 已接受。" }, "workflowInventory": { "label": "工作流程清冊", - "detail": "工作流程 / 機密 name inventory is still incomplete for 7 repos." + "detail": "7 個專案庫的工作流程 / 機密名稱清冊仍未完成。" } }, "runRefs": { - "primaryReadiness": "The primary readiness gate still reports ready=0 and cannot become a GitHub primary run.", - "ownerValidation": "The 負責人回覆 validation rollup is still 0/22 and must not be autofilled as accepted by 執行監控.", - "workflowInventory": "工作流程 / 機密 name inventory only collects names and routing. It does not collect 機密明文值s or modify GitHub 機密設定.", - "rollbackAdr": "The rollback ADR has no owner-approved dry-run, so no primary switch run can start." + "primaryReadiness": "主要來源就緒度閘門仍顯示 ready=0,不能轉成 GitHub 主要來源執行。", + "ownerValidation": "負責人回覆驗證彙總仍是 0/22,不能被執行監控自動補成已接受。", + "workflowInventory": "工作流程 / 機密名稱清冊仍只收集名稱與路由,不收機密明文值、不修改 GitHub 機密設定。", + "rollbackAdr": "Rollback ADR 尚未完成負責人批准試跑,因此不能啟動主要來源切換執行。" } }, "ownerResponseValidationRunBoundary": { - "title": "Owner Response Validation 執行邊界", - "subtitle": "執行監控 mirrors that the S4.13 validation rollup and S4.9-S4.12 four source response packets are read-only. This is not platform run, execution router, approval record, repo, refs, 工作流程 / 機密, or runtime authorization.", - "badge": "Read-only run boundary", - "openIwooos": "Open IwoooS", - "runRefsTitle": "Run Validation Refs", - "boundaryLabel": "Validation / 執行邊界", - "boundaryTitle": "No 負責人回覆 validation run is executable", - "boundaryDetail": "This panel only displays four packets, 22 response templates, 已收到 / 已接受 / rejected still at 0, and the validation boundary understandable by 執行監控. It does not create platform runs, connect an execution router, create approval records, create repos, mutate refs, modify workflows / 機密設定, collect 機密明文值s, switch primary, or open 執行期閘門s.", + "title": "負責人回覆驗收執行邊界", + "subtitle": "執行監控同步顯示 S4.13 驗收彙整與 S4.9-S4.12 四包來源回覆仍只可讀;這不是平台執行、執行路由器、審批紀錄、專案庫、分支 / 標籤參照、工作流程 / 機密設定或執行期授權。", + "badge": "只讀執行邊界", + "openIwooos": "開啟 IwoooS", + "runRefsTitle": "執行驗收參照", + "boundaryLabel": "驗收 / 執行邊界", + "boundaryTitle": "目前沒有負責人回覆驗收執行可啟動", + "boundaryDetail": "這個面板只顯示四包、22 個回覆範本、已收到 / 已接受 / 已拒收仍為 0,以及執行監控可理解的驗收邊界;不建立平台執行、不接執行路由器、不建立審批紀錄、不建立專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不開執行期閘門。", "metrics": { - "packets": "Response Packets", - "packetsDetail": "S4.9-S4.12 four packets still wait for 負責人回覆.", - "templates": "Response Templates", - "templatesDetail": "22 templates only describe future intake format. They do not mean sent, received, or accepted.", - "received": "Received", - "receivedDetail": "Still 0. 執行監控 visibility must not rewrite intake state.", - "accepted": "Accepted", - "acceptedDetail": "Still 0. It can change only after redacted evidence passes validation.", - "securityRuns": "Security Runs", - "securityRunsDetail": "Still 0. Validation boundary visibility is not platform run creation.", - "displaySections": "Display Sections", - "displaySectionsDetail": "8 display sections explain how 執行監控 should understand validation flow and boundaries." + "packets": "回覆包", + "packetsDetail": "S4.9-S4.12 四包仍等待負責人回覆。", + "templates": "回覆範本", + "templatesDetail": "22 個範本只代表未來可收件格式,不代表已送出、已收到或已接受。", + "received": "已收到", + "receivedDetail": "目前仍為 0;執行監控不得把可見性改寫成收件狀態。", + "accepted": "已接受", + "acceptedDetail": "目前仍為 0;只有脫敏證據通過驗收後才能改變。", + "securityRuns": "資安執行數", + "securityRunsDetail": "目前仍為 0;驗收邊界可見不等於建立平台執行。", + "displaySections": "顯示區塊", + "displaySectionsDetail": "8 個顯示區塊只用於說明執行監控如何理解驗收流程與邊界。" }, "runRefs": { "validationRollup": { - "title": "S4.13 Validation Rollup", - "detail": "Fixes four packets, cross-packet validation, evidence routing, reviewer checklist, and result lanes without creating platform runs." + "title": "S4.13 驗收彙整", + "detail": "固定四包、跨包驗收、證據路由、審查清單與結果分流,但不產生平台執行。" }, "giteaAttestation": { - "title": "S4.9 Gitea Inventory Owner Attestation", - "detail": "5 templates still wait for 負責人回覆. 執行監控 can only see the next intake focus." + "title": "S4.9 Gitea 清冊負責人證明", + "detail": "5 個範本仍等待負責人回覆;執行監控只能看到下一個收件焦點。" }, "githubTarget": { - "title": "S4.10 GitHub Target Owner Decision", - "detail": "7 target owner / visibility / standard responses remain unaccepted. Repos or run records must not be created automatically." + "title": "S4.10 GitHub 目標負責人決策", + "detail": "7 個目標負責人 / 可見性 / 標準回覆仍未接受,不得自動建立專案庫或執行紀錄。" }, "refsTruth": { - "title": "S4.11 Ref Truth Owner Response", - "detail": "5 truth decision groups still wait for redacted responses. Refs must not be synced, deleted, or force-pushed." + "title": "S4.11 分支 / 標籤真相負責人回覆", + "detail": "5 類真相判定仍等待脫敏回覆,不得同步、刪除或強制推送分支 / 標籤參照。" }, "workflowSecret": { - "title": "S4.12 Workflow / Secret Name Owner Response", - "detail": "5 name and redacted evidence groups still wait for response. Only name inventory is allowed, not 機密明文值s." + "title": "S4.12 工作流程 / 機密名稱負責人回覆", + "detail": "5 類名稱與脫敏證據仍等待回覆;只允許名稱清冊,不允許機密明文值。" } } } }, "contracts": { "securityContractCandidate": { - "title": "IwoooS Security Contract Read-only Candidate", - "subtitle": "The contract dashboard only shows the schema, snapshot, and guard semantics that IwoooS / security mirror currently depends on. This is not contract publishing and does not trigger a 執行期閘門.", - "badge": "Contract candidate", - "contractRefsTitle": "Read-only contract refs", - "boundaryLabel": "Contract Boundary", - "boundaryTitle": "No security contract is publishable here", - "boundaryDetail": "This panel does not publish contract revisions, change contract lifecycle, write to the platform contracts API, call GitHub / Gitea / Kali, or add scan, execute, deploy, primary switch, or refs actions.", - "openIwooos": "Open IwoooS", + "title": "IwoooS 資安契約只讀候選", + "subtitle": "合約儀表板只顯示 IwoooS / 資安鏡像目前依賴的結構定義、快照與防護檢查口徑;這不是合約發布,也不會觸發執行期閘門。", + "badge": "契約候選", + "contractRefsTitle": "只讀合約參照", + "boundaryLabel": "合約邊界", + "boundaryTitle": "目前沒有可發布的資安合約", + "boundaryDetail": "這個面板不發布合約版次、不改合約生命週期、不寫入平台合約 API、不呼叫 GitHub / Gitea / Kali,也不新增掃描、執行、部署、主要來源切換或分支 / 標籤參照動作。", + "openIwooos": "開啟 IwoooS", "metrics": { - "totalContracts": "Total contracts", - "totalContractsDetail": "Security mirror currently rolls up 36 primary contracts.", - "readyForMirror": "可進鏡像", - "readyForMirrorDetail": "33 ready, 2 partial, 1 contract-only, and 0 blocked.", - "partialReady": "Partial", - "partialReadyDetail": "Remaining gaps are 負責人回覆, payload ingestion, and source-control owner evidence.", - "activeRuntimeGates": "主動執行期閘門", - "activeRuntimeGatesDetail": "Still 0; contract visibility is not runtime enforcement." + "totalContracts": "合約總數", + "totalContractsDetail": "資安鏡像目前彙整 36 個主要合約。", + "readyForMirror": "鏡像就緒", + "readyForMirrorDetail": "33 個已就緒、2 個部分就緒、1 個僅契約、0 個阻擋。", + "partialReady": "部分就緒", + "partialReadyDetail": "缺口仍集中在負責人回覆、資料匯入與原始碼管控負責人證據。", + "activeRuntimeGates": "主動執行閘門", + "activeRuntimeGatesDetail": "仍為 0;合約可見性不等於執行期強制控管。" }, "contractRefs": { - "statusRollup": "The shared state entrypoint for AwoooP and the Security Session; it only rolls up progress and safe gates.", - "postureProjection": "The projection contract for IwoooS posture, host coverage, 負責人回覆 focus, and forbidden actions.", - "ownerValidation": "The S4.9-S4.12 負責人回覆 已收到 / 已接受 separation and reviewer check semantics.", - "rolloutPolicy": "The low-friction, observe-first rollout policy with owner review before blocking." + "statusRollup": "AwoooP / 資安工作階段的共同狀態入口,只彙整進度與安全閘門。", + "postureProjection": "IwoooS 前端態勢、主機覆蓋、負責人回覆焦點與禁止動作的投影契約。", + "ownerValidation": "S4.9-S4.12 負責人回覆已收到 / 已接受分離與審查者檢查口徑。", + "rolloutPolicy": "低摩擦、先觀測、封鎖前先由負責人審查的推出政策。" } }, "githubPrimaryReadinessCandidate": { - "title": "GitHub 主要來源就緒度 Contract Read-only Candidate", - "subtitle": "The contract dashboard mirrors the Gitea-to-GitHub readiness contract refs, owner-response gaps, and non-execution boundaries. This is not repo creation, refs mutation, secret collection, or primary-switch authorization.", - "badge": "GitHub readiness", - "contractRefsTitle": "Primary readiness contract refs", - "boundaryLabel": "Source-control Boundary", - "boundaryTitle": "No GitHub primary is switchable here", - "boundaryDetail": "This panel only displays candidate repos, in-scope repos, primary-ready state, 負責人回覆s, and 工作流程 / 機密-name inventory gaps. It does not create GitHub repos, change visibility, sync / delete / force-push refs, collect 機密明文值s, switch primary, disable Gitea, or trigger 執行期閘門s.", - "openIwooos": "Open IwoooS", + "title": "GitHub 主要來源就緒度合約只讀候選", + "subtitle": "合約儀表板同步顯示 Gitea 轉 GitHub 的就緒度合約參照、負責人回覆缺口與不可執行邊界;這不是專案庫建立、分支 / 標籤參照變更、機密收集或主要來源切換授權。", + "badge": "GitHub 就緒度", + "contractRefsTitle": "主要來源就緒度合約參照", + "boundaryLabel": "原始碼管控邊界", + "boundaryTitle": "目前沒有可切換的 GitHub 主要來源", + "boundaryDetail": "這個面板只顯示候選專案庫、範圍內專案庫、主要來源就緒數、負責人回覆與工作流程 / 機密名稱清冊缺口;不建立 GitHub 專案庫、不改可見性、不同步 / 刪除 / 強制推送分支或標籤參照、不收機密明文值、不切主要來源、不停用 Gitea,也不觸發執行期閘門。", + "openIwooos": "開啟 IwoooS", "metrics": { "candidateRepos": "候選專案庫", - "candidateReposDetail": "S4.0 currently tracks 8 GitHub primary readiness candidates.", - "inScopeRepos": "In-scope", - "inScopeReposDetail": "7 still need owner / visibility / canonical / rollback evidence.", - "primaryReady": "主要來源已就緒", - "primaryReadyDetail": "Still 0; visible readiness is not primary cutover approval.", + "candidateReposDetail": "S4.0 目前追蹤 8 個 GitHub 主要來源就緒度候選。", + "inScopeRepos": "範圍內專案庫", + "inScopeReposDetail": "7 個仍需負責人、可見性、主來源與回復證據。", + "primaryReady": "主要來源就緒數", + "primaryReadyDetail": "仍為 0;就緒度可見不等於已可切主要來源。", "ownerResponses": "負責人回覆", - "ownerResponsesDetail": "The 22 S4.9-S4.12 response templates remain 0 已收到 / 已接受.", + "ownerResponsesDetail": "S4.9-S4.12 共 22 個回覆範本仍為 0 已收到 / 0 已接受。", "workflowInventory": "工作流程清冊", - "workflowInventoryDetail": "工作流程 / 機密-name inventory remains incomplete for the 7 in-scope repos." + "workflowInventoryDetail": "7 個範圍內專案庫的工作流程 / 機密名稱清冊仍未完成。" }, "contractRefs": { - "primaryReadiness": "The main readiness gate for GitHub primary parity, owner, refs, workflow, and rollback prerequisites.", - "ownerValidation": "Received / accepted / rejected separation plus reviewer checks for the four owner-response packets.", - "rollbackAdr": "Rollback ADR drafts, owner review, and validation windows for the 7 in-scope repos.", - "workflowInventory": "Workflow, runner, deploy-key, branch-protection, CODEOWNERS, and secret-name inventory; names only, never values.", - "postureProjection": "The IwoooS frontend projection for the GitHub readiness board and forbidden actions." + "primaryReadiness": "GitHub 主要來源一致性、負責人、分支 / 標籤參照、工作流程與回復前置缺口的主就緒度閘門。", + "ownerValidation": "四包負責人回覆的已收到 / 已接受 / 已拒收分離與審查者檢查口徑。", + "rollbackAdr": "7 個範圍內專案庫的回復 ADR 草案、負責人審查與驗證窗口。", + "workflowInventory": "工作流程、執行器、部署金鑰、分支保護、CODEOWNERS 與機密名稱清冊;只收名稱不收明文值。", + "postureProjection": "IwoooS 用來呈現 GitHub 就緒度狀態板與禁止動作的前端投影。" } }, "ownerResponseValidationCandidate": { - "title": "Owner Response Validation Contract Read-only Candidate", - "subtitle": "The contract dashboard mirrors the S4.13 負責人回覆 validation rollup and four source intake packets. This is not received 負責人回覆, an approval record, repo / refs / workflow action, or runtime authorization.", - "badge": "Validation candidate", - "contractRefsTitle": "負責人回覆 validation contract refs", - "boundaryLabel": "Validation Boundary", - "boundaryTitle": "No validation result is publishable or executable here", - "boundaryDetail": "This panel only displays the four packets, 22 response templates, 已收到 / 已接受 / rejected counters at 0, and AwoooP display sections. It does not create approval records, create repos, mutate refs, modify workflows / 機密設定, collect 機密明文值s, switch primary, or open 執行期閘門s.", - "openIwooos": "Open IwoooS", + "title": "負責人回覆驗收契約只讀候選", + "subtitle": "合約儀表板同步顯示 S4.13 負責人回覆驗收彙整與四個來源收件包;這不是負責人回覆已收到、審批紀錄、專案庫 / 分支與標籤參照 / 工作流程動作或執行期授權。", + "badge": "驗收候選", + "contractRefsTitle": "負責人回覆驗收合約參照", + "boundaryLabel": "驗收邊界", + "boundaryTitle": "目前沒有可發布或可執行的驗收結果", + "boundaryDetail": "這個面板只顯示四包、22 個回覆範本、收件 / 接受 / 拒收仍為 0,以及 AwoooP 可顯示的驗收區塊;不建立審批紀錄、不建立專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不開執行期閘門。", + "openIwooos": "開啟 IwoooS", "metrics": { - "packets": "Packets", - "packetsDetail": "The S4.9-S4.12 packets are still waiting for 負責人回覆.", - "templates": "Templates", - "templatesDetail": "22 templates only define intake shape; they are not sent or accepted responses.", - "received": "Received", - "receivedDetail": "Still 0; visible work items or contracts must not rewrite intake state.", - "accepted": "Accepted", - "acceptedDetail": "Still 0; only redacted evidence that passes validation can change this.", - "displaySections": "Display sections", - "displaySectionsDetail": "8 AwoooP display sections explain validation flow and boundaries only." + "packets": "回覆包", + "packetsDetail": "S4.9-S4.12 四包都仍在等待負責人回覆。", + "templates": "回覆範本", + "templatesDetail": "22 個範本只代表可收件格式,不代表已送出或已接受。", + "received": "已收到", + "receivedDetail": "目前仍為 0;工作項或合約可見性不得改寫收件狀態。", + "accepted": "已接受", + "acceptedDetail": "目前仍為 0;只有脫敏 evidence 通過驗收後才能改變。", + "displaySections": "顯示區塊", + "displaySectionsDetail": "8 個 AwoooP 顯示區塊只用於說明驗收流程與邊界。" }, "contractRefs": { - "validationRollup": "The S4.13 four-packet validation rollup that keeps 已收到 / 已接受 / rejected and reviewer checks separate.", - "giteaAttestation": "The S4.9 Gitea inventory owner attestation packet; five templates are still not received.", - "githubTarget": "The S4.10 GitHub target owner decision packet; seven templates are still not accepted.", - "refsTruth": "The S4.11 refs truth 負責人回覆 packet; classification must not become refs action authorization.", - "workflowSecret": "The S4.12 工作流程 / 機密-name 負責人回覆 packet; names and redacted evidence only, never 機密明文值s." + "validationRollup": "S4.13 的四包驗收總覽,固定已收到 / 已接受 / 已拒收分離與審查者檢查口徑。", + "giteaAttestation": "S4.9 Gitea 清冊負責人證明收件包;目前 5 個範本仍未收到。", + "githubTarget": "S4.10 GitHub 目標負責人決策收件包;目前 7 個範本仍未接受。", + "refsTruth": "S4.11 分支 / 標籤真相負責人回覆收件包;不得把分類視為分支 / 標籤參照動作授權。", + "workflowSecret": "S4.12 工作流程 / 機密名稱負責人回覆收件包;只允許名稱與脫敏證據,不允許機密明文值。" } } }, @@ -4050,499 +4054,499 @@ } }, "securityOwnerResponseGate": { - "title": "IwoooS Owner Response Read-only Review Focus", - "subtitle": "The AwoooP approval queue only shows the next human intake focus for S4.9-S4.12 負責人回覆. This is not an approval record and does not open a 執行期閘門.", - "badge": "Read-only focus", - "ownerChecksTitle": "負責人回覆 intake order", - "boundaryLabel": "Approval Boundary", - "boundaryTitle": "There is still nothing to approve here", - "boundaryDetail": "This panel does not send requests, mark 已收到 / 已接受, create approval records, call GitHub / Gitea / Kali, or add approve, execute, deploy, primary switch, or refs actions.", - "openIwooos": "Open IwoooS", + "title": "IwoooS 負責人回覆只讀審查焦點", + "subtitle": "AwoooP 審批佇列只顯示 S4.9-S4.12 負責人回覆的下一個人工收件焦點;這不是審批紀錄,也不會開執行期閘門。", + "badge": "只讀焦點", + "ownerChecksTitle": "負責人回覆收件順序", + "boundaryLabel": "審批邊界", + "boundaryTitle": "目前仍沒有可核准項目", + "boundaryDetail": "這個面板不送出請求、不標記已收到 / 已接受、不建立審批紀錄、不呼叫 GitHub / Gitea / Kali,也不新增批准、執行、部署、主要來源切換或分支 / 標籤參照動作。", + "openIwooos": "開啟 IwoooS", "metrics": { - "received": "Received", - "receivedDetail": "S4.9-S4.12 負責人回覆 received remains 0.", - "accepted": "Accepted", - "acceptedDetail": "No acceptable redacted owner evidence has been received.", - "activeRuntimeGates": "主動執行期閘門", - "activeRuntimeGatesDetail": "Any 執行期閘門 still needs separate approval plus rollback and 後檢證據.", - "headline": "Overall Security Mesh", + "received": "已收到", + "receivedDetail": "S4.9-S4.12 負責人回覆已收到仍為 0。", + "accepted": "已接受", + "acceptedDetail": "尚未有可接受的脫敏負責人證據。", + "activeRuntimeGates": "主動執行閘門", + "activeRuntimeGatesDetail": "任何執行期閘門仍需獨立批准、回復方案與事後檢查證據。", + "headline": "整體資安網", "headlineDetail": "已因 AwoooP 正式只讀落地證據重估到 61%;下一次仍要靠負責人回覆、執行期閘門或 GitHub 主要來源證據。" }, "checks": { "s49OwnerAttestation": { - "title": "S4.9 Gitea owner attestation", - "detail": "Recommended first intake; needs public-only / local gap, org / user endpoint, 110 adjacent source, canonical owner, and legacy disposition answers." + "title": "S4.9 Gitea 負責人證明", + "detail": "下一個建議先收;需要回覆公開來源限定 / 本地差異、組織 / 使用者端點、110 鄰近來源、標準負責人與舊版處置。" }, "s410GithubTarget": { - "title": "S4.10 GitHub target owner", - "detail": "After S4.9, collect owner / visibility / canonical decisions for the seven GitHub targets." + "title": "S4.10 GitHub 目標負責人", + "detail": "等待 S4.9 之後收斂 7 個 GitHub 目標的負責人 / 可見性 / 標準判定。" }, "s411RefsTruth": { - "title": "S4.11 refs truth 負責人回覆", - "detail": "Wait for redacted owner decisions on main / dev truth, deprecated drift, release tags, and GitHub-only refs." + "title": "S4.11 分支 / 標籤真相負責人回覆", + "detail": "等待負責人對主要 / 開發分支真相、棄用漂移、發布標籤與僅存在於 GitHub 的參照做脫敏判定。" }, "s412WorkflowSecret": { - "title": "S4.12 工作流程 / 機密 names", - "detail": "Wait for redacted owner decisions on webhooks, runners, deploy keys, branch protection / CODEOWNERS, and secret name parity." + "title": "S4.12 工作流程 / 機密名稱", + "detail": "等待負責人對網路鉤子、執行器、部署金鑰、分支保護 / CODEOWNERS 與機密名稱一致性做脫敏判定。" } } }, "githubPrimaryReadinessGate": { - "title": "GitHub 主要來源就緒度 Approval Boundary", - "subtitle": "The approval queue only displays the owner-response gaps that block GitHub primary readiness. This is not GitHub primary approval and does not create repos, mutate refs, collect 機密明文值s, or disable Gitea.", - "badge": "Read-only approval boundary", - "responseLanesTitle": "負責人回覆 lanes", - "boundaryLabel": "GitHub Primary Boundary", - "boundaryTitle": "No primary switch is approvable here", - "boundaryDetail": "This panel only brings the S4.9-S4.12 intake order into the approvals surface. All responses remain received=0 / accepted=0, with no approval record, no GitHub primary switch, no Gitea primary change, and no 執行期閘門.", - "openIwooos": "Open IwoooS", + "title": "GitHub 主要來源就緒度審批邊界", + "subtitle": "審批佇列只顯示 GitHub 主要來源前置負責人回覆缺口;這不是 GitHub 主要來源批准,也不會建立專案庫、改分支 / 標籤參照、收機密明文值或停用 Gitea。", + "badge": "只讀審批邊界", + "responseLanesTitle": "負責人回覆路線", + "boundaryLabel": "GitHub 主要來源邊界", + "boundaryTitle": "目前沒有可批准的主要來源切換", + "boundaryDetail": "這個面板只把 S4.9-S4.12 的收件順序放到審批視野;所有回覆仍為已收到=0 / 已接受=0,不建立審批紀錄、不切 GitHub 主要來源、不改 Gitea 主要來源,也不觸發執行期閘門。", + "openIwooos": "開啟 IwoooS", "metrics": { - "giteaOwner": "Gitea owner", - "giteaOwnerDetail": "The five S4.9 owner attestation items are still not 已收到 / 已接受.", - "githubTargetOwner": "GitHub target owner", - "githubTargetOwnerDetail": "The seven S4.10 target owner / visibility / canonical responses are still not accepted.", - "refsTruth": "Refs truth", - "refsTruthDetail": "The five S4.11 refs truth 負責人回覆s are still not accepted.", - "workflowSecretNames": "工作流程 / 機密 names", - "workflowSecretNamesDetail": "The five S4.12 工作流程 / 機密-name 負責人回覆s are still not accepted.", - "primaryReady": "主要來源已就緒", - "primaryReadyDetail": "Still 0; approvals visibility is not primary cutover approval." + "giteaOwner": "Gitea 負責人", + "giteaOwnerDetail": "S4.9 的 5 個負責人證明項目仍未收到 / 接受。", + "githubTargetOwner": "GitHub 目標負責人", + "githubTargetOwnerDetail": "S4.10 的 7 個目標負責人 / 可見性 / 標準回覆仍未接受。", + "refsTruth": "分支 / 標籤真相", + "refsTruthDetail": "S4.11 的 5 類分支 / 標籤真相負責人回覆仍未接受。", + "workflowSecretNames": "工作流程 / 機密名稱", + "workflowSecretNamesDetail": "S4.12 的 5 類工作流程 / 機密名稱負責人回覆仍未接受。", + "primaryReady": "主要來源就緒數", + "primaryReadyDetail": "仍為 0;審批可見不等於可切主要來源。" }, "responseLanes": { "giteaOwnerAttestation": { - "title": "Gitea inventory owner attestation", - "detail": "First confirm public-only / local gap, org / user endpoint, 110 adjacent source, canonical owner, and legacy disposition." + "title": "Gitea 清冊負責人證明", + "detail": "先確認公開來源限定 / 本地差異、組織 / 使用者端點、110 鄰近來源、標準負責人與舊版處置。" }, "githubTargetOwner": { - "title": "GitHub target owner decision", - "detail": "Then confirm owner, visibility, and canonical target for the seven in-scope targets without creating repos automatically." + "title": "GitHub 目標負責人決策", + "detail": "再確認 7 個範圍內目標的負責人、可見性與標準目標,不自動建立專案庫。" }, "refsTruthOwner": { - "title": "Refs truth 負責人回覆", - "detail": "Next confirm main / dev truth, deprecated drift, release tags, and GitHub-only refs without syncing, deleting, or force-pushing refs." + "title": "分支 / 標籤真相負責人回覆", + "detail": "接著確認主要 / 開發分支真相、棄用漂移、發布標籤與僅存在於 GitHub 的參照,不同步、刪除或強制推送。" }, "workflowSecretOwner": { - "title": "工作流程 / 機密-name 負責人回覆", - "detail": "Finally confirm workflow, runner, deploy key, branch protection, CODEOWNERS, and secret names. Collect names only, never values." + "title": "工作流程 / 機密名稱負責人回覆", + "detail": "最後確認工作流程、執行器、部署金鑰、分支保護、CODEOWNERS 與機密名稱;只收名稱,不收明文值。" } } }, "ownerResponseValidationBoundary": { - "title": "Owner Response Validation Read-only Review Boundary", - "subtitle": "The approval queue mirrors the S4.13 validation rollup and the S4.9-S4.12 source intake packets. This is not received response, accepted response, an approval record, repo action, refs action, 工作流程 / 機密 action, or runtime authorization.", - "badge": "Read-only validation boundary", - "reviewRefsTitle": "Validation and source intake refs", - "boundaryLabel": "Non-approvable boundary", - "boundaryTitle": "No approval record can be created here", - "boundaryDetail": "This panel only displays four packets, 22 response templates, 已收到 / 已接受 / rejected all still 0, and 8 display sections. It does not create approval records, create repos, mutate refs, change workflows / 機密設定, collect 機密明文值s, switch primary, or open 執行期閘門s.", - "openIwooos": "Open IwoooS", + "title": "負責人回覆驗收只讀審查邊界", + "subtitle": "審批佇列同步顯示 S4.13 驗收彙整與 S4.9-S4.12 四個來源收件包;這不是已收到、已接受、審批紀錄、專案庫動作、分支 / 標籤參照動作、工作流程 / 機密設定動作或執行期授權。", + "badge": "只讀驗收邊界", + "reviewRefsTitle": "驗收與來源收件參照", + "boundaryLabel": "不可批准邊界", + "boundaryTitle": "目前沒有可建立的審批紀錄", + "boundaryDetail": "這個面板只顯示四包、22 個回覆範本、已收到 / 已接受 / 已拒收都仍為 0,以及 8 個可顯示區塊;不建立審批紀錄、不建立專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不開執行期閘門。", + "openIwooos": "開啟 IwoooS", "metrics": { - "packets": "Response packets", - "packetsDetail": "S4.9-S4.12 all still wait for 負責人回覆.", - "templates": "Response templates", - "templatesDetail": "The 22 templates are future intake formats only, not sent, received, or accepted responses.", - "received": "Received", - "receivedDetail": "Still 0. Approval queue visibility must not rewrite intake state.", - "accepted": "Accepted", - "acceptedDetail": "Still 0. Only validated redacted evidence can change this.", - "rejected": "Rejected", - "rejectedDetail": "Still 0. Rejection outcomes cannot exist before human validation.", - "displaySections": "Display sections", - "displaySectionsDetail": "The 8 display sections explain validation flow, evidence routing, and boundaries only." + "packets": "回覆包", + "packetsDetail": "S4.9-S4.12 四包仍等待負責人回覆。", + "templates": "回覆範本", + "templatesDetail": "22 個範本只代表未來可收件格式,不代表已送出、已收到或已接受。", + "received": "已收到", + "receivedDetail": "目前仍為 0;審批佇列可見不得改寫收件狀態。", + "accepted": "已接受", + "acceptedDetail": "目前仍為 0;只有脫敏證據通過驗收後才能改變。", + "rejected": "已拒收", + "rejectedDetail": "目前仍為 0;未進入人工驗收前不得產生拒收結果。", + "displaySections": "顯示區塊", + "displaySectionsDetail": "8 個顯示區塊只用於說明驗收流程、證據路由與邊界。" }, "reviewRefs": { "validationRollup": { - "title": "S4.13 validation rollup", - "detail": "Locks packet separation, cross-packet validation, evidence routing, reviewer checklist, and outcome lanes without creating approval records.", + "title": "S4.13 驗收彙整", + "detail": "固定四包、跨包驗收、證據路由、審查清單與結果分流,但不產生審批紀錄。", "contract": "source_control_owner_response_validation_rollup_v1" }, "giteaAttestation": { - "title": "S4.9 Gitea inventory owner attestation", - "detail": "Five templates still wait for 負責人回覆; this can only display the next intake focus.", + "title": "S4.9 Gitea 清冊負責人證明", + "detail": "5 個範本仍等待負責人回覆;目前只能顯示下一個收件焦點。", "contract": "gitea_inventory_owner_attestation_response_v1" }, "githubTarget": { - "title": "S4.10 GitHub target owner decision", - "detail": "Seven target owner / visibility / canonical responses are not accepted and must not create repos automatically.", + "title": "S4.10 GitHub 目標負責人決策", + "detail": "7 個目標負責人 / 可見性 / 標準回覆仍未接受,不得自動建立專案庫。", "contract": "github_target_owner_decision_response_v1" }, "refsTruth": { - "title": "S4.11 refs truth 負責人回覆", - "detail": "Five truth lanes still wait for redacted response and must not sync, delete, or force-push refs.", + "title": "S4.11 分支 / 標籤真相負責人回覆", + "detail": "5 類真相判定仍等待脫敏回覆,不得同步、刪除或強制推送分支 / 標籤參照。", "contract": "source_control_ref_truth_owner_response_v1" }, "workflowSecret": { - "title": "S4.12 工作流程 / 機密-name 負責人回覆", - "detail": "Five name and redacted-evidence lanes still wait for response. Names only, never 機密明文值s.", + "title": "S4.12 工作流程 / 機密名稱負責人回覆", + "detail": "5 類名稱與脫敏證據仍等待回覆;只允許名稱清冊,不允許機密明文值。", "contract": "source_control_workflow_secret_name_owner_response_v1" } } } }, "runDetail": { - "back": "Back to 執行監控", - "title": "Run Disposition 時間線", - "refresh": "Refresh", + "back": "返回執行監控", + "title": "執行處置脈絡", + "refresh": "重新整理", "empty": "--", "durationSeconds": "{seconds}s", "errors": { - "title": "Failed to load run details", - "loadFailed": "Load failed" + "title": "無法載入執行詳情", + "loadFailed": "載入失敗" }, "stats": { - "state": "Current State", + "state": "目前狀態", "timeline": "時間線", - "mcpSteps": "MCP / Steps", - "duration": "Duration" + "mcpSteps": "MCP / 步驟", + "duration": "執行時間" }, "summary": { - "title": "Run Summary", - "project": "Project", - "agent": "Agent", + "title": "執行摘要", + "project": "專案", + "agent": "代理", "traceId": "追蹤 ID", "trigger": "觸發來源", "triggerRef": "觸發參照", - "cost": "Cost", - "attempts": "Attempts", - "created": "Created", - "completed": "Completed", - "error": "Error" + "cost": "成本", + "attempts": "嘗試次數", + "created": "建立時間", + "completed": "完成時間", + "error": "錯誤" }, "timeline": { - "title": "Disposition 時間線", - "lastUpdated": "Last updated {time}", - "count": "{count} items", - "empty": "No timeline records yet." + "title": "處置時間線", + "lastUpdated": "上次更新 {time}", + "count": "{count} 筆", + "empty": "尚無時間線資料。" }, "gateway": { "title": "MCP 閘道", - "emptyState": "No records", - "agent": "Agent", + "emptyState": "尚無紀錄", + "agent": "代理", "tool": "工具", "scope": "範圍", - "blockers": "Blockers", + "blockers": "卡點", "metrics": { - "firstClass": "第一級", + "firstClass": "一級入口", "policy": "政策已套用", "approvalExecutor": "審批執行器", - "legacyBridge": "舊橋接" + "legacyBridge": "舊版橋接" } }, "remediation": { - "title": "Remediation 試跑 Evidence", - "empty": "This run is not linked to ADR-100 remediation dry-run history yet.", - "latest": "Latest dry-run", - "route": "MCP Route", - "preview": "Mode {mode}; preview {preview}", - "writes": "Writes: incident={incident}; autoRepair={autoRepair}", + "title": "補救試跑證據", + "empty": "此執行尚未連到 ADR-100 補救試跑歷史。", + "latest": "最新試跑", + "route": "MCP 路由", + "preview": "模式 {mode};預覽 {preview}", + "writes": "寫入:事件={incident};自動修復={autoRepair}", "status": { - "linked": "連結ed to remediation history", - "empty": "No remediation history" + "linked": "已連到補救歷史", + "empty": "尚無補救歷史" }, "metrics": { - "incidents": "Incident", + "incidents": "事件", "dryRuns": "試跑", "tools": "工具", - "writes": "Write flags" + "writes": "寫入旗標" } }, "dossier": { - "title": "Source Event Dossier", - "empty": "This run is not linked to replayable inbound source events yet.", - "content": "Redacted Content", - "sourceRefs": "Source References", - "duplicate": "Duplicate", - "firstSeen": "First seen", + "title": "來源事件卷宗", + "empty": "此 Run 尚未連到可回放的入站來源事件。", + "content": "脫敏內容", + "sourceRefs": "來源關聯", + "duplicate": "重複事件", + "firstSeen": "首次事件", "status": { - "visible": "Recorded in 真相鏈", - "empty": "No source" + "visible": "已寫入 真相鏈", + "empty": "尚無來源" }, "metrics": { - "sources": "Sources", - "refs": "References", - "redacted": "Redacted", - "duplicates": "Duplicates" + "sources": "來源事件", + "refs": "關聯索引", + "redacted": "已脫敏", + "duplicates": "重複" }, "fields": { - "stage": "Stage", - "severity": "Risk", - "namespace": "Namespace", - "target": "Target", - "hash": "Hash" + "stage": "階段", + "severity": "風險", + "namespace": "命名空間", + "target": "目標", + "hash": "雜湊" }, "refs": { - "alertIds": "Alert", - "approvalIds": "Approval", - "eventIds": "Event", - "fingerprints": "Fingerprint", - "incidentIds": "Incident", + "alertIds": "告警", + "approvalIds": "審批", + "eventIds": "事件", + "fingerprints": "指紋", + "incidentIds": "事件", "sentryIssueIds": "Sentry", "signozAlerts": "SignOz" } }, "action": { - "eyebrow": "Next Decision", + "eyebrow": "下一步判斷", "approval": { - "title": "Waiting for human approval", - "detail": "AI is stopped at the human gate and has not 恢復執行d. Approve or reject from the approval page; every decision is written back to 執行狀態 and audit.", - "primary": "Open approval decision" + "title": "等待人工審批", + "detail": "AI 已停在人工閘門,尚未恢復。請從審批頁核准或拒絕,所有決策都會回寫執行狀態與稽核紀錄。", + "primary": "前往審批決策" }, "manual": { - "title": "Manual handoff required", - "detail": "AI cannot safely close the loop, or execution has failed / timed out. Return to 執行監控 to compare same-project work and hand off to the SRE war room when needed.", - "primary": "Back to 執行監控" + "title": "需人工接手", + "detail": "AI 無法安全閉環,或執行已失敗 / 超時。請回執行監控比對同專案任務,必要時交由 SRE 戰情室處置。", + "primary": "回執行監控" }, "completed": { - "title": "Completed, ready for audit review", - "detail": "The run has converged. Use the timeline to verify MCP calls, outbound messages, and cost records before writing back to KM / Playbook.", - "primary": "Back to 執行監控" + "title": "已完成,等待稽核回看", + "detail": "執行已收斂。請以時間線檢查 MCP、出站訊息與成本紀錄是否完整,必要時再回寫 KM / Playbook。", + "primary": "回執行監控" }, "running": { - "title": "AI is processing", - "detail": "The run is still active and this page refreshes periodically. If it stays running for too long, check heartbeat, MCP latency, and worker state.", - "primary": "Back to 執行監控" + "title": "AI 正在處理", + "detail": "執行尚未結束,頁面會定期刷新。若長時間停留在執行中,請檢查心跳、MCP 延遲與 worker 狀態。", + "primary": "回執行監控" }, "observe": { - "title": "Observing", - "detail": "The run has not reached a human gate or terminal state. Follow the timeline to verify inbound events, tool calls, and outbound messages.", - "primary": "Back to 執行監控" + "title": "觀察中", + "detail": "目前尚未進入人工閘門或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", + "primary": "回執行監控" }, "evidence": { - "inbound": "Inbound", - "outbound": "Outbound", - "mcp": "MCP Calls", - "steps": "Steps" + "inbound": "入站事件", + "outbound": "出站訊息", + "mcp": "MCP 呼叫", + "steps": "步驟" } }, "ownerResponseValidationDetailBoundary": { - "title": "Owner Response Validation Detail Boundary", - "subtitle": "The single-run detail view mirrors the S4.13 validation rollup and S4.9-S4.12 response packets as read-only state; this is not approval, remediation, MCP execution, repo, refs, 工作流程 / 機密, or runtime authorization for this Run.", - "badge": "Read-only detail boundary", - "openIwooos": "Open IwoooS", - "detailRefsTitle": "Detail validation references", - "boundaryLabel": "Validation / detail boundary", - "boundaryTitle": "No owner-response validation detail action can run yet", - "boundaryDetail": "This section only explains how this Run detail understands the four packets, 22 response templates, 已收到 / 已接受 / rejected still at 0, and the gap between validation context and the execution timeline. It does not create approval records, start MCP or remediation, create platform runs, link the execution router, create repos, change refs, modify workflow / 機密設定, collect 機密明文值s, switch the primary source, or open a 執行期閘門.", + "title": "負責人回覆驗收詳情邊界", + "subtitle": "單一執行詳情同步顯示 S4.13 驗收彙整與 S4.9-S4.12 四包來源回覆仍只可讀;這不是此 Run 的審批、補救、MCP 執行、專案庫、分支 / 標籤參照、工作流程 / 機密設定或執行期授權。", + "badge": "只讀詳情邊界", + "openIwooos": "開啟 IwoooS", + "detailRefsTitle": "詳情驗收參照", + "boundaryLabel": "驗收 / 詳情邊界", + "boundaryTitle": "目前沒有負責人回覆驗收詳情可執行動作", + "boundaryDetail": "這個區塊只說明此 Run 詳情如何理解四包、22 個回覆範本、已收到 / 已接受 / 已拒收仍為 0,以及驗收資訊與執行時間線尚未連成授權;不建立審批紀錄、不啟動 MCP 或補救、不建立平台執行、不接執行路由器、不建立專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不開執行期閘門。", "metrics": { "packets": { - "label": "Response packets", - "detail": "S4.9-S4.12 remain waiting for 負責人回覆s." + "label": "回覆包", + "detail": "S4.9-S4.12 四包仍等待負責人回覆。" }, "templates": { - "label": "Response templates", - "detail": "22 templates are future intake formats, not responses received by this Run." + "label": "回覆範本", + "detail": "22 個範本只代表未來可收件格式,不代表此 Run 已收到回覆。" }, "received": { - "label": "Received", - "detail": "Still 0; the detail page must not turn visibility into intake state." + "label": "已收到", + "detail": "目前仍為 0;詳情頁不得把可視性改寫成收件狀態。" }, "accepted": { - "label": "Accepted", - "detail": "Still 0; this can only change after redacted evidence passes validation." + "label": "已接受", + "detail": "目前仍為 0;只有脫敏證據通過驗收後才能改變。" }, "validationRuns": { - "label": "Validation runs", - "detail": "Still 0; this detail card does not create a platform run." + "label": "驗收執行", + "detail": "目前仍為 0;此詳情卡不建立新的平台執行。" }, "displaySections": { - "label": "Display sections", - "detail": "8 sections only explain validation flow and the detail boundary." + "label": "顯示區塊", + "detail": "8 個顯示區塊只用於說明驗收流程與詳情邊界。" } }, "detailRefs": { "validationRollup": { - "title": "S4.13 Validation Rollup", - "detail": "Pins the four packets, cross-packet validation, evidence routing, review checklist, and result lanes, but does not create approval or remediation execution for this Run." + "title": "S4.13 驗收彙整", + "detail": "固定四包、跨包驗收、證據路由、審查清單與結果分流,但不產生此 Run 的審批或補救執行。" }, "giteaAttestation": { - "title": "S4.9 Gitea Inventory Owner Attestation", - "detail": "5 templates still wait for 負責人回覆; the detail page can only mark the next intake focus." + "title": "S4.9 Gitea 清冊負責人證明", + "detail": "5 個範本仍等待負責人回覆;詳情頁只能標記下一個收件焦點。" }, "githubTarget": { - "title": "S4.10 GitHub Target Owner Decision", - "detail": "7 target owner / visibility / standard responses remain unaccepted; repos or execution records must not be created automatically." + "title": "S4.10 GitHub 目標負責人決策", + "detail": "7 個目標負責人 / 可見性 / 標準回覆仍未接受,不得自動建立專案庫或執行紀錄。" }, "refsTruth": { - "title": "S4.11 Refs Truth Owner Response", - "detail": "5 truth categories still wait for redacted responses; refs must not be synced, deleted, or force-pushed." + "title": "S4.11 分支 / 標籤真相負責人回覆", + "detail": "5 類真相判定仍等待脫敏回覆,不得同步、刪除或強制推送分支 / 標籤參照。" }, "workflowSecret": { - "title": "S4.12 Workflow / Secret Name Owner Response", - "detail": "5 name and redacted-evidence categories still wait for responses; only name inventories are allowed, never raw 機密明文值s." + "title": "S4.12 工作流程 / 機密名稱負責人回覆", + "detail": "5 類名稱與脫敏證據仍等待回覆;只允許名稱清冊,不允許機密明文值。" } } }, "statuses": { - "blocked": "Blocked", - "cancelled": "Cancelled", - "completed": "Completed", - "error": "Error", - "failed": "Failed", - "pending": "Pending", - "received": "Received", - "running": "Running", - "sent": "Sent", - "shadow": "Shadow", - "success": "Success", - "timeout": "Timed out", - "warning": "Warning", - "waitingApproval": "Waiting approval" + "blocked": "已阻擋", + "cancelled": "已取消", + "completed": "已完成", + "error": "錯誤", + "failed": "失敗", + "pending": "待執行", + "received": "已接收", + "running": "執行中", + "sent": "已送出", + "shadow": "影子", + "success": "成功", + "timeout": "已超時", + "warning": "警告", + "waitingApproval": "等待審批" } }, "approvalDecision": { - "back": "Back to Approval Queue", - "viewTimeline": "View 執行時間線", - "eyebrow": "Human Approval Gate", - "title": "Approval Decision", - "timeout": "Approval Deadline", + "back": "返回審批佇列", + "viewTimeline": "查看執行時間線", + "eyebrow": "人工審批閘門", + "title": "審批決策", + "timeout": "審批期限", "empty": "--", "errors": { - "title": "Failed to load run data", - "loadFailed": "Load failed", - "missingProject": "Missing project_id; cannot submit approval decision", - "actionFailed": "Action failed" + "title": "無法載入執行資料", + "loadFailed": "載入失敗", + "missingProject": "缺少 project_id,無法送出審批決策", + "actionFailed": "操作失敗" }, "success": { - "approve": "Run approved. Returning to 時間線", - "reject": "Run rejected. Returning to 時間線" + "approve": "執行已核准,正在回到時間線", + "reject": "執行已拒絕,正在回到時間線" }, "notWaiting": { - "title": "This run is not waiting for human approval", - "detail": "Current state is {state}. This page will not show approve / reject; return to 執行時間線 for the latest state." + "title": "此執行目前不在人工審批狀態", + "detail": "目前狀態為 {state}。此頁不會顯示 approve / reject,請回執行時間線檢查最新狀態。" }, "remediation": { - "title": "Remediation 試跑 Evidence", - "empty": "This run is not linked to remediation dry-run history yet; check the 執行時間線 source dossier and MCP 閘道 before approval.", - "latest": "Latest dry-run", - "preview": "Mode {mode}; preview {preview}", - "writes": "Writes: incident={incident}; autoRepair={autoRepair}", + "title": "補救試跑證據", + "empty": "此執行尚未連到補救試跑歷史;核准前仍需回執行時間線檢查來源卷宗與 MCP 閘道。", + "latest": "最新試跑", + "preview": "模式 {mode};預覽 {preview}", + "writes": "寫入:事件={incident};自動修復={autoRepair}", "status": { - "linked": "連結ed to remediation history", - "empty": "No remediation history" + "linked": "已連到補救歷史", + "empty": "尚無補救歷史" }, "metrics": { - "incidents": "Incident", + "incidents": "事件", "dryRuns": "試跑", "tools": "工具" } }, "ownerResponseValidationDecisionBoundary": { - "title": "Owner Response Validation Approval Decision Boundary", - "subtitle": "The approval decision page mirrors the S4.13 validation rollup and S4.9-S4.12 response packets as read-only state; this is not 負責人回覆 acceptance, GitHub primary approval, repo, refs, 工作流程 / 機密, or runtime authorization.", - "badge": "Read-only approval boundary", - "openIwooos": "Open IwoooS", - "decisionRefsTitle": "Approval validation references", - "boundaryLabel": "Validation / approval decision boundary", - "boundaryTitle": "No owner-response validation approval action can run yet", - "boundaryDetail": "This section only explains how the approval decision page understands the four packets, 22 response templates, 已收到 / 已接受 / rejected still at 0, and the separation between approval buttons and owner-response validation. It does not mark 負責人回覆s received or accepted, create security approval records, create platform runs, link the execution router, create repos, change refs, modify workflow / 機密設定, collect 機密明文值s, switch the primary source, or open a 執行期閘門.", + "title": "負責人回覆驗收審批決策邊界", + "subtitle": "審批決策頁同步顯示 S4.13 驗收彙整與 S4.9-S4.12 四包來源回覆仍只可讀;這不是負責人回覆接受、GitHub 主要來源批准、專案庫、分支 / 標籤參照、工作流程 / 機密設定或執行期授權。", + "badge": "只讀審批邊界", + "openIwooos": "開啟 IwoooS", + "decisionRefsTitle": "審批驗收參照", + "boundaryLabel": "驗收 / 審批決策邊界", + "boundaryTitle": "目前沒有負責人回覆驗收審批可執行動作", + "boundaryDetail": "這個區塊只說明審批決策頁如何理解四包、22 個回覆範本、已收到 / 已接受 / 已拒收仍為 0,以及審批按鈕與負責人回覆驗收仍然分離;不標記負責人回覆已收到或已接受、不建立資安審批紀錄、不建立平台執行、不接執行路由器、不建立專案庫、不改分支 / 標籤參照、不改工作流程 / 機密設定、不收機密明文值、不切主要來源,也不開執行期閘門。", "metrics": { "packets": { - "label": "Response packets", - "detail": "S4.9-S4.12 remain waiting for 負責人回覆s." + "label": "回覆包", + "detail": "S4.9-S4.12 四包仍等待負責人回覆。" }, "templates": { - "label": "Response templates", - "detail": "22 templates are future intake formats, not responses accepted by the approval decision." + "label": "回覆範本", + "detail": "22 個範本只代表未來可收件格式,不代表審批決策已接受回覆。" }, "received": { - "label": "Received", - "detail": "Still 0; the approval detail must not turn visibility into intake state." + "label": "已收到", + "detail": "目前仍為 0;審批詳情不得把可視性改寫成收件狀態。" }, "accepted": { - "label": "Accepted", - "detail": "Still 0; this can only change after redacted evidence passes validation." + "label": "已接受", + "detail": "目前仍為 0;只有脫敏證據通過驗收後才能改變。" }, "decisionAcceptance": { - "label": "Decision acceptance", - "detail": "Still 0; approving execution is not accepting 負責人回覆s." + "label": "審批接受", + "detail": "目前仍為 0;核准執行不等於接受負責人回覆。" }, "displaySections": { - "label": "Display sections", - "detail": "8 sections only explain validation flow and the approval boundary." + "label": "顯示區塊", + "detail": "8 個顯示區塊只用於說明驗收流程與審批邊界。" } }, "decisionRefs": { "validationRollup": { - "title": "S4.13 Validation Rollup", - "detail": "Pins the four packets, cross-packet validation, evidence routing, review checklist, and result lanes, but does not create approval acceptance or remediation execution." + "title": "S4.13 驗收彙整", + "detail": "固定四包、跨包驗收、證據路由、審查清單與結果分流,但不產生審批接受或補救執行。" }, "giteaAttestation": { - "title": "S4.9 Gitea Inventory Owner Attestation", - "detail": "5 templates still wait for 負責人回覆; the approval page can only mark the next intake focus." + "title": "S4.9 Gitea 清冊負責人證明", + "detail": "5 個範本仍等待負責人回覆;審批頁只能標記下一個收件焦點。" }, "githubTarget": { - "title": "S4.10 GitHub Target Owner Decision", - "detail": "7 target owner / visibility / standard responses remain unaccepted; repos or primary switches must not be created automatically." + "title": "S4.10 GitHub 目標負責人決策", + "detail": "7 個目標負責人 / 可見性 / 標準回覆仍未接受,不得自動建立專案庫或切主要來源。" }, "refsTruth": { - "title": "S4.11 Refs Truth Owner Response", - "detail": "5 truth categories still wait for redacted responses; refs must not be synced, deleted, or force-pushed." + "title": "S4.11 分支 / 標籤真相負責人回覆", + "detail": "5 類真相判定仍等待脫敏回覆,不得同步、刪除或強制推送分支 / 標籤參照。" }, "workflowSecret": { - "title": "S4.12 Workflow / Secret Name Owner Response", - "detail": "5 name and redacted-evidence categories still wait for responses; only name inventories are allowed, never raw 機密明文值s." + "title": "S4.12 工作流程 / 機密名稱負責人回覆", + "detail": "5 類名稱與脫敏證據仍等待回覆;只允許名稱清冊,不允許機密明文值。" } } }, "details": { - "title": "執行詳情s", - "runId": "Run ID", - "project": "Project", - "agent": "Agent", - "state": "State", + "title": "執行詳情", + "runId": "執行 ID", + "project": "專案", + "agent": "代理", + "state": "狀態", "traceId": "追蹤 ID", "trigger": "觸發來源", "triggerRef": "觸發參照", - "cost": "Cost", - "attempts": "Attempts", - "created": "Created", - "timeout": "Timeout", - "error": "Error", - "empty": "Run data was not found." + "cost": "成本", + "attempts": "嘗試次數", + "created": "建立時間", + "timeout": "逾時", + "error": "錯誤", + "empty": "找不到執行資料。" }, "actions": { - "approve": "Approve", - "reject": "Reject" + "approve": "核准", + "reject": "拒絕" }, "dialog": { - "close": "Close", - "cancel": "Cancel", - "runId": "Run ID:", + "close": "關閉", + "cancel": "取消", + "runId": "執行 ID:", "approve": { - "title": "Confirm Approval", - "body": "After approval, the run 恢復執行s from the human gate and continues through Runtime / MCP 閘道.", - "warning": "This decision is written to 執行狀態, approval token, and 稽核軌跡.", - "confirm": "Confirm Approval" + "title": "確認核准", + "body": "核准後,執行會從人工閘門恢復,繼續交由 Runtime / MCP 閘道 執行。", + "warning": "此決策會寫入執行狀態、approval token 與稽核軌跡。", + "confirm": "確認核准" }, "reject": { - "title": "Confirm Rejection", - "body": "After rejection, the run is cancelled and will not continue automatic execution.", - "reason": "Rejection reason", - "placeholder": "Enter rejection reason...", - "warning": "The reason is written to the 稽核軌跡 for later review in 執行時間線.", - "confirm": "Confirm Rejection" + "title": "確認拒絕", + "body": "拒絕後,執行會被取消,不會繼續自動執行。", + "reason": "拒絕原因", + "placeholder": "請輸入拒絕原因...", + "warning": "拒絕原因會寫入稽核軌跡,供後續稽核與執行時間線回看。", + "confirm": "確認拒絕" } } } }, "runDetail": { - "back": "Back to 執行監控", - "title": "Run Disposition 時間線", - "refresh": "Refresh", + "back": "返回 Run 監控", + "title": "Run 處置脈絡", + "refresh": "重新整理", "empty": "--", "durationSeconds": "{seconds}s", "errors": { - "title": "Failed to load run details", - "loadFailed": "Load failed" + "title": "無法載入 Run 詳情", + "loadFailed": "載入失敗" }, "stats": { - "state": "Current State", + "state": "目前狀態", "timeline": "時間線", "mcpSteps": "MCP / Steps", - "duration": "Duration" + "duration": "執行時間" }, "summary": { - "title": "Run Summary", + "title": "Run 摘要", "project": "Project", "agent": "Agent", "traceId": "追蹤 ID", @@ -4555,24 +4559,24 @@ "error": "Error" }, "timeline": { - "title": "Disposition 時間線", - "lastUpdated": "Last updated {time}", - "count": "{count} items", - "empty": "No timeline records yet." + "title": "處置時間線", + "lastUpdated": "上次更新 {time}", + "count": "{count} 筆", + "empty": "尚無時間線資料。" }, "gateway": { "title": "MCP 閘道", - "emptyState": "No records", + "emptyState": "尚無紀錄", "agent": "Agent", "tool": "工具", "scope": "範圍", - "blockers": "Blockers", + "blockers": "卡點", "legacy": { "only": "Legacy MCP only", "total": "Legacy MCP", - "success": "Legacy success", - "failed": "Legacy failed", - "topTool": "Legacy tool" + "success": "Legacy 成功", + "failed": "Legacy 失敗", + "topTool": "Legacy 工具" }, "metrics": { "firstClass": "第一級", @@ -4582,45 +4586,45 @@ } }, "remediation": { - "title": "Remediation 試跑 Evidence", - "empty": "This run is not linked to ADR-100 remediation dry-run history yet.", - "latest": "Latest dry-run", - "route": "MCP Route", - "preview": "Mode {mode}; preview {preview}", - "writes": "Writes: incident={incident}; autoRepair={autoRepair}", + "title": "補救試跑證據", + "empty": "此 Run 尚未連到 ADR-100 補救試跑歷史。", + "latest": "最新試跑", + "route": "MCP 路由", + "preview": "模式 {mode};預覽 {preview}", + "writes": "寫入:incident={incident};autoRepair={autoRepair}", "status": { - "linked": "連結ed to remediation history", - "empty": "No remediation history" + "linked": "已連到補救歷史", + "empty": "尚無補救歷史" }, "metrics": { "incidents": "Incident", "dryRuns": "試跑", "tools": "工具", - "writes": "Write flags" + "writes": "寫入旗標" } }, "dossier": { - "title": "Source Event Dossier", - "empty": "This run is not linked to replayable inbound source events yet.", - "content": "Redacted Content", - "sourceRefs": "Source References", - "duplicate": "Duplicate", - "firstSeen": "First seen", + "title": "來源事件卷宗", + "empty": "此 Run 尚未連到可回放的入站來源事件。", + "content": "Redacted 內容", + "sourceRefs": "來源關聯", + "duplicate": "重複事件", + "firstSeen": "首次事件", "status": { - "visible": "Recorded in 真相鏈", - "empty": "No source" + "visible": "已寫入 真相鏈", + "empty": "尚無來源" }, "metrics": { - "sources": "Sources", - "refs": "References", + "sources": "來源事件", + "refs": "關聯索引", "redacted": "Redacted", - "duplicates": "Duplicates" + "duplicates": "重複" }, "fields": { - "stage": "Stage", - "severity": "Risk", - "namespace": "Namespace", - "target": "Target", + "stage": "階段", + "severity": "風險", + "namespace": "命名空間", + "target": "目標", "hash": "Hash" }, "refs": { @@ -4634,90 +4638,90 @@ } }, "action": { - "eyebrow": "Next Decision", + "eyebrow": "下一步判斷", "approval": { - "title": "Waiting for human approval", - "detail": "AI is stopped at the human gate and has not 恢復執行d. Approve or reject from the approval page; every decision is written back to 執行狀態 and audit.", - "primary": "Open approval decision" + "title": "等待人工審批", + "detail": "AI 已停在人工閘門,尚未 恢復執行。請從審批頁 approve 或 reject,所有決策都會回寫 執行狀態 與 audit。", + "primary": "前往審批決策" }, "manual": { - "title": "Manual handoff required", - "detail": "AI cannot safely close the loop, or execution has failed / timed out. Return to 執行監控 to compare same-project work and hand off to the SRE war room when needed.", - "primary": "Back to 執行監控" + "title": "需人工接手", + "detail": "AI 無法安全閉環,或執行已失敗 / 超時。請回 Run 監控比對同專案任務,必要時交由 SRE 戰情室處置。", + "primary": "回 Run 監控" }, "completed": { - "title": "Completed, ready for audit review", - "detail": "The run has converged. Use the timeline to verify MCP calls, outbound messages, and cost records before writing back to KM / Playbook.", - "primary": "Back to 執行監控" + "title": "已完成,等待稽核回看", + "detail": "Run 已收斂。請以時間線檢查 MCP、出站訊息與成本紀錄是否完整,必要時再回寫 KM / Playbook。", + "primary": "回 Run 監控" }, "running": { - "title": "AI is processing", - "detail": "The run is still active and this page refreshes periodically. If it stays running for too long, check heartbeat, MCP latency, and worker state.", - "primary": "Back to 執行監控" + "title": "AI 正在處理", + "detail": "Run 尚未結束,頁面會定期刷新。若長時間停留在 running,請檢查 heartbeat、MCP latency 與 worker 狀態。", + "primary": "回 Run 監控" }, "observe": { - "title": "Observing", - "detail": "The run has not reached a human gate or terminal state. Follow the timeline to verify inbound events, tool calls, and outbound messages.", - "primary": "Back to 執行監控" + "title": "觀察中", + "detail": "目前尚未進入人工閘門或終止狀態。請沿時間線確認入站事件、工具呼叫與出站訊息是否有缺口。", + "primary": "回 Run 監控" }, "evidence": { - "inbound": "Inbound", - "outbound": "Outbound", - "mcp": "MCP Calls", + "inbound": "入站事件", + "outbound": "出站訊息", + "mcp": "MCP 呼叫", "steps": "Steps" } }, "statuses": { - "blocked": "Blocked", - "cancelled": "Cancelled", - "completed": "Completed", - "error": "Error", - "failed": "Failed", - "pending": "Pending", - "received": "Received", - "running": "Running", - "sent": "Sent", - "callbackReplySent": "Callback sent", + "blocked": "已阻擋", + "cancelled": "已取消", + "completed": "已完成", + "error": "錯誤", + "failed": "失敗", + "pending": "待執行", + "received": "已接收", + "running": "執行中", + "sent": "已送出", + "callbackReplySent": "Callback 已送出", "callbackReplyFallbackSent": "Callback fallback", - "callbackReplyRescueSent": "Callback rescue", - "callbackReplyFailed": "Callback failed", + "callbackReplyRescueSent": "Callback 救援", + "callbackReplyFailed": "Callback 失敗", "shadow": "Shadow", - "success": "Success", - "timeout": "Timed out", - "warning": "Warning", - "waitingApproval": "Waiting approval" + "success": "成功", + "timeout": "已超時", + "warning": "警告", + "waitingApproval": "等待審批" } }, "approvalDecision": { - "back": "Back to Approval Queue", - "viewTimeline": "View 執行時間線", - "eyebrow": "Human Approval Gate", - "title": "Approval Decision", - "timeout": "Approval Deadline", + "back": "返回審批佇列", + "viewTimeline": "查看 執行時間線", + "eyebrow": "人工審批閘門", + "title": "審批決策", + "timeout": "審批期限", "empty": "--", "errors": { - "title": "Failed to load run data", - "loadFailed": "Load failed", - "missingProject": "Missing project_id; cannot submit approval decision", - "actionFailed": "Action failed" + "title": "無法載入 Run 資料", + "loadFailed": "載入失敗", + "missingProject": "缺少 project_id,無法送出審批決策", + "actionFailed": "操作失敗" }, "success": { - "approve": "Run approved. Returning to 時間線", - "reject": "Run rejected. Returning to 時間線" + "approve": "Run 已核准,正在回到 時間線", + "reject": "Run 已拒絕,正在回到 時間線" }, "notWaiting": { - "title": "This run is not waiting for human approval", - "detail": "Current state is {state}. This page will not show approve / reject; return to 執行時間線 for the latest state." + "title": "此 Run 目前不在人工審批狀態", + "detail": "目前狀態為 {state}。此頁不會顯示 approve / reject,請回 執行時間線 檢查最新狀態。" }, "remediation": { - "title": "Remediation 試跑 Evidence", - "empty": "This run is not linked to remediation dry-run history yet; check the 執行時間線 source dossier and MCP 閘道 before approval.", - "latest": "Latest dry-run", - "preview": "Mode {mode}; preview {preview}", - "writes": "Writes: incident={incident}; autoRepair={autoRepair}", + "title": "補救試跑證據", + "empty": "此 Run 尚未連到補救試跑歷史;核准前仍需回 執行時間線 檢查來源卷宗與 MCP 閘道。", + "latest": "最新試跑", + "preview": "模式 {mode};預覽 {preview}", + "writes": "寫入:incident={incident};autoRepair={autoRepair}", "status": { - "linked": "連結ed to remediation history", - "empty": "No remediation history" + "linked": "已連到補救歷史", + "empty": "尚無補救歷史" }, "metrics": { "incidents": "Incident", @@ -4726,11 +4730,11 @@ } }, "details": { - "title": "執行詳情s", + "title": "Run 詳情", "runId": "Run ID", "project": "Project", "agent": "Agent", - "state": "State", + "state": "狀態", "traceId": "追蹤 ID", "trigger": "觸發來源", "triggerRef": "觸發參照", @@ -4739,29 +4743,29 @@ "created": "Created", "timeout": "Timeout", "error": "Error", - "empty": "Run data was not found." + "empty": "找不到 Run 資料。" }, "actions": { - "approve": "Approve", - "reject": "Reject" + "approve": "核准", + "reject": "拒絕" }, "dialog": { - "close": "Close", - "cancel": "Cancel", + "close": "關閉", + "cancel": "取消", "runId": "Run ID:", "approve": { - "title": "Confirm Approval", - "body": "After approval, the run 恢復執行s from the human gate and continues through Runtime / MCP 閘道.", - "warning": "This decision is written to 執行狀態, approval token, and 稽核軌跡.", - "confirm": "Confirm Approval" + "title": "確認核准", + "body": "核准後,執行會從人工閘門 恢復執行,繼續交由 Runtime / MCP 閘道 執行。", + "warning": "此決策會寫入 執行狀態、approval token 與 稽核軌跡。", + "confirm": "確認核准" }, "reject": { - "title": "Confirm Rejection", - "body": "After rejection, the run is cancelled and will not continue automatic execution.", - "reason": "Rejection reason", - "placeholder": "Enter rejection reason...", - "warning": "The reason is written to the 稽核軌跡 for later review in 執行時間線.", - "confirm": "Confirm Rejection" + "title": "確認拒絕", + "body": "拒絕後,執行會被取消,不會繼續自動執行。", + "reason": "拒絕原因", + "placeholder": "請輸入拒絕原因...", + "warning": "拒絕原因會寫入 稽核軌跡,供後續稽核與 執行時間線 回看。", + "confirm": "確認拒絕" } } }, @@ -4783,7 +4787,7 @@ "authority": { "eyebrow": "短版結論", "title": "IwoooS 是資安主控台;安全合規是熟悉入口", - "body": "這裡先讓使用者看懂入口關係,再把完整總覽交給 IwoooS。現階段仍是只讀、Gate 0,不啟動掃描、修復、批准或部署。", + "body": "這裡先讓使用者看懂入口關係,再把完整總覽交給 IwoooS。現階段仍是只讀、閘門 0,不啟動掃描、修復、批准或部署。", "open": "前往 IwoooS 主控台", "signals": { "source": { @@ -4871,38 +4875,38 @@ "boundary": { "label": "目前邊界", "state": "只讀鏡像 / 先觀測", - "detail": "所有數字來自已驗證 snapshot 與 guard。此頁只顯示態勢、缺口、下一個 gate 與非阻擋分流。" + "detail": "所有數字來自已驗證 snapshot 與 guard。此頁只顯示態勢、缺口、下一個 閘門 與非阻擋分流。" }, "informationArchitecture": { "overview": { "title": "一眼看懂", - "summary": "預設只展開 headline、下一個 gate、進度移動條件與目前仍鎖住的邊界。" + "summary": "預設只展開 重點、下一個 閘門、進度移動條件與目前仍鎖住的邊界。" }, "frontStage": { "title": "前台入口與既有資安頁", - "summary": "整合安全合規、告警、授權、治理、稽核與 Code Review 的只讀入口。" + "summary": "整合安全合規、告警、授權、治理、稽核與 程式碼審查 的只讀入口。" }, "progressPath": { "title": "下一步與阻塞解除", - "summary": "集中顯示低摩擦 rollout、非阻擋分流、第一個可讓 61% 往前的證據路徑。" + "summary": "集中顯示低摩擦 分階段套用、非阻擋分流、第一個可讓 61% 往前的證據路徑。" }, "ownerEvidence": { "title": "版本來源與負責人回覆", - "summary": "保留 Gitea / GitHub owner response、S4.9 收件、預檢與人工決策證據。" + "summary": "保留 Gitea / GitHub 負責人回覆、S4.9 收件、預檢與人工決策證據。" }, "awooopVersion": { "title": "AwoooP 只讀落地與版本證據", - "summary": "收納產品 rollout、AwoooP production landing、evidence wiring 與跨 Session 交接。" + "summary": "收納產品 分階段套用、AwoooP 正式環境落地、證據接線 與跨 Session 交接。" }, "hostKali": { "title": "主機與 Kali 邊界", - "summary": "將 192.168.0.112 / 111 / 168 的 observe-only、收件與人工決策證據收在進階區。" + "summary": "將 192.168.0.112 / 111 / 168 的 僅觀察、收件與人工決策證據收在進階區。" } }, "metrics": { "overall": { "label": "整體資安網", - "detail": "headline 進度,不是授權" + "detail": "重點 進度,不是授權" }, "framework": { "label": "框架成熟度", @@ -4914,7 +4918,7 @@ }, "contracts": { "label": "主要契約", - "detail": "33 ready / 2 partial / 1 contract-only" + "detail": "33 就緒 / 2 partial / 1 contract-only" }, "activeGates": { "label": "主動執行閘門", @@ -4923,9 +4927,9 @@ }, "allProductCoverageSnapshot": { "title": "全產品只讀套用快照", - "subtitle": "先回答最常被問的問題:所有專案產品都套用 IwoooS 資安框架,但目前只套可視化、證據欄位與人工 gate,不套掃描、修復、部署或阻擋控制。", + "subtitle": "先回答最常被問的問題:所有專案產品都套用 IwoooS 資安框架,但目前只套可視化、證據欄位與人工 閘門,不套掃描、修復、部署或阻擋控制。", "boundaryTitle": "快照邊界", - "boundaryIntro": "以下鍵值固定:預設區只顯示 compact snapshot;完整三軸明細與 rollout 台帳保留在進階區,runtime ready 仍是 0。", + "boundaryIntro": "以下鍵值固定:預設區只顯示 compact snapshot;完整三軸明細與 分階段套用 台帳保留在進階區,runtime 就緒 仍是 0。", "summary": { "scopeCount": { "label": "產品範圍", @@ -4936,12 +4940,12 @@ "detail": "六類都先套只讀治理與低摩擦可視化。" }, "runtimeReady": { - "label": "runtime ready", - "detail": "目前 0;未經人工 gate 不進執行期。" + "label": "runtime 就緒", + "detail": "目前 0;未經人工 閘門 不進執行期。" }, "nextGate": { - "label": "下一 gate", - "detail": "第一個可推進 gate 仍是 S4.9 owner response accepted。" + "label": "下一 閘門", + "detail": "第一個可推進 閘門 仍是 S4.9 負責人回覆 已接受。" } }, "states": { @@ -4963,15 +4967,15 @@ }, "sourceControl": { "title": "GitHub / Gitea 專案庫", - "body": "只顯示 primary readiness、refs truth、workflow / secret 名稱證據。" + "body": "只顯示 主要來源就緒度、refs 真相、工作流程 / 機密 名稱證據。" }, "hosts": { "title": "Kali 與開發主機", - "body": "192.168.0.112 / 111 / 168 只進 observe-only coverage。" + "body": "192.168.0.112 / 111 / 168 只進 僅觀察 coverage。" }, "toolsMonitoring": { "title": "監控、工具與自動化", - "body": "只顯示 metadata-only evidence、阻塞解除條件與人工 gate。" + "body": "只顯示 僅中繼資料證據、阻塞解除條件與人工 閘門。" }, "futureProducts": { "title": "未來新增產品", @@ -4982,7 +4986,7 @@ "stageCompletionReport": { "title": "階段完成回報", "subtitle": "每一輪完成後都把正式證據、進度邊界與下一步固定在首頁,讓使用者不用翻對話也能理解目前資安工作推到哪裡。", - "boundary": "本階段只更新可見回報與證據索引:headline_percent=61;framework=86-88%;runtime_landing=40-45%;active_runtime_gate_count=0;runtime_execution_authorized=false;repo_creation_authorized=false。", + "boundary": "本階段只更新可見回報與證據索引:重點_percent=61;framework=86-88%;runtime_landing=40-45%;active_runtime_閘門_count=0;runtime_execution_authorized=false;repo_creation_authorized=false。", "items": { "stageClosed": { "title": "本階段已收斂", @@ -4994,11 +4998,11 @@ }, "progressBoundary": { "title": "整體進度邊界", - "body": "目前整體 61%,框架 86-88%,落地 40-45%。下一次進度要靠 owner response、脫敏證據或批准 gate。" + "body": "目前整體 61%,框架 86-88%,落地 40-45%。下一次進度要靠 負責人回覆、脫敏證據或批准 閘門。" }, "runtimeBoundary": { "title": "執行期仍關閉", - "body": "Kali、主機、repo、workflow 與 GitHub primary 仍停在 observe / readiness;不因前端顯示而取得執行權。" + "body": "Kali、主機、repo、工作流程 與 GitHub primary 仍停在 observe / readiness;不因前端顯示而取得執行權。" } } }, @@ -5007,27 +5011,27 @@ "subtitle": "把 61% 往下一階段推進需要的工作拆成四件事;這裡只顯示任務與完成條件,不送出請求、不啟動掃描、不建立執行。", "stepLabel": "任務", "doneLabel": "完成條件", - "boundary": "固定邊界:owner_response_received_count=0;owner_response_accepted_count=0;active_runtime_gate_count=0;runtime_execution_authorized=false;action_buttons_allowed=false;repo_creation_authorized=false;github_primary_switch_authorized=false。", + "boundary": "固定邊界:owner_response_已收到_count=0;owner_response_已接受_count=0;active_runtime_閘門_count=0;runtime_execution_authorized=false;action_buttons_allowed=false;repo_creation_authorized=false;github_primary_switch_authorized=false。", "items": { "s49OwnerResponse": { "title": "先收 S4.9 負責人回覆", - "body": "第一個可推動 headline 的工作,是收到 Gitea 清冊負責人的可追溯、已脫敏回覆。", - "done": "收到後仍要通過收件預檢與 reviewer 接受,才可能成為 headline review 候選。" + "body": "第一個可推動 重點 的工作,是收到 Gitea 清冊負責人的可追溯、已脫敏回覆。", + "done": "收到後仍要通過收件預檢與 reviewer 接受,才可能成為 重點 審查 候選。" }, "redactedEvidencePacket": { "title": "補齊脫敏證據包", "body": "把來源、範圍、負責人判定、脫敏聲明與 evidence refs 放進可審查封包。", - "done": "只接受脫敏 payload;機密明文、完整掃描輸出、host dump 與 raw log 不進 mirror。" + "done": "只接受脫敏 載荷;機密明文、完整掃描輸出、主機 dump 與 原始日誌 不進 鏡像。" }, "runtimeGatePreflight": { - "title": "準備執行期 gate 前置條件", - "body": "先整理 scope、rollback、維護窗口、post-check metrics 與人工決策格式。", - "done": "目前仍不開 gate;人工批准前 active runtime gate 必須維持 0。" + "title": "準備執行期 閘門 前置條件", + "body": "先整理 scope、回復、維護窗口、事後檢查指標 與人工決策格式。", + "done": "目前仍不開 閘門;人工批准前 啟用中的 runtime 閘門 必須維持 0。" }, "githubPrimaryReadiness": { - "title": "累積 GitHub primary readiness", - "body": "整理 GitHub 目標、分支 / 標籤真相、workflow / secret 名稱與 rollback 依據。", - "done": "只做就緒度證據;不得建立專案庫、同步 refs、改 workflow、切 primary 或停用 Gitea。" + "title": "累積 GitHub 主要來源就緒度", + "body": "整理 GitHub 目標、分支 / 標籤真相、工作流程 / 機密 名稱與 回復 依據。", + "done": "只做就緒度證據;不得建立專案庫、同步 refs、改 工作流程、切 primary 或停用 Gitea。" } } }, @@ -5035,22 +5039,22 @@ "exposure": { "title": "暴露面態勢", "state": "等待證據", - "body": "主流資安管理會把資產、暴露面、弱點與 owner gate 放在同一張圖。IwoooS 先顯示覆蓋缺口,不把缺口變成阻擋。" + "body": "主流資安管理會把資產、暴露面、弱點與 owner 閘門 放在同一張圖。IwoooS 先顯示覆蓋缺口,不把缺口變成阻擋。" }, "sourceControl": { "title": "原始碼供應鏈", "state": "草案受閘門控管", - "body": "Gitea 到 GitHub 的長期方向已確認,但 refs、workflow、secret name 與 rollback ADR 仍需負責人回覆。" + "body": "Gitea 到 GitHub 的長期方向已確認,但 refs、工作流程、機密 name 與 回復 ADR 仍需負責人回覆。" }, "kali": { "title": "Kali 112 網格", "state": "只觀測", - "body": "Kali 112 已在資安網範圍中,111 / 168 也納入 observe-only。active scan 與 /execute 仍維持封鎖候選。" + "body": "Kali 112 已在資安網範圍中,111 / 168 也納入 僅觀察。active scan 與 /execute 仍維持封鎖候選。" }, "governance": { "title": "審批邊界", "state": "已鎖定", - "body": "7 個 pending approval、1 個 block candidate、0 active 執行期閘門s。任何執行都必須先留下人工決策與後續 執行期閘門。" + "body": "7 個 pending approval、1 個 阻擋候選、0 啟用中的執行期閘門。任何執行都必須先留下人工決策與後續 執行期閘門。" } }, "lanes": { @@ -5058,7 +5062,7 @@ "subtitle": "初期只 observe / warn,避免資安框架拖慢產品與部署節奏。", "lowMedium": { "title": "低 / 中風險觀測", - "body": "標風險、建 follow-up、補 evidence_ref,不阻擋 deploy。" + "body": "標風險、建 後續追蹤、補 evidence_ref,不阻擋 deploy。" }, "ownerMissing": { "title": "負責人回覆缺口", @@ -5066,28 +5070,28 @@ }, "mirrorIncomplete": { "title": "鏡像資料不完整", - "body": "顯示 partial / quarantine reason,等待新的 redacted snapshot。" + "body": "顯示 partial / 隔離原因,等待新的 脫敏快照。" }, "sourceDrift": { "title": "原始碼漂移草案", - "body": "維持 draft reconcile plan,不 sync refs、不 force push。" + "body": "維持 draft reconcile plan,不 同步 refs、不 強制推送。" }, "kaliObserve": { - "title": "Kali observe finding", - "body": "只顯示 redacted finding summary,不啟動 active scan。" + "title": "Kali observe 發現", + "body": "只顯示 redacted 發現摘要,不啟動 active scan。" }, "workflowGap": { "title": "工作流程 / 機密 name gap", - "body": "要求 redacted export,不收集 機密明文值、不啟用 runner。" + "body": "要求 脫敏匯出,不收集 機密明文值、不啟用 runner。" }, "progressHolding": { - "title": "Progress display holding", - "body": "61% 代表等待高層 gate,不代表卡住,也不是 runtime approval。" + "title": "進度顯示等待", + "body": "61% 代表等待高層 閘門,不代表卡住,也不是 runtime 批准。" } }, "existingSurfaces": { "title": "既有資安頁面整合", - "subtitle": "把前端原本已存在的安全、合規、告警、授權、治理、稽核與 Code Review 入口收成一張只讀索引,讓使用者知道資安能力已經散在哪裡。", + "subtitle": "把前端原本已存在的安全、合規、告警、授權、治理、稽核與 程式碼審查 入口收成一張只讀索引,讓使用者知道資安能力已經散在哪裡。", "sourceLabel": "原始來源", "mode": "只讀連結 / 不新增執行按鈕", "items": { @@ -5137,9 +5141,9 @@ "source": "AwoooP approvals;platform approvals" }, "codeReview": { - "title": "AI Code Review 控制面", - "body": "既有 Code Review 頁面顯示 Hermes、OpenClaw、Elephant Alpha、NemoTron 與 non-blocking review pipeline。", - "source": "code-review page;review pipeline / agent assignment" + "title": "AI 程式碼審查控制面", + "body": "既有 程式碼審查頁面顯示 Hermes、OpenClaw、Elephant Alpha、NemoTron 與 非阻擋 審查流程。", + "source": "code-review page;審查流程 / Agent 分工" } } }, @@ -5155,11 +5159,11 @@ "securityCompliance": { "title": "安全合規整合頁", "body": "透過 SecurityPanel 與 CompliancePanel 的內嵌橋接顯示 IwoooS 納管狀態。", - "boundary": "只顯示整合狀態,不新增修復、批准、部署或 blocking control。" + "boundary": "只顯示整合狀態,不新增修復、批准、部署或 阻擋控制。" }, "legacySecurity": { "title": "既有安全監控頁", - "body": "standalone 安全頁已直接顯示 IwoooS 只讀橋接與 61% / gate 0 邊界。", + "body": "standalone 安全頁已直接顯示 IwoooS 只讀橋接與 61% / 閘門 0 邊界。", "boundary": "只保留錯誤與安全訊號可見,不把頁面升級成掃描入口。" }, "legacyCompliance": { @@ -5170,7 +5174,7 @@ "alerts": { "title": "告警管理", "body": "active incident 頁已直接顯示 IwoooS 只讀橋接,讓告警訊號回到資安網。", - "boundary": "只顯示告警納管狀態,不新增 alert blocker、scan 或 repair。" + "boundary": "只顯示告警納管狀態,不新增 alert 阻塞點、scan 或 repair。" }, "errors": { "title": "錯誤與 UX 稽核", @@ -5180,7 +5184,7 @@ "authorizations": { "title": "授權中心", "body": "授權頁已直接顯示 IwoooS 只讀橋接,維持 HITL / multi-sig 人控邊界。", - "boundary": "橋接不是 approval record,也不能標記 負責人回覆 accepted。" + "boundary": "橋接不是 批准紀錄,也不能標記 負責人回覆 已接受。" }, "governance": { "title": "AI 治理中樞", @@ -5198,9 +5202,9 @@ "boundary": "AwoooP 人控狀態不是資安批准,也不能開 執行期閘門。" }, "codeReview": { - "title": "AI Code Review 控制面", - "body": "Code Review 頁已直接顯示深色 IwoooS 只讀橋接,保留非阻擋審查語境。", - "boundary": "Code Review 不是部署批准,也不新增 Gitea/GitHub action。" + "title": "AI 程式碼審查控制面", + "body": "程式碼審查頁已直接顯示深色 IwoooS 只讀橋接,保留非阻擋審查語境。", + "boundary": "程式碼審查 不是部署批准,也不新增 Gitea/GitHub action。" } } }, @@ -5222,7 +5226,7 @@ }, "engineeringReview": { "title": "工程審查", - "body": "Code Review 維持 non-blocking review pipeline,用於風險分級與後續修復建議,不直接等同 deploy approval。" + "body": "程式碼審查 維持 非阻擋 審查流程,用於風險分級與後續修復建議,不直接等同 部署批准。" } }, "conflicts": { @@ -5234,30 +5238,30 @@ }, "noRuntimeLift": { "title": "不把只讀索引升成 runtime", - "body": "coverage matrix 只能顯示覆蓋與缺口,不建立 scan、execute、repair 或 blocking gate。" + "body": "coverage matrix 只能顯示覆蓋與缺口,不建立 scan、execute、repair 或 阻擋閘門。" }, "codeReviewNotDeployGate": { - "title": "Code Review 不等於部署批准", - "body": "AI Code Review 可以提供風險分級與 coding follow-up,但不能直接變成 deploy approval。" + "title": "程式碼審查 不等於部署批准", + "body": "AI 程式碼審查 可以提供風險分級與 coding 後續追蹤,但不能直接變成 部署批准。" }, "awooopNotSecurityApproval": { "title": "AwoooP approvals 不等於資安批准", - "body": "AwoooP 審批佇列可顯示人控狀態,但資安 gate 仍需對應決策紀錄與 follow-up 執行期閘門。" + "body": "AwoooP 審批佇列可顯示人控狀態,但資安 閘門 仍需對應決策紀錄與 後續追蹤 執行期閘門。" }, "kaliNotCalled": { "title": "前端索引不呼叫 Kali", - "body": "Kali 112 維持 observe-only;任何 active scan 或 /execute 都必須走人工批准與後續 gate。" + "body": "Kali 112 維持 僅觀察;任何 active scan 或 /execute 都必須走人工批准與後續 閘門。" } } }, "journey": { "title": "資安處理旅程", - "subtitle": "把目前資安網的可見流程固定成只讀狀態圖:先看態勢,再查既有頁面,最後才進入 owner evidence、人工決策與後續 gate。", + "subtitle": "把目前資安網的可見流程固定成只讀狀態圖:先看態勢,再查既有頁面,最後才進入 owner evidence、人工決策與後續 閘門。", "outputLabel": "輸出", "steps": { "readPosture": { "title": "讀取目前態勢", - "body": "先看 61% headline、framework / runtime landing、active gates 與下一個高層 gate。", + "body": "先看 61% 重點、framework / runtime landing、active 閘門s 與下一個高層 閘門。", "output": "只讀 posture,不代表授權" }, "openSurface": { @@ -5267,8 +5271,8 @@ }, "triageLane": { "title": "判讀非阻擋分流", - "body": "LOW / MEDIUM、缺 負責人回覆、partial mirror 與 Kali observe finding 先維持 observe / warn。", - "output": "follow-up,不升 blocking" + "body": "LOW / MEDIUM、缺 負責人回覆、partial 鏡像 與 Kali observe 發現 先維持 observe / warn。", + "output": "後續追蹤,不升 blocking" }, "collectEvidence": { "title": "收 owner evidence", @@ -5277,19 +5281,19 @@ }, "humanDecision": { "title": "等待人工決策", - "body": "資安 gate 需要 decision record;AwoooP approval、Code Review 或進度數字都不能自動替代。", + "body": "資安 閘門 需要 決策紀錄;AwoooP approval、程式碼審查 或進度數字都不能自動替代。", "output": "人控決策,不是 runtime" }, "runtimeGate": { "title": "後續 執行期閘門", - "body": "只有人工批准後,才進入 follow-up 執行期閘門 template;目前 active 執行期閘門s 仍為 0。", - "output": "待批准後另開 gate" + "body": "只有人工批准後,才進入 後續追蹤 執行期閘門 template;目前 啟用中的執行期閘門 仍為 0。", + "output": "待批准後另開 閘門" } } }, "evidenceReadiness": { - "title": "Owner Evidence Readiness", - "subtitle": "這裡顯示 headline 進度下一步真正需要的 evidence。每一項都是等待收件或人工決策,不會從前端直接觸發任何執行。", + "title": "負責人證據就緒度", + "subtitle": "這裡顯示 重點 進度下一步真正需要的 evidence。每一項都是等待收件或人工決策,不會從前端直接觸發任何執行。", "unlockLabel": "解除條件", "items": { "giteaOwnerAttestation": { @@ -5299,139 +5303,139 @@ }, "githubTargetOwner": { "title": "GitHub target owner", - "body": "確認 GitHub target、visibility、canonical owner 與 repo 是否可進 primary readiness。", - "unlock": "S4.10 負責人回覆 accepted" + "body": "確認 GitHub target、visibility、canonical owner 與 repo 是否可進 主要來源就緒度。", + "unlock": "S4.10 負責人回覆 已接受" }, "refsTruthOwner": { "title": "Refs truth owner", "body": "確認 main/dev truth、deprecated drift、release tags 與 GitHub-only refs 的真相來源。", - "unlock": "S4.11 refs truth response accepted" + "unlock": "S4.11 refs 真相 回覆已接受" }, "workflowSecretOwner": { "title": "工作流程 / 機密 name owner", - "body": "確認 workflow、webhook、runner、deploy key、branch protection、secret name parity。", - "unlock": "S4.12 工作流程 / 機密 response accepted" + "body": "確認 工作流程、webhook、runner、deploy key、branch protection、機密 name parity。", + "unlock": "S4.12 工作流程 / 機密 回覆已接受" }, "redactedFindingIngestion": { - "title": "Redacted finding ingestion", - "body": "Kali finding 與安全發現需要先以脫敏 payload 進入 mirror,不能直接進 runtime。", - "unlock": "人工批准後接收脫敏 finding" + "title": "脫敏發現收件", + "body": "Kali 發現 與安全發現需要先以脫敏 載荷 進入 鏡像,不能直接進 runtime。", + "unlock": "人工批准後接收脫敏 發現" }, "kaliScanScope": { - "title": "Kali scan scope", - "body": "Kali 112、111、168 目前仍是 observe-only;active scan 與 /execute 仍需獨立批准。", - "unlock": "scan scope approval + follow-up gate" + "title": "Kali 掃描範圍", + "body": "Kali 112、111、168 目前仍是 僅觀察;active scan 與 /execute 仍需獨立批准。", + "unlock": "掃描範圍批准 + 後續追蹤 閘門" }, "followupRuntimeGate": { "title": "Follow-up 執行期閘門", - "body": "所有實際執行都要等人工 decision record 後,另開 follow-up 執行期閘門。", - "unlock": "decision record accepted,active gate 仍為 0" + "body": "所有實際執行都要等人工 決策紀錄 後,另開 後續追蹤 執行期閘門。", + "unlock": "決策紀錄 已接受,active 閘門 仍為 0" } } }, "hostCoverage": { "title": "主機覆蓋視圖", - "subtitle": "把 Kali 與兩台開發主機放進 IwoooS 的可見資安範圍。這裡只顯示納管與 gate 狀態,不建立 SSH、掃描、更新或阻擋控制。", + "subtitle": "把 Kali 與兩台開發主機放進 IwoooS 的可見資安範圍。這裡只顯示納管與 閘門 狀態,不建立 SSH、掃描、更新或阻擋控制。", "stateLabel": "目前狀態", "items": { "kali112": { "title": "Kali 資安主機", - "body": "192.168.0.112 是資安網的 Kali 節點,已在 posture 與 evidence refs 中作為 observe-only 整合面。", + "body": "192.168.0.112 是資安網的 Kali 節點,已在 posture 與 evidence refs 中作為 僅觀察 整合面。", "state": "已納入視野;active scan、/execute、主機更新仍需獨立批准" }, "dev168": { "title": "開發主機 168", - "body": "192.168.0.168 納入 IwoooS 的 observe-only 開發主機覆蓋,用於後續 scope approval 與 finding 關聯。", - "state": "scope declared;尚未批准 credentialed scan 或 runtime control" + "body": "192.168.0.168 納入 IwoooS 的 僅觀察 開發主機覆蓋,用於後續 scope approval 與 發現 關聯。", + "state": "範圍已宣告;尚未批准 憑證掃描 或 runtime 控制" }, "dev111": { "title": "開發主機 111", - "body": "192.168.0.111 納入 IwoooS 的 observe-only 開發主機覆蓋,與 168 一起維持低摩擦分階段收斂。", - "state": "scope declared;尚未批准 credentialed scan 或 runtime control" + "body": "192.168.0.111 納入 IwoooS 的 僅觀察 開發主機覆蓋,與 168 一起維持低摩擦分階段收斂。", + "state": "範圍已宣告;尚未批准 憑證掃描 或 runtime 控制" } } }, "hostActionGates": { - "title": "主機動作 Gate 矩陣", - "subtitle": "把主機相關高風險動作拆成只讀 gate。這裡只說明哪些動作仍被鎖住,以及需要哪一類人工決策;不提供任何執行入口。", - "gateLabel": "需要 Gate", + "title": "主機動作 閘門 矩陣", + "subtitle": "把主機相關高風險動作拆成只讀 閘門。這裡只說明哪些動作仍被鎖住,以及需要哪一類人工決策;不提供任何執行入口。", + "gateLabel": "需要 閘門", "items": { "activeScan": { - "title": "Active scan", + "title": "主動掃描", "body": "對 Kali 112、開發主機 168 / 111 的主動掃描仍未批准,不能由 IwoooS 直接觸發。", - "gate": "需要 S1.6 scan scope approval 與後續 執行期閘門" + "gate": "需要 S1.6 掃描範圍批准 與後續 執行期閘門" }, "credentialedScan": { - "title": "Credentialed scan", + "title": "憑證掃描", "body": "任何帶憑證的掃描都必須先有 scope、credential handling 與脫敏 evidence 規範。", - "gate": "需要 S1.6 scope approval;目前 credentialed scan=false" + "gate": "需要 S1.6 scope approval;目前 憑證掃描=false" }, "kaliExecute": { "title": "Kali /execute", - "body": "Kali 執行端點仍是 block candidate,不能因主機已納入視野就開放。", - "gate": "需要人工 decision record 與 S3.4 follow-up 執行期閘門" + "body": "Kali 執行端點仍是 阻擋候選,不能因主機已納入視野就開放。", + "gate": "需要人工 決策紀錄 與 S3.4 後續追蹤 執行期閘門" }, "sshChange": { - "title": "SSH / host change", + "title": "SSH / 主機變更", "body": "登入主機、改設定、套用調校、重啟服務或變更 SSH 設定都不屬於目前前端權限。", - "gate": "需要明確人工批准、變更計畫與 rollback evidence" + "gate": "需要明確人工批准、變更計畫與 回復 evidence" }, "kaliUpdate": { - "title": "Kali host update", - "body": "Kali 更新與主機調校會影響掃描結果與工具鏈穩定性,必須和資安 gate 分開批准。", - "gate": "需要維護窗口、更新清單、驗證指標與 rollback 計畫" + "title": "Kali 主機更新", + "body": "Kali 更新與主機調校會影響掃描結果與工具鏈穩定性,必須和資安 閘門 分開批准。", + "gate": "需要維護窗口、更新清單、驗證指標與 回復 計畫" }, "runtimeBlocking": { - "title": "Runtime blocking control", - "body": "把 finding 變成產品阻擋或 runtime enforcement 仍要等 owner evidence 與人工決策。", - "gate": "需要 accepted decision record;active 執行期閘門s 仍為 0" + "title": "Runtime 阻擋控制", + "body": "把 發現 變成產品阻擋或 runtime enforcement 仍要等 owner evidence 與人工決策。", + "gate": "需要 已接受 決策紀錄;啟用中的執行期閘門 仍為 0" } } }, "hostEvidenceReadiness": { - "title": "主機 Evidence Readiness", + "title": "主機 證據就緒度", "subtitle": "列出主機掃描、更新、SSH 變更或 runtime blocking 前必須補齊的 evidence。這些項目目前都只是待收件,不代表已批准。", - "evidenceLabel": "需要 Evidence", + "evidenceLabel": "需要 證據", "items": { "scopeBoundary": { "title": "範圍 boundary", "body": "確認 112、168、111 的允許目標、排除範圍、掃描深度與速率限制。", - "evidence": "需要脫敏 scan scope approval;received=0、accepted=0" + "evidence": "需要脫敏 掃描範圍批准;已收到=0、已接受=0" }, "ownerDecision": { - "title": "Owner decision record", + "title": "負責人 決策紀錄", "body": "每個主機動作都需要人控決策,不能用 IwoooS 可見狀態或 AwoooP queue 取代。", - "evidence": "需要 accepted decision record;目前 active 執行期閘門s=0" + "evidence": "需要 已接受 決策紀錄;目前 啟用中的執行期閘門=0" }, "credentialHandling": { - "title": "Credential handling", + "title": "憑證 handling", "body": "帶憑證掃描前要先定義憑證來源、保存邊界、遮蔽方式與拒收規則。", - "evidence": "禁止收集憑證明文;目前 credentialed scan=false" + "evidence": "禁止收集憑證明文;目前 憑證掃描=false" }, "maintenanceWindow": { - "title": "Maintenance window", + "title": "維護窗口", "body": "Kali 更新、主機調校或 SSH 變更都需要維護窗口,避免影響開發與產品流程。", "evidence": "需要窗口、影響範圍、通知與回復標準" }, "rollbackPlan": { - "title": "Rollback plan", + "title": "回復計畫", "body": "任何主機變更都要能回復,包含套件、設定、服務與工具鏈版本。", - "evidence": "需要 rollback owner、步驟與驗證方式" + "evidence": "需要 回復 owner、步驟與驗證方式" }, "validationMetrics": { - "title": "Validation metrics", + "title": "驗證指標", "body": "主機動作後要有驗證指標,確認掃描器、監控、服務與使用者流程沒有退化。", - "evidence": "需要 post-check 指標與失敗處理 lane" + "evidence": "需要 事後檢查 指標與失敗處理 lane" }, "redactedIngestion": { - "title": "Redacted ingestion", - "body": "主機 finding 或掃描結果只能以脫敏摘要進入 mirror,不能直接把原始載荷當 runtime input。", - "evidence": "需要 redacted payload acceptance;payloads_ingested=false" + "title": "脫敏收件", + "body": "主機 發現 或掃描結果只能以脫敏摘要進入 鏡像,不能直接把原始載荷當 runtime input。", + "evidence": "需要 脫敏載荷 驗收;載荷s_ingested=false" } } }, "hostEvidenceCollection": { - "title": "主機 Evidence 收件順序", + "title": "主機 證據 收件順序", "subtitle": "把七個主機 evidence 排成建議收件順序。每一步都只代表下一個可審項目,不會把 已收到 / 已接受 從 0 改掉。", "stepLabel": "收件步驟", "dependencyLabel": "前置依賴", @@ -5457,122 +5461,122 @@ "dependency": "需要 owner decision 與變更範圍" }, "rollbackFifth": { - "title": "補 rollback plan", + "title": "補 回復 plan", "body": "每個主機動作都要能回復套件、設定、服務與工具鏈版本。", "dependency": "需要 maintenance window 與變更清單" }, "validationSixth": { "title": "定義 validation metrics", - "body": "先定義 post-check 指標與失敗處理 lane,再談執行。", - "dependency": "需要 rollback plan" + "body": "先定義 事後檢查 指標與失敗處理 lane,再談執行。", + "dependency": "需要 回復 plan" }, "redactedSeventh": { "title": "最後才收 redacted ingestion", - "body": "finding / scan result 只用脫敏摘要進 mirror,不吃原始載荷。", - "dependency": "需要 validation metrics;payloads_ingested=false" + "body": "發現 / scan result 只用脫敏摘要進 鏡像,不吃原始載荷。", + "dependency": "需要 validation metrics;載荷s_ingested=false" } } }, "hostEvidenceIntake": { - "title": "主機 Evidence Intake Preflight", + "title": "主機 證據收件預檢", "subtitle": "未來收到主機 evidence 前,先用這組只讀預檢規則判斷能否進人工 review。預檢不會收原始載荷、憑證明文,也不會改 已收到 / 已接受。", "checkLabel": "預檢", "rejectLabel": "拒收 / 隔離條件", "items": { "metadataPointer": { - "title": "Metadata pointer only", - "body": "主機 evidence 只接受脫敏 metadata pointer、來源步驟與摘要,不直接吃完整掃描輸出。", - "reject": "缺 redacted metadata pointer 就拒收" + "title": "僅接受中繼資料指標", + "body": "主機 evidence 只接受脫敏 中繼資料指標、來源步驟與摘要,不直接吃完整掃描輸出。", + "reject": "缺 redacted 中繼資料指標 就拒收" }, "dependencyOrder": { - "title": "Collection order match", + "title": "收件順序符合", "body": "提交的 evidence 必須符合 S2.17 收件順序,不能跳過 scope 或 owner decision。", "reject": "跳過前置依賴就隔離" }, "scopeBeforeScan": { - "title": "範圍 before scan", + "title": "範圍 先有範圍再掃描", "body": "任何 scan 相關 evidence 都要先能對到 scope boundary;沒有 scope 不進人工審。", "reject": "scan evidence 沒有 scope 就拒收" }, "ownerBeforeChange": { - "title": "Owner before host change", - "body": "SSH、更新、調校或 blocking control 的 evidence 需要 owner decision pointer。", - "reject": "主機變更缺 decision record 就拒收" + "title": "負責人 before 主機變更", + "body": "SSH、更新、調校或 阻擋控制 的 evidence 需要 owner decision pointer。", + "reject": "主機變更缺 決策紀錄 就拒收" }, "credentialPlaintext": { - "title": "Credential plaintext blocked", - "body": "任何帳密、token、private key、session 或憑證明文都不能進 IwoooS mirror。", + "title": "阻擋憑證明文", + "body": "任何帳密、token、private key、session 或憑證明文都不能進 IwoooS 鏡像。", "reject": "偵測到憑證明文就拒收並隔離" }, "rawPayload": { "title": "原始載荷已阻擋", - "body": "完整掃描 raw output、未脫敏 finding、主機 dump 或 log bundle 不進 projection。", + "body": "完整掃描 原始輸出、未脫敏 發現、主機 dump 或 日誌包 不進 projection。", "reject": "原始載荷一律拒收" }, "counterFreeze": { - "title": "Frontend counters frozen", + "title": "前端計數固定", "body": "前端只能顯示預檢狀態,不能把 已收到 / 已接受 從 0 推進。", "reject": "前端嘗試推 counter 就阻擋" } } }, "hostEvidenceReviewOutcomes": { - "title": "主機 Evidence Review Outcome Lanes", - "subtitle": "預檢後的 evidence 只能進這些只讀分流。這裡顯示人工審查可能結果,不會建立 approval record、執行期閘門 或主機動作。", + "title": "主機 證據審查結果分流", + "subtitle": "預檢後的 evidence 只能進這些只讀分流。這裡顯示人工審查可能結果,不會建立 批准紀錄、執行期閘門 或主機動作。", "laneLabel": "結果分流", "nextLabel": "下一步", "items": { "readyForHumanReview": { - "title": "Ready for human review", - "body": "metadata pointer、依賴順序、scope 與 owner pointer 都可讀時,才可標示為人工審查候選。", - "next": "只顯示候選;received=0、accepted=0" + "title": "可進人工審查", + "body": "中繼資料指標、依賴順序、scope 與 owner pointer 都可讀時,才可標示為人工審查候選。", + "next": "只顯示候選;已收到=0、已接受=0" }, "needsScopeEvidence": { - "title": "Needs scope evidence", - "body": "scan 或 finding evidence 無法對到 scope boundary 時,回到補 scope lane。", + "title": "待補範圍證據", + "body": "scan 或 發現 evidence 無法對到 scope boundary 時,回到補 scope lane。", "next": "補 scope,不進 scan" }, "needsOwnerDecision": { - "title": "Needs owner decision", + "title": "待補負責人決策", "body": "主機變更、更新、SSH 或 blocking 類 evidence 缺 decision pointer 時,回到 owner decision lane。", - "next": "補 decision record,不啟動主機動作" + "next": "補 決策紀錄,不啟動主機動作" }, "quarantineDependencySkip": { - "title": "Quarantine dependency skip", + "title": "前置依賴跳過即隔離", "body": "跳過 S2.17 收件順序或前置依賴不完整時,先隔離再人工判讀。", "next": "隔離原因可見,不推 counter" }, "rejectRawPayload": { "title": "拒收原始載荷", - "body": "完整掃描輸出、未脫敏 finding、host dump 或 log bundle 不進 IwoooS。", + "body": "完整掃描輸出、未脫敏 發現、主機 dump 或 日誌包 不進 IwoooS。", "next": "要求改交脫敏摘要" }, "rejectCredentialPlaintext": { - "title": "Reject credential plaintext", + "title": "拒收憑證明文", "body": "任何帳密、token、private key、session 或憑證明文都直接拒收並隔離。", "next": "不保存、不轉送、不顯示明文" }, "waitingRuntimeGate": { "title": "Waiting 執行期閘門", "body": "即使人工審查後可採取行動,也只能等待後續 執行期閘門,不由 outcome lane 執行。", - "next": "active 執行期閘門s 仍為 0" + "next": "啟用中的執行期閘門 仍為 0" } } }, "nextGate": { - "title": "下一個高層 Gate", - "body": "S4.9 Gitea owner attestation response 是目前建議先收的 owner evidence。任何 headline 提升都要等 負責人回覆、redacted payload ingestion、active 執行期閘門 或 GitHub primary readiness 有真實變化。" + "title": "下一個高層 閘門", + "body": "S4.9 Gitea owner attestation response 是目前建議先收的 owner evidence。任何 重點 提升都要等 負責人回覆、脫敏載荷 ingestion、active 執行期閘門 或 GitHub 主要來源就緒度 有真實變化。" }, "evidence": { - "title": "目前 Evidence" + "title": "目前 證據" }, "blocked": { "title": "禁止動作", - "body": "此頁不提供 scan、execute、repo、refs、workflow、secret、runner、primary switch 或 deploy 操作按鈕。" + "body": "此頁不提供 scan、execute、repo、refs、工作流程、機密、runner、primary switch 或 deploy 操作按鈕。" }, "hostEvidenceReviewHandoff": { - "title": "主機 Evidence 人工審查交接包", - "subtitle": "人工 reviewer 只能依這些脫敏交接包判讀 evidence。這裡顯示送審必備資料,不會標示 已收到 / 已接受、建立 approval record 或啟動 執行期閘門。", + "title": "主機 證據 人工審查交接包", + "subtitle": "人工 reviewer 只能依這些脫敏交接包判讀 evidence。這裡顯示送審必備資料,不會標示 已收到 / 已接受、建立 批准紀錄 或啟動 執行期閘門。", "packetLabel": "交接包", "requiredLabel": "必備內容", "items": { @@ -5582,39 +5586,39 @@ "required": "redacted scope pointer;不含原始載荷" }, "ownerDecisionPacket": { - "title": "Owner Decision 包", + "title": "負責人 Decision 包", "body": "提供誰批准審查、批准範圍、限制條件與到期時間,避免 reviewer 自行擴權。", - "required": "owner decision record pointer;不等於主機動作批准" + "required": "owner 決策紀錄 pointer;不等於主機動作批准" }, "credentialHandlingPacket": { - "title": "Credential Handling 包", + "title": "憑證 Handling 包", "body": "只顯示憑證處理方式與保管責任,不顯示帳密、token、private key 或 session value。", - "required": "metadata-only handling statement;機密明文值=blocked" + "required": "僅中繼資料 handling statement;機密明文值=blocked" }, "maintenanceRollbackPacket": { - "title": "Maintenance / Rollback 包", - "body": "若後續需要變更,先提供維護窗口、影響範圍、rollback owner 與復原驗證方法。", - "required": "maintenance window + rollback pointer;不啟動變更" + "title": "維護 / Rollback 包", + "body": "若後續需要變更,先提供維護窗口、影響範圍、回復 owner 與復原驗證方法。", + "required": "maintenance window + 回復 pointer;不啟動變更" }, "validationMetricsPacket": { - "title": "Validation Metrics 包", - "body": "定義 reviewer 檢查後要看哪些 metrics、logs、baseline 或 follow-up evidence。", - "required": "post-check metrics pointer;不代表 執行期閘門 opened" + "title": "驗證 Metrics 包", + "body": "定義 reviewer 檢查後要看哪些 metrics、logs、baseline 或 後續追蹤 evidence。", + "required": "事後檢查指標 pointer;不代表 執行期閘門 opened" }, "redactionAttestationPacket": { "title": "Redaction Attestation 包", - "body": "確認 evidence 已移除 raw log、host dump、credential、private URL credential 與未脫敏截圖。", - "required": "redaction attestation only;不保存敏感 payload" + "body": "確認 evidence 已移除 原始日誌、主機 dump、credential、private URL credential 與未脫敏截圖。", + "required": "redaction attestation only;不保存敏感 載荷" }, "runtimeGatePacket": { - "title": "Runtime Gate Pointer 包", + "title": "Runtime 閘門指標 包", "body": "把可能的後續行動導回獨立 執行期閘門,避免 reviewer outcome lane 直接變成執行。", - "required": "follow-up gate pointer;active 執行期閘門s=0" + "required": "後續追蹤 閘門 pointer;啟用中的執行期閘門=0" } } }, "hostEvidenceReviewerChecklist": { - "title": "主機 Evidence Reviewer Checklist", + "title": "主機 證據 Reviewer Checklist", "subtitle": "Reviewer 在看 handoff packets 後,只能依這些只讀檢查判斷是否可進下一個人工決策。檢查清單不會標示 passed、已收到 / 已接受、approval 或 執行期閘門。", "checkLabel": "審查檢查", "verifyLabel": "確認項目", @@ -5625,47 +5629,47 @@ "verify": "只核對 redacted pointer;不啟動 scan" }, "ownerDecisionScopeExpiry": { - "title": "Owner decision scope / expiry", - "body": "確認 owner decision record 有批准人、範圍、限制條件與到期時間,且仍在有效期內。", - "verify": "只判讀 decision pointer;不建立 approval record" + "title": "負責人 decision scope / expiry", + "body": "確認 owner 決策紀錄 有批准人、範圍、限制條件與到期時間,且仍在有效期內。", + "verify": "只判讀 decision pointer;不建立 批准紀錄" }, "credentialHandlingMetadataOnly": { - "title": "Credential handling metadata only", + "title": "憑證 handling metadata only", "body": "確認 reviewer 只看到處理方式與責任人,不接觸任何明文驗證素材。", "verify": "機密明文值 collection=false" }, "redactionAttestationPass": { "title": "Redaction attestation pass", - "body": "確認 raw log、host dump、未脫敏截圖、private URL credential 與敏感 payload 都已排除。", + "body": "確認 原始日誌、主機 dump、未脫敏截圖、private URL credential 與敏感 載荷 都已排除。", "verify": "原始載荷 allowed=false" }, "maintenanceRollbackComplete": { - "title": "Maintenance / rollback complete", - "body": "若 evidence 暗示後續變更,確認已存在維護窗口、rollback owner 與復原驗證指標。", + "title": "維護 / 回復 complete", + "body": "若 evidence 暗示後續變更,確認已存在維護窗口、回復 owner 與復原驗證指標。", "verify": "只顯示未來變更條件;不執行 change" }, "validationMetricsLinked": { - "title": "Validation metrics linked", - "body": "確認 post-check metrics、baseline、logs 或 follow-up evidence 已連到可讀的脫敏 pointer。", + "title": "驗證指標 linked", + "body": "確認 事後檢查指標、baseline、logs 或 後續追蹤 evidence 已連到可讀的脫敏 pointer。", "verify": "只顯示 validation pointer;不開 執行期閘門" }, "runtimeGateSeparated": { - "title": "Runtime gate separated", + "title": "Runtime 閘門 separated", "body": "確認 reviewer checklist 的任何結果都不能直接變成 runtime action,必須回到獨立 執行期閘門。", - "verify": "active 執行期閘門s=0;操作按鈕s=false" + "verify": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostEvidenceReviewerOutcomes": { - "title": "主機 Evidence Reviewer Outcome Lanes", - "subtitle": "Reviewer checklist 後只能進入這些只讀結果分流。這裡顯示下一步判讀,不會標示 passed、accepted、approval 或 執行期閘門。", + "title": "主機 證據 Reviewer 結果分流", + "subtitle": "Reviewer checklist 後只能進入這些只讀結果分流。這裡顯示下一步判讀,不會標示 passed、已接受、approval 或 執行期閘門。", "laneLabel": "Reviewer 結果", "nextLabel": "下一步", "items": { "readyForOwnerDecision": { - "title": "Ready for owner decision", - "body": "scope、owner、redaction、rollback、validation 與 runtime separation 都可讀時,只能標示為 owner decision 候選。", - "next": "顯示候選;received=0、accepted=0" + "title": "就緒 for owner decision", + "body": "scope、owner、redaction、回復、validation 與 runtime separation 都可讀時,只能標示為 owner decision 候選。", + "next": "顯示候選;已收到=0、已接受=0" }, "scopeMismatch": { "title": "範圍 mismatch", @@ -5673,128 +5677,128 @@ "next": "補 scope pointer;不啟動 scan" }, "ownerExpired": { - "title": "Owner decision expired", + "title": "負責人 decision expired", "body": "owner decision 缺 scope、限制條件或已過期時,回到 owner decision lane。", - "next": "補 decision record;不建立 approval" + "next": "補 決策紀錄;不建立 approval" }, "credentialMetadataFailed": { - "title": "Credential metadata failed", - "body": "credential handling 不是 metadata-only 或責任邊界不可讀時,先隔離 reviewer outcome。", - "next": "只要求 metadata-only 說明;不收敏感素材" + "title": "憑證 metadata failed", + "body": "credential handling 不是 僅中繼資料 或責任邊界不可讀時,先隔離 reviewer outcome。", + "next": "只要求 僅中繼資料 說明;不收敏感素材" }, "redactionFailed": { "title": "Redaction failed", - "body": "redaction attestation 無法證明 raw logs、host dump、未脫敏截圖或 sensitive payload 已排除時,拒收。", + "body": "redaction attestation 無法證明 原始日誌s、主機 dump、未脫敏截圖或 sensitive 載荷 已排除時,拒收。", "next": "要求重新脫敏;不保存原始載荷" }, "rollbackMissing": { "title": "Rollback missing", - "body": "maintenance window、rollback owner 或復原驗證指標缺漏時,不能進入後續決策。", - "next": "補 rollback pointer;不執行 change" + "body": "maintenance window、回復 owner 或復原驗證指標缺漏時,不能進入後續決策。", + "next": "補 回復 pointer;不執行 change" }, "runtimeGateRequired": { - "title": "Runtime gate required", + "title": "Runtime 閘門 required", "body": "任何可能的後續主機行動都必須導回獨立 執行期閘門,不能由 reviewer outcome 執行。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionCandidates": { - "title": "主機 Owner Decision Candidate Packets", - "subtitle": "Reviewer outcome 進到 owner decision 候選後,IwoooS 只顯示需要人工判讀的決策包。不建立 decision record、不標示 approved、不開 執行期閘門。", + "title": "主機 負責人 Decision Candidate Packets", + "subtitle": "Reviewer outcome 進到 owner decision 候選後,IwoooS 只顯示需要人工判讀的決策包。不建立 決策紀錄、不標示 approved、不開 執行期閘門。", "packetLabel": "候選包", "decisionLabel": "人工決策範圍", "items": { "scopeApprovalCandidate": { "title": "範圍 approval candidate", "body": "確認主機、網段、服務、排除範圍與觀察目的都能被 owner 讀懂。", - "decision": "只顯示 scope 候選;owner decision received=0" + "decision": "只顯示 scope 候選;owner decision 已收到=0" }, "scanModeCandidate": { "title": "Scan mode candidate", - "body": "把 observe-only、未來 active scan 或 credentialed scan 的差異拆清楚,避免候選包被誤認為掃描授權。", + "body": "把 僅觀察、未來 active scan 或 憑證掃描 的差異拆清楚,避免候選包被誤認為掃描授權。", "decision": "只顯示模式選項;active scan=false" }, "credentialHandlingCandidate": { - "title": "Credential handling candidate", - "body": "只描述 metadata-only handling、責任人與保存邊界,不要求或保存敏感素材。", + "title": "憑證 handling candidate", + "body": "只描述 僅中繼資料 handling、責任人與保存邊界,不要求或保存敏感素材。", "decision": "只顯示處理原則;collection=false" }, "maintenanceWindowCandidate": { - "title": "Maintenance window candidate", + "title": "維護窗口 candidate", "body": "若未來涉及主機更新或調校,先顯示候選維護窗口與限制條件。", - "decision": "只顯示時間範圍;host update=false" + "decision": "只顯示時間範圍;主機更新=false" }, "rollbackOwnerCandidate": { - "title": "Rollback owner candidate", - "body": "顯示未來 rollback owner、復原路徑與人工聯絡點,避免變更前缺少責任邊界。", + "title": "回復負責人候選", + "body": "顯示未來 回復 owner、復原路徑與人工聯絡點,避免變更前缺少責任邊界。", "decision": "只顯示 owner pointer;change=false" }, "validationMetricsCandidate": { - "title": "Validation metrics candidate", - "body": "列出未來 post-check metrics、baseline 與回看 evidence pointer,作為後續 gate 的人工判讀素材。", + "title": "驗證指標 candidate", + "body": "列出未來 事後檢查指標、baseline 與回看 evidence pointer,作為後續 閘門 的人工判讀素材。", "decision": "只顯示驗證項目;執行期閘門=false" }, "runtimeGateCandidate": { - "title": "Runtime gate candidate", + "title": "Runtime 閘門 candidate", "body": "任何後續主機動作仍需獨立 執行期閘門,不能由 owner decision candidate 直接執行。", - "decision": "只顯示 gate 候選;操作按鈕s=false" + "decision": "只顯示 閘門 候選;操作按鈕s=false" } } }, "hostOwnerDecisionReviewChecklist": { - "title": "主機 Owner Decision Review Checklist", - "subtitle": "Owner decision candidate packets 之後仍需人工逐項核對。這裡只顯示核對項,不建立決策紀錄、不標示 approved、不開 執行期閘門。", - "checkLabel": "Owner 核對", + "title": "主機 負責人 Decision Review Checklist", + "subtitle": "負責人 decision candidate packets 之後仍需人工逐項核對。這裡只顯示核對項,不建立決策紀錄、不標示 approved、不開 執行期閘門。", + "checkLabel": "負責人 核對", "guardLabel": "安全邊界", "items": { "scopeBoundaryReadable": { "title": "範圍 boundary readable", "body": "確認 owner 能讀懂主機、網段、服務、排除範圍與觀察目的,且沒有超出原始 scope。", - "guard": "只核對 scope;owner decision received=0" + "guard": "只核對 scope;owner decision 已收到=0" }, "scanModeNotAuthorization": { "title": "Scan mode not authorization", - "body": "確認 observe-only、future active scan、credentialed scan 都只是選項說明,不是掃描授權。", + "body": "確認 僅觀察、future active scan、憑證掃描 都只是選項說明,不是掃描授權。", "guard": "scan authorized=false" }, "credentialBoundaryMetadataOnly": { - "title": "Credential boundary metadata only", + "title": "憑證 boundary metadata only", "body": "確認 credential handling 只保留 metadata、owner 與保存邊界,不要求敏感素材。", - "guard": "secret collection=false" + "guard": "機密 collection=false" }, "maintenanceWindowNotChange": { - "title": "Maintenance window not change", + "title": "維護窗口 not change", "body": "確認維護窗口只是未來候選條件,不代表可以進行 Kali 主機套件變更或主機調校。", - "guard": "host update=false" + "guard": "主機更新=false" }, "rollbackOwnerReadable": { - "title": "Rollback owner readable", - "body": "確認 rollback owner、復原路徑與人工聯絡點可讀,但尚未批准任何 change。", - "guard": "approval record=false" + "title": "回復負責人可讀", + "body": "確認 回復 owner、復原路徑與人工聯絡點可讀,但尚未批准任何 change。", + "guard": "批准紀錄=false" }, "validationMetricsPredefined": { - "title": "Validation metrics predefined", - "body": "確認 post-check metrics、baseline 與 evidence pointer 已先定義,供未來 gate 判讀。", + "title": "驗證指標 predefined", + "body": "確認 事後檢查指標、baseline 與 evidence pointer 已先定義,供未來 閘門 判讀。", "guard": "執行期閘門 opened=false" }, "runtimeGateStillSeparate": { - "title": "Runtime gate still separate", + "title": "Runtime 閘門 still separate", "body": "確認 owner decision checklist 不能直接執行任何後續主機動作,仍需獨立 執行期閘門。", "guard": "操作按鈕s=false" } } }, "hostOwnerDecisionReviewOutcomes": { - "title": "主機 Owner Decision Review Outcome Lanes", - "subtitle": "負責人審查清單後只能進入這些只讀結果分流。這裡顯示下一步判讀,不會建立 decision record、不會標示 approved、不會開 執行期閘門。", + "title": "主機 負責人 Decision Review 結果分流", + "subtitle": "負責人審查清單後只能進入這些只讀結果分流。這裡顯示下一步判讀,不會建立 決策紀錄、不會標示 approved、不會開 執行期閘門。", "laneLabel": "Review 結果", "nextLabel": "下一步", "items": { "readyForDecisionRecord": { - "title": "Ready for decision record", - "body": "scope、scan mode、credential boundary、maintenance、rollback、validation 與 runtime separation 都可讀時,只能顯示 formal decision record 候選。", - "next": "顯示決策紀錄候選;received=0、accepted=0" + "title": "就緒 for 決策紀錄", + "body": "scope、scan mode、credential boundary、maintenance、回復、validation 與 runtime separation 都可讀時,只能顯示 formal 決策紀錄 候選。", + "next": "顯示決策紀錄候選;已收到=0、已接受=0" }, "scopeNeedsRefresh": { "title": "範圍 needs refresh", @@ -5807,30 +5811,30 @@ "next": "補 scan mode 說明;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential handling 若無法保持 metadata-only 或責任邊界不可讀,先隔離 decision outcome。", - "next": "補 metadata-only 邊界;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential handling 若無法保持 僅中繼資料 或責任邊界不可讀,先隔離 decision outcome。", + "next": "補 僅中繼資料 邊界;機密 collection=false" }, "maintenanceWindowMissing": { - "title": "Maintenance window missing", + "title": "維護窗口 missing", "body": "未來可能涉及更新或調校時,若缺維護窗口與限制條件,不能進入決策紀錄。", - "next": "補 window pointer;host update=false" + "next": "補 window pointer;主機更新=false" }, "rollbackOwnerMissing": { - "title": "Rollback owner missing", - "body": "rollback owner 或復原路徑不可讀時,不能進入後續批准語義。", - "next": "補 rollback owner;approval record=false" + "title": "缺回復負責人", + "body": "回復 owner 或復原路徑不可讀時,不能進入後續批准語義。", + "next": "補 回復 owner;批准紀錄=false" }, "runtimeGateRequired": { - "title": "Runtime gate required", + "title": "Runtime 閘門 required", "body": "任何後續主機動作都必須導回獨立 執行期閘門,不能由 owner review outcome 執行。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordDrafts": { - "title": "主機 Owner Decision Record Draft Packets", - "subtitle": "負責人審查結果若進入 ready lane,IwoooS 也只能顯示 decision record 草稿欄位。不建立 record、不標示 accepted、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Draft Packets", + "subtitle": "負責人審查結果若進入 就緒 lane,IwoooS 也只能顯示 決策紀錄 草稿欄位。不建立 record、不標示 已接受、不開 執行期閘門。", "packetLabel": "Draft packet", "metadataLabel": "必要 metadata", "items": { @@ -5841,39 +5845,39 @@ }, "scanModeDraft": { "title": "Scan mode draft", - "body": "草稿只描述 observe-only、future active scan 或 credentialed scan 的候選模式,不代表掃描批准。", + "body": "草稿只描述 僅觀察、future active scan 或 憑證掃描 的候選模式,不代表掃描批准。", "metadata": "mode candidate;active scan=false" }, "credentialBoundaryDraft": { - "title": "Credential boundary draft", + "title": "憑證 boundary draft", "body": "草稿只保留 credential handling 的 metadata、owner 與保存邊界,不收集敏感素材。", - "metadata": "metadata-only boundary;secret collection=false" + "metadata": "僅中繼資料 boundary;機密 collection=false" }, "maintenanceConstraintsDraft": { - "title": "Maintenance constraints draft", + "title": "維護 constraints draft", "body": "草稿只記錄未來可能維護窗口、限制條件與不可影響範圍,不代表可以更新主機。", - "metadata": "window / constraint;host update=false" + "metadata": "window / constraint;主機更新=false" }, "rollbackOwnerDraft": { - "title": "Rollback owner draft", - "body": "草稿只整理 rollback owner、復原路徑與人工聯絡點,讓後續 gate 不缺責任人。", - "metadata": "owner / recovery pointer;approval record=false" + "title": "回復負責人草稿", + "body": "草稿只整理 回復 owner、復原路徑與人工聯絡點,讓後續 閘門 不缺責任人。", + "metadata": "owner / recovery pointer;批准紀錄=false" }, "validationMetricsDraft": { - "title": "Validation metrics draft", - "body": "草稿只列出 post-check metrics、baseline 與 evidence pointer,供未來人工判讀。", - "metadata": "metrics / baseline;accepted=0" + "title": "驗證指標 draft", + "body": "草稿只列出 事後檢查指標、baseline 與 evidence pointer,供未來人工判讀。", + "metadata": "metrics / baseline;已接受=0" }, "runtimeGateDraft": { - "title": "Runtime gate draft", - "body": "草稿只標示若未來批准,仍需另開 follow-up 執行期閘門,不能由草稿直接執行。", - "metadata": "執行期閘門 pointer;active gates=0" + "title": "Runtime 閘門 draft", + "body": "草稿只標示若未來批准,仍需另開 後續追蹤 執行期閘門,不能由草稿直接執行。", + "metadata": "執行期閘門 pointer;active 閘門s=0" } } }, "hostOwnerDecisionRecordDraftReview": { - "title": "主機 Owner Decision Record Draft Review Checklist", - "subtitle": "Decision record 草稿包後仍需只讀核對。這裡只顯示草稿是否具備人工決策所需 metadata,不會建立正式 decision record。", + "title": "主機 負責人 Decision Record Draft Review Checklist", + "subtitle": "Decision record 草稿包後仍需只讀核對。這裡只顯示草稿是否具備人工決策所需 metadata,不會建立正式 決策紀錄。", "checkLabel": "Draft review", "guardLabel": "不可升級", "items": { @@ -5884,45 +5888,45 @@ }, "scanModeStillNotApproval": { "title": "Scan mode still not approval", - "body": "確認 scan mode 仍只是候選描述,不被解讀成 active scan 或 credentialed scan 授權。", + "body": "確認 scan mode 仍只是候選描述,不被解讀成 active scan 或 憑證掃描 授權。", "guard": "scan authorized=false" }, "credentialBoundaryMetadataOnly": { - "title": "Credential boundary metadata only", - "body": "確認 credential boundary 仍維持 metadata-only,沒有要求或保存敏感素材。", - "guard": "secret collection=false" + "title": "憑證 boundary metadata only", + "body": "確認 credential boundary 仍維持 僅中繼資料,沒有要求或保存敏感素材。", + "guard": "機密 collection=false" }, "maintenanceConstraintsReadable": { - "title": "Maintenance constraints readable", + "title": "維護 constraints readable", "body": "確認維護窗口、限制條件與不可影響範圍可讀,但不代表可以更新或調校主機。", - "guard": "host update=false" + "guard": "主機更新=false" }, "rollbackOwnerReadable": { - "title": "Rollback owner readable", - "body": "確認 rollback owner、復原路徑與人工聯絡點可讀,但尚未建立 approval record。", - "guard": "approval record=false" + "title": "回復負責人可讀", + "body": "確認 回復 owner、復原路徑與人工聯絡點可讀,但尚未建立 批准紀錄。", + "guard": "批准紀錄=false" }, "validationMetricsLinked": { - "title": "Validation metrics linked", - "body": "確認 post-check metrics、baseline 與 evidence pointer 已連到草稿,供後續人審使用。", - "guard": "accepted=0" + "title": "驗證指標 linked", + "body": "確認 事後檢查指標、baseline 與 evidence pointer 已連到草稿,供後續人審使用。", + "guard": "已接受=0" }, "runtimeGateStillClosed": { - "title": "Runtime gate still closed", - "body": "確認 decision record 草稿審查不會開 執行期閘門,後續執行仍需獨立 gate。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still closed", + "body": "確認 決策紀錄 草稿審查不會開 執行期閘門,後續執行仍需獨立 閘門。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordDraftReviewOutcomes": { - "title": "主機 Owner Decision Record Draft Review Outcome Lanes", - "subtitle": "Draft review checklist 後只能進入這些只讀結果分流。這裡顯示下一步,不會標記 review passed、不會建立 decision record、不會開 執行期閘門。", + "title": "主機 負責人 Decision Record Draft Review 結果分流", + "subtitle": "Draft review checklist 後只能進入這些只讀結果分流。這裡顯示下一步,不會標記 review passed、不會建立 決策紀錄、不會開 執行期閘門。", "laneLabel": "Review outcome", "nextLabel": "下一步", "items": { "readyForDecisionRecordWriteup": { - "title": "Ready for decision record write-up", - "body": "scope、scan mode、credential boundary、maintenance、rollback、validation 與 runtime separation 都可讀時,只能進入正式 decision record 撰寫候選。", + "title": "就緒 for 決策紀錄 write-up", + "body": "scope、scan mode、credential boundary、maintenance、回復、validation 與 runtime separation 都可讀時,只能進入正式 決策紀錄 撰寫候選。", "next": "顯示 write-up candidate;record created=false" }, "scopeDraftIncomplete": { @@ -5936,30 +5940,30 @@ "next": "補 scan mode wording;scan authorized=false" }, "credentialBoundaryIncomplete": { - "title": "Credential boundary incomplete", - "body": "credential boundary 若不清楚 metadata-only、owner 或保存邊界,必須回到 credential 草稿補件。", - "next": "補 metadata-only boundary;secret collection=false" + "title": "憑證 boundary incomplete", + "body": "credential boundary 若不清楚 僅中繼資料、owner 或保存邊界,必須回到 credential 草稿補件。", + "next": "補 僅中繼資料 boundary;機密 collection=false" }, "maintenanceConstraintsIncomplete": { - "title": "Maintenance constraints incomplete", + "title": "維護 constraints incomplete", "body": "維護窗口、限制條件或不可影響範圍不可讀時,不能進入正式決策紀錄撰寫。", - "next": "補 constraints;host update=false" + "next": "補 constraints;主機更新=false" }, "rollbackOwnerIncomplete": { - "title": "Rollback owner incomplete", - "body": "rollback owner、復原路徑或人工聯絡點不可讀時,不能建立後續批准語義。", - "next": "補 rollback owner;approval record=false" + "title": "回復負責人未完整", + "body": "回復 owner、復原路徑或人工聯絡點不可讀時,不能建立後續批准語義。", + "next": "補 回復 owner;批准紀錄=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", + "title": "Runtime 閘門 still required", "body": "任何後續主機動作仍要等待獨立 執行期閘門,不能由 draft review outcome 執行。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordWriteups": { - "title": "主機 Owner Decision Record Write-Up Packets", - "subtitle": "Draft review outcome 若進入 ready for write-up,IwoooS 也只能顯示正式 decision record 撰寫欄位。不建立 record、不標示 completed / accepted、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Write-Up Packets", + "subtitle": "Draft review outcome 若進入 就緒 for write-up,IwoooS 也只能顯示正式 決策紀錄 撰寫欄位。不建立 record、不標示 completed / 已接受、不開 執行期閘門。", "packetLabel": "Write-up packet", "fieldLabel": "必要欄位", "items": { @@ -5975,34 +5979,34 @@ }, "scanModeLimitsWriteup": { "title": "Scan mode limits write-up", - "body": "只整理 observe-only、future active scan 或 credentialed scan 的限制條件,不代表掃描批准。", + "body": "只整理 僅觀察、future active scan 或 憑證掃描 的限制條件,不代表掃描批准。", "field": "mode limits;scan authorized=false" }, "credentialBoundaryWriteup": { - "title": "Credential boundary write-up", + "title": "憑證 boundary write-up", "body": "只整理 credential handling metadata、owner、保存邊界與不可收集內容。", - "field": "metadata-only boundary;secret collection=false" + "field": "僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackWriteup": { - "title": "Maintenance and rollback write-up", - "body": "只整理維護窗口候選、限制條件、rollback owner、復原路徑與人工聯絡點。", - "field": "window / rollback;host update=false" + "title": "維護 and 回復 write-up", + "body": "只整理維護窗口候選、限制條件、回復 owner、復原路徑與人工聯絡點。", + "field": "window / 回復;主機更新=false" }, "validationEvidenceWriteup": { - "title": "Validation evidence write-up", - "body": "只整理 post-check metrics、baseline、evidence pointer 與人工驗收條件。", - "field": "metrics / evidence;accepted=0" + "title": "驗證 evidence write-up", + "body": "只整理 事後檢查指標、baseline、evidence pointer 與人工驗收條件。", + "field": "metrics / evidence;已接受=0" }, "runtimeGatePointerWriteup": { - "title": "Runtime gate pointer write-up", - "body": "只標示若未來批准,仍要另開 follow-up 執行期閘門,不能由 write-up 執行。", - "field": "執行期閘門 pointer;active gates=0" + "title": "Runtime 閘門 pointer write-up", + "body": "只標示若未來批准,仍要另開 後續追蹤 執行期閘門,不能由 write-up 執行。", + "field": "執行期閘門 pointer;active 閘門s=0" } } }, "hostOwnerDecisionRecordWriteupReview": { - "title": "主機 Owner Decision Record Write-Up Review Checklist", - "subtitle": "Write-up packets 後仍需要只讀核對。這裡只顯示正式 decision record 撰寫欄位是否可讀,不會標記 write-up completed、不會建立或接受 decision record、不會開 執行期閘門。", + "title": "主機 負責人 Decision Record Write-Up Review Checklist", + "subtitle": "Write-up packets 後仍需要只讀核對。這裡只顯示正式 決策紀錄 撰寫欄位是否可讀,不會標記 write-up completed、不會建立或接受 決策紀錄、不會開 執行期閘門。", "checkLabel": "Write-up review", "guardLabel": "不可升級", "items": { @@ -6018,40 +6022,40 @@ }, "scanModeLimitsExplicit": { "title": "Scan mode limits explicit", - "body": "確認 observe-only、future active scan 與 credentialed scan 的限制條件明確,且不代表掃描授權。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 的限制條件明確,且不代表掃描授權。", "guard": "scan authorized=false" }, "credentialBoundaryMetadataOnly": { - "title": "Credential boundary metadata only", + "title": "憑證 boundary metadata only", "body": "確認 credential handling 仍只保留 metadata、owner 與保存邊界,不要求或保存敏感素材。", - "guard": "secret collection=false" + "guard": "機密 collection=false" }, "maintenanceRollbackLinked": { - "title": "Maintenance and rollback linked", - "body": "確認維護窗口候選、限制條件、rollback owner、復原路徑與人工聯絡點都可追。", - "guard": "host update=false" + "title": "維護 and 回復 linked", + "body": "確認維護窗口候選、限制條件、回復 owner、復原路徑與人工聯絡點都可追。", + "guard": "主機更新=false" }, "validationEvidenceLinked": { - "title": "Validation evidence linked", - "body": "確認 post-check metrics、baseline、evidence pointer 與人工驗收條件已連到 write-up。", - "guard": "accepted=0" + "title": "驗證 evidence linked", + "body": "確認 事後檢查指標、baseline、evidence pointer 與人工驗收條件已連到 write-up。", + "guard": "已接受=0" }, "runtimeGateStillSeparate": { - "title": "Runtime gate still separate", - "body": "確認 執行期閘門 pointer 仍指向獨立 follow-up gate,write-up review 不會開 gate。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still separate", + "body": "確認 執行期閘門 pointer 仍指向獨立 後續追蹤 閘門,write-up review 不會開 閘門。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordWriteupReviewOutcomes": { - "title": "主機 Owner Decision Record Write-Up Review Outcome Lanes", - "subtitle": "Write-up review checklist 後只能進入這些只讀結果分流。這裡顯示下一步,不會標記 review passed、不會建立或接受 decision record、不會開 執行期閘門。", + "title": "主機 負責人 Decision Record Write-Up Review 結果分流", + "subtitle": "Write-up review checklist 後只能進入這些只讀結果分流。這裡顯示下一步,不會標記 review passed、不會建立或接受 決策紀錄、不會開 執行期閘門。", "laneLabel": "Review outcome", "nextLabel": "下一步", "items": { "readyForFormalRecordCandidate": { - "title": "Ready for formal record candidate", - "body": "summary、scope、scan limits、credential boundary、maintenance、rollback、validation 與 runtime separation 都可讀時,只能顯示正式紀錄候選。", + "title": "就緒 for formal record candidate", + "body": "summary、scope、scan limits、credential boundary、maintenance、回復、validation 與 runtime separation 都可讀時,只能顯示正式紀錄候選。", "next": "顯示 formal record candidate;record created=false" }, "decisionSummaryNeedsClarification": { @@ -6066,29 +6070,29 @@ }, "scanModeLimitsAmbiguous": { "title": "Scan mode limits ambiguous", - "body": "scan mode limits 仍可能被誤讀成 active scan 或 credentialed scan 授權時,必須回到 write-up 修正。", + "body": "scan mode limits 仍可能被誤讀成 active scan 或 憑證掃描 授權時,必須回到 write-up 修正。", "next": "補 scan wording;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential boundary 若不清楚 metadata-only、owner、保存邊界或不可收集內容,必須回到 credential write-up。", - "next": "補 metadata-only boundary;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential boundary 若不清楚 僅中繼資料、owner、保存邊界或不可收集內容,必須回到 credential write-up。", + "next": "補 僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "維護窗口、限制條件、rollback owner、復原路徑或人工聯絡點不可讀時,不能建立批准語義。", - "next": "補 maintenance / rollback;host update=false" + "title": "維護 and 回復 incomplete", + "body": "維護窗口、限制條件、回復 owner、復原路徑或人工聯絡點不可讀時,不能建立批准語義。", + "next": "補 maintenance / 回復;主機更新=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 follow-up gate,不能由 review outcome 執行。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 後續追蹤 閘門,不能由 review outcome 執行。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalCandidates": { - "title": "主機 Owner Decision Record Formal Candidate Packets", - "subtitle": "Formal record candidate 只把未來可能寫入正式紀錄的欄位整理出來。這裡不建立 decision record、不標記 finalized / accepted、不產生 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Candidate Packets", + "subtitle": "Formal record candidate 只把未來可能寫入正式紀錄的欄位整理出來。這裡不建立 決策紀錄、不標記 finalized / 已接受、不產生 批准紀錄、不開 執行期閘門。", "packetLabel": "Candidate packet", "fieldLabel": "候選欄位", "items": { @@ -6105,33 +6109,33 @@ "approvedScopeCandidate": { "title": "Approved scope candidate", "body": "整理 host、network、service、exclusion、觀察目的與到期時間,保留 scope 可讀性。", - "field": "scope / expiry;accepted=0" + "field": "scope / expiry;已接受=0" }, "scanModeLimitsCandidate": { "title": "Scan mode limits candidate", - "body": "整理 observe-only、未來 active scan 與 credentialed scan 的限制,避免被誤讀成掃描授權。", + "body": "整理 僅觀察、未來 active scan 與 憑證掃描 的限制,避免被誤讀成掃描授權。", "field": "scan limits;scan authorized=false" }, "credentialBoundaryCandidate": { - "title": "Credential boundary candidate", - "body": "整理 metadata-only credential owner、保存邊界、遮蔽要求與不可收集內容。", - "field": "metadata-only boundary;secret collection=false" + "title": "憑證 boundary candidate", + "body": "整理 僅中繼資料 credential owner、保存邊界、遮蔽要求與不可收集內容。", + "field": "僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackCandidate": { - "title": "Maintenance and rollback candidate", - "body": "整理維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點。", - "field": "window / rollback;host update=false" + "title": "維護 and 回復 candidate", + "body": "整理維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點。", + "field": "window / 回復;主機更新=false" }, "validationRuntimeGateCandidate": { - "title": "Validation and 執行期閘門 candidate", - "body": "整理 validation evidence、post-check metrics、baseline pointer 與仍需獨立 follow-up 執行期閘門 的聲明。", - "field": "validation / runtime pointer;active gates=0" + "title": "驗證 and 執行期閘門 candidate", + "body": "整理 validation evidence、事後檢查指標、baseline pointer 與仍需獨立 後續追蹤 執行期閘門 的聲明。", + "field": "validation / runtime pointer;active 閘門s=0" } } }, "hostOwnerDecisionRecordFormalCandidateReview": { - "title": "主機 Owner Decision Record Formal Candidate Review Checklist", - "subtitle": "Formal candidate packets 進入後續人工紀錄前仍只能做只讀核對。這裡不標記 review passed、不建立 decision record、不標記 accepted、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Candidate Review Checklist", + "subtitle": "Formal candidate packets 進入後續人工紀錄前仍只能做只讀核對。這裡不標記 review passed、不建立 決策紀錄、不標記 已接受、不建立 批准紀錄、不開 執行期閘門。", "checkLabel": "Candidate review", "guardLabel": "仍鎖住", "items": { @@ -6142,8 +6146,8 @@ }, "decisionSummaryReadable": { "title": "Decision summary readable", - "body": "確認 decision summary、風險接受邊界與不執行聲明可讀,但仍不代表 decision accepted。", - "guard": "accepted=0" + "body": "確認 decision summary、風險接受邊界與不執行聲明可讀,但仍不代表 decision 已接受。", + "guard": "已接受=0" }, "scopeExpiryConsistent": { "title": "範圍 and expiry consistent", @@ -6152,35 +6156,35 @@ }, "scanLimitsStillNotAuthorization": { "title": "Scan limits still not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 沒有被誤讀成 active scan 或 credentialed scan 授權。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 沒有被誤讀成 active scan 或 憑證掃描 授權。", "guard": "scan authorized=false" }, "credentialBoundaryStillMetadataOnly": { - "title": "Credential boundary still metadata-only", + "title": "憑證 boundary still 僅中繼資料", "body": "確認 credential boundary 只保留 metadata、owner、retention、masking 與不可收集內容。", - "guard": "secret collection=false" + "guard": "機密 collection=false" }, "maintenanceRollbackTraceable": { - "title": "Maintenance and rollback traceable", - "body": "確認維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點可追。", - "guard": "host update=false" + "title": "維護 and 回復 traceable", + "body": "確認維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點可追。", + "guard": "主機更新=false" }, "runtimeGateStillClosed": { - "title": "Runtime gate still closed", - "body": "確認 validation evidence 與 執行期閘門 pointer 仍只指向獨立 follow-up gate,candidate review 不會開 gate。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still closed", + "body": "確認 validation evidence 與 執行期閘門 pointer 仍只指向獨立 後續追蹤 閘門,candidate review 不會開 閘門。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalCandidateReviewOutcomes": { - "title": "主機 Owner Decision Record Formal Candidate Review Outcome Lanes", - "subtitle": "Formal candidate review outcome 只呈現候選核對後的下一步分流。這裡不標記 review passed、不標記 finalized、不建立 decision record、不標記 accepted、不建立 approval record、不開 執行期閘門。", - "laneLabel": "Outcome lane", + "title": "主機 負責人 Decision Record Formal Candidate Review 結果分流", + "subtitle": "Formal candidate review outcome 只呈現候選核對後的下一步分流。這裡不標記 review passed、不標記 finalized、不建立 決策紀錄、不標記 已接受、不建立 批准紀錄、不開 執行期閘門。", + "laneLabel": "結果 lane", "nextLabel": "下一步仍只讀", "items": { "readyForHumanRecordQueue": { - "title": "Ready for human record queue", - "body": "候選欄位可讀時,只能顯示可送人工正式紀錄佇列,不會建立 decision record。", + "title": "就緒 for human record queue", + "body": "候選欄位可讀時,只能顯示可送人工正式紀錄佇列,不會建立 決策紀錄。", "next": "queue visible only;record created=false" }, "identityNeedsTrace": { @@ -6191,7 +6195,7 @@ "decisionSummaryNeedsClarification": { "title": "Decision summary needs clarification", "body": "decision summary、風險接受邊界或不執行聲明不清楚時,維持候選狀態。", - "next": "補 decision summary;accepted=0" + "next": "補 decision summary;已接受=0" }, "scopeExpiryNeedsRefresh": { "title": "範圍 and expiry need refresh", @@ -6200,29 +6204,29 @@ }, "scanLimitsAmbiguous": { "title": "Scan limits remain ambiguous", - "body": "active scan 或 credentialed scan limits 可能被誤讀時,仍鎖在不授權狀態。", + "body": "active scan 或 憑證掃描 limits 可能被誤讀時,仍鎖在不授權狀態。", "next": "補 scan limits;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", + "title": "憑證 boundary failed", "body": "credential metadata、retention、masking 或 forbidden collection 邊界不清楚時,直接隔離。", - "next": "補 metadata-only boundary;secret collection=false" + "next": "補 僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "維護窗口、限制條件、rollback owner、復原路徑或人工聯絡點不可追時,不能建立批准語義。", - "next": "補 maintenance / rollback;host update=false" + "title": "維護 and 回復 incomplete", + "body": "維護窗口、限制條件、回復 owner、復原路徑或人工聯絡點不可追時,不能建立批准語義。", + "next": "補 maintenance / 回復;主機更新=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 follow-up gate,不能由 outcome 開 gate。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 後續追蹤 閘門,不能由 outcome 開 閘門。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalRecordQueue": { - "title": "主機 Owner Decision Record Formal Record Queue Packets", - "subtitle": "Formal record queue packets 只整理未來人工正式紀錄佇列需要看到的資料包。這裡不 enqueue、不建立 decision record、不標記 accepted、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Record Queue Packets", + "subtitle": "Formal record queue packets 只整理未來人工正式紀錄佇列需要看到的資料包。這裡不 enqueue、不建立 決策紀錄、不標記 已接受、不建立 批准紀錄、不開 執行期閘門。", "packetLabel": "Queue packet", "fieldLabel": "佇列欄位", "items": { @@ -6233,7 +6237,7 @@ }, "queueDecisionSummaryPacket": { "title": "Queue decision summary packet", - "body": "整理 decision summary、風險接受邊界與不執行聲明,但不建立正式 decision record。", + "body": "整理 decision summary、風險接受邊界與不執行聲明,但不建立正式 決策紀錄。", "field": "decision summary;record created=false" }, "queueScopeExpiryPacket": { @@ -6243,34 +6247,34 @@ }, "queueScanLimitsPacket": { "title": "Queue scan limits packet", - "body": "整理 observe-only、future active scan 與 credentialed scan limits,避免被誤讀成掃描授權。", + "body": "整理 僅觀察、future active scan 與 憑證掃描 limits,避免被誤讀成掃描授權。", "field": "scan limits;scan authorized=false" }, "queueCredentialBoundaryPacket": { "title": "Queue credential boundary packet", - "body": "整理 metadata-only credential owner、retention、masking 與 forbidden collection 邊界。", - "field": "metadata-only boundary;secret collection=false" + "body": "整理 僅中繼資料 credential owner、retention、masking 與 forbidden collection 邊界。", + "field": "僅中繼資料 boundary;機密 collection=false" }, "queueMaintenanceRollbackPacket": { - "title": "Queue maintenance and rollback packet", - "body": "整理維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點。", - "field": "window / rollback;host update=false" + "title": "Queue maintenance and 回復 packet", + "body": "整理維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點。", + "field": "window / 回復;主機更新=false" }, "queueValidationRuntimeGatePacket": { "title": "Queue validation and 執行期閘門 packet", - "body": "整理 validation evidence、post-check metrics、baseline pointer 與獨立 執行期閘門 需求。", - "field": "validation / runtime pointer;active gates=0" + "body": "整理 validation evidence、事後檢查指標、baseline pointer 與獨立 執行期閘門 需求。", + "field": "validation / runtime pointer;active 閘門s=0" }, "queueNoExecutionAttestationPacket": { "title": "Queue no-execution attestation packet", - "body": "整理仍不執行、不批准、不開 gate 的聲明,避免佇列資料包被當成授權。", + "body": "整理仍不執行、不批准、不開 閘門 的聲明,避免佇列資料包被當成授權。", "field": "not authorization;操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalRecordQueueReview": { - "title": "主機 Owner Decision Record Formal Record Queue Review Checklist", - "subtitle": "Formal record queue review checklist 只確認佇列資料包是否可供未來人工正式紀錄審查。不標記 review passed、不 enqueue、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Record Queue Review Checklist", + "subtitle": "Formal record queue review checklist 只確認佇列資料包是否可供未來人工正式紀錄審查。不標記 review passed、不 enqueue、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "checkLabel": "Queue review", "guardLabel": "保護邊界", "items": { @@ -6281,7 +6285,7 @@ }, "queueDecisionSummaryReadable": { "title": "Queue decision summary readable", - "body": "確認 decision summary 與 no-execution statement 可讀,但不產生正式 decision record。", + "body": "確認 decision summary 與 no-execution statement 可讀,但不產生正式 決策紀錄。", "guard": "summary only;record created=false" }, "queueScopeExpiryFresh": { @@ -6291,39 +6295,39 @@ }, "queueScanLimitsNotAuthorization": { "title": "Queue scan limits not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 仍只是限制描述,不是掃描批准。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 仍只是限制描述,不是掃描批准。", "guard": "scan authorized=false" }, "queueCredentialBoundaryMetadataOnly": { - "title": "Queue credential boundary metadata-only", + "title": "Queue credential boundary 僅中繼資料", "body": "確認 credential boundary 只保留 metadata、owner、retention 與 masking 邊界,不要求敏感素材。", - "guard": "secret collection=false" + "guard": "機密 collection=false" }, "queueMaintenanceRollbackLinked": { - "title": "Queue maintenance and rollback linked", - "body": "確認維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點都有 pointer,但不代表可以做主機套件變更或調校。", - "guard": "host change=false" + "title": "Queue maintenance and 回復 linked", + "body": "確認維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點都有 pointer,但不代表可以做主機套件變更或調校。", + "guard": "主機變更=false" }, "queueValidationGateSeparate": { - "title": "Queue validation gate separate", - "body": "確認 validation evidence、post-check metrics 與 baseline pointer 仍導向獨立 執行期閘門。", - "guard": "active gates=0" + "title": "Queue validation 閘門 separate", + "body": "確認 validation evidence、事後檢查指標 與 baseline pointer 仍導向獨立 執行期閘門。", + "guard": "active 閘門s=0" }, "queueNoExecutionAttestationPresent": { "title": "Queue no-execution attestation present", - "body": "確認 no-execution / no-approval / no-runtime-gate 聲明仍在,避免 checklist 被當成 action entry。", + "body": "確認 no-execution / no-approval / no-runtime-閘門 聲明仍在,避免 checklist 被當成 action entry。", "guard": "操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalRecordQueueReviewOutcomes": { - "title": "主機 Owner Decision Record Formal Record Queue Review Outcome Lanes", - "subtitle": "Formal record queue review outcome lanes 只顯示 checklist 後的下一步分流。不代表 review passed、不 enqueue、不建立 decision record、不接受 owner decision、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Record Queue Review 結果分流", + "subtitle": "Formal record queue review outcome lanes 只顯示 checklist 後的下一步分流。不代表 review passed、不 enqueue、不建立 決策紀錄、不接受 owner decision、不建立 批准紀錄、不開 執行期閘門。", "laneLabel": "Queue review outcome", "nextLabel": "下一步", "items": { "readyForHumanRecordOwnerHandoff": { - "title": "Ready for human record owner handoff", + "title": "就緒 for human record owner handoff", "body": "所有 queue review 條件都可讀時,只能顯示未來交給人工 record owner 的候選狀態。", "next": "顯示 handoff 候選;review passed=0、queue enqueued=0" }, @@ -6335,7 +6339,7 @@ "decisionSummaryNeedsClarification": { "title": "Decision summary needs clarification", "body": "decision summary 或 no-execution statement 不可讀時,回到 summary packet 補文字。", - "next": "補 decision summary;accepted=0" + "next": "補 decision summary;已接受=0" }, "scopeExpiryNeedsRefresh": { "title": "範圍 and expiry need refresh", @@ -6344,46 +6348,46 @@ }, "scanLimitsRemainAmbiguous": { "title": "Scan limits remain ambiguous", - "body": "observe-only、future active scan 或 credentialed scan limits 若仍可能被誤讀成授權,必須回到 scan limits packet。", + "body": "僅觀察、future active scan 或 憑證掃描 limits 若仍可能被誤讀成授權,必須回到 scan limits packet。", "next": "補 scan limits;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential boundary 若無法保持 metadata-only 或責任邊界不可讀,必須隔離補證。", - "next": "補 metadata-only boundary;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential boundary 若無法保持 僅中繼資料 或責任邊界不可讀,必須隔離補證。", + "next": "補 僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "維護窗口、限制條件、rollback owner、復原路徑或人工聯絡點缺漏時,不能進入正式紀錄語義。", - "next": "補 maintenance / rollback;host change=false" + "title": "維護 and 回復 incomplete", + "body": "維護窗口、限制條件、回復 owner、復原路徑或人工聯絡點缺漏時,不能進入正式紀錄語義。", + "next": "補 maintenance / 回復;主機變更=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 follow-up gate,不能由 queue review outcome 開 gate。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 後續追蹤 閘門,不能由 queue review outcome 開 閘門。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanHandoffReadiness": { - "title": "主機 Owner Decision Record Human Record Owner Handoff Readiness Packets", - "subtitle": "Human record owner handoff readiness packets 只顯示未來交給人工 record owner 前要準備的 metadata。不代表 handoff started、不代表 handoff ready、不代表 review passed、不建立 decision record、不接受 owner decision、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Handoff Readiness Packets", + "subtitle": "Human record owner handoff readiness packets 只顯示未來交給人工 record owner 前要準備的 metadata。不代表 handoff started、不代表 handoff 就緒、不代表 review passed、不建立 決策紀錄、不接受 owner decision、不開 執行期閘門。", "packetLabel": "Handoff readiness packet", "guardLabel": "保護邊界", "items": { "handoffIdentityTrace": { "title": "Handoff identity and trace", "body": "顯示 candidate record id、版本、來源 outcome lane、source queue review 與 trace pointer 是否足夠供未來人工 record owner 辨識。", - "guard": "handoff started=0;ready=0" + "guard": "handoff started=0;就緒=0" }, "handoffOwnerBoundary": { "title": "Human record owner boundary", - "body": "顯示未來 record owner、backup owner、聯絡窗口與責任邊界,但不自動通知、不收 decision、不建立 approval record。", - "guard": "owner decision received=0" + "body": "顯示未來 record owner、backup owner、聯絡窗口與責任邊界,但不自動通知、不收 decision、不建立 批准紀錄。", + "guard": "owner decision 已收到=0" }, "handoffDecisionSummary": { "title": "Decision summary packet", "body": "顯示 decision summary、no-execution statement 與候選結論是否可讀,避免 handoff 時把摘要當成批准。", - "guard": "decision record created=false" + "guard": "決策紀錄 created=false" }, "handoffScopeExpiry": { "title": "範圍 and expiry packet", @@ -6392,46 +6396,46 @@ }, "handoffScanLimits": { "title": "Scan limits packet", - "body": "顯示 observe-only、future active scan 與 credentialed scan limits 的限制文字,讓人工 record owner 清楚這不是掃描授權。", + "body": "顯示 僅觀察、future active scan 與 憑證掃描 limits 的限制文字,讓人工 record owner 清楚這不是掃描授權。", "guard": "scan authorized=false" }, "handoffCredentialBoundary": { - "title": "Credential boundary packet", - "body": "顯示 credential boundary metadata、retention 與 masking 責任,不收 plaintext、不收 token value、不收 raw secret。", - "guard": "secret collection=false" + "title": "憑證 boundary packet", + "body": "顯示 credential boundary metadata、retention 與 masking 責任,不收 plaintext、不收 token value、不收 raw 機密。", + "guard": "機密 collection=false" }, "handoffMaintenanceRollback": { - "title": "Maintenance and rollback packet", - "body": "顯示維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點,仍不允許 SSH、package update 或主機調校。", - "guard": "host change=false" + "title": "維護 and 回復 packet", + "body": "顯示維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點,仍不允許 SSH、package update 或主機調校。", + "guard": "主機變更=false" }, "handoffRuntimeGate": { - "title": "Runtime gate separation packet", - "body": "顯示 validation evidence 與 follow-up 執行期閘門 pointer 仍是獨立 gate,不能由 handoff readiness 開啟。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 separation packet", + "body": "顯示 validation evidence 與 後續追蹤 執行期閘門 pointer 仍是獨立 閘門,不能由 handoff readiness 開啟。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanHandoffReadinessReview": { - "title": "主機 Owner Decision Record Human Handoff Readiness Review Checklist", - "subtitle": "Human handoff readiness review checklist 只顯示 handoff readiness packets 進人工 record owner 前的只讀核對條件。不代表 review passed、不開始 handoff、不標記 handoff ready、不建立 decision record、不接受 owner decision、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Handoff Readiness Review Checklist", + "subtitle": "Human handoff readiness review checklist 只顯示 handoff readiness packets 進人工 record owner 前的只讀核對條件。不代表 review passed、不開始 handoff、不標記 handoff 就緒、不建立 決策紀錄、不接受 owner decision、不開 執行期閘門。", "checkLabel": "Handoff readiness check", "guardLabel": "保護邊界", "items": { "identityTraceReadable": { "title": "Identity trace readable", "body": "確認 candidate record id、版本、來源 outcome lane、source queue review 與 trace pointer 可讀;缺漏時只能回補 identity trace。", - "guard": "handoff started=0;ready=0" + "guard": "handoff started=0;就緒=0" }, "ownerBoundaryReadable": { - "title": "Owner boundary readable", + "title": "負責人 boundary readable", "body": "確認 future record owner、backup owner、聯絡窗口與責任邊界可讀;不能自動通知或收 owner decision。", - "guard": "owner decision received=0" + "guard": "owner decision 已收到=0" }, "decisionSummaryReadable": { "title": "Decision summary readable", "body": "確認 decision summary、候選結論與 no-execution statement 可讀,避免 handoff readiness 被誤讀成批准。", - "guard": "decision record created=false" + "guard": "決策紀錄 created=false" }, "scopeExpiryCurrent": { "title": "範圍 and expiry current", @@ -6440,46 +6444,46 @@ }, "scanLimitsNotAuthorization": { "title": "Scan limits not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 仍只是限制文字,不是掃描批准。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 仍只是限制文字,不是掃描批准。", "guard": "scan authorized=false" }, "credentialBoundaryMetadataOnly": { - "title": "Credential boundary metadata-only", - "body": "確認 credential boundary 只含 metadata、retention 與 masking 責任;不得收 plaintext、token value 或 raw secret。", - "guard": "secret collection=false" + "title": "憑證 boundary 僅中繼資料", + "body": "確認 credential boundary 只含 metadata、retention 與 masking 責任;不得收 plaintext、token value 或 raw 機密。", + "guard": "機密 collection=false" }, "maintenanceRollbackTraceable": { - "title": "Maintenance and rollback traceable", - "body": "確認維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點可追溯,但仍不能 SSH、更新套件或調校主機。", - "guard": "host change=false" + "title": "維護 and 回復 traceable", + "body": "確認維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點可追溯,但仍不能 SSH、更新套件或調校主機。", + "guard": "主機變更=false" }, "runtimeGateSeparate": { - "title": "Runtime gate separate", - "body": "確認 validation evidence 與 follow-up 執行期閘門 仍維持獨立,不由 readiness review 開啟。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 separate", + "body": "確認 validation evidence 與 後續追蹤 執行期閘門 仍維持獨立,不由 readiness review 開啟。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanHandoffReadinessReviewOutcomes": { - "title": "主機 Owner Decision Record Human Handoff Readiness Review Outcome Lanes", - "subtitle": "Human handoff readiness review outcome lanes 只顯示 checklist 後的下一步分流。不代表 review passed、不開始 handoff、不標記 handoff ready、不建立 decision record、不接受 owner decision、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Handoff Readiness Review 結果分流", + "subtitle": "Human handoff readiness review outcome lanes 只顯示 checklist 後的下一步分流。不代表 review passed、不開始 handoff、不標記 handoff 就緒、不建立 決策紀錄、不接受 owner decision、不建立 批准紀錄、不開 執行期閘門。", "laneLabel": "Handoff review outcome", "nextLabel": "下一步", "items": { "readyForHumanRecordOwnerReviewCandidate": { - "title": "Ready for human record owner review candidate", + "title": "就緒 for human record owner review candidate", "body": "所有 readiness review 條件都可讀時,只能顯示未來交給人工 record owner 看看的候選狀態。", "next": "顯示 review candidate;review passed=0、handoff started=0" }, "identityTraceNeedsRefresh": { "title": "Identity trace needs refresh", "body": "candidate record id、版本、來源 outcome lane、source queue review 或 trace pointer 不清楚時,回到 identity packet 補證。", - "next": "補 identity trace;handoff ready=0" + "next": "補 identity trace;handoff 就緒=0" }, "ownerBoundaryNeedsClarification": { - "title": "Owner boundary needs clarification", + "title": "負責人 boundary needs clarification", "body": "record owner、backup owner、聯絡窗口或責任邊界不可讀時,回到 owner boundary packet 補文字。", - "next": "補 owner boundary;decision received=0" + "next": "補 owner boundary;decision 已收到=0" }, "decisionSummaryNeedsClarification": { "title": "Decision summary needs clarification", @@ -6493,46 +6497,46 @@ }, "scanLimitsRemainAmbiguous": { "title": "Scan limits remain ambiguous", - "body": "observe-only、future active scan 或 credentialed scan limits 仍可能被誤讀成授權時,回到 scan limits packet。", + "body": "僅觀察、future active scan 或 憑證掃描 limits 仍可能被誤讀成授權時,回到 scan limits packet。", "next": "補 scan limits;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential boundary 若不是 metadata-only,或 plaintext、token value、raw secret 邊界不清楚,必須隔離補證。", - "next": "補 credential boundary;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential boundary 若不是 僅中繼資料,或 plaintext、token value、raw 機密 邊界不清楚,必須隔離補證。", + "next": "補 credential boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "維護窗口、限制條件、rollback owner、復原路徑或人工聯絡點缺漏時,不能進入人工 record owner review 語義。", - "next": "補 maintenance / rollback;host change=false" + "title": "維護 and 回復 incomplete", + "body": "維護窗口、限制條件、回復 owner、復原路徑或人工聯絡點缺漏時,不能進入人工 record owner review 語義。", + "next": "補 maintenance / 回復;主機變更=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence 或 follow-up 執行期閘門 pointer 仍需要獨立 gate,不能由 readiness review outcome 開 gate。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence 或 後續追蹤 執行期閘門 pointer 仍需要獨立 閘門,不能由 readiness review outcome 開 閘門。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewCandidatePackets": { - "title": "主機 Owner Decision Record Human Record Owner Review Candidate Packets", - "subtitle": "Human record owner review candidate packets 只整理未來人工 record owner 可能需要看的 metadata。它不開始 handoff、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Candidate Packets", + "subtitle": "Human record owner review candidate packets 只整理未來人工 record owner 可能需要看的 metadata。它不開始 handoff、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "packetLabel": "Review candidate packet", "guardLabel": "保護邊界", "items": { "reviewCandidateIdentity": { "title": "Review candidate identity packet", "body": "整理 candidate id、來源 readiness outcome、版本、trace pointer 與來源 queue review 連結,讓人工 record owner 未來能看懂來源。", - "guard": "review started=0;decision record created=false" + "guard": "review started=0;決策紀錄 created=false" }, "reviewOwnerBoundary": { "title": "Review owner boundary packet", "body": "整理 human record owner、backup owner、聯絡窗口與責任邊界,但不把 owner contact 視為已接案或已決策。", - "guard": "owner decision received=0;handoff started=0" + "guard": "owner decision 已收到=0;handoff started=0" }, "reviewDecisionSummary": { "title": "Review decision summary packet", "body": "整理候選決策摘要、風險接受邊界與 no-execution statement,避免人工 review 候選被誤讀成正式紀錄。", - "guard": "review ready=0;record accepted=0" + "guard": "review 就緒=0;record 已接受=0" }, "reviewScopeExpiry": { "title": "Review scope and expiry packet", @@ -6541,34 +6545,34 @@ }, "reviewScanLimits": { "title": "Review scan limits packet", - "body": "整理 observe-only、future active scan 與 credentialed scan limits,明確保留 active scan 仍需獨立批准。", + "body": "整理 僅觀察、future active scan 與 憑證掃描 limits,明確保留 active scan 仍需獨立批准。", "guard": "scan authorized=false;操作按鈕s=false" }, "reviewCredentialBoundary": { "title": "Review credential boundary packet", - "body": "整理 credential owner、retention、masking 與 forbidden collection,只允許 metadata,不收 plaintext、token value 或 raw secret。", - "guard": "secret collection=false;原始載荷=false" + "body": "整理 credential owner、retention、masking 與 forbidden collection,只允許 metadata,不收 plaintext、token value 或 raw 機密。", + "guard": "機密 collection=false;原始載荷=false" }, "reviewMaintenanceRollback": { - "title": "Review maintenance and rollback packet", - "body": "整理 maintenance window、constraints、rollback owner、recovery path 與人工聯絡點,但不代表可以變更主機。", - "guard": "host change=false;Kali update=false" + "title": "Review maintenance and 回復 packet", + "body": "整理 maintenance window、constraints、回復 owner、recovery path 與人工聯絡點,但不代表可以變更主機。", + "guard": "主機變更=false;Kali update=false" }, "reviewValidationRuntimeGate": { "title": "Review validation and 執行期閘門 packet", - "body": "整理 validation evidence pointer、post-check metrics 與獨立 執行期閘門 requirement,仍不能由 candidate packet 開 gate。", + "body": "整理 validation evidence pointer、事後檢查指標 與獨立 執行期閘門 requirement,仍不能由 candidate packet 開 閘門。", "guard": "執行期閘門 opened=false;runtime execution=false" }, "reviewNoExecutionAttestation": { "title": "Review no-execution attestation packet", "body": "固定 not authorization、no execution、no approval、no 執行期閘門 statement,避免人工 review candidate 被誤解成批准。", - "guard": "not_authorization=true;approval record=false" + "guard": "not_authorization=true;批准紀錄=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewCandidateChecklist": { - "title": "主機 Owner Decision Record Human Record Owner Review Candidate Checklist", - "subtitle": "Human record owner review candidate checklist 只核對 candidate packets 是否可讀。不代表 checklist passed、不開始 review、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Candidate Checklist", + "subtitle": "Human record owner review candidate checklist 只核對 candidate packets 是否可讀。不代表 checklist passed、不開始 review、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "checkLabel": "Review candidate check", "guardLabel": "保護邊界", "items": { @@ -6580,12 +6584,12 @@ "candidateOwnerBoundaryReadable": { "title": "Candidate owner boundary readable", "body": "確認 human record owner、backup owner、聯絡窗口與責任邊界可讀,但不代表 owner 已接案。", - "guard": "owner decision received=0;review ready=0" + "guard": "owner decision 已收到=0;review 就緒=0" }, "candidateDecisionSummaryReadable": { "title": "Candidate decision summary readable", - "body": "確認候選決策摘要、風險接受邊界與 no-execution statement 可讀,仍不是正式 decision record。", - "guard": "decision record created=false;accepted=0" + "body": "確認候選決策摘要、風險接受邊界與 no-execution statement 可讀,仍不是正式 決策紀錄。", + "guard": "決策紀錄 created=false;已接受=0" }, "candidateScopeExpiryCurrent": { "title": "Candidate scope and expiry current", @@ -6594,39 +6598,39 @@ }, "candidateScanLimitsNotAuthorization": { "title": "Candidate scan limits not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 沒有被寫成掃描授權。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 沒有被寫成掃描授權。", "guard": "scan authorized=false;操作按鈕s=false" }, "candidateCredentialBoundaryMetadataOnly": { - "title": "Candidate credential boundary metadata-only", - "body": "確認 credential owner、retention、masking 與 forbidden collection 仍是 metadata-only。", - "guard": "secret collection=false;原始載荷=false" + "title": "Candidate credential boundary 僅中繼資料", + "body": "確認 credential owner、retention、masking 與 forbidden collection 仍是 僅中繼資料。", + "guard": "機密 collection=false;原始載荷=false" }, "candidateMaintenanceRollbackTraceable": { - "title": "Candidate maintenance and rollback traceable", - "body": "確認 maintenance window、constraints、rollback owner、recovery path 與人工聯絡點可追溯。", - "guard": "host change=false;Kali update=false" + "title": "Candidate maintenance and 回復 traceable", + "body": "確認 maintenance window、constraints、回復 owner、recovery path 與人工聯絡點可追溯。", + "guard": "主機變更=false;Kali update=false" }, "candidateValidationRuntimeGateSeparate": { "title": "Candidate validation and 執行期閘門 separate", - "body": "確認 validation evidence pointer、post-check metrics 與 執行期閘門 requirement 仍維持獨立。", + "body": "確認 validation evidence pointer、事後檢查指標 與 執行期閘門 requirement 仍維持獨立。", "guard": "執行期閘門 opened=false;runtime execution=false" }, "candidateNoExecutionAttestationPresent": { "title": "Candidate no-execution attestation present", "body": "確認 not authorization、no execution、no approval、no 執行期閘門 statement 都可見。", - "guard": "not_authorization=true;approval record=false" + "guard": "not_authorization=true;批准紀錄=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewCandidateOutcomes": { - "title": "主機 Owner Decision Record Human Record Owner Review Candidate Outcome Lanes", - "subtitle": "Human record owner review candidate outcome lanes 只顯示 candidate checklist 後下一步分流。不代表 checklist passed、不開始 review、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Candidate 結果分流", + "subtitle": "Human record owner review candidate outcome lanes 只顯示 candidate checklist 後下一步分流。不代表 checklist passed、不開始 review、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "laneLabel": "Review candidate outcome", "nextLabel": "下一步", "items": { "readyForHumanRecordOwnerReviewPreparation": { - "title": "Ready for human record owner review preparation candidate", + "title": "就緒 for human record owner review preparation candidate", "body": "所有 candidate checklist 只讀條件都可被準備成未來人工 record owner review 畫面,但目前仍只是 preparation candidate。", "next": "display only;review started=0" }, @@ -6636,9 +6640,9 @@ "next": "refresh identity trace;check passed=0" }, "ownerBoundaryNeedsClarification": { - "title": "Owner boundary needs clarification", + "title": "負責人 boundary needs clarification", "body": "human record owner、backup owner、contact channel 或責任邊界仍需釐清,不能視為 owner 已接案。", - "next": "clarify owner boundary;decision received=0" + "next": "clarify owner boundary;decision 已收到=0" }, "decisionSummaryNeedsClarification": { "title": "Decision summary needs clarification", @@ -6648,33 +6652,33 @@ "scopeExpiryNeedsRefresh": { "title": "範圍 and expiry need refresh", "body": "host、network、service、exclusion、observation intent 或 expiry 需要刷新後才能進下一層人工準備。", - "next": "refresh scope;review ready=0" + "next": "refresh scope;review 就緒=0" }, "scanLimitsRemainAmbiguous": { "title": "Scan limits remain ambiguous", - "body": "observe-only、future active scan 或 credentialed scan limits 仍可能被誤讀成授權,需要保留為阻擋分流。", + "body": "僅觀察、future active scan 或 憑證掃描 limits 仍可能被誤讀成授權,需要保留為阻擋分流。", "next": "clarify limits;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential owner、retention、masking 或 forbidden collection 沒有維持 metadata-only 時必須隔離。", - "next": "quarantine credential boundary;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential owner、retention、masking 或 forbidden collection 沒有維持 僅中繼資料 時必須隔離。", + "next": "quarantine credential boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "maintenance window、constraints、rollback owner、recovery path 或人工聯絡點仍缺漏,不能導向主機變更。", - "next": "complete maintenance data;host change=false" + "title": "維護 and 回復 incomplete", + "body": "maintenance window、constraints、回復 owner、recovery path 或人工聯絡點仍缺漏,不能導向主機變更。", + "next": "complete maintenance data;主機變更=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence、post-check metrics 或 follow-up 執行期閘門 pointer 仍需獨立 gate,不可由 candidate outcome 開啟。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence、事後檢查指標 或 後續追蹤 執行期閘門 pointer 仍需獨立 閘門,不可由 candidate outcome 開啟。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewPreparationPackets": { - "title": "主機 Owner Decision Record Human Record Owner Review Preparation Packets", - "subtitle": "Human record owner review preparation packets 只整理未來人工 record owner review 畫面需要的 metadata。它不代表 preparation completed、不開始 review、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Preparation Packets", + "subtitle": "Human record owner review preparation packets 只整理未來人工 record owner review 畫面需要的 metadata。它不代表 preparation completed、不開始 review、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "packetLabel": "Review preparation packet", "guardLabel": "保護邊界", "items": { @@ -6686,12 +6690,12 @@ "preparationOwnerBoundary": { "title": "Preparation owner boundary packet", "body": "整理 human record owner、backup owner、聯絡窗口、責任邊界與待確認項目,但不代表 owner 已接案或已決策。", - "guard": "owner decision received=0;review ready=0" + "guard": "owner decision 已收到=0;review 就緒=0" }, "preparationDecisionSummary": { "title": "Preparation decision summary packet", - "body": "整理候選決策摘要、風險接受邊界、no-execution statement 與正式紀錄前置說明,仍不是 decision record。", - "guard": "decision record created=false;accepted=0" + "body": "整理候選決策摘要、風險接受邊界、no-execution statement 與正式紀錄前置說明,仍不是 決策紀錄。", + "guard": "決策紀錄 created=false;已接受=0" }, "preparationScopeExpiry": { "title": "Preparation scope and expiry packet", @@ -6700,34 +6704,34 @@ }, "preparationScanLimits": { "title": "Preparation scan limits packet", - "body": "整理 observe-only、future active scan、credentialed scan limits 與仍需獨立批准的掃描邊界。", + "body": "整理 僅觀察、future active scan、憑證掃描 limits 與仍需獨立批准的掃描邊界。", "guard": "scan authorized=false;操作按鈕s=false" }, "preparationCredentialBoundary": { "title": "Preparation credential boundary packet", - "body": "整理 credential owner、retention、masking、forbidden collection 與隔離規則,只允許 metadata-only。", - "guard": "secret collection=false;原始載荷=false" + "body": "整理 credential owner、retention、masking、forbidden collection 與隔離規則,只允許 僅中繼資料。", + "guard": "機密 collection=false;原始載荷=false" }, "preparationMaintenanceRollback": { - "title": "Preparation maintenance and rollback packet", - "body": "整理 maintenance window、constraints、rollback owner、recovery path 與人工聯絡點,但不代表可以變更主機。", - "guard": "host change=false;Kali update=false" + "title": "Preparation maintenance and 回復 packet", + "body": "整理 maintenance window、constraints、回復 owner、recovery path 與人工聯絡點,但不代表可以變更主機。", + "guard": "主機變更=false;Kali update=false" }, "preparationValidationRuntimeGate": { "title": "Preparation validation and 執行期閘門 packet", - "body": "整理 validation evidence pointer、post-check metrics 與獨立 執行期閘門 requirement,仍不能由 preparation packet 開 gate。", + "body": "整理 validation evidence pointer、事後檢查指標 與獨立 執行期閘門 requirement,仍不能由 preparation packet 開 閘門。", "guard": "執行期閘門 opened=false;runtime execution=false" }, "preparationNoExecutionAttestation": { "title": "Preparation no-execution attestation packet", "body": "固定 not authorization、no execution、no approval、no 執行期閘門 statement,避免 preparation packet 被誤解成批准。", - "guard": "not_authorization=true;approval record=false" + "guard": "not_authorization=true;批准紀錄=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewPreparationChecklist": { - "title": "主機 Owner Decision Record Human Record Owner Review Preparation Checklist", - "subtitle": "Human record owner review preparation checklist 只核對 preparation packets 是否可讀。不代表 preparation completed、不代表 checklist passed、不開始 review、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Preparation Checklist", + "subtitle": "Human record owner review preparation checklist 只核對 preparation packets 是否可讀。不代表 preparation completed、不代表 checklist passed、不開始 review、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "checkLabel": "Review preparation check", "guardLabel": "保護邊界", "items": { @@ -6739,12 +6743,12 @@ "preparationOwnerBoundaryReadable": { "title": "Preparation owner boundary readable", "body": "確認 human record owner、backup owner、聯絡窗口、責任邊界與待確認項目可讀,但不代表 owner 已接案。", - "guard": "owner decision received=0;review ready=0" + "guard": "owner decision 已收到=0;review 就緒=0" }, "preparationDecisionSummaryReadable": { "title": "Preparation decision summary readable", - "body": "確認候選決策摘要、風險接受邊界、no-execution statement 與正式紀錄前置說明可讀,仍不是 decision record。", - "guard": "decision record created=false;accepted=0" + "body": "確認候選決策摘要、風險接受邊界、no-execution statement 與正式紀錄前置說明可讀,仍不是 決策紀錄。", + "guard": "決策紀錄 created=false;已接受=0" }, "preparationScopeExpiryCurrent": { "title": "Preparation scope and expiry current", @@ -6753,137 +6757,137 @@ }, "preparationScanLimitsNotAuthorization": { "title": "Preparation scan limits not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 沒有被寫成掃描授權。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 沒有被寫成掃描授權。", "guard": "scan authorized=false;操作按鈕s=false" }, "preparationCredentialBoundaryMetadataOnly": { - "title": "Preparation credential boundary metadata-only", - "body": "確認 credential owner、retention、masking、forbidden collection 與隔離規則仍是 metadata-only。", - "guard": "secret collection=false;原始載荷=false" + "title": "Preparation credential boundary 僅中繼資料", + "body": "確認 credential owner、retention、masking、forbidden collection 與隔離規則仍是 僅中繼資料。", + "guard": "機密 collection=false;原始載荷=false" }, "preparationMaintenanceRollbackTraceable": { - "title": "Preparation maintenance and rollback traceable", - "body": "確認 maintenance window、constraints、rollback owner、recovery path 與人工聯絡點可追溯。", - "guard": "host change=false;Kali update=false" + "title": "Preparation maintenance and 回復 traceable", + "body": "確認 maintenance window、constraints、回復 owner、recovery path 與人工聯絡點可追溯。", + "guard": "主機變更=false;Kali update=false" }, "preparationValidationRuntimeGateSeparate": { "title": "Preparation validation and 執行期閘門 separate", - "body": "確認 validation evidence pointer、post-check metrics 與獨立 執行期閘門 requirement 仍維持分離。", + "body": "確認 validation evidence pointer、事後檢查指標 與獨立 執行期閘門 requirement 仍維持分離。", "guard": "執行期閘門 opened=false;runtime execution=false" }, "preparationNoExecutionAttestationPresent": { "title": "Preparation no-execution attestation present", "body": "確認 not authorization、no execution、no approval、no 執行期閘門 statement 都可見,避免 checklist 被誤解成批准。", - "guard": "not_authorization=true;approval record=false" + "guard": "not_authorization=true;批准紀錄=false" } } }, "progressHoldMovementGates": { "title": "為什麼現在是 61%", - "subtitle": "AwoooP 正式只讀 landing 已有部署與消費證據,所以 headline 從 58% 保守重估到 61%。其餘四個高層 gate 仍是 0 / false,框架、文件與前端可見性不會被灌水成 runtime 執行。", + "subtitle": "AwoooP 正式只讀 landing 已有部署與消費證據,所以 重點 從 58% 保守重估到 61%。其餘四個高層 閘門 仍是 0 / false,框架、文件與前端可見性不會被灌水成 runtime 執行。", "gateLabel": "移動門檻", "moveLabel": "什麼時候會動", "guardLabel": "不灌水原則", "items": { "ownerResponseAccepted": { - "title": "負責人回覆 accepted 仍是 0", - "body": "S4.9-S4.12 都還沒有負責人回覆 已收到 / 已接受,S4.9 目前只是 request-ready。", - "move": "第一批脫敏負責人回覆通過 S4.9 preflight 與 S4.13 rollup 後,headline 才有重估依據。", - "guard": "不把 request-ready、範本、preflight 或焦點當成 已收到 / 已接受。" + "title": "負責人回覆 已接受 仍是 0", + "body": "S4.9-S4.12 都還沒有負責人回覆 已收到 / 已接受,S4.9 目前只是 request-就緒。", + "move": "第一批脫敏負責人回覆通過 S4.9 preflight 與 S4.13 rollup 後,重點 才有重估依據。", + "guard": "不把 request-就緒、範本、preflight 或焦點當成 已收到 / 已接受。" }, "redactedPayloadIngested": { - "title": "脫敏 payload 匯入仍未啟用", - "body": "目前只定義 evidence refs、redaction examples、quarantine 與 preflight,尚未有 accepted payload ingestion。", - "move": "脫敏 payload 經人工批准、通過 preflight、進入只讀 ingestion 後,runtime landing 才能重估。", + "title": "脫敏 載荷 匯入仍未啟用", + "body": "目前只定義 evidence refs、redaction examples、quarantine 與 preflight,尚未有 已接受 載荷 ingestion。", + "move": "脫敏 載荷 經人工批准、通過 preflight、進入只讀 ingestion 後,runtime landing 才能重估。", "guard": "不收原始載荷、不收 credential plaintext、不把文件範例當 ingestion。" }, "activeRuntimeGate": { "title": "主動 執行期閘門 仍是 0", - "body": "Kali `/execute`、SSH、主機更新、blocking control、repo / refs / workflow 動作都仍在獨立 gate 之外。", - "move": "人工批准、scope、rollback、post-check metrics 完整,並另開 active 執行期閘門 後才會動。", + "body": "Kali `/execute`、SSH、主機更新、阻擋控制、repo / refs / 工作流程 動作都仍在獨立 閘門 之外。", + "move": "人工批准、scope、回復、事後檢查指標 完整,並另開 active 執行期閘門 後才會動。", "guard": "不從 IwoooS 前端、progress 數字或 checklist 開 執行期閘門。" }, "githubPrimaryReady": { "title": "GitHub 主要來源就緒數仍是 0", - "body": "GitHub target、refs truth、工作流程 / 機密 name parity、rollback ADR 都還在負責人回覆 / 就緒度階段。", - "move": "至少一批 repo 通過 target、refs、工作流程 / 機密 name 與 rollback readiness,primary_ready_count 才可大於 0。", - "guard": "不建 repo、不 sync refs、不切主要來源、不把候選項當就緒。" + "body": "GitHub target、refs 真相、工作流程 / 機密 name parity、回復 ADR 都還在負責人回覆 / 就緒度階段。", + "move": "至少一批 repo 通過 target、refs、工作流程 / 機密 name 與 回復 readiness,primary_就緒_count 才可大於 0。", + "guard": "不建 repo、不 同步 refs、不切主要來源、不把候選項當就緒。" }, "awooopReadOnlyLanding": { "title": "AwoooP 正式只讀 landing 已驗證", "body": "正式站已能在 AwoooP / IwoooS / 安全頁只讀顯示資安鏡像進度、證據邊界與禁止動作,且沒有接 execution router。", - "move": "這項證據已推動 headline 從 58% 重估到 61%;後續仍要等 owner response、runtime gate 或 GitHub primary 才能再動。", - "guard": "read-only landing 不是 操作按鈕、approval、runtime execution 或 blocking control。" + "move": "這項證據已推動 重點 從 58% 重估到 61%;後續仍要等 負責人回覆、runtime 閘門 或 GitHub primary 才能再動。", + "guard": "read-only landing 不是 操作按鈕、approval、runtime execution 或 阻擋控制。" } } }, "headlineMovementAcceptanceGate": { "title": "61% 重估驗收紀錄", - "subtitle": "S2.100 的五個高層 gate 中,AwoooP production landing evidence 已有正式部署與只讀消費證據,因此本次只把 headline 從 58% 保守重估到 61%;其餘 owner response、脫敏匯入、執行期閘門與 GitHub 主要來源仍是 0 / false。", - "gateLabel": "重估 gate", + "subtitle": "S2.100 的五個高層 閘門 中,AwoooP 正式環境落地 evidence 已有正式部署與只讀消費證據,因此本次只把 重點 從 58% 保守重估到 61%;其餘 負責人回覆、脫敏匯入、執行期閘門與 GitHub 主要來源仍是 0 / false。", + "gateLabel": "重估 閘門", "acceptanceLabel": "驗收條件", "guardLabel": "仍禁止", "boundaryTitle": "進度重估邊界", "summary": { "headline": { - "label": "目前 headline", + "label": "目前 重點", "detail": "已從 58% 保守重估到 61%,不把框架層堆疊灌水成落地執行。" }, "signals": { "label": "移動訊號", - "detail": "五個高層 gate 中 1 個已有正式只讀 landing 證據。" + "detail": "五個高層 閘門 中 1 個已有正式只讀 landing 證據。" }, "s49Accepted": { - "label": "S4.9 accepted", + "label": "S4.9 已接受", "detail": "五個 負責人回覆 template 尚未收到可接受 evidence。" }, "review": { "label": "重估紀錄", - "detail": "已建立本次 headline review record;runtime 仍未授權。" + "detail": "已建立本次 重點 審查 record;runtime 仍未授權。" } }, "items": { "s49OwnerResponseAccepted": { "title": "S4.9 負責人回覆驗收", "body": "下一個真正會推動 61% 的 P0 是 Gitea owner attestation:public-only / local gap、org/user endpoint、110 adjacent scope、repo owner canonical scope、legacy / inaccessible disposition 五項要收到脫敏 evidence。", - "acceptance": "五項都通過 preflight 與 S4.13 validation rollup,才可記錄 owner_response_accepted_count > 0。", + "acceptance": "五項都通過 preflight 與 S4.13 validation rollup,才可記錄 owner_response_已接受_count > 0。", "guard": "不代填、不催收、不標記 已收到 / 已接受、不建立審批紀錄。" }, "redactedPayloadAccepted": { - "title": "脫敏 payload 匯入驗收", - "body": "只有 redacted metadata pointer 可以進入只讀收件與驗收;原始 dump、git object、token、cookie、private key 或 credential plaintext 都要隔離。", - "acceptance": "人工批准 ingestion path、preflight 通過、quarantine 結果可追溯後,payloads_ingested 才可改變。", + "title": "脫敏 載荷 匯入驗收", + "body": "只有 redacted 中繼資料指標 可以進入只讀收件與驗收;原始 dump、git object、token、cookie、private key 或 credential plaintext 都要隔離。", + "acceptance": "人工批准 ingestion path、preflight 通過、quarantine 結果可追溯後,載荷s_ingested 才可改變。", "guard": "不收明文機密、不保存原始載荷、不把文件範例當匯入完成。" }, "runtimeGateApproved": { "title": "執行期閘門人工批准", - "body": "Kali `/execute`、SSH、主機更新、掃描、修復、blocking control 與部署都必須另開人工 執行期閘門。", - "acceptance": "scope、rollback、maintenance window、post-check metrics 與人工批准都到齊後,active_runtime_gate_count 才能大於 0。", + "body": "Kali `/execute`、SSH、主機更新、掃描、修復、阻擋控制 與部署都必須另開人工 執行期閘門。", + "acceptance": "scope、回復、maintenance window、事後檢查指標 與人工批准都到齊後,active_runtime_閘門_count 才能大於 0。", "guard": "IwoooS 沒有執行按鈕;進度看板不能啟動 runtime。" }, "githubPrimaryEvidenceReady": { "title": "GitHub 主要來源就緒證據", - "body": "Gitea 轉 GitHub 的長期方向需要 target owner、visibility、refs truth、工作流程 / 機密 name parity 與 rollback ADR 都能驗證。", - "acceptance": "至少一批 repo 有完整負責人回覆與 rollback readiness,primary_ready_count 才能從 0 往上。", + "body": "Gitea 轉 GitHub 的長期方向需要 target owner、visibility、refs 真相、工作流程 / 機密 name parity 與 回復 ADR 都能驗證。", + "acceptance": "至少一批 repo 有完整負責人回覆與 回復 readiness,primary_就緒_count 才能從 0 往上。", "guard": "不建立 repo、不同步 refs、不改 工作流程 / 機密、不切主要來源、不停用 Gitea。" }, "awooopProductionLandingProof": { "title": "AwoooP 正式只讀消費證據", - "body": "AwoooP 主線已在正式站只讀消費 IwoooS / security mirror 的 headline、evidence refs、guard result 與 forbidden actions。", + "body": "AwoooP 主線已在正式站只讀消費 IwoooS / security 鏡像 的 重點、evidence refs、guard result 與 forbidden action。", "acceptance": "已有 Gitea main commit、CD 成功與正式站路由驗證;execution_router_linked=false、runtime_execution_authorized=false。", - "guard": "只讀 landing 不是 approval、操作按鈕、execution router 或 blocking control。" + "guard": "只讀 landing 不是 approval、操作按鈕、execution router 或 阻擋控制。" }, "nextHeadlineReviewRecord": { - "title": "本次 headline review record", + "title": "本次 重點 審查 record", "body": "本次重估只引用 AwoooP 正式只讀 landing 證據,說明為何從 58% 調整到 61%。", "acceptance": "review record 必須引用具體 evidence refs、guard output、風險邊界與禁止動作清單;本次仍鎖 runtime。", - "guard": "不因為新增看板、文件或清單就調整 headline。" + "guard": "不因為新增看板、文件或清單就調整 重點。" } } }, "sourceControlReadiness": { "title": "GitHub 主要來源就緒度", - "subtitle": "把 Gitea 轉 GitHub 的長期方向拆成只讀就緒度:候選 repo、負責人回覆、refs truth、工作流程 / 機密 名稱與 rollback ADR 都要到齊,才會重估 primary_ready_count。", + "subtitle": "把 Gitea 轉 GitHub 的長期方向拆成只讀就緒度:候選 repo、負責人回覆、refs 真相、工作流程 / 機密 名稱與 回復 ADR 都要到齊,才會重估 primary_就緒_count。", "gateLabel": "就緒度閘門", "guardLabel": "仍禁止", "items": { @@ -6893,28 +6897,28 @@ "guard": "不建立 GitHub repo、不改可見性。" }, "primaryReady": { - "title": "primary_ready_count 仍為 0", - "body": "尚無 repo 通過 target、refs、工作流程 / 機密 名稱與 rollback readiness。", + "title": "primary_就緒_count 仍為 0", + "body": "尚無 repo 通過 target、refs、工作流程 / 機密 名稱與 回復 readines。", "guard": "不切 GitHub 主要來源、不停用 Gitea。" }, "ownerResponses": { "title": "負責人回覆仍等待", - "body": "S4.9-S4.12 共 22 個範本,目前 received=0、accepted=0。", - "guard": "不把 request-ready 當 response accepted。" + "body": "S4.9-S4.12 共 22 個範本,目前 已收到=0、已接受=0。", + "guard": "不把 request-就緒 當 回覆已接受。" }, "refsTruth": { "title": "Refs truth 尚未接受", "body": "main / dev truth、release tags、deprecated refs 仍需 owner 判定。", - "guard": "不 push、delete、force push refs。" + "guard": "不 push、delete、強制推送 ref。" }, "workflowSecrets": { "title": "工作流程 / 機密 名稱未完成", - "body": "7 個範圍內 repo 的 workflow、runner、webhook、secret name parity 還缺 evidence。", + "body": "7 個範圍內 repo 的 工作流程、runner、webhook、機密 name parity 還缺 evidence。", "guard": "只收名稱與 owner,不收 機密明文值。" }, "rollbackAdr": { "title": "Rollback ADR 未批准", - "body": "7 個範圍內 repo 的 rollback 負責人、驗證窗口與 trigger 尚待人工審查。", + "body": "7 個範圍內 repo 的 回復 負責人、驗證窗口與 trigger 尚待人工審查。", "guard": "不 dry-run cutover、不切 primary。" } } @@ -7027,7 +7031,7 @@ }, "redactedEvidence": { "title": "收脫敏證據", - "body": "目前沒有匯入 payload;後續只能先收可驗證、可隔離、可回溯的脫敏證據。", + "body": "目前沒有匯入 載荷;後續只能先收可驗證、可隔離、可回溯的脫敏證據。", "movement": "schema、遮罩、來源、隔離與拒收規則都通過後,才進入下一步。", "guard": "不收機密明文值、不保存 token value、不直接改外部系統。" }, @@ -7093,13 +7097,13 @@ "title": "分支 / 標籤真相回覆", "body": "需要 main、dev、release tag、deprecated refs 與保留策略的負責人判定。", "movement": "五項 refs 真相都齊全後,才允許規劃同步或清理方案。", - "guard": "不同步、不刪除、不 force push 任何分支或標籤參照。" + "guard": "不同步、不刪除、不 強制推送 任何分支或標籤參照。" }, "workflowSecretNames": { "title": "工作流程 / 機密名稱回覆", - "body": "需要 workflow、runner、webhook、secret name parity 與部署責任人的脫敏回覆。", + "body": "需要 工作流程、runner、webhook、機密 name parity 與部署責任人的脫敏回覆。", "movement": "五項名稱與責任範圍齊全後,才允許進入設定差異審查。", - "guard": "不收機密明文值、不修改工作流程、不注入或旋轉 secret。" + "guard": "不收機密明文值、不修改工作流程、不注入或旋轉 機密。" } } }, @@ -7431,7 +7435,7 @@ "title": "主要來源分離", "body": "GitHub 主要來源切換、Gitea 停用、工作流程 / 機密設定或 refs 動作不能由候選直接推進。", "preflight": "只標記需要另開主要來源或版本控制人工閘門。", - "guard": "不切 GitHub 主要來源、不停用 Gitea、不改 workflow / 機密設定。" + "guard": "不切 GitHub 主要來源、不停用 Gitea、不改 工作流程 / 機密設定。" } } }, @@ -7493,15 +7497,15 @@ }, "quarantineSensitivePayload": { "title": "隔離敏感載荷", - "body": "若候選含機密明文、token、cookie、private key 或 exploit payload,必須先隔離。", + "body": "若候選含機密明文、token、cookie、private key 或 exploit 載荷,必須先隔離。", "result": "只標記隔離原因與來源欄位。", "guard": "不展示、不保存、不轉送任何機密明文值。" }, "rejectMutationRequest": { "title": "拒收變更要求", - "body": "若候選夾帶專案庫、refs、workflow、機密設定、主機或部署變更要求,先拒收。", + "body": "若候選夾帶專案庫、refs、工作流程、機密設定、主機或部署變更要求,先拒收。", "result": "只標記拒收原因,等待重新提交只讀候選。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定。" }, "runtimeOrCutoverGateRequired": { "title": "另開執行或切換閘門", @@ -7575,9 +7579,9 @@ }, "handoffSourceControlPointer": { "title": "主要來源指標包", - "body": "GitHub 主要來源切換、Gitea 停用、refs 或 workflow / 機密設定 動作只能作為後續人工閘門指標。", + "body": "GitHub 主要來源切換、Gitea 停用、refs 或 工作流程 / 機密設定 動作只能作為後續人工閘門指標。", "handoff": "只標記版本控制與主要來源相關待決事項。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不停用 Gitea。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不停用 Gitea。" } } }, @@ -7639,9 +7643,9 @@ }, "mutationRequestReject": { "title": "變更要求拒收檢查", - "body": "檢查交接包是否夾帶專案庫、refs、workflow、機密設定、部署或主機變更要求。", + "body": "檢查交接包是否夾帶專案庫、refs、工作流程、機密設定、部署或主機變更要求。", "review": "只標記需要拒收或重送只讀版本的項目。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeCutoverSeparation": { "title": "執行與切換分離", @@ -7709,15 +7713,15 @@ }, "quarantineSensitivePayload": { "title": "隔離敏感載荷", - "body": "若交接包或補件夾帶 token、cookie、private key、密碼或 exploit payload,必須隔離。", + "body": "若交接包或補件夾帶 token、cookie、private key、密碼或 exploit 載荷,必須隔離。", "result": "只標記隔離原因與來源欄位。", "guard": "不展示、不保存、不轉送任何機密明文值。" }, "rejectMutationRequest": { "title": "拒收變更要求", - "body": "若驗收結果夾帶專案庫、refs、workflow、機密設定、部署或主機變更要求,先拒收。", + "body": "若驗收結果夾帶專案庫、refs、工作流程、機密設定、部署或主機變更要求,先拒收。", "result": "只標記拒收原因,等待重新提交只讀版本。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeOrCutoverGateRequired": { "title": "另開執行或切換閘門", @@ -7791,9 +7795,9 @@ }, "mutationRejectionPacket": { "title": "變更拒收包", - "body": "整理專案庫、refs、workflow、機密設定、部署或主機變更要求是否已被拒收。", + "body": "整理專案庫、refs、工作流程、機密設定、部署或主機變更要求是否已被拒收。", "prepare": "只標記拒收理由與需要重送只讀版本的項目。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeCutoverPointer": { "title": "執行切換指標包", @@ -7867,9 +7871,9 @@ }, "mutationRejectionCheck": { "title": "變更拒收檢查", - "body": "確認專案庫、refs、workflow、機密設定、部署或主機變更要求是否已被拒收或隔離。", + "body": "確認專案庫、refs、工作流程、機密設定、部署或主機變更要求是否已被拒收或隔離。", "review": "只標記拒收狀態與需要重送只讀版本的項目。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeCutoverSeparationCheck": { "title": "執行切換分離檢查", @@ -7943,9 +7947,9 @@ }, "rejectMutationRequest": { "title": "拒收變更要求", - "body": "若結果夾帶專案庫、refs、workflow、機密設定、部署或主機變更要求,必須拒收。", + "body": "若結果夾帶專案庫、refs、工作流程、機密設定、部署或主機變更要求,必須拒收。", "result": "只標記拒收原因,等待重新提交只讀版本。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeOrPrimaryGateRequired": { "title": "另開執行或主要來源閘門", @@ -8337,32 +8341,32 @@ }, "awooopReadOnlyLandingReadiness": { "title": "AwoooP 只讀接入就緒度", - "subtitle": "S2.51 把 AwoooP 主線要如何只讀消費 IwoooS / 資安鏡像狀態整理成接入準備面板。這是接入就緒度,不是 production landing enabled,也不接 execution router。", + "subtitle": "S2.51 把 AwoooP 主線要如何只讀消費 IwoooS / 資安鏡像狀態整理成接入準備面板。這是接入就緒度,不是 正式環境落地 enabled,也不接 execution router。", "readinessLabel": "只讀接入", "requirementLabel": "接入要求", "guardLabel": "仍鎖住", "items": { "rollupSnapshotReadable": { "title": "彙總快照可讀", - "body": "`security-mirror-status-rollup.snapshot.json` 與 `iwooos-posture-projection.snapshot.json` 已可作為 AwoooP 只讀入口的主要來源。", + "body": "`security-鏡像-status-rollup.snapshot.json` 與 `iwooos-posture-projection.snapshot.json` 已可作為 AwoooP 只讀入口的主要來源。", "requirement": "AwoooP 只讀消費已提交快照與 guard output,不直接呼叫 Kali、Gitea、GitHub 或 runtime API。", "guard": "production_landing_enabled=false;execution router linked=false" }, "evidenceRefsReadable": { - "title": "Evidence refs 可追溯", - "body": "IwoooS 已列出資安 rollout、負責人回覆驗證、Kali 狀態、彙總與投影的 evidence refs。", + "title": "證據 refs 可追溯", + "body": "IwoooS 已列出資安 分階段套用、負責人回覆驗證、Kali 狀態、彙總與投影的 evidence ref。", "requirement": "AwoooP landing 只能顯示 evidence refs 與狀態摘要,不保存原始載荷、credential plaintext 或 token value。", - "guard": "payloads_ingested=false;機密明文值 collection=false" + "guard": "載荷s_ingested=false;機密明文值 collection=false" }, "guardChecksKnown": { "title": "Guard 檢查已知", - "body": "`security-mirror-progress-guard.py` 與 `source-control-owner-response-guard.py` 是接入前必跑的只讀檢查。", + "body": "`security-鏡像-progress-guard.py` 與 `source-control-owner-response-guard.py` 是接入前必跑的只讀檢查。", "requirement": "AwoooP 主線接入前必須保留進度、負責人回覆、runtime flags、操作按鈕 與 forbidden output 檢查。", - "guard": "不跳過 guard;不把 guard pass 當 runtime approval" + "guard": "不跳過 guard;不把 guard pass 當 runtime 批准" }, "routeGroupsKnown": { "title": "鏡像路由群組已知", - "body": "`security_mirror_route_v1` 已定義操作控制台、runtime state、channel event、audit evidence、approval queue 的只讀目的地。", + "body": "`security_鏡像_route_v1` 已定義操作控制台、runtime state、channel event、audit evidence、approval queue 的只讀目的地。", "requirement": "AwoooP 只能依 route group 顯示與分類,不新增掃描、執行、修復、repo、refs 或部署動作。", "guard": "action_buttons_allowed=false;runtime_execution_authorized=false" }, @@ -8376,40 +8380,40 @@ "title": "Production 交接仍待接入", "body": "目前只是 AwoooP 只讀 landing 的接入準備,尚未證明 AwoooP production 主線已消費這組狀態。", "requirement": "需要後續 PR / deployment evidence 證明 AwoooP 主線只讀顯示 rollup、evidence refs 與 guard result。", - "guard": "progress_change_applied=false;headline percent delta=0" + "guard": "progress_change_applied=false;重點 percent delta=0" } } }, "progressAcceleration": { "title": "進度加速與真正解鎖點", - "subtitle": "目前不是沒有推進,而是 61% headline 只在負責人回覆、執行期閘門、GitHub 主要來源就緒度或 AwoooP production landing 有實質 evidence 時才會重估。這裡把下一批有感推進點集中顯示。", + "subtitle": "目前不是沒有推進,而是 61% 重點 只在負責人回覆、執行期閘門、GitHub 主要來源就緒度或 AwoooP 正式環境落地 有實質 evidence 時才會重估。這裡把下一批有感推進點集中顯示。", "laneLabel": "加速路線", "unlockLabel": "解鎖訊號", "guardLabel": "仍維持低摩擦邊界", "items": { "ownerResponses": { "title": "負責人回覆先收斂", - "body": "S4.9-S4.12 的 Gitea、GitHub target、refs truth、工作流程 / 機密 name 負責人回覆是目前 61% 最主要的卡點。", - "unlock": "收到並驗收第一批脫敏負責人回覆後,headline 才有重估依據。", - "guard": "只收脫敏 evidence;不建立 repo、不同步 refs、不修改 workflow、不收 機密明文值。" + "body": "S4.9-S4.12 的 Gitea、GitHub target、refs 真相、工作流程 / 機密 name 負責人回覆是目前 61% 最主要的卡點。", + "unlock": "收到並驗收第一批脫敏負責人回覆後,重點 才有重估依據。", + "guard": "只收脫敏 evidence;不建立 repo、不同步 refs、不修改 工作流程、不收 機密明文值。" }, "redactedIngestion": { "title": "脫敏匯入接上可見證據", - "body": "資安 finding、Kali observe 訊號與負責人 evidence 需要先以 redacted metadata 進入只讀收件面,再談 runtime。", - "unlock": "redacted payload ingestion adapter 經人工批准並通過 preflight 後,runtime landing 會有實質訊號。", + "body": "資安 發現、Kali observe 訊號與負責人 evidence 需要先以 redacted metadata 進入只讀收件面,再談 runtime。", + "unlock": "脫敏載荷 ingestion adapter 經人工批准並通過 preflight 後,runtime landing 會有實質訊號。", "guard": "不收原始載荷、不收 credential plaintext、不啟動 active scan。" }, "runtimeGate": { - "title": "Runtime gate 必須獨立批准", - "body": "後續真正掃描、修復、主機更新或 blocking control 都不能從前端狀態自動推進。", - "unlock": "S3 / S3.4 有人工批准、rollback、post-check metrics 與 active 執行期閘門 後,才進入落地重估。", - "guard": "active 執行期閘門=0;操作按鈕=false;Kali /execute 仍是 block candidate。" + "title": "Runtime 閘門 必須獨立批准", + "body": "後續真正掃描、修復、主機更新或 阻擋控制 都不能從前端狀態自動推進。", + "unlock": "S3 / S3.4 有人工批准、回復、事後檢查指標 與 active 執行期閘門 後,才進入落地重估。", + "guard": "active 執行期閘門=0;操作按鈕=false;Kali /execute 仍是 阻擋候選。" }, "githubReadiness": { "title": "GitHub 主要來源就緒度要拆關鍵缺口", - "body": "Gitea 轉 GitHub 的大方向已確認,但 target、refs、工作流程 / 機密 name、rollback ADR 還沒全量驗證。", - "unlock": "負責人回覆、refs truth、workflow parity 與 rollback ADR 都可驗證後,primary_ready_count 才能往上。", - "guard": "不切主要來源、不 force push、不刪 refs、不建立未批准 target repo。" + "body": "Gitea 轉 GitHub 的大方向已確認,但 target、refs、工作流程 / 機密 name、回復 ADR 還沒全量驗證。", + "unlock": "負責人回覆、refs 真相、工作流程 parity 與 回復 ADR 都可驗證後,primary_就緒_count 才能往上。", + "guard": "不切主要來源、不 強制推送、不刪 refs、不建立未批准 target repo。" }, "awooopLanding": { "title": "AwoooP / IwoooS 主線可見", @@ -8420,14 +8424,14 @@ "cadenceCompression": { "title": "後續節奏改成批次推進", "body": "S2.38-S2.45 太多細層 checklist 讓進度看起來碎。後續應優先收斂 P0 負責人回覆 與 AwoooP landing,而不是無限拆小核對項。", - "unlock": "相同類型的 framework detail 之後合併成一批回報,只有高層 gate 變動才調整 headline。", - "guard": "節奏加快不等於放寬安全;runtime 與 source-control cutover 仍需人工 gate。" + "unlock": "相同類型的 framework detail 之後合併成一批回報,只有高層 閘門 變動才調整 重點。", + "guard": "節奏加快不等於放寬安全;runtime 與 source-control cutover 仍需人工 閘門。" } } }, "ownerResponseNextActionFocus": { - "title": "Owner Response 下一步收件焦點", - "subtitle": "S2.47 將下一個真正能推動 61% 的 負責人回覆 工作排清楚:先收 S4.9 Gitea owner attestation,再依序處理 GitHub target、refs truth、工作流程 / 機密 name。這裡只顯示收件焦點,不催收、不代填、不標記 received。", + "title": "負責人 Response 下一步收件焦點", + "subtitle": "S2.47 將下一個真正能推動 61% 的 負責人回覆 工作排清楚:先收 S4.9 Gitea owner attestation,再依序處理 GitHub target、refs 真相、工作流程 / 機密 name。這裡只顯示收件焦點,不催收、不代填、不標記 已收到。", "focusLabel": "下一步焦點", "nextLabel": "要看的 evidence", "guardLabel": "仍禁止", @@ -8435,41 +8439,41 @@ "giteaOwnerAttestation": { "title": "S4.9 Gitea owner attestation 先收", "body": "先確認 Gitea 覆蓋範圍、public-only / local gap、org/user endpoint、110 adjacent source、canonical owner 與 legacy disposition。", - "next": "需要 owner 依 GITEA-INVENTORY-OWNER-ATTESTATION-RESPONSE 回覆 5 個脫敏 evidence refs。", - "guard": "received=0;accepted=0;不保存 token value、不寫 Gitea、不 sync refs、不切 primary。" + "next": "需要 owner 依 GITEA-INVENTORY-OWNER-ATTESTATION-RESPONSE 回覆 5 個脫敏 evidence ref。", + "guard": "已收到=0;已接受=0;不保存 token value、不寫 Gitea、不 同步 refs、不切 primary。" }, "githubTargetOwnerDecision": { "title": "S4.10 GitHub target 決策接續", "body": "確認每個 GitHub target 的 owner、visibility、canonical disposition 與 not_found_or_private 處理方式。", - "next": "S4.9 通過後,才依 GITHUB-TARGET-OWNER-DECISION-RESPONSE 收 7 個 target responses。", + "next": "S4.9 通過後,才依 GITHUB-TARGET-OWNER-DECISION-RESPONSE 收 7 個 target response。", "guard": "不建立 GitHub repo、不改 visibility、不同步 refs、不把 target response 當 primary approval。" }, "refsTruthOwnerResponse": { "title": "S4.11 Refs truth 再判定", "body": "釐清 main/dev truth、deprecated drift、release tag 與 GitHub-only refs,避免 migration 時把舊 refs 誤當真相。", "next": "需要 repo owner 對 141 個 ref review items 做單 repo / 單 ref 判定。", - "guard": "不 fetch、不 push、不 delete refs、不 force push、不 rewrite history。" + "guard": "不 fetch、不 push、不 delete refs、不 強制推送、不 rewrite history。" }, "workflowSecretOwnerResponse": { "title": "S4.12 工作流程 / 機密 名稱最後補齊", - "body": "補 webhook、runner、deploy key、branch protection / CODEOWNERS、repository secret name parity。", + "body": "補 webhook、runner、deploy key、branch protection / CODEOWNERS、repository 機密 name parity。", "next": "只收名稱、owner 與脫敏 parity evidence,讓 GitHub readiness 有可驗證缺口表。", - "guard": "不收 機密明文值、不改 workflow、不啟用 runner、不使用 write token。" + "guard": "不收 機密明文值、不改 工作流程、不啟用 runner、不使用 write token。" } } }, "s49OwnerResponseRequestTemplates": { - "title": "S4.9 Owner Response 五個回覆 Template", - "subtitle": "S2.49 將 S4.9 owner 要逐項回答的五個 template 顯示在 IwoooS。這裡只是 request-ready 清單:request 仍未送出、不催收、不代填、不標記 已收到 / 已接受,也不把任何 template 當成 Gitea inventory 或 GitHub migration approval。", + "title": "S4.9 負責人 Response 五個回覆 Template", + "subtitle": "S2.49 將 S4.9 owner 要逐項回答的五個 template 顯示在 IwoooS。這裡只是 request-就緒 清單:request 仍未送出、不催收、不代填、不標記 已收到 / 已接受,也不把任何 template 當成 Gitea inventory 或 GitHub migration approval。", "templateLabel": "Template", - "ownerActionLabel": "Owner 要回覆", + "ownerActionLabel": "負責人 要回覆", "guardLabel": "仍禁止", "items": { "publicOnlyVsLocalGiteaGap": { "title": "Public-only / local Gitea gap", "body": "判定 `wooo/clawbot-v5` 與 `wooo/wooo-aiops` 是否屬於本輪 inventory / migration scope。", - "ownerAction": "逐 repo 回覆 in scope、out of scope、legacy archived、external system、inaccessible 或 needs more evidence,並引用脫敏 evidence refs。", - "guard": "request_ready_not_sent;received=0;accepted=0;不寫 Gitea、不建立 repo、不 sync refs。" + "ownerAction": "逐 repo 回覆 in scope、out of scope、legacy archived、external system、inaccessible 或 needs more evidence,並引用脫敏 evidence ref。", + "guard": "request_就緒_not_sent;已收到=0;已接受=0;不寫 Gitea、不建立 repo、不 同步 ref。" }, "orgUserEndpointIdentity": { "title": "Gitea `wooo` org/user endpoint", @@ -8491,8 +8495,8 @@ }, "legacyOrInaccessibleDisposition": { "title": "Legacy / inaccessible disposition", - "body": "對 legacy、inaccessible 或 external repo 留下 disposition、理由與 follow-up owner。", - "ownerAction": "標示 archive、exclude、follow-up evidence 或 external owner,並保留脫敏 trace。", + "body": "對 legacy、inaccessible 或 external repo 留下 disposition、理由與 後續追蹤 owner。", + "ownerAction": "標示 archive、exclude、後續追蹤 evidence 或 external owner,並保留脫敏 trace。", "guard": "不刪除、不停用、不封存 repo;disposition 只是人工分類,不是執行命令。" } } @@ -8518,7 +8522,7 @@ }, "accepted": { "label": "已接受", - "detail": "目前仍是 0,不推動 headline。" + "detail": "目前仍是 0,不推動 重點。" } }, "items": { @@ -8583,11 +8587,11 @@ }, "singleSecurityNarrative": { "title": "收斂資安敘事", - "body": "原本分散在安全、合規、治理、授權、告警與 Code Review 的內容,統一由 IwoooS 顯示整體邊界。" + "body": "原本分散在安全、合規、治理、授權、告警與 程式碼審查 的內容,統一由 IwoooS 顯示整體邊界。" }, "runtimeControls": { "title": "不新增執行控制", - "body": "本階段只有可視化與資訊架構整理,不新增掃描、修復、批准、部署或 blocking control。" + "body": "本階段只有可視化與資訊架構整理,不新增掃描、修復、批准、部署或 阻擋控制。" } } }, @@ -8717,11 +8721,11 @@ "evidencePacket": { "title": "脫敏證據包", "body": "可以整理版本來源、負責人回覆、快照與 guard 結果的脫敏參照。", - "gate": "不可收集機密明文、token value 或未脫敏 payload。" + "gate": "不可收集機密明文、token value 或未脫敏 載荷。" }, "humanReviewPrep": { "title": "人工審查準備", - "body": "可以把例外、風險接受、修復順序與候選 gate 整理成人工審查材料。", + "body": "可以把例外、風險接受、修復順序與候選 閘門 整理成人工審查材料。", "gate": "不可把準備材料視為批准紀錄或執行期閘門。" }, "runtimeClosed": { @@ -8733,9 +8737,9 @@ }, "progressMovementSignals": { "title": "61% 進度移動訊號驗收條", - "subtitle": "S2.113 把真正會讓整體資安網 headline 往前的訊號拉到 IwoooS:AwoooP 落地證據已驗證為 1,讓整體從 58% 保守重估到 61%;負責人回覆、脫敏證據匯入、執行期閘門與 GitHub 主要來源仍是 0 或 false。", + "subtitle": "S2.113 把真正會讓整體資安網 重點 往前的訊號拉到 IwoooS:AwoooP 落地證據已驗證為 1,讓整體從 58% 保守重估到 61%;負責人回覆、脫敏證據匯入、執行期閘門與 GitHub 主要來源仍是 0 或 false。", "boundaryTitle": "進度移動驗收邊界", - "boundaryIntro": "以下鍵值固定:這是 headline 移動條件的只讀驗收條,不是進度灌水、批准、掃描、修復、部署、主機變更或版本來源操作入口。", + "boundaryIntro": "以下鍵值固定:這是 重點 移動條件的只讀驗收條,不是進度灌水、批准、掃描、修復、部署、主機變更或版本來源操作入口。", "summary": { "headline": { "label": "目前進度", @@ -8747,7 +8751,7 @@ }, "passed": { "label": "已通過", - "detail": "目前 1,AwoooP 正式只讀 landing 是第一個 headline 移動證據。" + "detail": "目前 1,AwoooP 正式只讀 landing 是第一個 重點 移動證據。" }, "runtime": { "label": "執行期閘門", @@ -8757,11 +8761,11 @@ "items": { "ownerResponse": { "title": "負責人回覆接受", - "body": "S4.9 至少要有可追溯、已脫敏且通過驗收的 負責人回覆,才可能觸發 headline review。" + "body": "S4.9 至少要有可追溯、已脫敏且通過驗收的 負責人回覆,才可能觸發 重點 審查。" }, "redactedEvidence": { "title": "脫敏證據匯入", - "body": "只接受 metadata 與脫敏參照;未脫敏 payload、機密明文與 token value 仍要隔離。" + "body": "只接受 metadata 與脫敏參照;未脫敏 載荷、機密明文與 token value 仍要隔離。" }, "runtimeGate": { "title": "執行期閘門開啟", @@ -8769,7 +8773,7 @@ }, "sourceControl": { "title": "GitHub 主要來源就緒", - "body": "需要 target、refs truth、工作流程 / 機密 名稱與 rollback readiness 都有 owner evidence。" + "body": "需要 target、refs 真相、工作流程 / 機密 名稱與 回復 readiness 都有 owner evidence。" }, "awooopLanding": { "title": "AwoooP 落地證據", @@ -8782,7 +8786,7 @@ "subtitle": "S2.123 回應「很難理解有哪些具體工作」:把目前資安網拆成六條實體工作流。已完成的是前台可視化與只讀框架;真正會推動 61% 的下一步仍是 S4.9 負責人回覆被收到、脫敏並接受。", "workLabel": "工作", "boundaryTitle": "具體工作邊界", - "boundaryIntro": "以下鍵值固定:這張圖只是把具體工作流講清楚,不是 runtime 授權、Kali 掃描、主機變更、repo/refs/workflow/secret 操作、GitHub primary 切換或 Gitea 停用。", + "boundaryIntro": "以下鍵值固定:這張圖只是把具體工作流講清楚,不是 runtime 授權、Kali 掃描、主機變更、repo/refs/工作流程/機密 操作、GitHub primary 切換或 Gitea 停用。", "summary": { "streams": { "label": "工作流", @@ -8794,7 +8798,7 @@ }, "realGate": { "label": "下一真門檻", - "detail": "S4.9 負責人回覆 accepted 才會讓 61% 有機會移動。" + "detail": "S4.9 負責人回覆 已接受 才會讓 61% 有機會移動。" }, "runtime": { "label": "執行授權", @@ -8809,18 +8813,18 @@ }, "hostScopeInventory": { "title": "主機與範圍盤點框架", - "body": "已把 Kali 192.168.0.112、開發主機 192.168.0.168、192.168.0.111 放入 host coverage、action gate 與 evidence readiness。", + "body": "已把 Kali 192.168.0.112、開發主機 192.168.0.168、192.168.0.111 放入 host coverage、action 閘門 與 evidence readines。", "evidence": "具體產出:看得到主機納管範圍與禁止動作;尚未 SSH、更新主機、掃描或變更設定。" }, "sourceControlMigration": { "title": "GitHub / Gitea 版本來源遷移準備", - "body": "已建立 GitHub primary readiness、rollback ADR、refs truth、workflow/secret 名稱盤點與 負責人回覆 驗收框架。", - "evidence": "具體產出:知道哪些 repo、refs、workflow/secret 要 owner 回覆;尚未建立 repo、同步 refs、切 primary 或停用 Gitea。" + "body": "已建立 GitHub 主要來源就緒度、回復 ADR、refs 真相、工作流程/機密 名稱盤點與 負責人回覆 驗收框架。", + "evidence": "具體產出:知道哪些 repo、refs、工作流程/機密 要 owner 回覆;尚未建立 repo、同步 refs、切 primary 或停用 Gitea。" }, "ownerEvidenceIntake": { "title": "S4.9 負責人回覆與脫敏證據收件", "body": "已把第一個能推動 61% 的路徑拆成工作單、封套欄位、送件前檢查、送件鏈路與第一解鎖證據包。", - "evidence": "具體產出:下一步很明確,是收到並驗收可追溯的 S4.9 負責人回覆;目前 received/accepted 仍是 0。" + "evidence": "具體產出:下一步很明確,是收到並驗收可追溯的 S4.9 負責人回覆;目前 已收到/已接受 仍是 0。" }, "reviewerHumanFlow": { "title": "reviewer / 人工審查流程", @@ -8830,7 +8834,7 @@ "runtimeExecutionGate": { "title": "runtime 掃描、修復、部署與主機變更", "body": "已把所有執行動作放在人工批准與後續 執行期閘門 之後,不讓初期框架把資安限制拉太高。", - "evidence": "具體產出:目前 active_runtime_gate_count=0,scan/deploy/host change/source-control mutation 全部仍禁止。" + "evidence": "具體產出:目前 active_runtime_閘門_count=0,scan/deploy/主機變更/source-control mutation 全部仍禁止。" } } }, @@ -8870,21 +8874,21 @@ }, "hostScopeEvidence": { "title": "主機範圍與證據欄位", - "delivered": "已把 Kali 192.168.0.112、開發主機 192.168.0.168、192.168.0.111 納入只讀 host coverage 與 action gate。", + "delivered": "已把 Kali 192.168.0.112、開發主機 192.168.0.168、192.168.0.111 納入只讀 host coverage 與 action 閘門。", "next": "等待脫敏主機證據、範圍確認與負責人回覆進入收件流程。", "blocked": "不可 SSH、更新主機、掃描、調整設定或收未脫敏主機資料。" }, "sourceControlEvidence": { "title": "GitHub / Gitea 遷移證據", - "delivered": "已建立 GitHub primary readiness、rollback ADR、refs truth、workflow/secret 名稱與 負責人回覆 驗收框架。", - "next": "等待 GitHub target owner、refs truth、workflow/secret 名稱與 Gitea attestation 的脫敏 負責人回覆。", - "blocked": "不可建立 repo、同步 refs、修改 workflow/secret、切 GitHub primary 或停用 Gitea。" + "delivered": "已建立 GitHub 主要來源就緒度、回復 ADR、refs 真相、工作流程/機密 名稱與 負責人回覆 驗收框架。", + "next": "等待 GitHub target owner、refs 真相、工作流程/機密 名稱與 Gitea attestation 的脫敏 負責人回覆。", + "blocked": "不可建立 repo、同步 refs、修改 工作流程/機密、切 GitHub primary 或停用 Gitea。" }, "s49OwnerPacket": { "title": "S4.9 第一解鎖證據包", "delivered": "已定義工作單、封套欄位、送件前檢查、送件結果分流、送件鏈路與第一解鎖證據包。", "next": "收到可追溯、已脫敏且可預檢的 S4.9 負責人回覆。", - "blocked": "不可收 raw payload、機密明文、token value 或把草稿當成已收到。" + "blocked": "不可收 raw 載荷、機密明文、token value 或把草稿當成已收到。" }, "reviewerPreparation": { "title": "人工 reviewer 準備序列", @@ -8895,23 +8899,23 @@ "runtimeGate": { "title": "runtime 開閘條件", "delivered": "已把掃描、修復、部署、主機變更與 Kali 執行放在後續人工批准與 執行期閘門 之後。", - "next": "需要明確人工批准、scope、rollback、disable 條件與 active 執行期閘門。", - "blocked": "不可 scan、deploy、host change、Kali execution、source-control mutation 或生產部署。" + "next": "需要明確人工批准、scope、回復、disable 條件與 active 執行期閘門。", + "blocked": "不可 scan、deploy、主機變更、Kali execution、source-control mutation 或生產部署。" } } }, "concreteSecurityBlockerResolution": { "title": "目前阻塞與解除條件", - "subtitle": "S2.125 把 61% 無法前進的原因拆成六個阻塞點。每個阻塞點都標明為什麼卡住,以及要用哪種脫敏證據或人工 gate 才能解除;這仍是只讀狀態,不是批准或執行入口。", + "subtitle": "S2.125 把 61% 無法前進的原因拆成六個阻塞點。每個阻塞點都標明為什麼卡住,以及要用哪種脫敏證據或人工 閘門 才能解除;這仍是只讀狀態,不是批准或執行入口。", "blockerLabel": "阻塞", "whyLabel": "卡住原因", "unlockLabel": "解除條件", "boundaryTitle": "阻塞解除邊界", - "boundaryIntro": "以下鍵值固定:阻塞解除圖只說明為什麼 headline 仍是 61%,不會自動收件、開 reviewer queue、啟動 Kali、改主機、同步 refs、切 GitHub primary 或停用 Gitea。", + "boundaryIntro": "以下鍵值固定:阻塞解除圖只說明為什麼 重點 仍是 61%,不會自動收件、開 reviewer queue、啟動 Kali、改主機、同步 refs、切 GitHub primary 或停用 Gitea。", "summary": { "blockers": { "label": "阻塞點", - "detail": "六個阻塞共同讓 headline 暫停。" + "detail": "六個阻塞共同讓 重點 暫停。" }, "resolved": { "label": "已解除", @@ -8930,32 +8934,32 @@ "ownerResponseMissing": { "title": "S4.9 負責人回覆 尚未收到", "why": "沒有可追溯負責人回覆,就不能把下一步視為有效進度證據。", - "unlock": "收到已脫敏、含 owner role / decision / scope / reason / follow-up owner 的 S4.9 回覆。" + "unlock": "收到已脫敏、含 owner role / decision / scope / reason / 後續追蹤 owner 的 S4.9 回覆。" }, "redactedEvidenceMissing": { "title": "脫敏證據參照尚未成立", - "why": "未脫敏 payload、機密明文與 token value 都不能進入前台或台帳。", + "why": "未脫敏 載荷、機密明文與 token value 都不能進入前台或台帳。", "unlock": "只收 metadata、evidence refs、脫敏聲明與預檢軌跡,並通過收件預檢。" }, "reviewerQueueClosed": { "title": "reviewer queue 仍關閉", "why": "證據未被接受前,不應建立 reviewer candidate 或指派 reviewer。", - "unlock": "owner evidence accepted 後,再由人工決定是否開 queue、建立 candidate 與指派 reviewer。" + "unlock": "owner evidence 已接受 後,再由人工決定是否開 queue、建立 candidate 與指派 reviewer。" }, "sourceControlNotReady": { - "title": "GitHub primary readiness 未成立", - "why": "GitHub target owner、refs truth、workflow/secret 名稱與 rollback readiness 還沒有 owner evidence。", - "unlock": "四類版本來源證據都收到、脫敏、預檢並接受後,才可進入 primary readiness review。" + "title": "GitHub 主要來源就緒度 未成立", + "why": "GitHub target owner、refs 真相、工作流程/機密 名稱與 回復 readiness 還沒有 owner evidence。", + "unlock": "四類版本來源證據都收到、脫敏、預檢並接受後,才可進入 主要來源就緒度 review。" }, "hostEvidencePending": { "title": "主機證據仍待收件", "why": "Kali 與開發主機雖已納入範圍,但沒有被授權執行 live 掃描或主機調校。", - "unlock": "收到脫敏主機範圍、owner 回覆、變更風險與 rollback 條件後,才討論 執行期閘門。" + "unlock": "收到脫敏主機範圍、owner 回覆、變更風險與 回復 條件後,才討論 執行期閘門。" }, "runtimeGateClosed": { "title": "執行期閘門 未開", - "why": "目前所有 scan、repair、deploy、host change、Kali execution 都被擋在人工批准之後。", - "unlock": "需要明確人工批准、scope、rollback、disable 條件與 active 執行期閘門 才能執行。" + "why": "目前所有 scan、repair、deploy、主機變更、Kali execution 都被擋在人工批准之後。", + "unlock": "需要明確人工批准、scope、回復、disable 條件與 active 執行期閘門 才能執行。" } } }, @@ -8997,25 +9001,25 @@ "title": "所有前台網站與公開產品頁", "current": "可套用安全狀態摘要、低摩擦說明、合規 / 風險可視化與繁中文案規範。", "next": "先接只讀資安摘要,不放掃描、修復、部署或主機操作按鈕。", - "boundary": "不得讓公開頁面暴露內網 IP、敏感證據、機密明文值 或 raw payload。" + "boundary": "不得讓公開頁面暴露內網 IP、敏感證據、機密明文值 或 raw 載荷。" }, "sourceControl": { "title": "GitHub / Gitea 所有專案庫", - "current": "可套用 GitHub primary readiness、refs truth、工作流程 / 機密 名稱與 rollback readiness 欄位。", - "next": "等待 負責人回覆 與脫敏證據後,再評估每個 repo 的 primary readiness。", + "current": "可套用 GitHub 主要來源就緒度、refs 真相、工作流程 / 機密 名稱與 回復 readiness 欄位。", + "next": "等待 負責人回覆 與脫敏證據後,再評估每個 repo 的 主要來源就緒度。", "boundary": "不得自動建立 repo、同步 refs、修改 工作流程 / 機密、切 primary 或停用 Gitea。" }, "hosts": { "title": "Kali 與開發主機", - "current": "可套用 host coverage、action gate、evidence readiness 與三軸進度。", + "current": "可套用 host coverage、action 閘門、evidence readiness 與三軸進度。", "next": "等待人工批准與主機範圍證據後,才討論 live scan 或調校。", "boundary": "不得自動 SSH、更新主機、掃描、變更設定或收未脫敏資料。" }, "toolsMonitoring": { "title": "監控、工具與自動化流程", - "current": "可套用只讀狀態、阻塞解除條件、evidence refs 與人工 gate 顯示。", - "next": "先讓工具輸出 metadata-only evidence,再接 reviewer 與 執行期閘門。", - "boundary": "不得讓工具自動觸發修復、部署、secret 收集或外部付費變更。" + "current": "可套用只讀狀態、阻塞解除條件、evidence refs 與人工 閘門 顯示。", + "next": "先讓工具輸出 僅中繼資料證據,再接 reviewer 與 執行期閘門。", + "boundary": "不得讓工具自動觸發修復、部署、機密 收集或外部付費變更。" }, "futureProducts": { "title": "未來新增專案與產品", @@ -9027,13 +9031,13 @@ }, "productRolloutWaveLedger": { "title": "全產品分階段套用台帳", - "subtitle": "S2.127 把「所有專案產品都套用」轉成六個 rollout wave:先套只讀可視化與證據欄位,再依 owner evidence、人工審查與 執行期閘門 分段收嚴。這仍是產品套用台帳,不是掃描、修復、部署或主機操作入口。", + "subtitle": "S2.127 把「所有專案產品都套用」轉成六個 分階段套用 wave:先套只讀可視化與證據欄位,再依 owner evidence、人工審查與 執行期閘門 分段收嚴。這仍是產品套用台帳,不是掃描、修復、部署或主機操作入口。", "waveLabel": "波次", "allowedLabel": "目前可做", "beforeRuntimeLabel": "進 runtime 前", "forbiddenLabel": "仍禁止", "boundaryTitle": "套用台帳邊界", - "boundaryIntro": "以下鍵值固定:全產品 rollout 目前停在 read-only visibility wave;runtime wave、enforcement wave、owner accepted 與 active 執行期閘門 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:全產品 分階段套用 目前停在 read-only visibility wave;runtime wave、enforcement wave、owner 已接受 與 active 執行期閘門 全部仍是 0。", "summary": { "waves": { "label": "套用波次", @@ -9049,57 +9053,57 @@ }, "nextGate": { "label": "下一門檻", - "detail": "第一個 runtime 候選仍是 S4.9 accepted。" + "detail": "第一個 runtime 候選仍是 S4.9 已接受。" } }, "items": { "coreProduct": { "title": "核心產品波次", "allowed": "AWOOOI、IwoooS、AwoooP 先維持同一份三軸進度與只讀 guard。", - "beforeRuntime": "需要 owner evidence accepted、reviewer queue 人工開啟與 active 執行期閘門。", + "beforeRuntime": "需要 owner evidence 已接受、reviewer queue 人工開啟與 active 執行期閘門。", "forbidden": "不得從核心產品頁直接批准、執行、掃描或部署。" }, "publicSurfaces": { "title": "公開網站波次", "allowed": "前台網站可顯示資安摘要、合規狀態、風險分流與繁中文案。", "beforeRuntime": "需要公開內容脫敏審查、敏感欄位封鎖與人工內容 owner 接受。", - "forbidden": "不得暴露內網 IP、機密明文值、raw payload、掃描結果原文或主機細節。" + "forbidden": "不得暴露內網 IP、機密明文值、raw 載荷、掃描結果原文或主機細節。" }, "sourceControl": { "title": "版本來源波次", - "allowed": "GitHub / Gitea 專案庫只顯示 target、refs truth、工作流程 / 機密 名稱與 rollback readiness。", - "beforeRuntime": "需要逐 repo 負責人回覆、refs truth accepted、工作流程 / 機密 名稱驗收與 rollback ADR approval。", + "allowed": "GitHub / Gitea 專案庫只顯示 target、refs 真相、工作流程 / 機密 名稱與 回復 readines。", + "beforeRuntime": "需要逐 repo 負責人回覆、refs 真相 已接受、工作流程 / 機密 名稱驗收與 回復 ADR approval。", "forbidden": "不得建立 repo、改可見性、同步 / 刪除 / 強推 refs、修改 工作流程 / 機密 或切 primary。" }, "hostCoverage": { "title": "主機覆蓋波次", - "allowed": "Kali、192.168.0.168、192.168.0.111 只顯示 coverage、action gate 與 evidence readiness。", - "beforeRuntime": "需要明確主機 scope、maintenance window、credential handling、rollback 與人工 執行期閘門。", + "allowed": "Kali、192.168.0.168、192.168.0.111 只顯示 coverage、action 閘門 與 evidence readines。", + "beforeRuntime": "需要明確主機 scope、maintenance window、credential handling、回復 與人工 執行期閘門。", "forbidden": "不得自動 SSH、更新主機、掃描、調校、收未脫敏資料或執行 Kali /execute。" }, "monitoringTools": { "title": "監控工具波次", - "allowed": "監控、告警、Code Review、工具台只顯示 metadata-only evidence 與阻塞解除條件。", + "allowed": "監控、告警、程式碼審查、工具台只顯示 僅中繼資料證據 與阻塞解除條件。", "beforeRuntime": "需要工具輸出通過 redaction / retention / reviewer checks,且 owner 接受後才接 執行期閘門。", - "forbidden": "不得由工具自動觸發修復、部署、付費 provider 變更、secret 收集或外部送出。" + "forbidden": "不得由工具自動觸發修復、部署、付費 provider 變更、機密 收集或外部送出。" }, "futureTemplate": { "title": "未來產品模板波次", - "allowed": "新專案預設繼承三軸進度、繁中 UI、只讀 governance、false runtime flags。", - "beforeRuntime": "需要產品 owner、資料分級、scope、rollback、disable 條件與逐階段審查。", + "allowed": "新專案預設繼承三軸進度、繁中 UI、只讀 governance、false runtime flag。", + "beforeRuntime": "需要產品 owner、資料分級、scope、回復、disable 條件與逐階段審查。", "forbidden": "不得讓新產品一建立就套 blocking enforcement、host action、source-control mutation 或 production deploy。" } } }, "productRolloutAcceptanceGates": { - "title": "全產品 rollout 波次驗收門檻", - "subtitle": "S2.128 把 S2.127 的六個產品波次再補上驗收門檻:每個波次都要先通過只讀證據、owner evidence、脫敏審查、版本來源證明、主機安全窗口與 rollback / disable 條件,才可能被列入後續 runtime 候選。這仍是驗收門檻可視化,不是批准或執行。", + "title": "全產品 分階段套用 波次驗收門檻", + "subtitle": "S2.128 把 S2.127 的六個產品波次再補上驗收門檻:每個波次都要先通過只讀證據、owner evidence、脫敏審查、版本來源證明、主機安全窗口與 回復 / disable 條件,才可能被列入後續 runtime 候選。這仍是驗收門檻可視化,不是批准或執行。", "gateLabel": "門檻", "requiredEvidenceLabel": "需要證據", "acceptanceSignalLabel": "驗收訊號", "stillClosedLabel": "仍關閉", "boundaryTitle": "波次驗收邊界", - "boundaryIntro": "以下鍵值固定:全產品 rollout 目前只做到 read-only acceptance;通過門檻、owner accepted、runtime wave、enforcement wave 與 active 執行期閘門 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:全產品 分階段套用 目前只做到 read-only 驗收;通過門檻、owner 已接受、runtime wave、enforcement wave 與 active 執行期閘門 全部仍是 0。", "summary": { "gateCount": { "label": "驗收門檻", @@ -9111,7 +9115,7 @@ }, "ownerEvidence": { "label": "第一證據", - "detail": "第一個可前進訊號仍是 S4.9 owner evidence accepted。" + "detail": "第一個可前進訊號仍是 S4.9 owner evidence 已接受。" }, "runtime": { "label": "runtime 波次", @@ -9129,43 +9133,43 @@ "title": "負責人證據已收件並接受", "requiredEvidence": "需要產品 owner、範圍、資料分級、風險說明與脫敏 evidence pointer。", "acceptanceSignal": "負責人回覆 已收到 / 已接受 計數由人工驗收後才可移動。", - "stillClosed": "目前 received=0、accepted=0,不得視為任何產品已批准。" + "stillClosed": "目前 已收到=0、已接受=0,不得視為任何產品已批准。" }, "redactionReview": { "title": "脫敏與公開呈現通過", - "requiredEvidence": "公開頁、AwoooP、IwoooS 與工具台只能保留 metadata、摘要與 false flags。", - "acceptanceSignal": "raw payload、機密明文值、內網細節與掃描原文都被拒收或遮罩。", - "stillClosed": "不得收機密明文、raw payload、未脫敏截圖或可直接攻擊的細節。" + "requiredEvidence": "公開頁、AwoooP、IwoooS 與工具台只能保留 metadata、摘要與 false flag。", + "acceptanceSignal": "raw 載荷、機密明文值、內網細節與掃描原文都被拒收或遮罩。", + "stillClosed": "不得收機密明文、raw 載荷、未脫敏截圖或可直接攻擊的細節。" }, "sourceControlProof": { "title": "版本來源證明齊備", - "requiredEvidence": "GitHub / Gitea target、refs truth、工作流程 / 機密 名稱、rollback readiness 都要逐 repo 可追溯。", - "acceptanceSignal": "refs truth accepted、工作流程 / 機密 名稱驗收與 rollback ADR 皆由人工確認。", + "requiredEvidence": "GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱、回復 readiness 都要逐 repo 可追溯。", + "acceptanceSignal": "refs 真相 已接受、工作流程 / 機密 名稱驗收與 回復 ADR 皆由人工確認。", "stillClosed": "不得建立 repo、改可見性、同步 refs、改 工作流程 / 機密、切 primary 或停用 Gitea。" }, "hostSafetyWindow": { - "title": "主機安全窗口與 rollback 可用", - "requiredEvidence": "Kali、192.168.0.168、192.168.0.111 需要 scope、maintenance window、credential handling 與 rollback owner。", + "title": "主機安全窗口與 回復 可用", + "requiredEvidence": "Kali、192.168.0.168、192.168.0.111 需要 scope、maintenance window、credential handling 與 回復 owner。", "acceptanceSignal": "主機 owner 明確接受後,才可建立後續 執行期閘門 候選。", "stillClosed": "目前不得 SSH、掃描、更新主機、調校設定或執行 Kali /execute。" }, "rollbackDisable": { "title": "回復與停用條件可操作", - "requiredEvidence": "每個波次都要有 disable 條件、rollback owner、驗證方式與停止條件。", + "requiredEvidence": "每個波次都要有 disable 條件、回復 owner、驗證方式與停止條件。", "acceptanceSignal": "人工審查確認失敗時能回到只讀狀態,且不留下半套 enforcement。", - "stillClosed": "不得在沒有回復條件前啟用 production deploy、blocking control 或 source-control mutation。" + "stillClosed": "不得在沒有回復條件前啟用 production deploy、阻擋控制 或 source-control mutation。" } } }, "productRolloutAcceptanceOutcomes": { - "title": "全產品 rollout 驗收結果分流", + "title": "全產品 分階段套用 驗收結果分流", "subtitle": "S2.129 把 S2.128 的驗收門檻往後補成七條結果分流:維持只讀、退回補證、隔離敏感、版本待證、主機暫停、待人工審與 runtime 未開。這讓所有產品的後續狀態可以被理解,但仍不建立 reviewer candidate、執行期閘門 或任何執行動作。", "laneLabel": "分流", "whyLabel": "判定原因", "nextLabel": "下一步", "blockedLabel": "仍禁止", "boundaryTitle": "結果分流邊界", - "boundaryIntro": "以下鍵值固定:目前結果分流只做 read-only outcome routing;returned、quarantined、human review candidate、runtime candidate、owner accepted 與 active 執行期閘門 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前結果分流只做 read-only outcome routing;returned、quarantined、human review candidate、runtime candidate、owner 已接受 與 active 執行期閘門 全部仍是 0。", "summary": { "outcomes": { "label": "結果分流", @@ -9193,25 +9197,25 @@ }, "returnEvidence": { "title": "退回補證分流", - "why": "owner 回覆、範圍、資料分級、rollback 或 disable 條件缺漏。", - "next": "退回對應產品 owner 補 metadata-only evidence pointer。", - "blocked": "不得用口頭說明、截圖原文、raw payload 或 機密明文值 補證。" + "why": "owner 回覆、範圍、資料分級、回復 或 disable 條件缺漏。", + "next": "退回對應產品 owner 補 僅中繼資料證據 pointer。", + "blocked": "不得用口頭說明、截圖原文、raw 載荷 或 機密明文值 補證。" }, "quarantineSensitive": { "title": "敏感內容隔離分流", - "why": "若 evidence 含機密明文、內網細節、掃描原文或未脫敏 payload,只能隔離。", + "why": "若 evidence 含機密明文、內網細節、掃描原文或未脫敏 載荷,只能隔離。", "next": "保留隔離原因與脫敏要求,等待重新提交安全摘要。", "blocked": "不得在公開頁、AwoooP、IwoooS 或工具台顯示敏感原文。" }, "sourceControlHold": { "title": "版本來源待證分流", - "why": "GitHub / Gitea target、refs truth、工作流程 / 機密 名稱或 rollback readiness 尚未通過。", - "next": "回到逐 repo 負責人回覆、refs truth 與 rollback ADR 驗收。", + "why": "GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱或 回復 readiness 尚未通過。", + "next": "回到逐 repo 負責人回覆、refs 真相 與 回復 ADR 驗收。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary 或停用 Gitea。" }, "hostSafetyHold": { "title": "主機安全暫停分流", - "why": "Kali、192.168.0.168、192.168.0.111 尚缺 scope、maintenance window、credential handling 或 rollback owner。", + "why": "Kali、192.168.0.168、192.168.0.111 尚缺 scope、maintenance window、credential handling 或 回復 owner。", "next": "等待主機 owner 明確接受後,才可列入後續 執行期閘門 候選。", "blocked": "不得 SSH、更新主機、掃描、調校或執行 Kali /execute。" }, @@ -9224,20 +9228,20 @@ "runtimeDenied": { "title": "runtime 未開分流", "why": "即使某些資訊已可見,只要 active 執行期閘門 為 0,就不能執行。", - "next": "等待 owner accepted、人工審查、rollback / disable 可用與 執行期閘門 明確批准。", + "next": "等待 owner 已接受、人工審查、回復 / disable 可用與 執行期閘門 明確批准。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作或正式環境變更。" } } }, "productEvidenceWiringMap": { "title": "全產品證據接線地圖", - "subtitle": "S2.130 把所有產品下一步要接的證據線整理成六條 metadata-only channel:產品範圍、負責人回覆、脫敏證據、版本來源真相、主機安全窗口與監控工具摘要。這是只讀接線圖,不代表任何產品已完成接線、通過驗收或可進 runtime。", + "subtitle": "S2.130 把所有產品下一步要接的證據線整理成六條 僅中繼資料 channel:產品範圍、負責人回覆、脫敏證據、版本來源真相、主機安全窗口與監控工具摘要。這是只讀接線圖,不代表任何產品已完成接線、通過驗收或可進 runtime。", "channelLabel": "證據線", "evidenceLabel": "需要證據", "handoffLabel": "交接方式", "blockedLabel": "仍禁止", "boundaryTitle": "證據接線邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only evidence wiring;connected product、owner accepted、redacted evidence accepted、source-control truth accepted、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only 證據接線;connected product、owner 已接受、redacted evidence 已接受、source-control truth 已接受、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "channels": { "label": "證據線", @@ -9260,7 +9264,7 @@ "productScope": { "title": "產品範圍接線", "evidence": "每個產品要有產品名稱、owner、公開面、內部面、資料分級與適用波次。", - "handoff": "先以 metadata-only scope pointer 交給 IwoooS 顯示,不匯入 raw inventory。", + "handoff": "先以 僅中繼資料 scope pointer 交給 IwoooS 顯示,不匯入 raw inventory。", "blocked": "不得因範圍欄位存在就自動納入掃描、blocking policy 或正式部署。" }, "ownerResponse": { @@ -9273,23 +9277,23 @@ "title": "脫敏證據接線", "evidence": "只允許摘要、hash、檔名、時間、來源系統與可追溯 evidence ref。", "handoff": "敏感內容先進隔離分流,重新提交安全摘要後才可回到接線圖。", - "blocked": "不得收 機密明文值、raw payload、掃描原文、內網拓撲細節或未遮罩截圖。" + "blocked": "不得收 機密明文值、raw 載荷、掃描原文、內網拓撲細節或未遮罩截圖。" }, "sourceControlTruth": { "title": "版本來源真相接線", - "evidence": "GitHub / Gitea target、refs truth、工作流程 / 機密 名稱與 rollback readiness 要逐 repo 對照。", - "handoff": "只顯示 refs truth 與 readiness metadata,等 owner accepted 後再列入人工審查候選。", + "evidence": "GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱與 回復 readiness 要逐 repo 對照。", + "handoff": "只顯示 refs 真相 與 readiness metadata,等 owner 已接受 後再列入人工審查候選。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostSafetyWindow": { "title": "主機安全窗口接線", - "evidence": "Kali、192.168.0.168、192.168.0.111 需要 scope、maintenance window、credential handling 與 rollback owner。", + "evidence": "Kali、192.168.0.168、192.168.0.111 需要 scope、maintenance window、credential handling 與 回復 owner。", "handoff": "先只顯示主機證據缺口與等待窗口,不開 live scan 或 SSH path。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "monitoringToolEvidence": { "title": "監控工具摘要接線", - "evidence": "監控、告警、Code Review 與工具輸出只接摘要、狀態、時間與 evidence ref。", + "evidence": "監控、告警、程式碼審查 與工具輸出只接摘要、狀態、時間與 evidence ref。", "handoff": "工具先產生可讀摘要,通過脫敏與 owner review 後才進下一階段。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" } @@ -9304,7 +9308,7 @@ "failRouteLabel": "未通過分流", "stillClosedLabel": "仍關閉", "boundaryTitle": "接線預檢邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only evidence wiring preflight;passed、ready for connection、owner accepted、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only 證據接線 preflight;passed、就緒 for connection、owner 已接受、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "checks": { "label": "預檢項", @@ -9341,29 +9345,29 @@ "redactionBoundary": { "title": "脫敏邊界預檢", "checkPoint": "確認 evidence 只含摘要、hash、檔名、時間、來源系統與可追溯 ref。", - "passSignal": "通過後才可成為 metadata-only 接線候選。", - "failRoute": "出現 raw payload、機密明文值、內網拓撲或未遮罩截圖時直接隔離。", + "passSignal": "通過後才可成為 僅中繼資料 接線候選。", + "failRoute": "出現 raw 載荷、機密明文值、內網拓撲或未遮罩截圖時直接隔離。", "stillClosed": "不得在前台、AwoooP、IwoooS 或工具台顯示敏感原文。" }, "sourceTruth": { "title": "版本來源真相預檢", - "checkPoint": "確認 GitHub / Gitea target、refs truth、工作流程 / 機密 名稱與 rollback readiness 可逐 repo 對照。", - "passSignal": "只建立 read-only truth candidate,不代表 primary readiness。", - "failRoute": "target、refs 或 rollback 缺證時退回版本來源待證分流。", + "checkPoint": "確認 GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱與 回復 readiness 可逐 repo 對照。", + "passSignal": "只建立 read-only truth candidate,不代表 主要來源就緒度。", + "failRoute": "target、refs 或 回復 缺證時退回版本來源待證分流。", "stillClosed": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindow": { "title": "主機安全窗口預檢", - "checkPoint": "確認 Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 與 rollback owner 都只以 metadata 呈現。", + "checkPoint": "確認 Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 與 回復 owner 都只以 metadata 呈現。", "passSignal": "只可標示 host evidence gap 已可讀,不能建立 live action。", - "failRoute": "缺窗口、credential 邊界或 rollback owner 時維持主機安全暫停。", + "failRoute": "缺窗口、credential 邊界或 回復 owner 時維持主機安全暫停。", "stillClosed": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolOutput": { "title": "監控工具摘要預檢", - "checkPoint": "確認監控、告警、Code Review 與工具輸出只含摘要、狀態、時間與 evidence ref。", + "checkPoint": "確認監控、告警、程式碼審查 與工具輸出只含摘要、狀態、時間與 evidence ref。", "passSignal": "通過後只可放進只讀摘要接線候選。", - "failRoute": "若工具輸出含 raw payload、外送資料或機密值,退回隔離與重提摘要。", + "failRoute": "若工具輸出含 raw 載荷、外送資料或機密值,退回隔離與重提摘要。", "stillClosed": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" } } @@ -9376,7 +9380,7 @@ "nextLabel": "下一步", "blockedLabel": "仍禁止", "boundaryTitle": "預檢結果分流邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only preflight outcome routing;ready for connection、returned、quarantined、runtime candidate、owner accepted、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only preflight outcome routing;就緒 for connection、returned、quarantined、runtime candidate、owner 已接受、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "outcomes": { "label": "結果分流", @@ -9405,7 +9409,7 @@ "returnScope": { "title": "退回範圍分流", "why": "產品名稱、owner、公開面、內部面、資料分級或適用波次缺漏。", - "next": "退回產品 owner 補 metadata-only scope pointer。", + "next": "退回產品 owner 補 僅中繼資料 scope pointer。", "blocked": "不得用 raw inventory、內網拓撲原文或未脫敏截圖補範圍。" }, "returnOwnerEnvelope": { @@ -9416,32 +9420,32 @@ }, "quarantineSensitive": { "title": "隔離敏感分流", - "why": "證據或工具輸出含 raw payload、機密明文值、內網細節或未遮罩截圖。", + "why": "證據或工具輸出含 raw 載荷、機密明文值、內網細節或未遮罩截圖。", "next": "只保留隔離原因與重新提交安全摘要的要求。", "blocked": "不得在前台、AwoooP、IwoooS、工具台或文件中顯示敏感原文。" }, "sourceTruthHold": { "title": "版本來源暫停分流", - "why": "GitHub / Gitea target、refs truth、工作流程 / 機密 名稱或 rollback readiness 缺證。", - "next": "回到逐 repo 版本來源真相與 rollback readiness 補證。", + "why": "GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱或 回復 readiness 缺證。", + "next": "回到逐 repo 版本來源真相與 回復 readiness 補證。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindowHold": { "title": "主機安全暫停分流", - "why": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 或 rollback owner 不完整。", - "next": "等待主機 owner 以 metadata-only 形式補齊窗口與 rollback 邊界。", + "why": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 或 回復 owner 不完整。", + "next": "等待主機 owner 以 僅中繼資料 形式補齊窗口與 回復 邊界。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummaryHold": { "title": "工具摘要待補分流", - "why": "監控、告警、Code Review 或工具輸出尚未轉成安全摘要與 evidence ref。", + "why": "監控、告警、程式碼審查 或工具輸出尚未轉成安全摘要與 evidence ref。", "next": "退回工具輸出產生可讀摘要、狀態、時間與 evidence ref。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "runtimeClosed": { "title": "runtime 關閉分流", "why": "即使預檢可見,只要 active 執行期閘門 為 0,就不能執行。", - "next": "等待 owner accepted、人工審查、rollback / disable 可用與 執行期閘門 明確批准。", + "next": "等待 owner 已接受、人工審查、回復 / disable 可用與 執行期閘門 明確批准。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作或正式環境變更。" } } @@ -9455,7 +9459,7 @@ "handoffLabel": "回收方式", "blockedLabel": "仍禁止", "boundaryTitle": "補件回收台帳邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only recovery ledger;submitted、accepted、returned、quarantined、ready for preflight retry、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only recovery ledger;submitted、已接受、returned、quarantined、就緒 for preflight retry、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "queues": { "label": "補件隊列", @@ -9479,49 +9483,49 @@ "title": "範圍 metadata 補件", "owner": "產品 owner 或網站 owner。", "required": "產品名稱、公開面、內部面、資料分級、適用波次與 evidence ref。", - "handoff": "只以 metadata-only scope pointer 回到預檢,不匯入 raw inventory。", + "handoff": "只以 僅中繼資料 scope pointer 回到預檢,不匯入 raw inventory。", "blocked": "不得貼內網拓撲原文、未遮罩截圖、完整資產 dump 或掃描輸出。" }, "ownerEnvelope": { "title": "負責人封套補件", "owner": "S4.9 負責人回覆 負責人或後續指定負責人。", - "required": "owner role、decision、理由、受影響範圍、脫敏 evidence refs 與 follow-up owner。", + "required": "owner role、decision、理由、受影響範圍、脫敏 evidence refs 與 後續追蹤 owner。", "handoff": "回到 負責人回覆 封套預檢,只標示補件待檢。", "blocked": "不得代填、代簽、送出 request、建立審批或把聊天同意當正式證據。" }, "redactedEvidence": { "title": "脫敏證據重送", "owner": "證據提供者與安全審查者共同確認。", - "required": "摘要、時間、來源、遮罩策略、evidence ref 與不含 raw payload 的聲明。", + "required": "摘要、時間、來源、遮罩策略、evidence ref 與不含 raw 載荷 的聲明。", "handoff": "敏感內容只回到隔離原因;重新提交時只收安全摘要。", - "blocked": "不得顯示 機密明文值、token、credential、raw log、host dump 或未遮罩截圖。" + "blocked": "不得顯示 機密明文值、token、credential、原始日誌、主機 dump 或未遮罩截圖。" }, "sourceTruth": { "title": "版本來源補證", - "owner": "repo owner、GitHub / Gitea migration owner 或 rollback owner。", - "required": "canonical target、refs truth、工作流程 / 機密 名稱清單、rollback readiness 與 owner evidence ref。", - "handoff": "回到版本來源真相檢查與 rollback readiness,不改任何 repo 狀態。", + "owner": "repo owner、GitHub / Gitea migration owner 或 回復 owner。", + "required": "canonical target、refs 真相、工作流程 / 機密 名稱清單、回復 readiness 與 owner evidence ref。", + "handoff": "回到版本來源真相檢查與 回復 readiness,不改任何 repo 狀態。", "blocked": "不得建立 repo、改可見性、同步 / 刪除 / 強制推送 refs、改 工作流程 / 機密、切 primary 或停用 Gitea。" }, "hostWindow": { "title": "主機窗口補齊", "owner": "Kali、192.168.0.168、192.168.0.111 對應主機 owner。", - "required": "scope、maintenance window、credential handling、rollback owner 與 validation 指標。", - "handoff": "只回收 metadata-only host safety window,不建立 live action。", + "required": "scope、maintenance window、credential handling、回復 owner 與 validation 指標。", + "handoff": "只回收 僅中繼資料 host safety window,不建立 live action。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummary": { "title": "工具摘要補件", - "owner": "監控、告警、Code Review 或工具鏈負責人。", + "owner": "監控、告警、程式碼審查 或工具鏈負責人。", "required": "摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", "handoff": "只把工具輸出轉成可讀摘要,等待下一輪預檢。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "runtimeGate": { "title": "runtime 門檻待補", - "owner": "人工審查負責人、rollback / disable owner 與 執行期閘門 owner。", - "required": "owner accepted、人工審查結果、rollback / disable 可用性、後驗證與明確 gate 記錄。", - "handoff": "只顯示 runtime 還缺哪些條件,不建立 gate。", + "owner": "人工審查負責人、回復 / disable owner 與 執行期閘門 owner。", + "required": "owner 已接受、人工審查結果、回復 / disable 可用性、後驗證與明確 閘門 記錄。", + "handoff": "只顯示 runtime 還缺哪些條件,不建立 閘門。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作或正式環境變更。" } } @@ -9534,7 +9538,7 @@ "retryLabel": "重試方式", "blockedLabel": "仍禁止", "boundaryTitle": "補件重試門檻邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only recovery retry gate;retry candidate、submitted、passed、failed、ready for connection、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only recovery retry 閘門;retry candidate、submitted、passed、failed、就緒 for connection、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "gates": { "label": "重試門檻", @@ -9562,31 +9566,31 @@ }, "ownerReady": { "title": "封套重試門檻", - "ready": "owner role、decision、理由、受影響範圍、脫敏 evidence refs 與 follow-up owner 都可讀。", - "retry": "只可回到 owner envelope preflight,不標記 負責人回覆 accepted。", + "ready": "owner role、decision、理由、受影響範圍、脫敏 evidence refs 與 後續追蹤 owner 都可讀。", + "retry": "只可回到 owner envelope preflight,不標記 負責人回覆 已接受。", "blocked": "不得代填、代簽、催收、送出 request、建立審批或把口頭同意當證據。" }, "redactionReady": { "title": "脫敏重試門檻", - "ready": "補件只含摘要、時間、來源、遮罩策略、evidence ref 與不含 raw payload 的聲明。", + "ready": "補件只含摘要、時間、來源、遮罩策略、evidence ref 與不含 raw 載荷 的聲明。", "retry": "只可移出隔離原因的下一輪摘要候選,不保留敏感原文。", - "blocked": "不得顯示 機密明文值、token、credential、raw log、host dump 或未遮罩截圖。" + "blocked": "不得顯示 機密明文值、token、credential、原始日誌、主機 dump 或未遮罩截圖。" }, "sourceReady": { "title": "版本重試門檻", - "ready": "canonical target、refs truth、工作流程 / 機密 名稱與 rollback readiness 均有 owner evidence ref。", + "ready": "canonical target、refs 真相、工作流程 / 機密 名稱與 回復 readiness 均有 owner evidence ref。", "retry": "只可重跑版本來源真相預檢,不改 GitHub / Gitea 狀態。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostReady": { "title": "主機重試門檻", - "ready": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 與 rollback owner 均以 metadata 呈現。", + "ready": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 與 回復 owner 均以 metadata 呈現。", "retry": "只可標示 host safety window retry candidate,等待人工再檢。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolReady": { "title": "工具摘要重試門檻", - "ready": "監控、告警、Code Review 或工具輸出已轉為摘要、狀態、時間、來源工具與 evidence ref。", + "ready": "監控、告警、程式碼審查 或工具輸出已轉為摘要、狀態、時間、來源工具與 evidence ref。", "retry": "只可回到工具摘要預檢,不讓工具自動修復或部署。", "blocked": "不得外送資料、增加付費 provider 呼叫、收機密明文或觸發自動修復。" } @@ -9594,13 +9598,13 @@ }, "productEvidenceWiringPreflightRetryOutcomes": { "title": "全產品重試結果分流", - "subtitle": "S2.135 把 S2.134 的重試門檻後續結果拆成八條分流:維持只讀候選、退回補件、隔離敏感、版本退回、主機暫停、摘要退回、等待人工審查與 runtime 仍關閉。這讓所有產品看得懂重試後往哪裡走,但仍不代表接線完成、owner accepted、reviewer queue 開啟或 runtime 授權。", + "subtitle": "S2.135 把 S2.134 的重試門檻後續結果拆成八條分流:維持只讀候選、退回補件、隔離敏感、版本退回、主機暫停、摘要退回、等待人工審查與 runtime 仍關閉。這讓所有產品看得懂重試後往哪裡走,但仍不代表接線完成、owner 已接受、reviewer queue 開啟或 runtime 授權。", "outcomeLabel": "結果", "decisionLabel": "判定", "nextLabel": "下一步", "blockedLabel": "仍禁止", "boundaryTitle": "重試結果分流邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry outcome routing;ready for connection、returned、quarantined、human review candidate、runtime candidate 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry outcome routing;就緒 for connection、returned、quarantined、human review candidate、runtime candidate 與 就緒 for runtime 全部仍是 0。", "summary": { "outcomes": { "label": "結果分流", @@ -9623,49 +9627,49 @@ "stayCandidate": { "title": "維持只讀候選", "decision": "補件已符合重新預檢的基本形狀,但尚未有人工接受或正式接線訊號。", - "next": "保留為 metadata-only retry outcome candidate,等待下一輪預檢與人工審查條件補齊。", + "next": "保留為 僅中繼資料 retry outcome candidate,等待下一輪預檢與人工審查條件補齊。", "blocked": "不得把候選狀態升格為已接線、已接受、已審查或可執行。" }, "returnSupplement": { "title": "退回補件", - "decision": "補件仍缺 scope、owner role、decision、理由、evidence ref 或 follow-up owner。", - "next": "退回 S2.133 補件回收台帳,要求產品 owner 重新補齊 metadata-only 欄位。", + "decision": "補件仍缺 scope、owner role、decision、理由、evidence ref 或 後續追蹤 owner。", + "next": "退回 S2.133 補件回收台帳,要求產品 owner 重新補齊 僅中繼資料 欄位。", "blocked": "不得代填、代簽、催收、自動送 request、建立審批或把聊天同意當正式證據。" }, "quarantineSensitive": { "title": "隔離敏感", - "decision": "重試內容仍含 raw payload、機密明文值、credential、host dump、內網細節或未遮罩截圖。", + "decision": "重試內容仍含 raw 載荷、機密明文值、credential、主機 dump、內網細節或未遮罩截圖。", "next": "只保留隔離原因與重新提交安全摘要的要求,不把原文放進前台或文件。", "blocked": "不得在 IwoooS、AwoooP、前台、工具台或文件中顯示敏感原文。" }, "sourceTruthReturn": { "title": "版本來源退回", - "decision": "canonical target、refs truth、工作流程 / 機密 名稱或 rollback readiness 仍無 owner evidence ref。", + "decision": "canonical target、refs 真相、工作流程 / 機密 名稱或 回復 readiness 仍無 owner evidence ref。", "next": "回到版本來源補證隊列,等待 repo owner 以脫敏方式補足來源真相。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindowPause": { "title": "主機安全暫停", - "decision": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 或 rollback owner 仍不完整。", - "next": "等待主機 owner 補 metadata-only host safety window,再回到重試門檻。", + "decision": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 或 回復 owner 仍不完整。", + "next": "等待主機 owner 補 僅中繼資料 host safety window,再回到重試門檻。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummaryReturn": { "title": "工具摘要退回", - "decision": "監控、告警、Code Review 或工具輸出尚未轉成安全摘要、狀態、時間、來源工具與 evidence ref。", + "decision": "監控、告警、程式碼審查 或工具輸出尚未轉成安全摘要、狀態、時間、來源工具與 evidence ref。", "next": "退回工具鏈負責人產生可讀摘要與脫敏參照,再重新進預檢。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "humanReviewWait": { "title": "等待人工審查", - "decision": "重試結果可讀但尚未達到 reviewer queue 開啟條件,也沒有 owner accepted。", - "next": "等待人工審查負責人確認 owner accepted、脫敏證據、rollback / disable 與後驗證條件。", + "decision": "重試結果可讀但尚未達到 reviewer queue 開啟條件,也沒有 owner 已接受。", + "next": "等待人工審查負責人確認 owner 已接受、脫敏證據、回復 / disable 與後驗證條件。", "blocked": "不得建立 reviewer candidate、指派 reviewer、建立稽核事件或標記人工審查完成。" }, "runtimeStillClosed": { "title": "runtime 仍關閉", "decision": "即使重試結果可見,只要 active 執行期閘門 為 0,就不能執行。", - "next": "等待明確 執行期閘門、rollback / disable 可用與人工批准後再進下一階段。", + "next": "等待明確 執行期閘門、回復 / disable 可用與人工批准後再進下一階段。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作或正式環境變更。" } } @@ -9678,7 +9682,7 @@ "handoffLabel": "交接方式", "blockedLabel": "仍禁止", "boundaryTitle": "人工審查候選準備邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preparation;packet completed、ready、queue open、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preparation;packet completed、就緒、queue open、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "packets": { "label": "準備包", @@ -9712,37 +9716,37 @@ }, "ownerScopePacket": { "title": "負責人與範圍包", - "required": "owner role、decision、reason、scope、follow-up owner、產品公開面與內部面。", - "handoff": "只整理給人工審查的範圍摘要,不標記 負責人回覆 accepted。", + "required": "owner role、decision、reason、scope、後續追蹤 owner、產品公開面與內部面。", + "handoff": "只整理給人工審查的範圍摘要,不標記 負責人回覆 已接受。", "blocked": "不得代填、代簽、送出 request、建立審批或把口頭同意當正式證據。" }, "redactionAttestation": { "title": "脫敏聲明包", - "required": "摘要、遮罩策略、不含 raw payload 聲明、機密明文值 排除聲明與 evidence ref。", + "required": "摘要、遮罩策略、不含 raw 載荷 聲明、機密明文值 排除聲明與 evidence ref。", "handoff": "只交接脫敏聲明與安全摘要,不保留敏感原文。", - "blocked": "不得顯示 token、credential、raw log、host dump、內網細節或未遮罩截圖。" + "blocked": "不得顯示 token、credential、原始日誌、主機 dump、內網細節或未遮罩截圖。" }, "sourceControlReadiness": { "title": "版本來源證據包", - "required": "canonical target、refs truth、工作流程 / 機密 名稱、rollback readiness 與 repo owner evidence ref。", + "required": "canonical target、refs 真相、工作流程 / 機密 名稱、回復 readiness 與 repo owner evidence ref。", "handoff": "只交接版本來源真相摘要,不改 GitHub / Gitea 狀態。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostSafetyWindow": { "title": "主機安全窗口包", - "required": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、rollback owner 與 validation 指標。", - "handoff": "只交接 metadata-only host safety window,不建立 live action。", + "required": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、回復 owner 與 validation 指標。", + "handoff": "只交接 僅中繼資料 host safety window,不建立 live action。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummaryEvidence": { "title": "工具摘要證據包", - "required": "監控、告警、Code Review 或工具輸出的摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", + "required": "監控、告警、程式碼審查 或工具輸出的摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", "handoff": "只交接工具摘要,讓人工審查可以理解訊號來源。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "runtimeSeparation": { "title": "runtime 分離包", - "required": "active 執行期閘門=0、rollback / disable 尚待確認、後驗證待補與 no-execution attestation。", + "required": "active 執行期閘門=0、回復 / disable 尚待確認、後驗證待補與 no-execution attestation。", "handoff": "只提醒人工審查前 runtime 仍關閉,不能轉成執行工作。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作、正式環境變更或開啟 操作按鈕。" } @@ -9757,7 +9761,7 @@ "failLabel": "未通過分流", "blockedLabel": "仍禁止", "boundaryTitle": "人工審查候選預檢邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight;passed、ready for queue、queue open、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight;passed、就緒 for queue、queue open、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "checks": { "label": "預檢項", @@ -9793,44 +9797,44 @@ }, "ownerScope": { "title": "負責人與範圍預檢", - "requirement": "owner role、decision、reason、scope、follow-up owner、公開面與內部面都可讀。", - "pass": "只可標示 owner scope readable,不標記 負責人回覆 accepted。", - "fail": "缺 owner、decision、scope 或 follow-up owner 時退回補件。", + "requirement": "owner role、decision、reason、scope、後續追蹤 owner、公開面與內部面都可讀。", + "pass": "只可標示 owner scope readable,不標記 負責人回覆 已接受。", + "fail": "缺 owner、decision、scope 或 後續追蹤 owner 時退回補件。", "blocked": "不得代填、代簽、送出 request、建立審批或把口頭同意當正式證據。" }, "redactionAttestation": { "title": "脫敏聲明預檢", - "requirement": "摘要、遮罩策略、不含 raw payload 聲明、機密明文值 排除聲明與 evidence ref 都存在。", + "requirement": "摘要、遮罩策略、不含 raw 載荷 聲明、機密明文值 排除聲明與 evidence ref 都存在。", "pass": "只可標示 redaction attestation readable,不匯入敏感原文。", - "fail": "若出現 raw payload、機密明文值、credential 或未遮罩截圖,直接隔離。", - "blocked": "不得顯示 token、credential、raw log、host dump、內網細節或未遮罩截圖。" + "fail": "若出現 raw 載荷、機密明文值、credential 或未遮罩截圖,直接隔離。", + "blocked": "不得顯示 token、credential、原始日誌、主機 dump、內網細節或未遮罩截圖。" }, "sourceControlTruth": { "title": "版本來源證據預檢", - "requirement": "canonical target、refs truth、工作流程 / 機密 名稱、rollback readiness 與 repo owner evidence ref 都可追溯。", + "requirement": "canonical target、refs 真相、工作流程 / 機密 名稱、回復 readiness 與 repo owner evidence ref 都可追溯。", "pass": "只可標示 source-control truth readable,不改 GitHub / Gitea 狀態。", - "fail": "版本來源、refs 或 rollback 缺證時退回版本來源證據包。", + "fail": "版本來源、refs 或 回復 缺證時退回版本來源證據包。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostSafetyWindow": { "title": "主機安全窗口預檢", - "requirement": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、rollback owner 與 validation 指標都以 metadata 呈現。", + "requirement": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、回復 owner 與 validation 指標都以 metadata 呈現。", "pass": "只可標示 host safety window readable,不建立 live action。", - "fail": "缺窗口、credential 邊界或 rollback owner 時維持主機暫停。", + "fail": "缺窗口、credential 邊界或 回復 owner 時維持主機暫停。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummary": { "title": "工具摘要預檢", - "requirement": "監控、告警、Code Review 或工具輸出已轉為摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", + "requirement": "監控、告警、程式碼審查 或工具輸出已轉為摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", "pass": "只可標示 tool summary readable,讓人工審查理解訊號來源。", - "fail": "工具輸出含 raw payload、外送資料或機密值時退回摘要補件。", + "fail": "工具輸出含 raw 載荷、外送資料或機密值時退回摘要補件。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "runtimeSeparation": { "title": "runtime 分離預檢", - "requirement": "active 執行期閘門=0、rollback / disable 尚待確認、後驗證待補與 no-execution attestation 都可見。", + "requirement": "active 執行期閘門=0、回復 / disable 尚待確認、後驗證待補與 no-execution attestation 都可見。", "pass": "只可標示 runtime separation readable,不能轉成執行工作。", - "fail": "若出現執行要求、操作按鈕 或 gate open 暗示,退回 runtime 分離包。", + "fail": "若出現執行要求、操作按鈕 或 閘門 open 暗示,退回 runtime 分離包。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作、正式環境變更或開啟 操作按鈕。" } } @@ -9843,7 +9847,7 @@ "nextLabel": "下一步", "blockedLabel": "仍禁止", "boundaryTitle": "人工審查候選預檢結果分流邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight outcome routing;ready for queue、returned、quarantined、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight outcome routing;就緒 for queue、returned、quarantined、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "outcomes": { "label": "分流數", @@ -9872,7 +9876,7 @@ "returnIdentity": { "title": "退回識別補件", "decision": "產品名稱、批次、來源分流、重試時間、owner 或 evidence ref 缺漏時退回。", - "next": "回到 S2.136 候選識別準備包補齊 metadata-only 識別欄位。", + "next": "回到 S2.136 候選識別準備包補齊 僅中繼資料 識別欄位。", "blocked": "不得代填 owner、跳過批次追溯、建立審查排程或送出 request。" }, "returnTrace": { @@ -9883,25 +9887,25 @@ }, "returnOwnerScope": { "title": "退回負責人與範圍", - "decision": "owner role、decision、reason、scope、follow-up owner、公開面或內部面缺漏時退回。", + "decision": "owner role、decision、reason、scope、後續追蹤 owner、公開面或內部面缺漏時退回。", "next": "回到負責人與範圍包補件,等待人工可讀範圍成立。", - "blocked": "不得代簽、代填、送審批、把口頭同意當正式證據或標記 負責人回覆 accepted。" + "blocked": "不得代簽、代填、送審批、把口頭同意當正式證據或標記 負責人回覆 已接受。" }, "quarantineRedaction": { "title": "隔離敏感證據", - "decision": "出現 raw payload、機密明文值、credential、未遮罩截圖或可識別內網細節時隔離。", + "decision": "出現 raw 載荷、機密明文值、credential、未遮罩截圖或可識別內網細節時隔離。", "next": "只保留脫敏摘要與 evidence ref,要求重新提交安全摘要。", "blocked": "不得顯示、轉送、匯入、保存或讓工具處理敏感原文。" }, "sourceHostHold": { "title": "版本 / 主機暫停", - "decision": "版本來源、refs truth、rollback、Kali / 開發主機窗口或 rollback owner 缺證時暫停。", + "decision": "版本來源、refs 真相、回復、Kali / 開發主機窗口或 回復 owner 缺證時暫停。", "next": "回到版本來源證據包或主機安全窗口包,補齊 canonical target 與 maintenance window。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、SSH、掃描、更新主機、調校或切換 GitHub primary。" }, "readyForHumanReviewWait": { "title": "等待人工審查", - "decision": "metadata-only 欄位可讀、敏感證據已隔離、版本與主機仍維持只讀時,才可標示為等待人工審查候選。", + "decision": "僅中繼資料 欄位可讀、敏感證據已隔離、版本與主機仍維持只讀時,才可標示為等待人工審查候選。", "next": "停在等待人工審查,不開 reviewer queue,直到 負責人回覆 與正式審查條件另行成立。", "blocked": "不得自動建立 reviewer candidate、指派 reviewer、產生 audit event、批准或觸發任何修復。" }, @@ -9922,7 +9926,7 @@ "recoveryLabel": "回收方式", "blockedLabel": "仍禁止", "boundaryTitle": "預檢補件回收台帳邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight recovery ledger;submitted、accepted、rejected、quarantined、ready for preflight retry、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight recovery ledger;submitted、已接受、rejected、quarantined、就緒 for preflight retry、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "queues": { "label": "回收佇列", @@ -9958,35 +9962,35 @@ }, "ownerScopeSupplement": { "title": "負責人與範圍補件回收", - "owner": "scope owner 補足 role、decision、reason、scope 與 follow-up owner。", + "owner": "scope owner 補足 role、decision、reason、scope 與 後續追蹤 owner。", "required": "公開面、內部面、決策理由、範圍邊界、後續負責人與口頭同意排除聲明。", - "recovery": "補齊後只回到 owner scope 預檢,不標記 負責人回覆 accepted。", + "recovery": "補齊後只回到 owner scope 預檢,不標記 負責人回覆 已接受。", "blocked": "不得代簽、代填、送審批、把口頭同意當正式證據或建立正式紀錄。" }, "redactionResubmission": { "title": "脫敏重送回收", - "owner": "證據提交者必須移除 raw payload、機密明文值、credential 與未遮罩截圖。", - "required": "脫敏摘要、遮罩策略、不含 raw payload 聲明、機密明文值 排除聲明與 evidence ref。", + "owner": "證據提交者必須移除 raw 載荷、機密明文值、credential 與未遮罩截圖。", + "required": "脫敏摘要、遮罩策略、不含 raw 載荷 聲明、機密明文值 排除聲明與 evidence ref。", "recovery": "只收安全摘要與 evidence pointer;若仍含敏感值,維持隔離。", "blocked": "不得顯示、轉送、匯入、保存、貼上或讓工具處理敏感原文。" }, "sourceControlEvidence": { "title": "版本來源補證回收", - "owner": "repo owner 或 release owner 補 canonical target、refs truth 與 rollback readiness。", - "required": "GitHub / Gitea 目標、分支 / 標籤真相、工作流程 / 機密 名稱、rollback owner 與 evidence ref。", + "owner": "repo owner 或 release owner 補 canonical target、refs 真相 與 回復 readines。", + "required": "GitHub / Gitea 目標、分支 / 標籤真相、工作流程 / 機密 名稱、回復 owner 與 evidence ref。", "recovery": "只補版本來源真相摘要,等待 source-control truth 預檢重跑。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindowEvidence": { "title": "主機窗口補證回收", "owner": "主機維運 owner 補 Kali、192.168.0.168、192.168.0.111 的窗口與回復責任。", - "required": "scope、maintenance window、credential handling、rollback owner、validation 指標與 no-execution 聲明。", - "recovery": "只收 metadata-only host window,等待主機安全窗口預檢。", + "required": "scope、maintenance window、credential handling、回復 owner、validation 指標與 no-execution 聲明。", + "recovery": "只收 僅中繼資料 host window,等待主機安全窗口預檢。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummarySupplement": { "title": "工具摘要補件回收", - "owner": "監控、告警、Code Review 或工具輸出 owner 只補摘要與來源。", + "owner": "監控、告警、程式碼審查 或工具輸出 owner 只補摘要與來源。", "required": "摘要、狀態、時間、來源工具、脫敏方式、evidence ref 與外送資料排除聲明。", "recovery": "補齊後只讓人工審查理解訊號來源,不讓工具自動修復。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" @@ -9994,7 +9998,7 @@ "runtimeAttestation": { "title": "runtime 分離聲明回收", "owner": "平台 owner 補 active 執行期閘門=0、操作按鈕 關閉與 no-execution attestation。", - "required": "執行期閘門 關閉、rollback / disable 尚待確認、後驗證待補與正式決策缺口。", + "required": "執行期閘門 關閉、回復 / disable 尚待確認、後驗證待補與正式決策缺口。", "recovery": "只作為後續人工決策的邊界證據,不能轉成執行工作。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作、正式環境變更或開啟 操作按鈕。" } @@ -10008,7 +10012,7 @@ "retryLabel": "重試方式", "blockedLabel": "仍禁止", "boundaryTitle": "補件重試門檻邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight recovery retry gate;candidate、submitted、passed、ready for preflight retry、ready for human review、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight recovery retry 閘門;candidate、submitted、passed、就緒 for preflight retry、就緒 for human review、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "gates": { "label": "重試門檻", @@ -10042,26 +10046,26 @@ }, "ownerScopeGate": { "title": "負責人與範圍重試門檻", - "ready": "owner role、decision、reason、scope、follow-up owner、公開面、內部面與口頭同意排除聲明都可讀。", - "retry": "只能重跑 owner scope 預檢,不標記 負責人回覆 accepted。", + "ready": "owner role、decision、reason、scope、後續追蹤 owner、公開面、內部面與口頭同意排除聲明都可讀。", + "retry": "只能重跑 owner scope 預檢,不標記 負責人回覆 已接受。", "blocked": "不得代簽、代填、送審批、把口頭同意當正式證據或建立正式紀錄。" }, "redactionGate": { "title": "脫敏重試門檻", - "ready": "脫敏摘要、遮罩策略、不含 raw payload 聲明、機密明文值 排除聲明與 evidence ref 都存在。", + "ready": "脫敏摘要、遮罩策略、不含 raw 載荷 聲明、機密明文值 排除聲明與 evidence ref 都存在。", "retry": "只以安全摘要與 evidence pointer 回到脫敏預檢;若仍含敏感值,維持隔離。", "blocked": "不得顯示、轉送、匯入、保存、貼上或讓工具處理敏感原文。" }, "sourceControlGate": { "title": "版本來源重試門檻", - "ready": "GitHub / Gitea 目標、分支 / 標籤真相、工作流程 / 機密 名稱、rollback owner 與 evidence ref 都可追溯。", + "ready": "GitHub / Gitea 目標、分支 / 標籤真相、工作流程 / 機密 名稱、回復 owner 與 evidence ref 都可追溯。", "retry": "只重跑 source-control truth 預檢,不改任何版本來源狀態。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindowGate": { "title": "主機窗口重試門檻", - "ready": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、rollback owner、validation 指標與 no-execution 聲明都補齊。", - "retry": "只以 metadata-only host window 回到主機安全窗口預檢。", + "ready": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、回復 owner、validation 指標與 no-execution 聲明都補齊。", + "retry": "只以 僅中繼資料 host window 回到主機安全窗口預檢。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummaryGate": { @@ -10072,7 +10076,7 @@ }, "runtimeGate": { "title": "runtime 分離重試門檻", - "ready": "active 執行期閘門=0、操作按鈕 關閉、rollback / disable 尚待確認、後驗證待補與 no-execution attestation 都可見。", + "ready": "active 執行期閘門=0、操作按鈕 關閉、回復 / disable 尚待確認、後驗證待補與 no-execution attestation 都可見。", "retry": "只重跑 runtime separation 預檢,確認仍不可執行。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作、正式環境變更或開啟 操作按鈕。" } @@ -10080,7 +10084,7 @@ }, "firstProgressUnlockPath": { "title": "第一個進度解鎖路徑", - "subtitle": "S2.114 把 61% 下一個真正能往前的路徑收斂到 S4.9 負責人回覆:先收到可追溯回覆,再補齊脫敏證據參照,通過收件預檢與審查接受後,才可能成為 headline review 候選。", + "subtitle": "S2.114 把 61% 下一個真正能往前的路徑收斂到 S4.9 負責人回覆:先收到可追溯回覆,再補齊脫敏證據參照,通過收件預檢與審查接受後,才可能成為 重點 審查 候選。", "stepLabel": "步驟", "boundaryTitle": "第一解鎖路徑邊界", "boundaryIntro": "以下鍵值固定:這是 S4.9 第一解鎖路徑的只讀收斂,不是送件完成、回覆已收到、批准、掃描、修復、部署或執行期入口。", @@ -10095,7 +10099,7 @@ }, "accepted": { "label": "已接受", - "detail": "目前 0,還不能觸發 headline review。" + "detail": "目前 0,還不能觸發 重點 審查。" }, "headline": { "label": "進度審查", @@ -10105,11 +10109,11 @@ "items": { "ownerResponseScope": { "title": "收到負責人回覆", - "body": "先確認 S4.9 owner role、decision、reason、scope 與 follow-up owner 都可追溯。" + "body": "先確認 S4.9 owner role、decision、reason、scope 與 後續追蹤 owner 都可追溯。" }, "redactedEvidencePointer": { "title": "補齊脫敏證據參照", - "body": "只收 metadata 與 evidence refs,不收機密明文、token value 或未脫敏 payload。" + "body": "只收 metadata 與 evidence refs,不收機密明文、token value 或未脫敏 載荷。" }, "intakePreflight": { "title": "通過收件預檢", @@ -10121,13 +10125,13 @@ }, "headlineReviewCandidate": { "title": "成為進度審查候選", - "body": "只有 accepted evidence 出現後,才可能進入 headline review;目前仍未授權。" + "body": "只有 已接受 evidence 出現後,才可能進入 重點 審查;目前仍未授權。" } } }, "firstUnlockEvidencePacket": { "title": "第一解鎖證據包", - "subtitle": "S2.115 把 S4.9 要讓 61% 真正前進所需的證據收斂成五個欄位:負責人判定 metadata、範圍與來源參照、脫敏聲明、收件預檢軌跡、審查接受摘要。這裡只顯示要補什麼,不收 raw payload、不收機密明文、不開 headline review。", + "subtitle": "S2.115 把 S4.9 要讓 61% 真正前進所需的證據收斂成五個欄位:負責人判定 metadata、範圍與來源參照、脫敏聲明、收件預檢軌跡、審查接受摘要。這裡只顯示要補什麼,不收 raw 載荷、不收機密明文、不開 重點 審查。", "slotLabel": "欄位", "boundaryTitle": "證據包收件邊界", "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的只讀欄位定義,不是送件、收件、驗收通過、審批、掃描、修復、部署或執行期入口。", @@ -10145,22 +10149,22 @@ "detail": "目前仍是 0,不能觸發進度審查。" }, "payload": { - "label": "敏感 payload", - "detail": "raw payload、token value 與機密明文都禁止收件。" + "label": "敏感 載荷", + "detail": "raw 載荷、token value 與機密明文都禁止收件。" } }, "items": { "ownerDecisionMetadata": { "title": "負責人判定 metadata", - "body": "需要 owner role、decision、reason、follow-up owner 與判定時間;不接受口頭同意。" + "body": "需要 owner role、decision、reason、後續追蹤 owner 與判定時間;不接受口頭同意。" }, "scopeEvidenceRefs": { "title": "範圍與來源參照", - "body": "需要對應 S4.9 範圍、Gitea / GitHub 來源脈絡與可追溯 evidence refs。" + "body": "需要對應 S4.9 範圍、Gitea / GitHub 來源脈絡與可追溯 evidence ref。" }, "redactionAttestation": { "title": "脫敏聲明", - "body": "需要明確標示只含 metadata 與 evidence pointer,raw payload 與機密值已隔離。" + "body": "需要明確標示只含 metadata 與 evidence pointer,raw 載荷 與機密值已隔離。" }, "preflightTrace": { "title": "收件預檢軌跡", @@ -10174,10 +10178,10 @@ }, "firstUnlockEvidencePacketPreflightOutcomes": { "title": "第一解鎖證據包預檢分流", - "subtitle": "S2.116 把第一解鎖證據包進來後的結果分成六條只讀分流:可進審查、補 owner metadata、補範圍參照、隔離 raw payload、拒收機密值、等待 reviewer。這裡只說明預檢結果,不把任何分流當成已接受或授權。", + "subtitle": "S2.116 把第一解鎖證據包進來後的結果分成六條只讀分流:可進審查、補 owner metadata、補範圍參照、隔離 raw 載荷、拒收機密值、等待 reviewer。這裡只說明預檢結果,不把任何分流當成已接受或授權。", "laneLabel": "分流", "boundaryTitle": "預檢分流邊界", - "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的預檢結果分流,不是證據已補齊、審查已接受、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的預檢結果分流,不是證據已補齊、審查已接受、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "lanes": { "label": "結果分流", @@ -10189,11 +10193,11 @@ }, "quarantine": { "label": "已隔離", - "detail": "目前仍是 0;若有 raw payload 才會隔離。" + "detail": "目前仍是 0;若有 raw 載荷 才會隔離。" }, "accepted": { "label": "已接受", - "detail": "目前仍是 0,不能推動 headline。" + "detail": "目前仍是 0,不能推動 重點。" } }, "items": { @@ -10203,15 +10207,15 @@ }, "needsOwnerMetadata": { "title": "要求補 owner metadata", - "body": "缺 owner role、decision、reason、follow-up owner 或判定時間時,只能退回補欄。" + "body": "缺 owner role、decision、reason、後續追蹤 owner 或判定時間時,只能退回補欄。" }, "needsScopeRefs": { "title": "要求補範圍參照", "body": "缺 S4.9 範圍、來源脈絡或 evidence refs 時,不能進審查。" }, "quarantineRawPayload": { - "title": "隔離 raw payload", - "body": "任何未脫敏 payload、截圖原文或高風險輸出都要隔離,不進一般審查。" + "title": "隔離 raw 載荷", + "body": "任何未脫敏 載荷、截圖原文或高風險輸出都要隔離,不進一般審查。" }, "rejectSecretValue": { "title": "拒收機密明文值", @@ -10219,16 +10223,16 @@ }, "waitingReviewer": { "title": "等待 reviewer 接受", - "body": "預檢可通過也不代表 accepted;仍需人工 reviewer 接受後才可能形成 movement signal。" + "body": "預檢可通過也不代表 已接受;仍需人工 reviewer 接受後才可能形成 movement signal。" } } }, "firstUnlockEvidencePacketSupplementPath": { "title": "第一解鎖證據包補件路徑", - "subtitle": "S2.117 把第一解鎖證據包未通過預檢時的補件方式拆成五步:補 owner metadata、補範圍參照、補脫敏聲明、補預檢軌跡、等待 reviewer queue。這裡只顯示補件路徑,不送出 request、不接受證據、不開 headline review。", + "subtitle": "S2.117 把第一解鎖證據包未通過預檢時的補件方式拆成五步:補 owner metadata、補範圍參照、補脫敏聲明、補預檢軌跡、等待 reviewer queue。這裡只顯示補件路徑,不送出 request、不接受證據、不開 重點 審查。", "stepLabel": "補件步驟", "boundaryTitle": "補件路徑邊界", - "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的補件說明,不是送件、收件、審查接受、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的補件說明,不是送件、收件、審查接受、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "steps": { "label": "補件步驟", @@ -10244,13 +10248,13 @@ }, "accepted": { "label": "已接受", - "detail": "目前仍是 0,headline 不提高。" + "detail": "目前仍是 0,重點 不提高。" } }, "items": { "ownerMetadataPatch": { "title": "補 owner metadata", - "body": "補齊 owner role、decision、reason、follow-up owner 與判定時間;缺一項就不能進審查。" + "body": "補齊 owner role、decision、reason、後續追蹤 owner 與判定時間;缺一項就不能進審查。" }, "scopeRefsPatch": { "title": "補範圍與來源參照", @@ -10258,7 +10262,7 @@ }, "redactionPatch": { "title": "補脫敏聲明", - "body": "只允許 metadata 與 evidence pointer;raw payload、token value、私鑰與登入口令仍不可收。" + "body": "只允許 metadata 與 evidence pointer;raw 載荷、token value、私鑰與登入口令仍不可收。" }, "preflightTracePatch": { "title": "補預檢軌跡", @@ -10266,7 +10270,7 @@ }, "reviewerQueuePatch": { "title": "等待 reviewer queue", - "body": "補件就緒也只是進入人工 reviewer queue;accepted 前不得成為 movement signal。" + "body": "補件就緒也只是進入人工 reviewer queue;已接受 前不得成為 movement signal。" } } }, @@ -10275,7 +10279,7 @@ "subtitle": "S2.118 把補件要進 reviewer queue 前的檢查拆成六項:owner metadata 完整、範圍參照可追溯、脫敏聲明成立、預檢軌跡附上、禁止變更條款維持、reviewer queue 未開。這裡只顯示送審前檢查,不代表補件已送出或已接受。", "checkLabel": "檢查", "boundaryTitle": "送審前檢查邊界", - "boundaryIntro": "以下鍵值固定:這是補件送審前檢查,不是送件、收件、審查接受、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是補件送審前檢查,不是送件、收件、審查接受、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "checks": { "label": "檢查項", @@ -10297,7 +10301,7 @@ "items": { "ownerMetadataComplete": { "title": "owner metadata 完整", - "body": "確認 owner role、decision、reason、follow-up owner 與判定時間都存在且可追溯。" + "body": "確認 owner role、decision、reason、後續追蹤 owner 與判定時間都存在且可追溯。" }, "scopeRefsTraceable": { "title": "範圍參照可追溯", @@ -10305,7 +10309,7 @@ }, "redactionAttested": { "title": "脫敏聲明成立", - "body": "確認只含 metadata 與 evidence pointer,raw payload、token value、私鑰與登入口令都未進入收件。" + "body": "確認只含 metadata 與 evidence pointer,raw 載荷、token value、私鑰與登入口令都未進入收件。" }, "preflightTraceAttached": { "title": "預檢軌跡附上", @@ -10313,7 +10317,7 @@ }, "noMutationClauseHeld": { "title": "禁止變更條款維持", - "body": "確認補件不會觸發 repo、refs、workflow、secret、Kali、SSH、部署或主機變更。" + "body": "確認補件不會觸發 repo、refs、工作流程、機密、Kali、SSH、部署或主機變更。" }, "reviewerQueueReady": { "title": "reviewer queue 未開", @@ -10326,7 +10330,7 @@ "subtitle": "S2.119 把補件送審前檢查後可能出現的結果拆成六條只讀分流:可排入 reviewer queue、退回補件、隔離敏感材料、拒收變更要求、維持佇列未開、等待 reviewer 指派。這裡只顯示結果分流,不代表 queue 已開、補件已送出或審查已接受。", "outcomeLabel": "結果", "boundaryTitle": "結果分流邊界", - "boundaryIntro": "以下鍵值固定:這是補件送審前檢查後的只讀結果分流,不是送件、收件、審查接受、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是補件送審前檢查後的只讀結果分流,不是送件、收件、審查接受、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "lanes": { "label": "結果分流", @@ -10356,11 +10360,11 @@ }, "quarantineSensitiveMaterial": { "title": "隔離敏感材料", - "body": "raw payload、token value、私鑰、登入口令或未脫敏輸出都要隔離,不進一般審查。" + "body": "raw 載荷、token value、私鑰、登入口令或未脫敏輸出都要隔離,不進一般審查。" }, "rejectMutationRequest": { "title": "拒收變更要求", - "body": "任何要求 repo、refs、workflow、secret、Kali、SSH、部署或主機變更的內容直接拒收。" + "body": "任何要求 repo、refs、工作流程、機密、Kali、SSH、部署或主機變更的內容直接拒收。" }, "keepQueueClosed": { "title": "維持佇列未開", @@ -10368,7 +10372,7 @@ }, "waitReviewerAssignment": { "title": "等待 reviewer 指派", - "body": "queue 開啟後仍需人工 reviewer 指派;未指派前不形成 accepted evidence。" + "body": "queue 開啟後仍需人工 reviewer 指派;未指派前不形成 已接受 evidence。" } } }, @@ -10377,7 +10381,7 @@ "subtitle": "S2.120 把補件結果分流之後,若未來要進人工 reviewer 指派前需要整理的六個準備包前台化:佇列狀態凍結、reviewer 角色邊界、範圍包、證據索引、衝突揭露、指派稽核草稿。這裡只顯示準備包,不代表 reviewer candidate 已成立、queue 已開或 reviewer 已指派。", "packetLabel": "準備包", "boundaryTitle": "指派準備邊界", - "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前的只讀準備包,不是開 queue、指派 reviewer、接受補件、建立稽核事件、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前的只讀準備包,不是開 queue、指派 reviewer、接受補件、建立稽核事件、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "packets": { "label": "準備包", @@ -10399,7 +10403,7 @@ "items": { "queueStatusFreeze": { "title": "佇列狀態凍結", - "body": "把 queue_open=false、ready_for_queue_count=0 與 request_sent=false 固定在同一個準備包,避免被誤讀成已開佇列。" + "body": "把 queue_open=false、就緒_for_queue_count=0 與 request_sent=false 固定在同一個準備包,避免被誤讀成已開佇列。" }, "reviewerRoleBoundary": { "title": "reviewer 角色邊界", @@ -10411,7 +10415,7 @@ }, "evidencePointerIndex": { "title": "證據索引", - "body": "只索引 metadata 與 evidence pointer;raw payload、token value、私鑰與登入口令仍不得進入準備包。" + "body": "只索引 metadata 與 evidence pointer;raw 載荷、token value、私鑰與登入口令仍不得進入準備包。" }, "conflictDisclosure": { "title": "衝突揭露", @@ -10428,7 +10432,7 @@ "subtitle": "S2.121 把 reviewer 指派準備包之後的六項檢查前台化:佇列仍關閉、角色邊界可追溯、範圍包可追溯、證據索引已脫敏、衝突揭露已釐清、稽核草稿只含 metadata。這裡只顯示指派前檢查,不代表 reviewer candidate 已成立、queue 已開或 reviewer 已指派。", "checkLabel": "檢查", "boundaryTitle": "指派前檢查邊界", - "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前的只讀檢查,不是開 queue、建立 reviewer candidate、指派 reviewer、接受補件、建立稽核事件、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前的只讀檢查,不是開 queue、建立 reviewer candidate、指派 reviewer、接受補件、建立稽核事件、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "checks": { "label": "檢查項", @@ -10450,11 +10454,11 @@ "items": { "queueStillClosed": { "title": "佇列仍關閉", - "body": "確認 queue_open=false、ready_for_queue_count=0、request_sent=false,避免檢查清單被當成已開 queue。" + "body": "確認 queue_open=false、就緒_for_queue_count=0、request_sent=false,避免檢查清單被當成已開 queue。" }, "roleBoundaryTraceable": { "title": "角色邊界可追溯", - "body": "確認 reviewer 只負責人工審查與建議,不具備部署、掃描、repo、refs、workflow 或 secret 操作權。" + "body": "確認 reviewer 只負責人工審查與建議,不具備部署、掃描、repo、refs、工作流程 或 機密 操作權。" }, "scopePacketTraceable": { "title": "範圍包可追溯", @@ -10462,7 +10466,7 @@ }, "evidenceIndexRedacted": { "title": "證據索引已脫敏", - "body": "確認只保留 metadata 與 evidence pointer;raw payload、token value、私鑰與登入口令仍不可收。" + "body": "確認只保留 metadata 與 evidence pointer;raw 載荷、token value、私鑰與登入口令仍不可收。" }, "conflictDisclosureClear": { "title": "衝突揭露已釐清", @@ -10476,10 +10480,10 @@ }, "firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome": { "title": "第一解鎖證據包 reviewer 指派前檢查結果分流", - "subtitle": "S2.122 把 reviewer 指派前檢查後的六條結果分流前台化:維持佇列關閉、退回角色邊界、退回範圍包、隔離未脫敏證據、暫停衝突揭露、保留 metadata-only 稽核草稿。這裡只顯示分流,不代表 reviewer candidate 已成立、queue 已開或 reviewer 已指派。", + "subtitle": "S2.122 把 reviewer 指派前檢查後的六條結果分流前台化:維持佇列關閉、退回角色邊界、退回範圍包、隔離未脫敏證據、暫停衝突揭露、保留 僅中繼資料 稽核草稿。這裡只顯示分流,不代表 reviewer candidate 已成立、queue 已開或 reviewer 已指派。", "outcomeLabel": "結果", "boundaryTitle": "指派前結果分流邊界", - "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前檢查後的只讀結果分流,不是建立 reviewer candidate、開 queue、指派 reviewer、接受補件、建立稽核事件、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前檢查後的只讀結果分流,不是建立 reviewer candidate、開 queue、指派 reviewer、接受補件、建立稽核事件、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "outcomes": { "label": "分流", @@ -10501,11 +10505,11 @@ "items": { "keepQueueClosed": { "title": "維持佇列關閉", - "body": "只要 passed_count=0 或 ready_count=0,就維持 queue_open=false,不進 reviewer candidate。" + "body": "只要 passed_count=0 或 就緒_count=0,就維持 queue_open=false,不進 reviewer candidate。" }, "returnRoleBoundary": { "title": "退回角色邊界", - "body": "reviewer 權責不清時退回補齊,仍不得賦予部署、掃描、repo、refs、workflow 或 secret 操作權。" + "body": "reviewer 權責不清時退回補齊,仍不得賦予部署、掃描、repo、refs、工作流程 或 機密 操作權。" }, "returnScopePacket": { "title": "退回範圍包", @@ -10513,7 +10517,7 @@ }, "quarantineEvidenceIndex": { "title": "隔離未脫敏證據", - "body": "若出現 raw payload、token value、私鑰或登入口令,必須隔離並不得進 reviewer 指派。" + "body": "若出現 raw 載荷、token value、私鑰或登入口令,必須隔離並不得進 reviewer 指派。" }, "holdConflictDisclosure": { "title": "暫停衝突揭露", @@ -10526,8 +10530,8 @@ } }, "s49OwnerResponseWorkOrder": { - "title": "S4.9 Owner Response 人工收件工作單", - "subtitle": "S2.101 把第一個真正能推動 61% 的 S4.9 回覆收件格式放到 IwoooS:每項都要包含 owner role/team、decision、decision reason、受影響 scope、脫敏 evidence refs 與 follow-up owner。這裡只是人工收件工作單,不送出 request、不收件、不標記 已收到 / 已接受。", + "title": "S4.9 負責人 Response 人工收件工作單", + "subtitle": "S2.101 把第一個真正能推動 61% 的 S4.9 回覆收件格式放到 IwoooS:每項都要包含 owner role/team、decision、decision reason、受影響 scope、脫敏 evidence refs 與 後續追蹤 owner。這裡只是人工收件工作單,不送出 request、不收件、不標記 已收到 / 已接受。", "itemLabel": "收件項目", "requiredFieldsLabel": "必填欄位", "acceptanceLabel": "驗收方式", @@ -10548,43 +10552,43 @@ }, "accepted": { "label": "已接受", - "detail": "目前仍是 0,五項通過前不得 accepted。" + "detail": "目前仍是 0,五項通過前不得 已接受。" } }, "items": { "scopeGapResponse": { "title": "Public-only / local gap 回覆", "body": "請 owner 判定 public-only 與 local Gitea 差異是否納入本輪 inventory / migration scope。", - "requiredFields": "owner role/team、decision、decision reason、affected scope、redacted evidence refs、follow-up owner。", + "requiredFields": "owner role/team、decision、decision reason、affected scope、redacted evidence refs、後續追蹤 owner。", "acceptance": "decision 必須落在 in scope、out of scope、legacy archived、external system、inaccessible 或 needs more evidence。", "guard": "不建立 repo、不讀私有內容、不同步 refs、不把差異判定當 migration approval。" }, "endpointIdentityResponse": { "title": "Gitea `wooo` endpoint 身分回覆", "body": "請 owner 判定 `wooo` 應以 user、org 或雙重來源盤點,避免把 endpoint 404 誤讀成不存在。", - "requiredFields": "owner role/team、canonical endpoint identity、decision reason、affected endpoint、redacted evidence refs、follow-up owner。", - "acceptance": "必須能追溯到已知 endpoint evidence,且不得含 token、cookie、private URL credential 或 admin API payload。", + "requiredFields": "owner role/team、canonical endpoint identity、decision reason、affected endpoint、redacted evidence refs、後續追蹤 owner。", + "acceptance": "必須能追溯到已知 endpoint evidence,且不得含 token、cookie、private URL credential 或 admin API 載荷。", "guard": "不呼叫 Gitea admin API、不使用 token、不把 endpoint 身分當 inventory completed。" }, "adjacentSourceResponse": { "title": "110 adjacent source scope 回覆", "body": "請 owner 判定 `bitan-pharmacy`、`root/momo-pro-system`、`tsenyang-website`、`wooo/wooo-infra-config` 是否納入本輪 scope。", - "requiredFields": "owner role/team、per-source decision、decision reason、affected source、redacted evidence refs、follow-up owner。", + "requiredFields": "owner role/team、per-source decision、decision reason、affected source、redacted evidence refs、後續追蹤 owner。", "acceptance": "逐項標示 in scope、out of scope、legacy、external、inaccessible 或 needs more evidence,並保留脫敏 trace。", "guard": "不讀取私有 repo 內容、不匯入 archive、不把 110 adjacent source 自動納入 migration。" }, "canonicalOwnerResponse": { "title": "Repo owner / canonical scope 回覆", "body": "請 owner 為 in-scope repo 指定 canonical source、GitHub target candidate、visibility review owner 與理由。", - "requiredFields": "owner role/team、canonical source、GitHub target candidate、visibility review owner、redacted evidence refs、follow-up owner。", + "requiredFields": "owner role/team、canonical source、GitHub target candidate、visibility review owner、redacted evidence refs、後續追蹤 owner。", "acceptance": "target candidate 只能作為 readiness evidence,需後續 S4.10 / S4.11 / S4.12 驗收後才可進 primary review。", "guard": "不建立 GitHub repo、不改 visibility、不切 primary、不把 target candidate 當 approval。" }, "legacyDispositionResponse": { "title": "Legacy / inaccessible disposition 回覆", "body": "請 owner 對 legacy、inaccessible 或 external repo 留下 disposition、理由與後續負責人。", - "requiredFields": "owner role/team、disposition、decision reason、affected repo/source、redacted evidence refs、follow-up owner。", - "acceptance": "disposition 只能是 archive candidate、exclude、follow-up evidence、external owner 或 needs more evidence。", + "requiredFields": "owner role/team、disposition、decision reason、affected repo/source、redacted evidence refs、後續追蹤 owner。", + "acceptance": "disposition 只能是 archive candidate、exclude、後續追蹤 evidence、external owner 或 needs more evidence。", "guard": "不刪除、不停用、不封存 repo;disposition 只是人工分類,不是執行命令。" } } @@ -10827,13 +10831,13 @@ }, "redactedEvidenceDraft": { "title": "脫敏證據參照草稿", - "body": "只允許引用脫敏快照、文件路徑或 metadata 指標,避免把 token、私鑰、cookie、session 或原始 inventory payload 放進請求。", + "body": "只允許引用脫敏快照、文件路徑或 metadata 指標,避免把 token、私鑰、cookie、session 或原始 inventory 載荷 放進請求。", "gap": "尚未有可接受的脫敏證據包,不進收件。", "guard": "不保存機密明文、不轉送敏感載荷。" }, "noMutationClauseDraft": { "title": "禁止變更條款草稿", - "body": "送件文字必須明確說明這不是建立專案庫、改可見性、同步分支、修改 workflow、收集 機密明文值 或切換主要來源的要求。", + "body": "送件文字必須明確說明這不是建立專案庫、改可見性、同步分支、修改 工作流程、收集 機密明文值 或切換主要來源的要求。", "gap": "禁止變更條款未經人工確認前,不可送件。", "guard": "不把 request 草稿變成 GitHub、Gitea、分支 / 標籤參照、工作流程或機密設定動作。" }, @@ -10852,23 +10856,23 @@ } }, "s49OwnerResponsePreflight": { - "title": "S4.9 Owner Response 收件前 Preflight", - "subtitle": "S2.48 把 S4.9 的 6 個收件前檢查拉到 IwoooS:先確認回覆是否對應已知 attestation item、欄位完整、decision 合法、evidence 脫敏、沒有執行要求,且五個 items 到齊前不得 accepted。這裡只顯示 preflight,不寄送 request、不標記 received、不建立 audit event。", - "checkLabel": "Preflight", + "title": "S4.9 負責人 Response 收件前 預檢", + "subtitle": "S2.48 把 S4.9 的 6 個收件前檢查拉到 IwoooS:先確認回覆是否對應已知 attestation item、欄位完整、decision 合法、evidence 脫敏、沒有執行要求,且五個 items 到齊前不得 已接受。這裡只顯示 preflight,不寄送 request、不標記 已收到、不建立 audit event。", + "checkLabel": "預檢", "failureLabel": "不通過時", "guardLabel": "仍禁止", "items": { "knownAttestationItem": { "title": "對應 S4.7 已知 item", "body": "負責人回覆 必須明確對應 public-only / local gap、org/user endpoint、110 adjacent source、canonical owner 或 legacy disposition 其中之一。", - "failure": "不明確時只能 request owner correction,不能進 accepted。", + "failure": "不明確時只能 request owner correction,不能進 已接受。", "guard": "不把模糊回覆當作 coverage attestation,也不自動補成某個 item。" }, "requiredOwnerFields": { "title": "必填欄位完整", "body": "每筆回覆都要有 owner role/team、decision、decision reason、受影響 scope、evidence refs 與 followup owner。", "failure": "欄位不足只能 request more evidence。", - "guard": "不接受口頭 OK、不用缺欄位回覆建立 approval record。" + "guard": "不接受口頭 OK、不用缺欄位回覆建立 批准紀錄。" }, "allowedDecision": { "title": "Decision 在允許值內", @@ -10878,27 +10882,27 @@ }, "redactedEvidenceOnly": { "title": "只接受脫敏 evidence refs", - "body": "evidence 只能指向 repo 內文件、snapshot 或脫敏 metadata pointer,不貼 token、secret、cookie、session、private key 或私有 URL 憑證。", - "failure": "出現敏感 payload 只能 quarantine sensitive payload。", - "guard": "不保存 raw secret、不匯入 DB dump、不收 git object pack 或 repo archive。" + "body": "evidence 只能指向 repo 內文件、snapshot 或脫敏 中繼資料指標,不貼 token、機密、cookie、session、private key 或私有 URL 憑證。", + "failure": "出現敏感 載荷 只能 quarantine sensitive 載荷。", + "guard": "不保存 raw 機密、不匯入 DB dump、不收 git object pack 或 repo archive。" }, "noExecutionRequest": { "title": "不得夾帶執行要求", - "body": "回覆不得要求 Gitea/GitHub 寫入、repo 建立、visibility 修改、refs sync/delete/force-push、workflow/secret/runner 變更、scan 或 runtime action。", + "body": "回覆不得要求 Gitea/GitHub 寫入、repo 建立、visibility 修改、refs sync/delete/force-push、工作流程/機密/runner 變更、scan 或 runtime action。", "failure": "夾帶執行要求時 reject execution request。", "guard": "不寫 Gitea、不建 GitHub repo、不同步 refs、不開 執行期閘門。" }, "allFiveItemsBeforeAccepted": { "title": "五個項目到齊前不得 Accepted", - "body": "S4.9 要被標示 accepted 前,五個回覆範本都必須收到可驗收的負責人回覆。", + "body": "S4.9 要被標示 已接受 前,五個回覆範本都必須收到可驗收的負責人回覆。", "failure": "部分回覆只能維持 waiting 或 request more evidence。", - "guard": "preflight 可見不代表 request sent、received、accepted 或 audit emitted。" + "guard": "preflight 可見不代表 request sent、已收到、已接受 或 audit emitted。" } } }, "awooopCrossSessionHandoff": { "title": "AwoooP 跨 Session Handoff", - "subtitle": "S2.52 將目前 PR、分支、進度語義、必跑 guard、禁止動作與下一個協調 gate 固定成只讀 handoff packet,讓另一個 AwoooP Session 可直接接手,不把 handoff 當 production landing 或執行授權。", + "subtitle": "S2.52 將目前 PR、分支、進度語義、必跑 guard、禁止動作與下一個協調 閘門 固定成只讀 handoff packet,讓另一個 AwoooP Session 可直接接手,不把 handoff 當 正式環境落地 或執行授權。", "packetLabel": "Handoff packet", "handoffLabel": "交接說明", "guardLabel": "仍鎖住", @@ -10907,39 +10911,66 @@ "title": "PR / 分支錨點", "body": "目前以 PR #117 與 codex/security-supply-chain-contracts-20260512 作為只讀同步錨點。", "handoff": "另一個 Session 先確認同一 PR / branch / latest commit,再讀 LOGBOOK 與 rollup ledger。", - "guard": "不從 handoff 自動 merge、deploy、切 primary 或改 refs。" + "guard": "不從 handoff 自動 merge、deploy、切 primary 或改 ref。" }, "progressSemantics": { "title": "進度語義", - "body": "headline 仍是 61%,framework 86-88%,runtime / ingestion / GitHub primary / AwoooP production landing 40-45%。", - "handoff": "AwoooP production landing evidence 已記錄;後續新 UI / docs / snapshot 仍只能進 framework_detail ledger,除非 負責人回覆、執行期閘門或 GitHub primary 有新 evidence。", - "guard": "不把 framework detail、readiness、handoff、guard pass 當 headline delta。" + "body": "重點 仍是 61%,framework 86-88%,runtime / ingestion / GitHub primary / AwoooP 正式環境落地 40-45%。", + "handoff": "AwoooP 正式環境落地 evidence 已記錄;後續新 UI / docs / snapshot 仍只能進 framework_detail ledger,除非 負責人回覆、執行期閘門或 GitHub primary 有新 evidence。", + "guard": "不把 framework detail、readiness、handoff、guard pass 當 重點 delta。" }, "requiredGuardCommands": { "title": "必跑 Guard", - "body": "接手前先跑 security-mirror-progress-guard.py 與 source-control-owner-response-guard.py。", + "body": "接手前先跑 security-鏡像-progress-guard.py 與 source-control-owner-response-guard.py。", "handoff": "兩個 guard 都通過後才能繼續 read-only projection;失敗時先停下修 contract / snapshot。", - "guard": "不跳過 guard;不把 guard pass 當 runtime approval。" + "guard": "不跳過 guard;不把 guard pass 當 runtime 批准。" }, "forbiddenRuntimeActions": { "title": "Runtime 禁止動作", - "body": "Kali /execute、SSH、host update、active scan、credentialed scan、blocking control、repo / refs / workflow 動作仍未授權。", + "body": "Kali /execute、SSH、主機更新、active scan、憑證掃描、阻擋控制、repo / refs / 工作流程 動作仍未授權。", "handoff": "另一個 Session 只能新增 read-only evidence、UI projection、docs、snapshot、guard。", "guard": "runtime_execution_authorized=false;action_buttons_allowed=false" }, "awooopReadOnlyInputs": { "title": "AwoooP 只讀輸入", - "body": "可消費 rollup snapshot、IwoooS projection、負責人回覆 validation rollup、Kali status 與 rollout policy。", - "handoff": "AwoooP 主線接入時只顯示狀態、evidence refs、route group 與 forbidden actions。", - "guard": "不保存原始載荷、credential plaintext、token value 或 execution payload。" + "body": "可消費 rollup snapshot、IwoooS projection、負責人回覆 validation rollup、Kali status 與 分階段套用 policy。", + "handoff": "AwoooP 主線接入時只顯示狀態、evidence refs、route group 與 forbidden action。", + "guard": "不保存原始載荷、credential plaintext、token value 或 execution 載荷。" }, "nextCoordinationGate": { - "title": "下一個協調 Gate", - "body": "AwoooP production landing 已成為第一個完成的高層 gate;下一個真正能再推動 headline 的 gate 是負責人回覆 accepted、redacted payload ingestion、active 執行期閘門或 GitHub primary ready。", + "title": "下一個協調 閘門", + "body": "AwoooP 正式環境落地 已成為第一個完成的高層 閘門;下一個真正能再推動 重點 的 閘門 是負責人回覆 已接受、脫敏載荷 ingestion、active 執行期閘門或 GitHub primary 就緒。", "handoff": "另一個 Session 若要繼續推進,必須沿用這份 read-only consumption evidence,不得把它升級成 execution router。", "guard": "不把 handoff packet 或 landing evidence 當 runtime execution。" } } + }, + "fastProgress": { + "eyebrow": "快速進度回報", + "title": "目前做了什麼,一眼看懂", + "subtitle": "這裡只放使用者最需要先知道的結論:哪些已經前台可見、Kali 112 是否納管、所有產品是否套用、以及哪些執行動作仍未批准。詳細證據保留在下方區塊。", + "nextGate": { + "title": "下一個真正會推動進度的 Gate", + "body": "先收到並驗收 S4.9 Gitea 清冊負責人回覆。這件事完成前,61% 不應假性前進;完成後才檢查是否能打開 reviewer / runtime 的下一段人工流程。" + }, + "items": { + "done": { + "title": "前台可見工作已整合", + "body": "IwoooS 已串起安全合規、告警、授權、治理、錯誤追蹤、操作日誌與程式碼審查,讓資安工作不再只藏在文件。" + }, + "kali112": { + "title": "Kali 112 已納入資安網", + "body": "192.168.0.112 已在主機覆蓋與證據框架中;目前是只讀納管,不是已批准主動掃描、憑證掃描、/execute 或主機更新。" + }, + "allProducts": { + "title": "所有產品先套只讀框架", + "body": "核心產品、公開網站、版本來源、主機、監控工具與未來產品六類都已套用 IwoooS 可視化與人工 Gate 口徑。" + }, + "runtime": { + "title": "執行期仍保持關閉", + "body": "目前 active runtime gate 是 0;SSH、掃描、修復、部署、主機更新、repo / refs / workflow 變更都還沒被批准。" + } + } } } } diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 930f8a7a5..a25bec7ce 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -27,7 +27,7 @@ "brand": { "name": "AWOOOI", "slogan": "零干預維運,以人為本的決策。", - "sloganAlt": "Zero-Touch Ops. Human-Centric Decisions.", + "sloganAlt": "零干預維運,以人為本的決策。", "tagline": "AI 指揮操作介面", "aiTagline": "AI 觀察。AI 行動。您簽核。", "version": "v1.0.0", @@ -74,8 +74,8 @@ }, "locale": { "switch": "切換語系", - "zhTW": "繁", - "en": "EN" + "zhTW": "繁體中文", + "en": "繁中" }, "demo": { "title": "AWOOOI 展示", @@ -93,7 +93,8 @@ "hitlRealApi": "HITL Multi-Sig (真實 API)", "addCritical": "+ 嚴重", "addMedium": "+ 中度", - "creating": "建立中..." + "creating": "建立中...", + "liveDashboard": "即時事件流 (SSE)" }, "host": { "devops": { @@ -351,7 +352,7 @@ }, "ansibleRuntime": { "title": "Ansible check-mode / apply 接線", - "detail": "check-mode {checkMode},待 check-mode {pending};目前 blocker={blocker}。" + "detail": "check-mode {checkMode},待 check-mode {pending};目前 阻塞點={blocker}。" }, "kmGovernance": { "title": "KM 陳舊資料治理", @@ -422,10 +423,10 @@ "subtitle": "告警進來後,從分析、調查、審批、執行到驗證的主幹流程。", "stages": { "signal": "Alert / Sentry / SigNoz", - "intake": "AwoooP Intake", + "intake": "AwoooP 收件", "ai": "OpenClaw / Hermes", - "mcp": "MCP Evidence", - "playbook": "PlayBook Gate", + "mcp": "MCP 證據", + "playbook": "PlayBook 閘門", "ansible": "Ansible Check", "approval": "Approval / Apply", "verify": "Verify / KM" @@ -452,7 +453,7 @@ }, "rows": { "claim": "Production claim", - "qualityGate": "Quality gate", + "qualityGate": "Quality 閘門", "ansible": "Ansible runtime", "aiRoute": "AI route", "km": "KM freshness", @@ -474,7 +475,7 @@ "subtitle": "每一則 Telegram 告警、按鈕、Run、KM 與 PlayBook 都要能串回同一條證據。", "nodes": { "telegram": "Telegram Message", - "callback": "Callback Evidence", + "callback": "Callback 證據", "db": "DB Truth", "run": "Run Timeline", "km": "KM / PlayBook" @@ -505,23 +506,23 @@ "nextAction": "維持 GCP-A → GCP-B → 111 → Gemini fallback 順序並記錄 lane" }, "mcp": { - "owner": "MCP Gateway", + "owner": "MCP 閘道", "evidence": "K8s / Prometheus / Sentry / SigNoz / Gitea / 自建 MCP 查證結果", "nextAction": "把 MCP 查證結果寫回 dossier,讓 LLM 不靠猜測判斷" }, "playbook": { - "owner": "OpenClaw + PlayBook trust gate", - "evidence": "quality gate / work items / playbook match / execution history", + "owner": "OpenClaw + PlayBook trust 閘門", + "evidence": "quality 閘門 / work items / playbook match / execution history", "nextAction": "補齊 execution、repair、approval、learning evidence 後才允許升級" }, "ansible": { "owner": "AwoooP Executor + Ansible lane", - "evidence": "ansible_runtime / check-mode count / pending check-mode / blockers", + "evidence": "ansible_runtime / check-mode count / pending check-mode / 阻塞點", "nextAction": "先解除 ansible_playbook_binary_missing,再跑 check-mode,不直接 apply" }, "approval": { "owner": "Approval Coordinator + SRE owner", - "evidence": "approvals / risk gate / run timeline / manual_required reason", + "evidence": "approvals / risk 閘門 / run timeline / manual_required reason", "nextAction": "低風險才進自動化,高風險保留人工審批與 audit trail" }, "verify": { @@ -532,7 +533,7 @@ } }, "liveEvidence": { - "title": "Live Evidence", + "title": "Live 證據", "realtime": "即時讀取", "fields": { "metric": "指標", @@ -563,20 +564,20 @@ "detail": "skipped lanes {skipped},operator action={action},reason={reason}" }, "mcp": { - "metric": "MCP observations {observations} / gateway {gateway}", + "metric": "MCP 觀測 {observations} / 閘道 {gateway}", "detail": "success {success},failed {failed},server={server},route={route}" }, "playbook": { - "metric": "gate {gate} / automation gaps {gaps}", + "metric": "閘門 {gate} / automation gaps {gaps}", "detail": "open work items {workItems},verified groups {verifiedGroups},auto-repair linked {linkedAutoRepair}" }, "ansible": { "metric": "check-mode {checkMode} / pending {pending}", - "detail": "blocker={blocker},candidates={candidates},operations={operations}" + "detail": "阻塞點={blocker},candidates={candidates},operations={operations}" }, "approval": { "metric": "pending {pending} / verified {verified}/{evaluated}", - "detail": "human gates {humanGates},auto-repair records {autoRepairRecords},operation records {operations}" + "detail": "human 閘門s {humanGates},auto-repair records {autoRepairRecords},operation records {operations}" }, "verify": { "metric": "stale {stale} / ratio {ratio}", @@ -586,7 +587,7 @@ "values": { "verified": "verified {verified}/{evaluated}", "topGate": "{gate} 缺 {count}", - "ansible": "check-mode {checkMode},pending {pending},blocker {blocker}", + "ansible": "check-mode {checkMode},pending {pending},阻塞點 {blocker}", "aiRoute": "{lane} / {provider}", "km": "{stale} stale over {days} days", "callback": "missing {missing},1h {recent1h},24h {recent24h}" @@ -1091,21 +1092,21 @@ "nextPage": "下一頁", "pageIndicator": "第 {page} / {totalPages} 頁", "sourceCoverageTitle": "來源卷宗覆蓋率", - "sourceCoverageSubtitle": "最近 {limit} 筆 inbound source event 的 DB 保存與 Sentry / SigNoz 關聯", + "sourceCoverageSubtitle": "最近 {limit} 筆進站來源事件的 DB 保存與 Sentry / SigNoz 關聯", "sourceCoverageError": "來源卷宗覆蓋率讀取失敗:{error}", - "sourceCoverageWithRefs": "含 refs", - "sourceCoverageMissing": "缺 refs", - "sourceCoverageAlert": "Alert refs", - "sourceCoverageSentry": "Sentry refs", - "sourceCoverageSigNoz": "SigNoz refs", - "sourceCoverageRatio": "source refs 覆蓋率 {ratio} / total {total}", - "sourceCoverageProvider": "{provider}: total {total}, missing {missing}, Sentry {sentry}, SigNoz {signoz}, latest {latest} ({age})", - "sourceCoverageProviderWindow": "{provider} window: total {total}, with refs {withRefs}, missing {missing}, latest {latest} ({age})", - "sourceCoverageFreshness": "{provider} latest {latest} ({age})", - "sourceCoverageFresh": "fresh", - "sourceCoverageStaleHours": "stale {hours}h", - "sourceCoverageStaleDays": "stale {days}d", - "sourceCoverageNoEvents": "no events" + "sourceCoverageWithRefs": "含來源參照", + "sourceCoverageMissing": "缺來源參照", + "sourceCoverageAlert": "告警參照", + "sourceCoverageSentry": "Sentry 參照", + "sourceCoverageSigNoz": "SigNoz 參照", + "sourceCoverageRatio": "來源參照覆蓋率 {ratio} / 總數 {total}", + "sourceCoverageProvider": "{provider}: 總數 {total},缺參照 {missing},Sentry {sentry},SigNoz {signoz},最新 {latest}({age})", + "sourceCoverageProviderWindow": "{provider} 視窗:總數 {total},含參照 {withRefs},缺參照 {missing},最新 {latest}({age})", + "sourceCoverageFreshness": "{provider} 最新 {latest}({age})", + "sourceCoverageFresh": "新鮮", + "sourceCoverageStaleHours": "已過期 {hours} 小時", + "sourceCoverageStaleDays": "已過期 {days} 天", + "sourceCoverageNoEvents": "無事件" }, "navSection": { "aiCore": "AI 核心", @@ -1370,7 +1371,9 @@ "yes": "是", "no": "否", "error": "載入失敗", - "noData": "無合規資料" + "noData": "無合規資料", + "window30Days": "近 30 天", + "severityDistribution": "嚴重度分布" }, "cost": { "title": "成本分析", @@ -1686,7 +1689,7 @@ "totalCount": "共 {count} 筆", "colTime": "時間", "colEventType": "事件類型", - "colIncident": "Incident", + "colIncident": "事件", "colActor": "操作者", "colDetail": "說明", "colResult": "結果", @@ -4784,7 +4787,7 @@ "authority": { "eyebrow": "短版結論", "title": "IwoooS 是資安主控台;安全合規是熟悉入口", - "body": "這裡先讓使用者看懂入口關係,再把完整總覽交給 IwoooS。現階段仍是只讀、Gate 0,不啟動掃描、修復、批准或部署。", + "body": "這裡先讓使用者看懂入口關係,再把完整總覽交給 IwoooS。現階段仍是只讀、閘門 0,不啟動掃描、修復、批准或部署。", "open": "前往 IwoooS 主控台", "signals": { "source": { @@ -4872,38 +4875,38 @@ "boundary": { "label": "目前邊界", "state": "只讀鏡像 / 先觀測", - "detail": "所有數字來自已驗證 snapshot 與 guard。此頁只顯示態勢、缺口、下一個 gate 與非阻擋分流。" + "detail": "所有數字來自已驗證 snapshot 與 guard。此頁只顯示態勢、缺口、下一個 閘門 與非阻擋分流。" }, "informationArchitecture": { "overview": { "title": "一眼看懂", - "summary": "預設只展開 headline、下一個 gate、進度移動條件與目前仍鎖住的邊界。" + "summary": "預設只展開 重點、下一個 閘門、進度移動條件與目前仍鎖住的邊界。" }, "frontStage": { "title": "前台入口與既有資安頁", - "summary": "整合安全合規、告警、授權、治理、稽核與 Code Review 的只讀入口。" + "summary": "整合安全合規、告警、授權、治理、稽核與 程式碼審查 的只讀入口。" }, "progressPath": { "title": "下一步與阻塞解除", - "summary": "集中顯示低摩擦 rollout、非阻擋分流、第一個可讓 61% 往前的證據路徑。" + "summary": "集中顯示低摩擦 分階段套用、非阻擋分流、第一個可讓 61% 往前的證據路徑。" }, "ownerEvidence": { "title": "版本來源與負責人回覆", - "summary": "保留 Gitea / GitHub owner response、S4.9 收件、預檢與人工決策證據。" + "summary": "保留 Gitea / GitHub 負責人回覆、S4.9 收件、預檢與人工決策證據。" }, "awooopVersion": { "title": "AwoooP 只讀落地與版本證據", - "summary": "收納產品 rollout、AwoooP production landing、evidence wiring 與跨 Session 交接。" + "summary": "收納產品 分階段套用、AwoooP 正式環境落地、證據接線 與跨 Session 交接。" }, "hostKali": { "title": "主機與 Kali 邊界", - "summary": "將 192.168.0.112 / 111 / 168 的 observe-only、收件與人工決策證據收在進階區。" + "summary": "將 192.168.0.112 / 111 / 168 的 僅觀察、收件與人工決策證據收在進階區。" } }, "metrics": { "overall": { "label": "整體資安網", - "detail": "headline 進度,不是授權" + "detail": "重點 進度,不是授權" }, "framework": { "label": "框架成熟度", @@ -4915,7 +4918,7 @@ }, "contracts": { "label": "主要契約", - "detail": "33 ready / 2 partial / 1 contract-only" + "detail": "33 就緒 / 2 partial / 1 contract-only" }, "activeGates": { "label": "主動執行閘門", @@ -4924,9 +4927,9 @@ }, "allProductCoverageSnapshot": { "title": "全產品只讀套用快照", - "subtitle": "先回答最常被問的問題:所有專案產品都套用 IwoooS 資安框架,但目前只套可視化、證據欄位與人工 gate,不套掃描、修復、部署或阻擋控制。", + "subtitle": "先回答最常被問的問題:所有專案產品都套用 IwoooS 資安框架,但目前只套可視化、證據欄位與人工 閘門,不套掃描、修復、部署或阻擋控制。", "boundaryTitle": "快照邊界", - "boundaryIntro": "以下鍵值固定:預設區只顯示 compact snapshot;完整三軸明細與 rollout 台帳保留在進階區,runtime ready 仍是 0。", + "boundaryIntro": "以下鍵值固定:預設區只顯示 compact snapshot;完整三軸明細與 分階段套用 台帳保留在進階區,runtime 就緒 仍是 0。", "summary": { "scopeCount": { "label": "產品範圍", @@ -4937,12 +4940,12 @@ "detail": "六類都先套只讀治理與低摩擦可視化。" }, "runtimeReady": { - "label": "runtime ready", - "detail": "目前 0;未經人工 gate 不進執行期。" + "label": "runtime 就緒", + "detail": "目前 0;未經人工 閘門 不進執行期。" }, "nextGate": { - "label": "下一 gate", - "detail": "第一個可推進 gate 仍是 S4.9 owner response accepted。" + "label": "下一 閘門", + "detail": "第一個可推進 閘門 仍是 S4.9 負責人回覆 已接受。" } }, "states": { @@ -4964,15 +4967,15 @@ }, "sourceControl": { "title": "GitHub / Gitea 專案庫", - "body": "只顯示 primary readiness、refs truth、workflow / secret 名稱證據。" + "body": "只顯示 主要來源就緒度、refs 真相、工作流程 / 機密 名稱證據。" }, "hosts": { "title": "Kali 與開發主機", - "body": "192.168.0.112 / 111 / 168 只進 observe-only coverage。" + "body": "192.168.0.112 / 111 / 168 只進 僅觀察 coverage。" }, "toolsMonitoring": { "title": "監控、工具與自動化", - "body": "只顯示 metadata-only evidence、阻塞解除條件與人工 gate。" + "body": "只顯示 僅中繼資料證據、阻塞解除條件與人工 閘門。" }, "futureProducts": { "title": "未來新增產品", @@ -4983,7 +4986,7 @@ "stageCompletionReport": { "title": "階段完成回報", "subtitle": "每一輪完成後都把正式證據、進度邊界與下一步固定在首頁,讓使用者不用翻對話也能理解目前資安工作推到哪裡。", - "boundary": "本階段只更新可見回報與證據索引:headline_percent=61;framework=86-88%;runtime_landing=40-45%;active_runtime_gate_count=0;runtime_execution_authorized=false;repo_creation_authorized=false。", + "boundary": "本階段只更新可見回報與證據索引:重點_percent=61;framework=86-88%;runtime_landing=40-45%;active_runtime_閘門_count=0;runtime_execution_authorized=false;repo_creation_authorized=false。", "items": { "stageClosed": { "title": "本階段已收斂", @@ -4995,11 +4998,11 @@ }, "progressBoundary": { "title": "整體進度邊界", - "body": "目前整體 61%,框架 86-88%,落地 40-45%。下一次進度要靠 owner response、脫敏證據或批准 gate。" + "body": "目前整體 61%,框架 86-88%,落地 40-45%。下一次進度要靠 負責人回覆、脫敏證據或批准 閘門。" }, "runtimeBoundary": { "title": "執行期仍關閉", - "body": "Kali、主機、repo、workflow 與 GitHub primary 仍停在 observe / readiness;不因前端顯示而取得執行權。" + "body": "Kali、主機、repo、工作流程 與 GitHub primary 仍停在 observe / readiness;不因前端顯示而取得執行權。" } } }, @@ -5008,27 +5011,27 @@ "subtitle": "把 61% 往下一階段推進需要的工作拆成四件事;這裡只顯示任務與完成條件,不送出請求、不啟動掃描、不建立執行。", "stepLabel": "任務", "doneLabel": "完成條件", - "boundary": "固定邊界:owner_response_received_count=0;owner_response_accepted_count=0;active_runtime_gate_count=0;runtime_execution_authorized=false;action_buttons_allowed=false;repo_creation_authorized=false;github_primary_switch_authorized=false。", + "boundary": "固定邊界:owner_response_已收到_count=0;owner_response_已接受_count=0;active_runtime_閘門_count=0;runtime_execution_authorized=false;action_buttons_allowed=false;repo_creation_authorized=false;github_primary_switch_authorized=false。", "items": { "s49OwnerResponse": { "title": "先收 S4.9 負責人回覆", - "body": "第一個可推動 headline 的工作,是收到 Gitea 清冊負責人的可追溯、已脫敏回覆。", - "done": "收到後仍要通過收件預檢與 reviewer 接受,才可能成為 headline review 候選。" + "body": "第一個可推動 重點 的工作,是收到 Gitea 清冊負責人的可追溯、已脫敏回覆。", + "done": "收到後仍要通過收件預檢與 reviewer 接受,才可能成為 重點 審查 候選。" }, "redactedEvidencePacket": { "title": "補齊脫敏證據包", "body": "把來源、範圍、負責人判定、脫敏聲明與 evidence refs 放進可審查封包。", - "done": "只接受脫敏 payload;機密明文、完整掃描輸出、host dump 與 raw log 不進 mirror。" + "done": "只接受脫敏 載荷;機密明文、完整掃描輸出、主機 dump 與 原始日誌 不進 鏡像。" }, "runtimeGatePreflight": { - "title": "準備執行期 gate 前置條件", - "body": "先整理 scope、rollback、維護窗口、post-check metrics 與人工決策格式。", - "done": "目前仍不開 gate;人工批准前 active runtime gate 必須維持 0。" + "title": "準備執行期 閘門 前置條件", + "body": "先整理 scope、回復、維護窗口、事後檢查指標 與人工決策格式。", + "done": "目前仍不開 閘門;人工批准前 啟用中的 runtime 閘門 必須維持 0。" }, "githubPrimaryReadiness": { - "title": "累積 GitHub primary readiness", - "body": "整理 GitHub 目標、分支 / 標籤真相、workflow / secret 名稱與 rollback 依據。", - "done": "只做就緒度證據;不得建立專案庫、同步 refs、改 workflow、切 primary 或停用 Gitea。" + "title": "累積 GitHub 主要來源就緒度", + "body": "整理 GitHub 目標、分支 / 標籤真相、工作流程 / 機密 名稱與 回復 依據。", + "done": "只做就緒度證據;不得建立專案庫、同步 refs、改 工作流程、切 primary 或停用 Gitea。" } } }, @@ -5036,22 +5039,22 @@ "exposure": { "title": "暴露面態勢", "state": "等待證據", - "body": "主流資安管理會把資產、暴露面、弱點與 owner gate 放在同一張圖。IwoooS 先顯示覆蓋缺口,不把缺口變成阻擋。" + "body": "主流資安管理會把資產、暴露面、弱點與 owner 閘門 放在同一張圖。IwoooS 先顯示覆蓋缺口,不把缺口變成阻擋。" }, "sourceControl": { "title": "原始碼供應鏈", "state": "草案受閘門控管", - "body": "Gitea 到 GitHub 的長期方向已確認,但 refs、workflow、secret name 與 rollback ADR 仍需負責人回覆。" + "body": "Gitea 到 GitHub 的長期方向已確認,但 refs、工作流程、機密 name 與 回復 ADR 仍需負責人回覆。" }, "kali": { "title": "Kali 112 網格", "state": "只觀測", - "body": "Kali 112 已在資安網範圍中,111 / 168 也納入 observe-only。active scan 與 /execute 仍維持封鎖候選。" + "body": "Kali 112 已在資安網範圍中,111 / 168 也納入 僅觀察。active scan 與 /execute 仍維持封鎖候選。" }, "governance": { "title": "審批邊界", "state": "已鎖定", - "body": "7 個 pending approval、1 個 block candidate、0 active 執行期閘門s。任何執行都必須先留下人工決策與後續 執行期閘門。" + "body": "7 個 pending approval、1 個 阻擋候選、0 啟用中的執行期閘門。任何執行都必須先留下人工決策與後續 執行期閘門。" } }, "lanes": { @@ -5059,7 +5062,7 @@ "subtitle": "初期只 observe / warn,避免資安框架拖慢產品與部署節奏。", "lowMedium": { "title": "低 / 中風險觀測", - "body": "標風險、建 follow-up、補 evidence_ref,不阻擋 deploy。" + "body": "標風險、建 後續追蹤、補 evidence_ref,不阻擋 deploy。" }, "ownerMissing": { "title": "負責人回覆缺口", @@ -5067,28 +5070,28 @@ }, "mirrorIncomplete": { "title": "鏡像資料不完整", - "body": "顯示 partial / quarantine reason,等待新的 redacted snapshot。" + "body": "顯示 partial / 隔離原因,等待新的 脫敏快照。" }, "sourceDrift": { "title": "原始碼漂移草案", - "body": "維持 draft reconcile plan,不 sync refs、不 force push。" + "body": "維持 draft reconcile plan,不 同步 refs、不 強制推送。" }, "kaliObserve": { - "title": "Kali observe finding", - "body": "只顯示 redacted finding summary,不啟動 active scan。" + "title": "Kali observe 發現", + "body": "只顯示 redacted 發現摘要,不啟動 active scan。" }, "workflowGap": { "title": "工作流程 / 機密 name gap", - "body": "要求 redacted export,不收集 機密明文值、不啟用 runner。" + "body": "要求 脫敏匯出,不收集 機密明文值、不啟用 runner。" }, "progressHolding": { - "title": "Progress display holding", - "body": "61% 代表等待高層 gate,不代表卡住,也不是 runtime approval。" + "title": "進度顯示等待", + "body": "61% 代表等待高層 閘門,不代表卡住,也不是 runtime 批准。" } }, "existingSurfaces": { "title": "既有資安頁面整合", - "subtitle": "把前端原本已存在的安全、合規、告警、授權、治理、稽核與 Code Review 入口收成一張只讀索引,讓使用者知道資安能力已經散在哪裡。", + "subtitle": "把前端原本已存在的安全、合規、告警、授權、治理、稽核與 程式碼審查 入口收成一張只讀索引,讓使用者知道資安能力已經散在哪裡。", "sourceLabel": "原始來源", "mode": "只讀連結 / 不新增執行按鈕", "items": { @@ -5138,9 +5141,9 @@ "source": "AwoooP approvals;platform approvals" }, "codeReview": { - "title": "AI Code Review 控制面", - "body": "既有 Code Review 頁面顯示 Hermes、OpenClaw、Elephant Alpha、NemoTron 與 non-blocking review pipeline。", - "source": "code-review page;review pipeline / agent assignment" + "title": "AI 程式碼審查控制面", + "body": "既有 程式碼審查頁面顯示 Hermes、OpenClaw、Elephant Alpha、NemoTron 與 非阻擋 審查流程。", + "source": "code-review page;審查流程 / Agent 分工" } } }, @@ -5156,11 +5159,11 @@ "securityCompliance": { "title": "安全合規整合頁", "body": "透過 SecurityPanel 與 CompliancePanel 的內嵌橋接顯示 IwoooS 納管狀態。", - "boundary": "只顯示整合狀態,不新增修復、批准、部署或 blocking control。" + "boundary": "只顯示整合狀態,不新增修復、批准、部署或 阻擋控制。" }, "legacySecurity": { "title": "既有安全監控頁", - "body": "standalone 安全頁已直接顯示 IwoooS 只讀橋接與 61% / gate 0 邊界。", + "body": "standalone 安全頁已直接顯示 IwoooS 只讀橋接與 61% / 閘門 0 邊界。", "boundary": "只保留錯誤與安全訊號可見,不把頁面升級成掃描入口。" }, "legacyCompliance": { @@ -5171,7 +5174,7 @@ "alerts": { "title": "告警管理", "body": "active incident 頁已直接顯示 IwoooS 只讀橋接,讓告警訊號回到資安網。", - "boundary": "只顯示告警納管狀態,不新增 alert blocker、scan 或 repair。" + "boundary": "只顯示告警納管狀態,不新增 alert 阻塞點、scan 或 repair。" }, "errors": { "title": "錯誤與 UX 稽核", @@ -5181,7 +5184,7 @@ "authorizations": { "title": "授權中心", "body": "授權頁已直接顯示 IwoooS 只讀橋接,維持 HITL / multi-sig 人控邊界。", - "boundary": "橋接不是 approval record,也不能標記 負責人回覆 accepted。" + "boundary": "橋接不是 批准紀錄,也不能標記 負責人回覆 已接受。" }, "governance": { "title": "AI 治理中樞", @@ -5199,9 +5202,9 @@ "boundary": "AwoooP 人控狀態不是資安批准,也不能開 執行期閘門。" }, "codeReview": { - "title": "AI Code Review 控制面", - "body": "Code Review 頁已直接顯示深色 IwoooS 只讀橋接,保留非阻擋審查語境。", - "boundary": "Code Review 不是部署批准,也不新增 Gitea/GitHub action。" + "title": "AI 程式碼審查控制面", + "body": "程式碼審查頁已直接顯示深色 IwoooS 只讀橋接,保留非阻擋審查語境。", + "boundary": "程式碼審查 不是部署批准,也不新增 Gitea/GitHub action。" } } }, @@ -5223,7 +5226,7 @@ }, "engineeringReview": { "title": "工程審查", - "body": "Code Review 維持 non-blocking review pipeline,用於風險分級與後續修復建議,不直接等同 deploy approval。" + "body": "程式碼審查 維持 非阻擋 審查流程,用於風險分級與後續修復建議,不直接等同 部署批准。" } }, "conflicts": { @@ -5235,30 +5238,30 @@ }, "noRuntimeLift": { "title": "不把只讀索引升成 runtime", - "body": "coverage matrix 只能顯示覆蓋與缺口,不建立 scan、execute、repair 或 blocking gate。" + "body": "coverage matrix 只能顯示覆蓋與缺口,不建立 scan、execute、repair 或 阻擋閘門。" }, "codeReviewNotDeployGate": { - "title": "Code Review 不等於部署批准", - "body": "AI Code Review 可以提供風險分級與 coding follow-up,但不能直接變成 deploy approval。" + "title": "程式碼審查 不等於部署批准", + "body": "AI 程式碼審查 可以提供風險分級與 coding 後續追蹤,但不能直接變成 部署批准。" }, "awooopNotSecurityApproval": { "title": "AwoooP approvals 不等於資安批准", - "body": "AwoooP 審批佇列可顯示人控狀態,但資安 gate 仍需對應決策紀錄與 follow-up 執行期閘門。" + "body": "AwoooP 審批佇列可顯示人控狀態,但資安 閘門 仍需對應決策紀錄與 後續追蹤 執行期閘門。" }, "kaliNotCalled": { "title": "前端索引不呼叫 Kali", - "body": "Kali 112 維持 observe-only;任何 active scan 或 /execute 都必須走人工批准與後續 gate。" + "body": "Kali 112 維持 僅觀察;任何 active scan 或 /execute 都必須走人工批准與後續 閘門。" } } }, "journey": { "title": "資安處理旅程", - "subtitle": "把目前資安網的可見流程固定成只讀狀態圖:先看態勢,再查既有頁面,最後才進入 owner evidence、人工決策與後續 gate。", + "subtitle": "把目前資安網的可見流程固定成只讀狀態圖:先看態勢,再查既有頁面,最後才進入 owner evidence、人工決策與後續 閘門。", "outputLabel": "輸出", "steps": { "readPosture": { "title": "讀取目前態勢", - "body": "先看 61% headline、framework / runtime landing、active gates 與下一個高層 gate。", + "body": "先看 61% 重點、framework / runtime landing、active 閘門s 與下一個高層 閘門。", "output": "只讀 posture,不代表授權" }, "openSurface": { @@ -5268,8 +5271,8 @@ }, "triageLane": { "title": "判讀非阻擋分流", - "body": "LOW / MEDIUM、缺 負責人回覆、partial mirror 與 Kali observe finding 先維持 observe / warn。", - "output": "follow-up,不升 blocking" + "body": "LOW / MEDIUM、缺 負責人回覆、partial 鏡像 與 Kali observe 發現 先維持 observe / warn。", + "output": "後續追蹤,不升 blocking" }, "collectEvidence": { "title": "收 owner evidence", @@ -5278,19 +5281,19 @@ }, "humanDecision": { "title": "等待人工決策", - "body": "資安 gate 需要 decision record;AwoooP approval、Code Review 或進度數字都不能自動替代。", + "body": "資安 閘門 需要 決策紀錄;AwoooP approval、程式碼審查 或進度數字都不能自動替代。", "output": "人控決策,不是 runtime" }, "runtimeGate": { "title": "後續 執行期閘門", - "body": "只有人工批准後,才進入 follow-up 執行期閘門 template;目前 active 執行期閘門s 仍為 0。", - "output": "待批准後另開 gate" + "body": "只有人工批准後,才進入 後續追蹤 執行期閘門 template;目前 啟用中的執行期閘門 仍為 0。", + "output": "待批准後另開 閘門" } } }, "evidenceReadiness": { - "title": "Owner Evidence Readiness", - "subtitle": "這裡顯示 headline 進度下一步真正需要的 evidence。每一項都是等待收件或人工決策,不會從前端直接觸發任何執行。", + "title": "負責人證據就緒度", + "subtitle": "這裡顯示 重點 進度下一步真正需要的 evidence。每一項都是等待收件或人工決策,不會從前端直接觸發任何執行。", "unlockLabel": "解除條件", "items": { "giteaOwnerAttestation": { @@ -5300,139 +5303,139 @@ }, "githubTargetOwner": { "title": "GitHub target owner", - "body": "確認 GitHub target、visibility、canonical owner 與 repo 是否可進 primary readiness。", - "unlock": "S4.10 負責人回覆 accepted" + "body": "確認 GitHub target、visibility、canonical owner 與 repo 是否可進 主要來源就緒度。", + "unlock": "S4.10 負責人回覆 已接受" }, "refsTruthOwner": { "title": "Refs truth owner", "body": "確認 main/dev truth、deprecated drift、release tags 與 GitHub-only refs 的真相來源。", - "unlock": "S4.11 refs truth response accepted" + "unlock": "S4.11 refs 真相 回覆已接受" }, "workflowSecretOwner": { "title": "工作流程 / 機密 name owner", - "body": "確認 workflow、webhook、runner、deploy key、branch protection、secret name parity。", - "unlock": "S4.12 工作流程 / 機密 response accepted" + "body": "確認 工作流程、webhook、runner、deploy key、branch protection、機密 name parity。", + "unlock": "S4.12 工作流程 / 機密 回覆已接受" }, "redactedFindingIngestion": { - "title": "Redacted finding ingestion", - "body": "Kali finding 與安全發現需要先以脫敏 payload 進入 mirror,不能直接進 runtime。", - "unlock": "人工批准後接收脫敏 finding" + "title": "脫敏發現收件", + "body": "Kali 發現 與安全發現需要先以脫敏 載荷 進入 鏡像,不能直接進 runtime。", + "unlock": "人工批准後接收脫敏 發現" }, "kaliScanScope": { - "title": "Kali scan scope", - "body": "Kali 112、111、168 目前仍是 observe-only;active scan 與 /execute 仍需獨立批准。", - "unlock": "scan scope approval + follow-up gate" + "title": "Kali 掃描範圍", + "body": "Kali 112、111、168 目前仍是 僅觀察;active scan 與 /execute 仍需獨立批准。", + "unlock": "掃描範圍批准 + 後續追蹤 閘門" }, "followupRuntimeGate": { "title": "Follow-up 執行期閘門", - "body": "所有實際執行都要等人工 decision record 後,另開 follow-up 執行期閘門。", - "unlock": "decision record accepted,active gate 仍為 0" + "body": "所有實際執行都要等人工 決策紀錄 後,另開 後續追蹤 執行期閘門。", + "unlock": "決策紀錄 已接受,active 閘門 仍為 0" } } }, "hostCoverage": { "title": "主機覆蓋視圖", - "subtitle": "把 Kali 與兩台開發主機放進 IwoooS 的可見資安範圍。這裡只顯示納管與 gate 狀態,不建立 SSH、掃描、更新或阻擋控制。", + "subtitle": "把 Kali 與兩台開發主機放進 IwoooS 的可見資安範圍。這裡只顯示納管與 閘門 狀態,不建立 SSH、掃描、更新或阻擋控制。", "stateLabel": "目前狀態", "items": { "kali112": { "title": "Kali 資安主機", - "body": "192.168.0.112 是資安網的 Kali 節點,已在 posture 與 evidence refs 中作為 observe-only 整合面。", + "body": "192.168.0.112 是資安網的 Kali 節點,已在 posture 與 evidence refs 中作為 僅觀察 整合面。", "state": "已納入視野;active scan、/execute、主機更新仍需獨立批准" }, "dev168": { "title": "開發主機 168", - "body": "192.168.0.168 納入 IwoooS 的 observe-only 開發主機覆蓋,用於後續 scope approval 與 finding 關聯。", - "state": "scope declared;尚未批准 credentialed scan 或 runtime control" + "body": "192.168.0.168 納入 IwoooS 的 僅觀察 開發主機覆蓋,用於後續 scope approval 與 發現 關聯。", + "state": "範圍已宣告;尚未批准 憑證掃描 或 runtime 控制" }, "dev111": { "title": "開發主機 111", - "body": "192.168.0.111 納入 IwoooS 的 observe-only 開發主機覆蓋,與 168 一起維持低摩擦分階段收斂。", - "state": "scope declared;尚未批准 credentialed scan 或 runtime control" + "body": "192.168.0.111 納入 IwoooS 的 僅觀察 開發主機覆蓋,與 168 一起維持低摩擦分階段收斂。", + "state": "範圍已宣告;尚未批准 憑證掃描 或 runtime 控制" } } }, "hostActionGates": { - "title": "主機動作 Gate 矩陣", - "subtitle": "把主機相關高風險動作拆成只讀 gate。這裡只說明哪些動作仍被鎖住,以及需要哪一類人工決策;不提供任何執行入口。", - "gateLabel": "需要 Gate", + "title": "主機動作 閘門 矩陣", + "subtitle": "把主機相關高風險動作拆成只讀 閘門。這裡只說明哪些動作仍被鎖住,以及需要哪一類人工決策;不提供任何執行入口。", + "gateLabel": "需要 閘門", "items": { "activeScan": { - "title": "Active scan", + "title": "主動掃描", "body": "對 Kali 112、開發主機 168 / 111 的主動掃描仍未批准,不能由 IwoooS 直接觸發。", - "gate": "需要 S1.6 scan scope approval 與後續 執行期閘門" + "gate": "需要 S1.6 掃描範圍批准 與後續 執行期閘門" }, "credentialedScan": { - "title": "Credentialed scan", + "title": "憑證掃描", "body": "任何帶憑證的掃描都必須先有 scope、credential handling 與脫敏 evidence 規範。", - "gate": "需要 S1.6 scope approval;目前 credentialed scan=false" + "gate": "需要 S1.6 scope approval;目前 憑證掃描=false" }, "kaliExecute": { "title": "Kali /execute", - "body": "Kali 執行端點仍是 block candidate,不能因主機已納入視野就開放。", - "gate": "需要人工 decision record 與 S3.4 follow-up 執行期閘門" + "body": "Kali 執行端點仍是 阻擋候選,不能因主機已納入視野就開放。", + "gate": "需要人工 決策紀錄 與 S3.4 後續追蹤 執行期閘門" }, "sshChange": { - "title": "SSH / host change", + "title": "SSH / 主機變更", "body": "登入主機、改設定、套用調校、重啟服務或變更 SSH 設定都不屬於目前前端權限。", - "gate": "需要明確人工批准、變更計畫與 rollback evidence" + "gate": "需要明確人工批准、變更計畫與 回復 evidence" }, "kaliUpdate": { - "title": "Kali host update", - "body": "Kali 更新與主機調校會影響掃描結果與工具鏈穩定性,必須和資安 gate 分開批准。", - "gate": "需要維護窗口、更新清單、驗證指標與 rollback 計畫" + "title": "Kali 主機更新", + "body": "Kali 更新與主機調校會影響掃描結果與工具鏈穩定性,必須和資安 閘門 分開批准。", + "gate": "需要維護窗口、更新清單、驗證指標與 回復 計畫" }, "runtimeBlocking": { - "title": "Runtime blocking control", - "body": "把 finding 變成產品阻擋或 runtime enforcement 仍要等 owner evidence 與人工決策。", - "gate": "需要 accepted decision record;active 執行期閘門s 仍為 0" + "title": "Runtime 阻擋控制", + "body": "把 發現 變成產品阻擋或 runtime enforcement 仍要等 owner evidence 與人工決策。", + "gate": "需要 已接受 決策紀錄;啟用中的執行期閘門 仍為 0" } } }, "hostEvidenceReadiness": { - "title": "主機 Evidence Readiness", + "title": "主機 證據就緒度", "subtitle": "列出主機掃描、更新、SSH 變更或 runtime blocking 前必須補齊的 evidence。這些項目目前都只是待收件,不代表已批准。", - "evidenceLabel": "需要 Evidence", + "evidenceLabel": "需要 證據", "items": { "scopeBoundary": { "title": "範圍 boundary", "body": "確認 112、168、111 的允許目標、排除範圍、掃描深度與速率限制。", - "evidence": "需要脫敏 scan scope approval;received=0、accepted=0" + "evidence": "需要脫敏 掃描範圍批准;已收到=0、已接受=0" }, "ownerDecision": { - "title": "Owner decision record", + "title": "負責人 決策紀錄", "body": "每個主機動作都需要人控決策,不能用 IwoooS 可見狀態或 AwoooP queue 取代。", - "evidence": "需要 accepted decision record;目前 active 執行期閘門s=0" + "evidence": "需要 已接受 決策紀錄;目前 啟用中的執行期閘門=0" }, "credentialHandling": { - "title": "Credential handling", + "title": "憑證 handling", "body": "帶憑證掃描前要先定義憑證來源、保存邊界、遮蔽方式與拒收規則。", - "evidence": "禁止收集憑證明文;目前 credentialed scan=false" + "evidence": "禁止收集憑證明文;目前 憑證掃描=false" }, "maintenanceWindow": { - "title": "Maintenance window", + "title": "維護窗口", "body": "Kali 更新、主機調校或 SSH 變更都需要維護窗口,避免影響開發與產品流程。", "evidence": "需要窗口、影響範圍、通知與回復標準" }, "rollbackPlan": { - "title": "Rollback plan", + "title": "回復計畫", "body": "任何主機變更都要能回復,包含套件、設定、服務與工具鏈版本。", - "evidence": "需要 rollback owner、步驟與驗證方式" + "evidence": "需要 回復 owner、步驟與驗證方式" }, "validationMetrics": { - "title": "Validation metrics", + "title": "驗證指標", "body": "主機動作後要有驗證指標,確認掃描器、監控、服務與使用者流程沒有退化。", - "evidence": "需要 post-check 指標與失敗處理 lane" + "evidence": "需要 事後檢查 指標與失敗處理 lane" }, "redactedIngestion": { - "title": "Redacted ingestion", - "body": "主機 finding 或掃描結果只能以脫敏摘要進入 mirror,不能直接把原始載荷當 runtime input。", - "evidence": "需要 redacted payload acceptance;payloads_ingested=false" + "title": "脫敏收件", + "body": "主機 發現 或掃描結果只能以脫敏摘要進入 鏡像,不能直接把原始載荷當 runtime input。", + "evidence": "需要 脫敏載荷 驗收;載荷s_ingested=false" } } }, "hostEvidenceCollection": { - "title": "主機 Evidence 收件順序", + "title": "主機 證據 收件順序", "subtitle": "把七個主機 evidence 排成建議收件順序。每一步都只代表下一個可審項目,不會把 已收到 / 已接受 從 0 改掉。", "stepLabel": "收件步驟", "dependencyLabel": "前置依賴", @@ -5458,122 +5461,122 @@ "dependency": "需要 owner decision 與變更範圍" }, "rollbackFifth": { - "title": "補 rollback plan", + "title": "補 回復 plan", "body": "每個主機動作都要能回復套件、設定、服務與工具鏈版本。", "dependency": "需要 maintenance window 與變更清單" }, "validationSixth": { "title": "定義 validation metrics", - "body": "先定義 post-check 指標與失敗處理 lane,再談執行。", - "dependency": "需要 rollback plan" + "body": "先定義 事後檢查 指標與失敗處理 lane,再談執行。", + "dependency": "需要 回復 plan" }, "redactedSeventh": { "title": "最後才收 redacted ingestion", - "body": "finding / scan result 只用脫敏摘要進 mirror,不吃原始載荷。", - "dependency": "需要 validation metrics;payloads_ingested=false" + "body": "發現 / scan result 只用脫敏摘要進 鏡像,不吃原始載荷。", + "dependency": "需要 validation metrics;載荷s_ingested=false" } } }, "hostEvidenceIntake": { - "title": "主機 Evidence Intake Preflight", + "title": "主機 證據收件預檢", "subtitle": "未來收到主機 evidence 前,先用這組只讀預檢規則判斷能否進人工 review。預檢不會收原始載荷、憑證明文,也不會改 已收到 / 已接受。", "checkLabel": "預檢", "rejectLabel": "拒收 / 隔離條件", "items": { "metadataPointer": { - "title": "Metadata pointer only", - "body": "主機 evidence 只接受脫敏 metadata pointer、來源步驟與摘要,不直接吃完整掃描輸出。", - "reject": "缺 redacted metadata pointer 就拒收" + "title": "僅接受中繼資料指標", + "body": "主機 evidence 只接受脫敏 中繼資料指標、來源步驟與摘要,不直接吃完整掃描輸出。", + "reject": "缺 redacted 中繼資料指標 就拒收" }, "dependencyOrder": { - "title": "Collection order match", + "title": "收件順序符合", "body": "提交的 evidence 必須符合 S2.17 收件順序,不能跳過 scope 或 owner decision。", "reject": "跳過前置依賴就隔離" }, "scopeBeforeScan": { - "title": "範圍 before scan", + "title": "範圍 先有範圍再掃描", "body": "任何 scan 相關 evidence 都要先能對到 scope boundary;沒有 scope 不進人工審。", "reject": "scan evidence 沒有 scope 就拒收" }, "ownerBeforeChange": { - "title": "Owner before host change", - "body": "SSH、更新、調校或 blocking control 的 evidence 需要 owner decision pointer。", - "reject": "主機變更缺 decision record 就拒收" + "title": "負責人 before 主機變更", + "body": "SSH、更新、調校或 阻擋控制 的 evidence 需要 owner decision pointer。", + "reject": "主機變更缺 決策紀錄 就拒收" }, "credentialPlaintext": { - "title": "Credential plaintext blocked", - "body": "任何帳密、token、private key、session 或憑證明文都不能進 IwoooS mirror。", + "title": "阻擋憑證明文", + "body": "任何帳密、token、private key、session 或憑證明文都不能進 IwoooS 鏡像。", "reject": "偵測到憑證明文就拒收並隔離" }, "rawPayload": { "title": "原始載荷已阻擋", - "body": "完整掃描 raw output、未脫敏 finding、主機 dump 或 log bundle 不進 projection。", + "body": "完整掃描 原始輸出、未脫敏 發現、主機 dump 或 日誌包 不進 projection。", "reject": "原始載荷一律拒收" }, "counterFreeze": { - "title": "Frontend counters frozen", + "title": "前端計數固定", "body": "前端只能顯示預檢狀態,不能把 已收到 / 已接受 從 0 推進。", "reject": "前端嘗試推 counter 就阻擋" } } }, "hostEvidenceReviewOutcomes": { - "title": "主機 Evidence Review Outcome Lanes", - "subtitle": "預檢後的 evidence 只能進這些只讀分流。這裡顯示人工審查可能結果,不會建立 approval record、執行期閘門 或主機動作。", + "title": "主機 證據審查結果分流", + "subtitle": "預檢後的 evidence 只能進這些只讀分流。這裡顯示人工審查可能結果,不會建立 批准紀錄、執行期閘門 或主機動作。", "laneLabel": "結果分流", "nextLabel": "下一步", "items": { "readyForHumanReview": { - "title": "Ready for human review", - "body": "metadata pointer、依賴順序、scope 與 owner pointer 都可讀時,才可標示為人工審查候選。", - "next": "只顯示候選;received=0、accepted=0" + "title": "可進人工審查", + "body": "中繼資料指標、依賴順序、scope 與 owner pointer 都可讀時,才可標示為人工審查候選。", + "next": "只顯示候選;已收到=0、已接受=0" }, "needsScopeEvidence": { - "title": "Needs scope evidence", - "body": "scan 或 finding evidence 無法對到 scope boundary 時,回到補 scope lane。", + "title": "待補範圍證據", + "body": "scan 或 發現 evidence 無法對到 scope boundary 時,回到補 scope lane。", "next": "補 scope,不進 scan" }, "needsOwnerDecision": { - "title": "Needs owner decision", + "title": "待補負責人決策", "body": "主機變更、更新、SSH 或 blocking 類 evidence 缺 decision pointer 時,回到 owner decision lane。", - "next": "補 decision record,不啟動主機動作" + "next": "補 決策紀錄,不啟動主機動作" }, "quarantineDependencySkip": { - "title": "Quarantine dependency skip", + "title": "前置依賴跳過即隔離", "body": "跳過 S2.17 收件順序或前置依賴不完整時,先隔離再人工判讀。", "next": "隔離原因可見,不推 counter" }, "rejectRawPayload": { "title": "拒收原始載荷", - "body": "完整掃描輸出、未脫敏 finding、host dump 或 log bundle 不進 IwoooS。", + "body": "完整掃描輸出、未脫敏 發現、主機 dump 或 日誌包 不進 IwoooS。", "next": "要求改交脫敏摘要" }, "rejectCredentialPlaintext": { - "title": "Reject credential plaintext", + "title": "拒收憑證明文", "body": "任何帳密、token、private key、session 或憑證明文都直接拒收並隔離。", "next": "不保存、不轉送、不顯示明文" }, "waitingRuntimeGate": { "title": "Waiting 執行期閘門", "body": "即使人工審查後可採取行動,也只能等待後續 執行期閘門,不由 outcome lane 執行。", - "next": "active 執行期閘門s 仍為 0" + "next": "啟用中的執行期閘門 仍為 0" } } }, "nextGate": { - "title": "下一個高層 Gate", - "body": "S4.9 Gitea owner attestation response 是目前建議先收的 owner evidence。任何 headline 提升都要等 負責人回覆、redacted payload ingestion、active 執行期閘門 或 GitHub primary readiness 有真實變化。" + "title": "下一個高層 閘門", + "body": "S4.9 Gitea owner attestation response 是目前建議先收的 owner evidence。任何 重點 提升都要等 負責人回覆、脫敏載荷 ingestion、active 執行期閘門 或 GitHub 主要來源就緒度 有真實變化。" }, "evidence": { - "title": "目前 Evidence" + "title": "目前 證據" }, "blocked": { "title": "禁止動作", - "body": "此頁不提供 scan、execute、repo、refs、workflow、secret、runner、primary switch 或 deploy 操作按鈕。" + "body": "此頁不提供 scan、execute、repo、refs、工作流程、機密、runner、primary switch 或 deploy 操作按鈕。" }, "hostEvidenceReviewHandoff": { - "title": "主機 Evidence 人工審查交接包", - "subtitle": "人工 reviewer 只能依這些脫敏交接包判讀 evidence。這裡顯示送審必備資料,不會標示 已收到 / 已接受、建立 approval record 或啟動 執行期閘門。", + "title": "主機 證據 人工審查交接包", + "subtitle": "人工 reviewer 只能依這些脫敏交接包判讀 evidence。這裡顯示送審必備資料,不會標示 已收到 / 已接受、建立 批准紀錄 或啟動 執行期閘門。", "packetLabel": "交接包", "requiredLabel": "必備內容", "items": { @@ -5583,39 +5586,39 @@ "required": "redacted scope pointer;不含原始載荷" }, "ownerDecisionPacket": { - "title": "Owner Decision 包", + "title": "負責人 Decision 包", "body": "提供誰批准審查、批准範圍、限制條件與到期時間,避免 reviewer 自行擴權。", - "required": "owner decision record pointer;不等於主機動作批准" + "required": "owner 決策紀錄 pointer;不等於主機動作批准" }, "credentialHandlingPacket": { - "title": "Credential Handling 包", + "title": "憑證 Handling 包", "body": "只顯示憑證處理方式與保管責任,不顯示帳密、token、private key 或 session value。", - "required": "metadata-only handling statement;機密明文值=blocked" + "required": "僅中繼資料 handling statement;機密明文值=blocked" }, "maintenanceRollbackPacket": { - "title": "Maintenance / Rollback 包", - "body": "若後續需要變更,先提供維護窗口、影響範圍、rollback owner 與復原驗證方法。", - "required": "maintenance window + rollback pointer;不啟動變更" + "title": "維護 / Rollback 包", + "body": "若後續需要變更,先提供維護窗口、影響範圍、回復 owner 與復原驗證方法。", + "required": "maintenance window + 回復 pointer;不啟動變更" }, "validationMetricsPacket": { - "title": "Validation Metrics 包", - "body": "定義 reviewer 檢查後要看哪些 metrics、logs、baseline 或 follow-up evidence。", - "required": "post-check metrics pointer;不代表 執行期閘門 opened" + "title": "驗證 Metrics 包", + "body": "定義 reviewer 檢查後要看哪些 metrics、logs、baseline 或 後續追蹤 evidence。", + "required": "事後檢查指標 pointer;不代表 執行期閘門 opened" }, "redactionAttestationPacket": { "title": "Redaction Attestation 包", - "body": "確認 evidence 已移除 raw log、host dump、credential、private URL credential 與未脫敏截圖。", - "required": "redaction attestation only;不保存敏感 payload" + "body": "確認 evidence 已移除 原始日誌、主機 dump、credential、private URL credential 與未脫敏截圖。", + "required": "redaction attestation only;不保存敏感 載荷" }, "runtimeGatePacket": { - "title": "Runtime Gate Pointer 包", + "title": "Runtime 閘門指標 包", "body": "把可能的後續行動導回獨立 執行期閘門,避免 reviewer outcome lane 直接變成執行。", - "required": "follow-up gate pointer;active 執行期閘門s=0" + "required": "後續追蹤 閘門 pointer;啟用中的執行期閘門=0" } } }, "hostEvidenceReviewerChecklist": { - "title": "主機 Evidence Reviewer Checklist", + "title": "主機 證據 Reviewer Checklist", "subtitle": "Reviewer 在看 handoff packets 後,只能依這些只讀檢查判斷是否可進下一個人工決策。檢查清單不會標示 passed、已收到 / 已接受、approval 或 執行期閘門。", "checkLabel": "審查檢查", "verifyLabel": "確認項目", @@ -5626,47 +5629,47 @@ "verify": "只核對 redacted pointer;不啟動 scan" }, "ownerDecisionScopeExpiry": { - "title": "Owner decision scope / expiry", - "body": "確認 owner decision record 有批准人、範圍、限制條件與到期時間,且仍在有效期內。", - "verify": "只判讀 decision pointer;不建立 approval record" + "title": "負責人 decision scope / expiry", + "body": "確認 owner 決策紀錄 有批准人、範圍、限制條件與到期時間,且仍在有效期內。", + "verify": "只判讀 decision pointer;不建立 批准紀錄" }, "credentialHandlingMetadataOnly": { - "title": "Credential handling metadata only", + "title": "憑證 handling metadata only", "body": "確認 reviewer 只看到處理方式與責任人,不接觸任何明文驗證素材。", "verify": "機密明文值 collection=false" }, "redactionAttestationPass": { "title": "Redaction attestation pass", - "body": "確認 raw log、host dump、未脫敏截圖、private URL credential 與敏感 payload 都已排除。", + "body": "確認 原始日誌、主機 dump、未脫敏截圖、private URL credential 與敏感 載荷 都已排除。", "verify": "原始載荷 allowed=false" }, "maintenanceRollbackComplete": { - "title": "Maintenance / rollback complete", - "body": "若 evidence 暗示後續變更,確認已存在維護窗口、rollback owner 與復原驗證指標。", + "title": "維護 / 回復 complete", + "body": "若 evidence 暗示後續變更,確認已存在維護窗口、回復 owner 與復原驗證指標。", "verify": "只顯示未來變更條件;不執行 change" }, "validationMetricsLinked": { - "title": "Validation metrics linked", - "body": "確認 post-check metrics、baseline、logs 或 follow-up evidence 已連到可讀的脫敏 pointer。", + "title": "驗證指標 linked", + "body": "確認 事後檢查指標、baseline、logs 或 後續追蹤 evidence 已連到可讀的脫敏 pointer。", "verify": "只顯示 validation pointer;不開 執行期閘門" }, "runtimeGateSeparated": { - "title": "Runtime gate separated", + "title": "Runtime 閘門 separated", "body": "確認 reviewer checklist 的任何結果都不能直接變成 runtime action,必須回到獨立 執行期閘門。", - "verify": "active 執行期閘門s=0;操作按鈕s=false" + "verify": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostEvidenceReviewerOutcomes": { - "title": "主機 Evidence Reviewer Outcome Lanes", - "subtitle": "Reviewer checklist 後只能進入這些只讀結果分流。這裡顯示下一步判讀,不會標示 passed、accepted、approval 或 執行期閘門。", + "title": "主機 證據 Reviewer 結果分流", + "subtitle": "Reviewer checklist 後只能進入這些只讀結果分流。這裡顯示下一步判讀,不會標示 passed、已接受、approval 或 執行期閘門。", "laneLabel": "Reviewer 結果", "nextLabel": "下一步", "items": { "readyForOwnerDecision": { - "title": "Ready for owner decision", - "body": "scope、owner、redaction、rollback、validation 與 runtime separation 都可讀時,只能標示為 owner decision 候選。", - "next": "顯示候選;received=0、accepted=0" + "title": "就緒 for owner decision", + "body": "scope、owner、redaction、回復、validation 與 runtime separation 都可讀時,只能標示為 owner decision 候選。", + "next": "顯示候選;已收到=0、已接受=0" }, "scopeMismatch": { "title": "範圍 mismatch", @@ -5674,128 +5677,128 @@ "next": "補 scope pointer;不啟動 scan" }, "ownerExpired": { - "title": "Owner decision expired", + "title": "負責人 decision expired", "body": "owner decision 缺 scope、限制條件或已過期時,回到 owner decision lane。", - "next": "補 decision record;不建立 approval" + "next": "補 決策紀錄;不建立 approval" }, "credentialMetadataFailed": { - "title": "Credential metadata failed", - "body": "credential handling 不是 metadata-only 或責任邊界不可讀時,先隔離 reviewer outcome。", - "next": "只要求 metadata-only 說明;不收敏感素材" + "title": "憑證 metadata failed", + "body": "credential handling 不是 僅中繼資料 或責任邊界不可讀時,先隔離 reviewer outcome。", + "next": "只要求 僅中繼資料 說明;不收敏感素材" }, "redactionFailed": { "title": "Redaction failed", - "body": "redaction attestation 無法證明 raw logs、host dump、未脫敏截圖或 sensitive payload 已排除時,拒收。", + "body": "redaction attestation 無法證明 原始日誌s、主機 dump、未脫敏截圖或 sensitive 載荷 已排除時,拒收。", "next": "要求重新脫敏;不保存原始載荷" }, "rollbackMissing": { "title": "Rollback missing", - "body": "maintenance window、rollback owner 或復原驗證指標缺漏時,不能進入後續決策。", - "next": "補 rollback pointer;不執行 change" + "body": "maintenance window、回復 owner 或復原驗證指標缺漏時,不能進入後續決策。", + "next": "補 回復 pointer;不執行 change" }, "runtimeGateRequired": { - "title": "Runtime gate required", + "title": "Runtime 閘門 required", "body": "任何可能的後續主機行動都必須導回獨立 執行期閘門,不能由 reviewer outcome 執行。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionCandidates": { - "title": "主機 Owner Decision Candidate Packets", - "subtitle": "Reviewer outcome 進到 owner decision 候選後,IwoooS 只顯示需要人工判讀的決策包。不建立 decision record、不標示 approved、不開 執行期閘門。", + "title": "主機 負責人 Decision Candidate Packets", + "subtitle": "Reviewer outcome 進到 owner decision 候選後,IwoooS 只顯示需要人工判讀的決策包。不建立 決策紀錄、不標示 approved、不開 執行期閘門。", "packetLabel": "候選包", "decisionLabel": "人工決策範圍", "items": { "scopeApprovalCandidate": { "title": "範圍 approval candidate", "body": "確認主機、網段、服務、排除範圍與觀察目的都能被 owner 讀懂。", - "decision": "只顯示 scope 候選;owner decision received=0" + "decision": "只顯示 scope 候選;owner decision 已收到=0" }, "scanModeCandidate": { "title": "Scan mode candidate", - "body": "把 observe-only、未來 active scan 或 credentialed scan 的差異拆清楚,避免候選包被誤認為掃描授權。", + "body": "把 僅觀察、未來 active scan 或 憑證掃描 的差異拆清楚,避免候選包被誤認為掃描授權。", "decision": "只顯示模式選項;active scan=false" }, "credentialHandlingCandidate": { - "title": "Credential handling candidate", - "body": "只描述 metadata-only handling、責任人與保存邊界,不要求或保存敏感素材。", + "title": "憑證 handling candidate", + "body": "只描述 僅中繼資料 handling、責任人與保存邊界,不要求或保存敏感素材。", "decision": "只顯示處理原則;collection=false" }, "maintenanceWindowCandidate": { - "title": "Maintenance window candidate", + "title": "維護窗口 candidate", "body": "若未來涉及主機更新或調校,先顯示候選維護窗口與限制條件。", - "decision": "只顯示時間範圍;host update=false" + "decision": "只顯示時間範圍;主機更新=false" }, "rollbackOwnerCandidate": { - "title": "Rollback owner candidate", - "body": "顯示未來 rollback owner、復原路徑與人工聯絡點,避免變更前缺少責任邊界。", + "title": "回復負責人候選", + "body": "顯示未來 回復 owner、復原路徑與人工聯絡點,避免變更前缺少責任邊界。", "decision": "只顯示 owner pointer;change=false" }, "validationMetricsCandidate": { - "title": "Validation metrics candidate", - "body": "列出未來 post-check metrics、baseline 與回看 evidence pointer,作為後續 gate 的人工判讀素材。", + "title": "驗證指標 candidate", + "body": "列出未來 事後檢查指標、baseline 與回看 evidence pointer,作為後續 閘門 的人工判讀素材。", "decision": "只顯示驗證項目;執行期閘門=false" }, "runtimeGateCandidate": { - "title": "Runtime gate candidate", + "title": "Runtime 閘門 candidate", "body": "任何後續主機動作仍需獨立 執行期閘門,不能由 owner decision candidate 直接執行。", - "decision": "只顯示 gate 候選;操作按鈕s=false" + "decision": "只顯示 閘門 候選;操作按鈕s=false" } } }, "hostOwnerDecisionReviewChecklist": { - "title": "主機 Owner Decision Review Checklist", - "subtitle": "Owner decision candidate packets 之後仍需人工逐項核對。這裡只顯示核對項,不建立決策紀錄、不標示 approved、不開 執行期閘門。", - "checkLabel": "Owner 核對", + "title": "主機 負責人 Decision Review Checklist", + "subtitle": "負責人 decision candidate packets 之後仍需人工逐項核對。這裡只顯示核對項,不建立決策紀錄、不標示 approved、不開 執行期閘門。", + "checkLabel": "負責人 核對", "guardLabel": "安全邊界", "items": { "scopeBoundaryReadable": { "title": "範圍 boundary readable", "body": "確認 owner 能讀懂主機、網段、服務、排除範圍與觀察目的,且沒有超出原始 scope。", - "guard": "只核對 scope;owner decision received=0" + "guard": "只核對 scope;owner decision 已收到=0" }, "scanModeNotAuthorization": { "title": "Scan mode not authorization", - "body": "確認 observe-only、future active scan、credentialed scan 都只是選項說明,不是掃描授權。", + "body": "確認 僅觀察、future active scan、憑證掃描 都只是選項說明,不是掃描授權。", "guard": "scan authorized=false" }, "credentialBoundaryMetadataOnly": { - "title": "Credential boundary metadata only", + "title": "憑證 boundary metadata only", "body": "確認 credential handling 只保留 metadata、owner 與保存邊界,不要求敏感素材。", - "guard": "secret collection=false" + "guard": "機密 collection=false" }, "maintenanceWindowNotChange": { - "title": "Maintenance window not change", + "title": "維護窗口 not change", "body": "確認維護窗口只是未來候選條件,不代表可以進行 Kali 主機套件變更或主機調校。", - "guard": "host update=false" + "guard": "主機更新=false" }, "rollbackOwnerReadable": { - "title": "Rollback owner readable", - "body": "確認 rollback owner、復原路徑與人工聯絡點可讀,但尚未批准任何 change。", - "guard": "approval record=false" + "title": "回復負責人可讀", + "body": "確認 回復 owner、復原路徑與人工聯絡點可讀,但尚未批准任何 change。", + "guard": "批准紀錄=false" }, "validationMetricsPredefined": { - "title": "Validation metrics predefined", - "body": "確認 post-check metrics、baseline 與 evidence pointer 已先定義,供未來 gate 判讀。", + "title": "驗證指標 predefined", + "body": "確認 事後檢查指標、baseline 與 evidence pointer 已先定義,供未來 閘門 判讀。", "guard": "執行期閘門 opened=false" }, "runtimeGateStillSeparate": { - "title": "Runtime gate still separate", + "title": "Runtime 閘門 still separate", "body": "確認 owner decision checklist 不能直接執行任何後續主機動作,仍需獨立 執行期閘門。", "guard": "操作按鈕s=false" } } }, "hostOwnerDecisionReviewOutcomes": { - "title": "主機 Owner Decision Review Outcome Lanes", - "subtitle": "負責人審查清單後只能進入這些只讀結果分流。這裡顯示下一步判讀,不會建立 decision record、不會標示 approved、不會開 執行期閘門。", + "title": "主機 負責人 Decision Review 結果分流", + "subtitle": "負責人審查清單後只能進入這些只讀結果分流。這裡顯示下一步判讀,不會建立 決策紀錄、不會標示 approved、不會開 執行期閘門。", "laneLabel": "Review 結果", "nextLabel": "下一步", "items": { "readyForDecisionRecord": { - "title": "Ready for decision record", - "body": "scope、scan mode、credential boundary、maintenance、rollback、validation 與 runtime separation 都可讀時,只能顯示 formal decision record 候選。", - "next": "顯示決策紀錄候選;received=0、accepted=0" + "title": "就緒 for 決策紀錄", + "body": "scope、scan mode、credential boundary、maintenance、回復、validation 與 runtime separation 都可讀時,只能顯示 formal 決策紀錄 候選。", + "next": "顯示決策紀錄候選;已收到=0、已接受=0" }, "scopeNeedsRefresh": { "title": "範圍 needs refresh", @@ -5808,30 +5811,30 @@ "next": "補 scan mode 說明;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential handling 若無法保持 metadata-only 或責任邊界不可讀,先隔離 decision outcome。", - "next": "補 metadata-only 邊界;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential handling 若無法保持 僅中繼資料 或責任邊界不可讀,先隔離 decision outcome。", + "next": "補 僅中繼資料 邊界;機密 collection=false" }, "maintenanceWindowMissing": { - "title": "Maintenance window missing", + "title": "維護窗口 missing", "body": "未來可能涉及更新或調校時,若缺維護窗口與限制條件,不能進入決策紀錄。", - "next": "補 window pointer;host update=false" + "next": "補 window pointer;主機更新=false" }, "rollbackOwnerMissing": { - "title": "Rollback owner missing", - "body": "rollback owner 或復原路徑不可讀時,不能進入後續批准語義。", - "next": "補 rollback owner;approval record=false" + "title": "缺回復負責人", + "body": "回復 owner 或復原路徑不可讀時,不能進入後續批准語義。", + "next": "補 回復 owner;批准紀錄=false" }, "runtimeGateRequired": { - "title": "Runtime gate required", + "title": "Runtime 閘門 required", "body": "任何後續主機動作都必須導回獨立 執行期閘門,不能由 owner review outcome 執行。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordDrafts": { - "title": "主機 Owner Decision Record Draft Packets", - "subtitle": "負責人審查結果若進入 ready lane,IwoooS 也只能顯示 decision record 草稿欄位。不建立 record、不標示 accepted、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Draft Packets", + "subtitle": "負責人審查結果若進入 就緒 lane,IwoooS 也只能顯示 決策紀錄 草稿欄位。不建立 record、不標示 已接受、不開 執行期閘門。", "packetLabel": "Draft packet", "metadataLabel": "必要 metadata", "items": { @@ -5842,39 +5845,39 @@ }, "scanModeDraft": { "title": "Scan mode draft", - "body": "草稿只描述 observe-only、future active scan 或 credentialed scan 的候選模式,不代表掃描批准。", + "body": "草稿只描述 僅觀察、future active scan 或 憑證掃描 的候選模式,不代表掃描批准。", "metadata": "mode candidate;active scan=false" }, "credentialBoundaryDraft": { - "title": "Credential boundary draft", + "title": "憑證 boundary draft", "body": "草稿只保留 credential handling 的 metadata、owner 與保存邊界,不收集敏感素材。", - "metadata": "metadata-only boundary;secret collection=false" + "metadata": "僅中繼資料 boundary;機密 collection=false" }, "maintenanceConstraintsDraft": { - "title": "Maintenance constraints draft", + "title": "維護 constraints draft", "body": "草稿只記錄未來可能維護窗口、限制條件與不可影響範圍,不代表可以更新主機。", - "metadata": "window / constraint;host update=false" + "metadata": "window / constraint;主機更新=false" }, "rollbackOwnerDraft": { - "title": "Rollback owner draft", - "body": "草稿只整理 rollback owner、復原路徑與人工聯絡點,讓後續 gate 不缺責任人。", - "metadata": "owner / recovery pointer;approval record=false" + "title": "回復負責人草稿", + "body": "草稿只整理 回復 owner、復原路徑與人工聯絡點,讓後續 閘門 不缺責任人。", + "metadata": "owner / recovery pointer;批准紀錄=false" }, "validationMetricsDraft": { - "title": "Validation metrics draft", - "body": "草稿只列出 post-check metrics、baseline 與 evidence pointer,供未來人工判讀。", - "metadata": "metrics / baseline;accepted=0" + "title": "驗證指標 draft", + "body": "草稿只列出 事後檢查指標、baseline 與 evidence pointer,供未來人工判讀。", + "metadata": "metrics / baseline;已接受=0" }, "runtimeGateDraft": { - "title": "Runtime gate draft", - "body": "草稿只標示若未來批准,仍需另開 follow-up 執行期閘門,不能由草稿直接執行。", - "metadata": "執行期閘門 pointer;active gates=0" + "title": "Runtime 閘門 draft", + "body": "草稿只標示若未來批准,仍需另開 後續追蹤 執行期閘門,不能由草稿直接執行。", + "metadata": "執行期閘門 pointer;active 閘門s=0" } } }, "hostOwnerDecisionRecordDraftReview": { - "title": "主機 Owner Decision Record Draft Review Checklist", - "subtitle": "Decision record 草稿包後仍需只讀核對。這裡只顯示草稿是否具備人工決策所需 metadata,不會建立正式 decision record。", + "title": "主機 負責人 Decision Record Draft Review Checklist", + "subtitle": "Decision record 草稿包後仍需只讀核對。這裡只顯示草稿是否具備人工決策所需 metadata,不會建立正式 決策紀錄。", "checkLabel": "Draft review", "guardLabel": "不可升級", "items": { @@ -5885,45 +5888,45 @@ }, "scanModeStillNotApproval": { "title": "Scan mode still not approval", - "body": "確認 scan mode 仍只是候選描述,不被解讀成 active scan 或 credentialed scan 授權。", + "body": "確認 scan mode 仍只是候選描述,不被解讀成 active scan 或 憑證掃描 授權。", "guard": "scan authorized=false" }, "credentialBoundaryMetadataOnly": { - "title": "Credential boundary metadata only", - "body": "確認 credential boundary 仍維持 metadata-only,沒有要求或保存敏感素材。", - "guard": "secret collection=false" + "title": "憑證 boundary metadata only", + "body": "確認 credential boundary 仍維持 僅中繼資料,沒有要求或保存敏感素材。", + "guard": "機密 collection=false" }, "maintenanceConstraintsReadable": { - "title": "Maintenance constraints readable", + "title": "維護 constraints readable", "body": "確認維護窗口、限制條件與不可影響範圍可讀,但不代表可以更新或調校主機。", - "guard": "host update=false" + "guard": "主機更新=false" }, "rollbackOwnerReadable": { - "title": "Rollback owner readable", - "body": "確認 rollback owner、復原路徑與人工聯絡點可讀,但尚未建立 approval record。", - "guard": "approval record=false" + "title": "回復負責人可讀", + "body": "確認 回復 owner、復原路徑與人工聯絡點可讀,但尚未建立 批准紀錄。", + "guard": "批准紀錄=false" }, "validationMetricsLinked": { - "title": "Validation metrics linked", - "body": "確認 post-check metrics、baseline 與 evidence pointer 已連到草稿,供後續人審使用。", - "guard": "accepted=0" + "title": "驗證指標 linked", + "body": "確認 事後檢查指標、baseline 與 evidence pointer 已連到草稿,供後續人審使用。", + "guard": "已接受=0" }, "runtimeGateStillClosed": { - "title": "Runtime gate still closed", - "body": "確認 decision record 草稿審查不會開 執行期閘門,後續執行仍需獨立 gate。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still closed", + "body": "確認 決策紀錄 草稿審查不會開 執行期閘門,後續執行仍需獨立 閘門。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordDraftReviewOutcomes": { - "title": "主機 Owner Decision Record Draft Review Outcome Lanes", - "subtitle": "Draft review checklist 後只能進入這些只讀結果分流。這裡顯示下一步,不會標記 review passed、不會建立 decision record、不會開 執行期閘門。", + "title": "主機 負責人 Decision Record Draft Review 結果分流", + "subtitle": "Draft review checklist 後只能進入這些只讀結果分流。這裡顯示下一步,不會標記 review passed、不會建立 決策紀錄、不會開 執行期閘門。", "laneLabel": "Review outcome", "nextLabel": "下一步", "items": { "readyForDecisionRecordWriteup": { - "title": "Ready for decision record write-up", - "body": "scope、scan mode、credential boundary、maintenance、rollback、validation 與 runtime separation 都可讀時,只能進入正式 decision record 撰寫候選。", + "title": "就緒 for 決策紀錄 write-up", + "body": "scope、scan mode、credential boundary、maintenance、回復、validation 與 runtime separation 都可讀時,只能進入正式 決策紀錄 撰寫候選。", "next": "顯示 write-up candidate;record created=false" }, "scopeDraftIncomplete": { @@ -5937,30 +5940,30 @@ "next": "補 scan mode wording;scan authorized=false" }, "credentialBoundaryIncomplete": { - "title": "Credential boundary incomplete", - "body": "credential boundary 若不清楚 metadata-only、owner 或保存邊界,必須回到 credential 草稿補件。", - "next": "補 metadata-only boundary;secret collection=false" + "title": "憑證 boundary incomplete", + "body": "credential boundary 若不清楚 僅中繼資料、owner 或保存邊界,必須回到 credential 草稿補件。", + "next": "補 僅中繼資料 boundary;機密 collection=false" }, "maintenanceConstraintsIncomplete": { - "title": "Maintenance constraints incomplete", + "title": "維護 constraints incomplete", "body": "維護窗口、限制條件或不可影響範圍不可讀時,不能進入正式決策紀錄撰寫。", - "next": "補 constraints;host update=false" + "next": "補 constraints;主機更新=false" }, "rollbackOwnerIncomplete": { - "title": "Rollback owner incomplete", - "body": "rollback owner、復原路徑或人工聯絡點不可讀時,不能建立後續批准語義。", - "next": "補 rollback owner;approval record=false" + "title": "回復負責人未完整", + "body": "回復 owner、復原路徑或人工聯絡點不可讀時,不能建立後續批准語義。", + "next": "補 回復 owner;批准紀錄=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", + "title": "Runtime 閘門 still required", "body": "任何後續主機動作仍要等待獨立 執行期閘門,不能由 draft review outcome 執行。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordWriteups": { - "title": "主機 Owner Decision Record Write-Up Packets", - "subtitle": "Draft review outcome 若進入 ready for write-up,IwoooS 也只能顯示正式 decision record 撰寫欄位。不建立 record、不標示 completed / accepted、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Write-Up Packets", + "subtitle": "Draft review outcome 若進入 就緒 for write-up,IwoooS 也只能顯示正式 決策紀錄 撰寫欄位。不建立 record、不標示 completed / 已接受、不開 執行期閘門。", "packetLabel": "Write-up packet", "fieldLabel": "必要欄位", "items": { @@ -5976,34 +5979,34 @@ }, "scanModeLimitsWriteup": { "title": "Scan mode limits write-up", - "body": "只整理 observe-only、future active scan 或 credentialed scan 的限制條件,不代表掃描批准。", + "body": "只整理 僅觀察、future active scan 或 憑證掃描 的限制條件,不代表掃描批准。", "field": "mode limits;scan authorized=false" }, "credentialBoundaryWriteup": { - "title": "Credential boundary write-up", + "title": "憑證 boundary write-up", "body": "只整理 credential handling metadata、owner、保存邊界與不可收集內容。", - "field": "metadata-only boundary;secret collection=false" + "field": "僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackWriteup": { - "title": "Maintenance and rollback write-up", - "body": "只整理維護窗口候選、限制條件、rollback owner、復原路徑與人工聯絡點。", - "field": "window / rollback;host update=false" + "title": "維護 and 回復 write-up", + "body": "只整理維護窗口候選、限制條件、回復 owner、復原路徑與人工聯絡點。", + "field": "window / 回復;主機更新=false" }, "validationEvidenceWriteup": { - "title": "Validation evidence write-up", - "body": "只整理 post-check metrics、baseline、evidence pointer 與人工驗收條件。", - "field": "metrics / evidence;accepted=0" + "title": "驗證 evidence write-up", + "body": "只整理 事後檢查指標、baseline、evidence pointer 與人工驗收條件。", + "field": "metrics / evidence;已接受=0" }, "runtimeGatePointerWriteup": { - "title": "Runtime gate pointer write-up", - "body": "只標示若未來批准,仍要另開 follow-up 執行期閘門,不能由 write-up 執行。", - "field": "執行期閘門 pointer;active gates=0" + "title": "Runtime 閘門 pointer write-up", + "body": "只標示若未來批准,仍要另開 後續追蹤 執行期閘門,不能由 write-up 執行。", + "field": "執行期閘門 pointer;active 閘門s=0" } } }, "hostOwnerDecisionRecordWriteupReview": { - "title": "主機 Owner Decision Record Write-Up Review Checklist", - "subtitle": "Write-up packets 後仍需要只讀核對。這裡只顯示正式 decision record 撰寫欄位是否可讀,不會標記 write-up completed、不會建立或接受 decision record、不會開 執行期閘門。", + "title": "主機 負責人 Decision Record Write-Up Review Checklist", + "subtitle": "Write-up packets 後仍需要只讀核對。這裡只顯示正式 決策紀錄 撰寫欄位是否可讀,不會標記 write-up completed、不會建立或接受 決策紀錄、不會開 執行期閘門。", "checkLabel": "Write-up review", "guardLabel": "不可升級", "items": { @@ -6019,40 +6022,40 @@ }, "scanModeLimitsExplicit": { "title": "Scan mode limits explicit", - "body": "確認 observe-only、future active scan 與 credentialed scan 的限制條件明確,且不代表掃描授權。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 的限制條件明確,且不代表掃描授權。", "guard": "scan authorized=false" }, "credentialBoundaryMetadataOnly": { - "title": "Credential boundary metadata only", + "title": "憑證 boundary metadata only", "body": "確認 credential handling 仍只保留 metadata、owner 與保存邊界,不要求或保存敏感素材。", - "guard": "secret collection=false" + "guard": "機密 collection=false" }, "maintenanceRollbackLinked": { - "title": "Maintenance and rollback linked", - "body": "確認維護窗口候選、限制條件、rollback owner、復原路徑與人工聯絡點都可追。", - "guard": "host update=false" + "title": "維護 and 回復 linked", + "body": "確認維護窗口候選、限制條件、回復 owner、復原路徑與人工聯絡點都可追。", + "guard": "主機更新=false" }, "validationEvidenceLinked": { - "title": "Validation evidence linked", - "body": "確認 post-check metrics、baseline、evidence pointer 與人工驗收條件已連到 write-up。", - "guard": "accepted=0" + "title": "驗證 evidence linked", + "body": "確認 事後檢查指標、baseline、evidence pointer 與人工驗收條件已連到 write-up。", + "guard": "已接受=0" }, "runtimeGateStillSeparate": { - "title": "Runtime gate still separate", - "body": "確認 執行期閘門 pointer 仍指向獨立 follow-up gate,write-up review 不會開 gate。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still separate", + "body": "確認 執行期閘門 pointer 仍指向獨立 後續追蹤 閘門,write-up review 不會開 閘門。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordWriteupReviewOutcomes": { - "title": "主機 Owner Decision Record Write-Up Review Outcome Lanes", - "subtitle": "Write-up review checklist 後只能進入這些只讀結果分流。這裡顯示下一步,不會標記 review passed、不會建立或接受 decision record、不會開 執行期閘門。", + "title": "主機 負責人 Decision Record Write-Up Review 結果分流", + "subtitle": "Write-up review checklist 後只能進入這些只讀結果分流。這裡顯示下一步,不會標記 review passed、不會建立或接受 決策紀錄、不會開 執行期閘門。", "laneLabel": "Review outcome", "nextLabel": "下一步", "items": { "readyForFormalRecordCandidate": { - "title": "Ready for formal record candidate", - "body": "summary、scope、scan limits、credential boundary、maintenance、rollback、validation 與 runtime separation 都可讀時,只能顯示正式紀錄候選。", + "title": "就緒 for formal record candidate", + "body": "summary、scope、scan limits、credential boundary、maintenance、回復、validation 與 runtime separation 都可讀時,只能顯示正式紀錄候選。", "next": "顯示 formal record candidate;record created=false" }, "decisionSummaryNeedsClarification": { @@ -6067,29 +6070,29 @@ }, "scanModeLimitsAmbiguous": { "title": "Scan mode limits ambiguous", - "body": "scan mode limits 仍可能被誤讀成 active scan 或 credentialed scan 授權時,必須回到 write-up 修正。", + "body": "scan mode limits 仍可能被誤讀成 active scan 或 憑證掃描 授權時,必須回到 write-up 修正。", "next": "補 scan wording;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential boundary 若不清楚 metadata-only、owner、保存邊界或不可收集內容,必須回到 credential write-up。", - "next": "補 metadata-only boundary;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential boundary 若不清楚 僅中繼資料、owner、保存邊界或不可收集內容,必須回到 credential write-up。", + "next": "補 僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "維護窗口、限制條件、rollback owner、復原路徑或人工聯絡點不可讀時,不能建立批准語義。", - "next": "補 maintenance / rollback;host update=false" + "title": "維護 and 回復 incomplete", + "body": "維護窗口、限制條件、回復 owner、復原路徑或人工聯絡點不可讀時,不能建立批准語義。", + "next": "補 maintenance / 回復;主機更新=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 follow-up gate,不能由 review outcome 執行。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 後續追蹤 閘門,不能由 review outcome 執行。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalCandidates": { - "title": "主機 Owner Decision Record Formal Candidate Packets", - "subtitle": "Formal record candidate 只把未來可能寫入正式紀錄的欄位整理出來。這裡不建立 decision record、不標記 finalized / accepted、不產生 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Candidate Packets", + "subtitle": "Formal record candidate 只把未來可能寫入正式紀錄的欄位整理出來。這裡不建立 決策紀錄、不標記 finalized / 已接受、不產生 批准紀錄、不開 執行期閘門。", "packetLabel": "Candidate packet", "fieldLabel": "候選欄位", "items": { @@ -6106,33 +6109,33 @@ "approvedScopeCandidate": { "title": "Approved scope candidate", "body": "整理 host、network、service、exclusion、觀察目的與到期時間,保留 scope 可讀性。", - "field": "scope / expiry;accepted=0" + "field": "scope / expiry;已接受=0" }, "scanModeLimitsCandidate": { "title": "Scan mode limits candidate", - "body": "整理 observe-only、未來 active scan 與 credentialed scan 的限制,避免被誤讀成掃描授權。", + "body": "整理 僅觀察、未來 active scan 與 憑證掃描 的限制,避免被誤讀成掃描授權。", "field": "scan limits;scan authorized=false" }, "credentialBoundaryCandidate": { - "title": "Credential boundary candidate", - "body": "整理 metadata-only credential owner、保存邊界、遮蔽要求與不可收集內容。", - "field": "metadata-only boundary;secret collection=false" + "title": "憑證 boundary candidate", + "body": "整理 僅中繼資料 credential owner、保存邊界、遮蔽要求與不可收集內容。", + "field": "僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackCandidate": { - "title": "Maintenance and rollback candidate", - "body": "整理維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點。", - "field": "window / rollback;host update=false" + "title": "維護 and 回復 candidate", + "body": "整理維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點。", + "field": "window / 回復;主機更新=false" }, "validationRuntimeGateCandidate": { - "title": "Validation and 執行期閘門 candidate", - "body": "整理 validation evidence、post-check metrics、baseline pointer 與仍需獨立 follow-up 執行期閘門 的聲明。", - "field": "validation / runtime pointer;active gates=0" + "title": "驗證 and 執行期閘門 candidate", + "body": "整理 validation evidence、事後檢查指標、baseline pointer 與仍需獨立 後續追蹤 執行期閘門 的聲明。", + "field": "validation / runtime pointer;active 閘門s=0" } } }, "hostOwnerDecisionRecordFormalCandidateReview": { - "title": "主機 Owner Decision Record Formal Candidate Review Checklist", - "subtitle": "Formal candidate packets 進入後續人工紀錄前仍只能做只讀核對。這裡不標記 review passed、不建立 decision record、不標記 accepted、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Candidate Review Checklist", + "subtitle": "Formal candidate packets 進入後續人工紀錄前仍只能做只讀核對。這裡不標記 review passed、不建立 決策紀錄、不標記 已接受、不建立 批准紀錄、不開 執行期閘門。", "checkLabel": "Candidate review", "guardLabel": "仍鎖住", "items": { @@ -6143,8 +6146,8 @@ }, "decisionSummaryReadable": { "title": "Decision summary readable", - "body": "確認 decision summary、風險接受邊界與不執行聲明可讀,但仍不代表 decision accepted。", - "guard": "accepted=0" + "body": "確認 decision summary、風險接受邊界與不執行聲明可讀,但仍不代表 decision 已接受。", + "guard": "已接受=0" }, "scopeExpiryConsistent": { "title": "範圍 and expiry consistent", @@ -6153,35 +6156,35 @@ }, "scanLimitsStillNotAuthorization": { "title": "Scan limits still not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 沒有被誤讀成 active scan 或 credentialed scan 授權。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 沒有被誤讀成 active scan 或 憑證掃描 授權。", "guard": "scan authorized=false" }, "credentialBoundaryStillMetadataOnly": { - "title": "Credential boundary still metadata-only", + "title": "憑證 boundary still 僅中繼資料", "body": "確認 credential boundary 只保留 metadata、owner、retention、masking 與不可收集內容。", - "guard": "secret collection=false" + "guard": "機密 collection=false" }, "maintenanceRollbackTraceable": { - "title": "Maintenance and rollback traceable", - "body": "確認維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點可追。", - "guard": "host update=false" + "title": "維護 and 回復 traceable", + "body": "確認維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點可追。", + "guard": "主機更新=false" }, "runtimeGateStillClosed": { - "title": "Runtime gate still closed", - "body": "確認 validation evidence 與 執行期閘門 pointer 仍只指向獨立 follow-up gate,candidate review 不會開 gate。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still closed", + "body": "確認 validation evidence 與 執行期閘門 pointer 仍只指向獨立 後續追蹤 閘門,candidate review 不會開 閘門。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalCandidateReviewOutcomes": { - "title": "主機 Owner Decision Record Formal Candidate Review Outcome Lanes", - "subtitle": "Formal candidate review outcome 只呈現候選核對後的下一步分流。這裡不標記 review passed、不標記 finalized、不建立 decision record、不標記 accepted、不建立 approval record、不開 執行期閘門。", - "laneLabel": "Outcome lane", + "title": "主機 負責人 Decision Record Formal Candidate Review 結果分流", + "subtitle": "Formal candidate review outcome 只呈現候選核對後的下一步分流。這裡不標記 review passed、不標記 finalized、不建立 決策紀錄、不標記 已接受、不建立 批准紀錄、不開 執行期閘門。", + "laneLabel": "結果 lane", "nextLabel": "下一步仍只讀", "items": { "readyForHumanRecordQueue": { - "title": "Ready for human record queue", - "body": "候選欄位可讀時,只能顯示可送人工正式紀錄佇列,不會建立 decision record。", + "title": "就緒 for human record queue", + "body": "候選欄位可讀時,只能顯示可送人工正式紀錄佇列,不會建立 決策紀錄。", "next": "queue visible only;record created=false" }, "identityNeedsTrace": { @@ -6192,7 +6195,7 @@ "decisionSummaryNeedsClarification": { "title": "Decision summary needs clarification", "body": "decision summary、風險接受邊界或不執行聲明不清楚時,維持候選狀態。", - "next": "補 decision summary;accepted=0" + "next": "補 decision summary;已接受=0" }, "scopeExpiryNeedsRefresh": { "title": "範圍 and expiry need refresh", @@ -6201,29 +6204,29 @@ }, "scanLimitsAmbiguous": { "title": "Scan limits remain ambiguous", - "body": "active scan 或 credentialed scan limits 可能被誤讀時,仍鎖在不授權狀態。", + "body": "active scan 或 憑證掃描 limits 可能被誤讀時,仍鎖在不授權狀態。", "next": "補 scan limits;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", + "title": "憑證 boundary failed", "body": "credential metadata、retention、masking 或 forbidden collection 邊界不清楚時,直接隔離。", - "next": "補 metadata-only boundary;secret collection=false" + "next": "補 僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "維護窗口、限制條件、rollback owner、復原路徑或人工聯絡點不可追時,不能建立批准語義。", - "next": "補 maintenance / rollback;host update=false" + "title": "維護 and 回復 incomplete", + "body": "維護窗口、限制條件、回復 owner、復原路徑或人工聯絡點不可追時,不能建立批准語義。", + "next": "補 maintenance / 回復;主機更新=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 follow-up gate,不能由 outcome 開 gate。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 後續追蹤 閘門,不能由 outcome 開 閘門。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalRecordQueue": { - "title": "主機 Owner Decision Record Formal Record Queue Packets", - "subtitle": "Formal record queue packets 只整理未來人工正式紀錄佇列需要看到的資料包。這裡不 enqueue、不建立 decision record、不標記 accepted、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Record Queue Packets", + "subtitle": "Formal record queue packets 只整理未來人工正式紀錄佇列需要看到的資料包。這裡不 enqueue、不建立 決策紀錄、不標記 已接受、不建立 批准紀錄、不開 執行期閘門。", "packetLabel": "Queue packet", "fieldLabel": "佇列欄位", "items": { @@ -6234,7 +6237,7 @@ }, "queueDecisionSummaryPacket": { "title": "Queue decision summary packet", - "body": "整理 decision summary、風險接受邊界與不執行聲明,但不建立正式 decision record。", + "body": "整理 decision summary、風險接受邊界與不執行聲明,但不建立正式 決策紀錄。", "field": "decision summary;record created=false" }, "queueScopeExpiryPacket": { @@ -6244,34 +6247,34 @@ }, "queueScanLimitsPacket": { "title": "Queue scan limits packet", - "body": "整理 observe-only、future active scan 與 credentialed scan limits,避免被誤讀成掃描授權。", + "body": "整理 僅觀察、future active scan 與 憑證掃描 limits,避免被誤讀成掃描授權。", "field": "scan limits;scan authorized=false" }, "queueCredentialBoundaryPacket": { "title": "Queue credential boundary packet", - "body": "整理 metadata-only credential owner、retention、masking 與 forbidden collection 邊界。", - "field": "metadata-only boundary;secret collection=false" + "body": "整理 僅中繼資料 credential owner、retention、masking 與 forbidden collection 邊界。", + "field": "僅中繼資料 boundary;機密 collection=false" }, "queueMaintenanceRollbackPacket": { - "title": "Queue maintenance and rollback packet", - "body": "整理維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點。", - "field": "window / rollback;host update=false" + "title": "Queue maintenance and 回復 packet", + "body": "整理維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點。", + "field": "window / 回復;主機更新=false" }, "queueValidationRuntimeGatePacket": { "title": "Queue validation and 執行期閘門 packet", - "body": "整理 validation evidence、post-check metrics、baseline pointer 與獨立 執行期閘門 需求。", - "field": "validation / runtime pointer;active gates=0" + "body": "整理 validation evidence、事後檢查指標、baseline pointer 與獨立 執行期閘門 需求。", + "field": "validation / runtime pointer;active 閘門s=0" }, "queueNoExecutionAttestationPacket": { "title": "Queue no-execution attestation packet", - "body": "整理仍不執行、不批准、不開 gate 的聲明,避免佇列資料包被當成授權。", + "body": "整理仍不執行、不批准、不開 閘門 的聲明,避免佇列資料包被當成授權。", "field": "not authorization;操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalRecordQueueReview": { - "title": "主機 Owner Decision Record Formal Record Queue Review Checklist", - "subtitle": "Formal record queue review checklist 只確認佇列資料包是否可供未來人工正式紀錄審查。不標記 review passed、不 enqueue、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Record Queue Review Checklist", + "subtitle": "Formal record queue review checklist 只確認佇列資料包是否可供未來人工正式紀錄審查。不標記 review passed、不 enqueue、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "checkLabel": "Queue review", "guardLabel": "保護邊界", "items": { @@ -6282,7 +6285,7 @@ }, "queueDecisionSummaryReadable": { "title": "Queue decision summary readable", - "body": "確認 decision summary 與 no-execution statement 可讀,但不產生正式 decision record。", + "body": "確認 decision summary 與 no-execution statement 可讀,但不產生正式 決策紀錄。", "guard": "summary only;record created=false" }, "queueScopeExpiryFresh": { @@ -6292,39 +6295,39 @@ }, "queueScanLimitsNotAuthorization": { "title": "Queue scan limits not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 仍只是限制描述,不是掃描批准。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 仍只是限制描述,不是掃描批准。", "guard": "scan authorized=false" }, "queueCredentialBoundaryMetadataOnly": { - "title": "Queue credential boundary metadata-only", + "title": "Queue credential boundary 僅中繼資料", "body": "確認 credential boundary 只保留 metadata、owner、retention 與 masking 邊界,不要求敏感素材。", - "guard": "secret collection=false" + "guard": "機密 collection=false" }, "queueMaintenanceRollbackLinked": { - "title": "Queue maintenance and rollback linked", - "body": "確認維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點都有 pointer,但不代表可以做主機套件變更或調校。", - "guard": "host change=false" + "title": "Queue maintenance and 回復 linked", + "body": "確認維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點都有 pointer,但不代表可以做主機套件變更或調校。", + "guard": "主機變更=false" }, "queueValidationGateSeparate": { - "title": "Queue validation gate separate", - "body": "確認 validation evidence、post-check metrics 與 baseline pointer 仍導向獨立 執行期閘門。", - "guard": "active gates=0" + "title": "Queue validation 閘門 separate", + "body": "確認 validation evidence、事後檢查指標 與 baseline pointer 仍導向獨立 執行期閘門。", + "guard": "active 閘門s=0" }, "queueNoExecutionAttestationPresent": { "title": "Queue no-execution attestation present", - "body": "確認 no-execution / no-approval / no-runtime-gate 聲明仍在,避免 checklist 被當成 action entry。", + "body": "確認 no-execution / no-approval / no-runtime-閘門 聲明仍在,避免 checklist 被當成 action entry。", "guard": "操作按鈕s=false" } } }, "hostOwnerDecisionRecordFormalRecordQueueReviewOutcomes": { - "title": "主機 Owner Decision Record Formal Record Queue Review Outcome Lanes", - "subtitle": "Formal record queue review outcome lanes 只顯示 checklist 後的下一步分流。不代表 review passed、不 enqueue、不建立 decision record、不接受 owner decision、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Formal Record Queue Review 結果分流", + "subtitle": "Formal record queue review outcome lanes 只顯示 checklist 後的下一步分流。不代表 review passed、不 enqueue、不建立 決策紀錄、不接受 owner decision、不建立 批准紀錄、不開 執行期閘門。", "laneLabel": "Queue review outcome", "nextLabel": "下一步", "items": { "readyForHumanRecordOwnerHandoff": { - "title": "Ready for human record owner handoff", + "title": "就緒 for human record owner handoff", "body": "所有 queue review 條件都可讀時,只能顯示未來交給人工 record owner 的候選狀態。", "next": "顯示 handoff 候選;review passed=0、queue enqueued=0" }, @@ -6336,7 +6339,7 @@ "decisionSummaryNeedsClarification": { "title": "Decision summary needs clarification", "body": "decision summary 或 no-execution statement 不可讀時,回到 summary packet 補文字。", - "next": "補 decision summary;accepted=0" + "next": "補 decision summary;已接受=0" }, "scopeExpiryNeedsRefresh": { "title": "範圍 and expiry need refresh", @@ -6345,46 +6348,46 @@ }, "scanLimitsRemainAmbiguous": { "title": "Scan limits remain ambiguous", - "body": "observe-only、future active scan 或 credentialed scan limits 若仍可能被誤讀成授權,必須回到 scan limits packet。", + "body": "僅觀察、future active scan 或 憑證掃描 limits 若仍可能被誤讀成授權,必須回到 scan limits packet。", "next": "補 scan limits;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential boundary 若無法保持 metadata-only 或責任邊界不可讀,必須隔離補證。", - "next": "補 metadata-only boundary;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential boundary 若無法保持 僅中繼資料 或責任邊界不可讀,必須隔離補證。", + "next": "補 僅中繼資料 boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "維護窗口、限制條件、rollback owner、復原路徑或人工聯絡點缺漏時,不能進入正式紀錄語義。", - "next": "補 maintenance / rollback;host change=false" + "title": "維護 and 回復 incomplete", + "body": "維護窗口、限制條件、回復 owner、復原路徑或人工聯絡點缺漏時,不能進入正式紀錄語義。", + "next": "補 maintenance / 回復;主機變更=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 follow-up gate,不能由 queue review outcome 開 gate。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence 或 執行期閘門 pointer 仍需要獨立 後續追蹤 閘門,不能由 queue review outcome 開 閘門。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanHandoffReadiness": { - "title": "主機 Owner Decision Record Human Record Owner Handoff Readiness Packets", - "subtitle": "Human record owner handoff readiness packets 只顯示未來交給人工 record owner 前要準備的 metadata。不代表 handoff started、不代表 handoff ready、不代表 review passed、不建立 decision record、不接受 owner decision、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Handoff Readiness Packets", + "subtitle": "Human record owner handoff readiness packets 只顯示未來交給人工 record owner 前要準備的 metadata。不代表 handoff started、不代表 handoff 就緒、不代表 review passed、不建立 決策紀錄、不接受 owner decision、不開 執行期閘門。", "packetLabel": "Handoff readiness packet", "guardLabel": "保護邊界", "items": { "handoffIdentityTrace": { "title": "Handoff identity and trace", "body": "顯示 candidate record id、版本、來源 outcome lane、source queue review 與 trace pointer 是否足夠供未來人工 record owner 辨識。", - "guard": "handoff started=0;ready=0" + "guard": "handoff started=0;就緒=0" }, "handoffOwnerBoundary": { "title": "Human record owner boundary", - "body": "顯示未來 record owner、backup owner、聯絡窗口與責任邊界,但不自動通知、不收 decision、不建立 approval record。", - "guard": "owner decision received=0" + "body": "顯示未來 record owner、backup owner、聯絡窗口與責任邊界,但不自動通知、不收 decision、不建立 批准紀錄。", + "guard": "owner decision 已收到=0" }, "handoffDecisionSummary": { "title": "Decision summary packet", "body": "顯示 decision summary、no-execution statement 與候選結論是否可讀,避免 handoff 時把摘要當成批准。", - "guard": "decision record created=false" + "guard": "決策紀錄 created=false" }, "handoffScopeExpiry": { "title": "範圍 and expiry packet", @@ -6393,46 +6396,46 @@ }, "handoffScanLimits": { "title": "Scan limits packet", - "body": "顯示 observe-only、future active scan 與 credentialed scan limits 的限制文字,讓人工 record owner 清楚這不是掃描授權。", + "body": "顯示 僅觀察、future active scan 與 憑證掃描 limits 的限制文字,讓人工 record owner 清楚這不是掃描授權。", "guard": "scan authorized=false" }, "handoffCredentialBoundary": { - "title": "Credential boundary packet", - "body": "顯示 credential boundary metadata、retention 與 masking 責任,不收 plaintext、不收 token value、不收 raw secret。", - "guard": "secret collection=false" + "title": "憑證 boundary packet", + "body": "顯示 credential boundary metadata、retention 與 masking 責任,不收 plaintext、不收 token value、不收 raw 機密。", + "guard": "機密 collection=false" }, "handoffMaintenanceRollback": { - "title": "Maintenance and rollback packet", - "body": "顯示維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點,仍不允許 SSH、package update 或主機調校。", - "guard": "host change=false" + "title": "維護 and 回復 packet", + "body": "顯示維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點,仍不允許 SSH、package update 或主機調校。", + "guard": "主機變更=false" }, "handoffRuntimeGate": { - "title": "Runtime gate separation packet", - "body": "顯示 validation evidence 與 follow-up 執行期閘門 pointer 仍是獨立 gate,不能由 handoff readiness 開啟。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 separation packet", + "body": "顯示 validation evidence 與 後續追蹤 執行期閘門 pointer 仍是獨立 閘門,不能由 handoff readiness 開啟。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanHandoffReadinessReview": { - "title": "主機 Owner Decision Record Human Handoff Readiness Review Checklist", - "subtitle": "Human handoff readiness review checklist 只顯示 handoff readiness packets 進人工 record owner 前的只讀核對條件。不代表 review passed、不開始 handoff、不標記 handoff ready、不建立 decision record、不接受 owner decision、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Handoff Readiness Review Checklist", + "subtitle": "Human handoff readiness review checklist 只顯示 handoff readiness packets 進人工 record owner 前的只讀核對條件。不代表 review passed、不開始 handoff、不標記 handoff 就緒、不建立 決策紀錄、不接受 owner decision、不開 執行期閘門。", "checkLabel": "Handoff readiness check", "guardLabel": "保護邊界", "items": { "identityTraceReadable": { "title": "Identity trace readable", "body": "確認 candidate record id、版本、來源 outcome lane、source queue review 與 trace pointer 可讀;缺漏時只能回補 identity trace。", - "guard": "handoff started=0;ready=0" + "guard": "handoff started=0;就緒=0" }, "ownerBoundaryReadable": { - "title": "Owner boundary readable", + "title": "負責人 boundary readable", "body": "確認 future record owner、backup owner、聯絡窗口與責任邊界可讀;不能自動通知或收 owner decision。", - "guard": "owner decision received=0" + "guard": "owner decision 已收到=0" }, "decisionSummaryReadable": { "title": "Decision summary readable", "body": "確認 decision summary、候選結論與 no-execution statement 可讀,避免 handoff readiness 被誤讀成批准。", - "guard": "decision record created=false" + "guard": "決策紀錄 created=false" }, "scopeExpiryCurrent": { "title": "範圍 and expiry current", @@ -6441,46 +6444,46 @@ }, "scanLimitsNotAuthorization": { "title": "Scan limits not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 仍只是限制文字,不是掃描批准。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 仍只是限制文字,不是掃描批准。", "guard": "scan authorized=false" }, "credentialBoundaryMetadataOnly": { - "title": "Credential boundary metadata-only", - "body": "確認 credential boundary 只含 metadata、retention 與 masking 責任;不得收 plaintext、token value 或 raw secret。", - "guard": "secret collection=false" + "title": "憑證 boundary 僅中繼資料", + "body": "確認 credential boundary 只含 metadata、retention 與 masking 責任;不得收 plaintext、token value 或 raw 機密。", + "guard": "機密 collection=false" }, "maintenanceRollbackTraceable": { - "title": "Maintenance and rollback traceable", - "body": "確認維護窗口、限制條件、rollback owner、復原路徑與人工聯絡點可追溯,但仍不能 SSH、更新套件或調校主機。", - "guard": "host change=false" + "title": "維護 and 回復 traceable", + "body": "確認維護窗口、限制條件、回復 owner、復原路徑與人工聯絡點可追溯,但仍不能 SSH、更新套件或調校主機。", + "guard": "主機變更=false" }, "runtimeGateSeparate": { - "title": "Runtime gate separate", - "body": "確認 validation evidence 與 follow-up 執行期閘門 仍維持獨立,不由 readiness review 開啟。", - "guard": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 separate", + "body": "確認 validation evidence 與 後續追蹤 執行期閘門 仍維持獨立,不由 readiness review 開啟。", + "guard": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanHandoffReadinessReviewOutcomes": { - "title": "主機 Owner Decision Record Human Handoff Readiness Review Outcome Lanes", - "subtitle": "Human handoff readiness review outcome lanes 只顯示 checklist 後的下一步分流。不代表 review passed、不開始 handoff、不標記 handoff ready、不建立 decision record、不接受 owner decision、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Handoff Readiness Review 結果分流", + "subtitle": "Human handoff readiness review outcome lanes 只顯示 checklist 後的下一步分流。不代表 review passed、不開始 handoff、不標記 handoff 就緒、不建立 決策紀錄、不接受 owner decision、不建立 批准紀錄、不開 執行期閘門。", "laneLabel": "Handoff review outcome", "nextLabel": "下一步", "items": { "readyForHumanRecordOwnerReviewCandidate": { - "title": "Ready for human record owner review candidate", + "title": "就緒 for human record owner review candidate", "body": "所有 readiness review 條件都可讀時,只能顯示未來交給人工 record owner 看看的候選狀態。", "next": "顯示 review candidate;review passed=0、handoff started=0" }, "identityTraceNeedsRefresh": { "title": "Identity trace needs refresh", "body": "candidate record id、版本、來源 outcome lane、source queue review 或 trace pointer 不清楚時,回到 identity packet 補證。", - "next": "補 identity trace;handoff ready=0" + "next": "補 identity trace;handoff 就緒=0" }, "ownerBoundaryNeedsClarification": { - "title": "Owner boundary needs clarification", + "title": "負責人 boundary needs clarification", "body": "record owner、backup owner、聯絡窗口或責任邊界不可讀時,回到 owner boundary packet 補文字。", - "next": "補 owner boundary;decision received=0" + "next": "補 owner boundary;decision 已收到=0" }, "decisionSummaryNeedsClarification": { "title": "Decision summary needs clarification", @@ -6494,46 +6497,46 @@ }, "scanLimitsRemainAmbiguous": { "title": "Scan limits remain ambiguous", - "body": "observe-only、future active scan 或 credentialed scan limits 仍可能被誤讀成授權時,回到 scan limits packet。", + "body": "僅觀察、future active scan 或 憑證掃描 limits 仍可能被誤讀成授權時,回到 scan limits packet。", "next": "補 scan limits;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential boundary 若不是 metadata-only,或 plaintext、token value、raw secret 邊界不清楚,必須隔離補證。", - "next": "補 credential boundary;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential boundary 若不是 僅中繼資料,或 plaintext、token value、raw 機密 邊界不清楚,必須隔離補證。", + "next": "補 credential boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "維護窗口、限制條件、rollback owner、復原路徑或人工聯絡點缺漏時,不能進入人工 record owner review 語義。", - "next": "補 maintenance / rollback;host change=false" + "title": "維護 and 回復 incomplete", + "body": "維護窗口、限制條件、回復 owner、復原路徑或人工聯絡點缺漏時,不能進入人工 record owner review 語義。", + "next": "補 maintenance / 回復;主機變更=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence 或 follow-up 執行期閘門 pointer 仍需要獨立 gate,不能由 readiness review outcome 開 gate。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence 或 後續追蹤 執行期閘門 pointer 仍需要獨立 閘門,不能由 readiness review outcome 開 閘門。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewCandidatePackets": { - "title": "主機 Owner Decision Record Human Record Owner Review Candidate Packets", - "subtitle": "Human record owner review candidate packets 只整理未來人工 record owner 可能需要看的 metadata。它不開始 handoff、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Candidate Packets", + "subtitle": "Human record owner review candidate packets 只整理未來人工 record owner 可能需要看的 metadata。它不開始 handoff、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "packetLabel": "Review candidate packet", "guardLabel": "保護邊界", "items": { "reviewCandidateIdentity": { "title": "Review candidate identity packet", "body": "整理 candidate id、來源 readiness outcome、版本、trace pointer 與來源 queue review 連結,讓人工 record owner 未來能看懂來源。", - "guard": "review started=0;decision record created=false" + "guard": "review started=0;決策紀錄 created=false" }, "reviewOwnerBoundary": { "title": "Review owner boundary packet", "body": "整理 human record owner、backup owner、聯絡窗口與責任邊界,但不把 owner contact 視為已接案或已決策。", - "guard": "owner decision received=0;handoff started=0" + "guard": "owner decision 已收到=0;handoff started=0" }, "reviewDecisionSummary": { "title": "Review decision summary packet", "body": "整理候選決策摘要、風險接受邊界與 no-execution statement,避免人工 review 候選被誤讀成正式紀錄。", - "guard": "review ready=0;record accepted=0" + "guard": "review 就緒=0;record 已接受=0" }, "reviewScopeExpiry": { "title": "Review scope and expiry packet", @@ -6542,34 +6545,34 @@ }, "reviewScanLimits": { "title": "Review scan limits packet", - "body": "整理 observe-only、future active scan 與 credentialed scan limits,明確保留 active scan 仍需獨立批准。", + "body": "整理 僅觀察、future active scan 與 憑證掃描 limits,明確保留 active scan 仍需獨立批准。", "guard": "scan authorized=false;操作按鈕s=false" }, "reviewCredentialBoundary": { "title": "Review credential boundary packet", - "body": "整理 credential owner、retention、masking 與 forbidden collection,只允許 metadata,不收 plaintext、token value 或 raw secret。", - "guard": "secret collection=false;原始載荷=false" + "body": "整理 credential owner、retention、masking 與 forbidden collection,只允許 metadata,不收 plaintext、token value 或 raw 機密。", + "guard": "機密 collection=false;原始載荷=false" }, "reviewMaintenanceRollback": { - "title": "Review maintenance and rollback packet", - "body": "整理 maintenance window、constraints、rollback owner、recovery path 與人工聯絡點,但不代表可以變更主機。", - "guard": "host change=false;Kali update=false" + "title": "Review maintenance and 回復 packet", + "body": "整理 maintenance window、constraints、回復 owner、recovery path 與人工聯絡點,但不代表可以變更主機。", + "guard": "主機變更=false;Kali update=false" }, "reviewValidationRuntimeGate": { "title": "Review validation and 執行期閘門 packet", - "body": "整理 validation evidence pointer、post-check metrics 與獨立 執行期閘門 requirement,仍不能由 candidate packet 開 gate。", + "body": "整理 validation evidence pointer、事後檢查指標 與獨立 執行期閘門 requirement,仍不能由 candidate packet 開 閘門。", "guard": "執行期閘門 opened=false;runtime execution=false" }, "reviewNoExecutionAttestation": { "title": "Review no-execution attestation packet", "body": "固定 not authorization、no execution、no approval、no 執行期閘門 statement,避免人工 review candidate 被誤解成批准。", - "guard": "not_authorization=true;approval record=false" + "guard": "not_authorization=true;批准紀錄=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewCandidateChecklist": { - "title": "主機 Owner Decision Record Human Record Owner Review Candidate Checklist", - "subtitle": "Human record owner review candidate checklist 只核對 candidate packets 是否可讀。不代表 checklist passed、不開始 review、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Candidate Checklist", + "subtitle": "Human record owner review candidate checklist 只核對 candidate packets 是否可讀。不代表 checklist passed、不開始 review、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "checkLabel": "Review candidate check", "guardLabel": "保護邊界", "items": { @@ -6581,12 +6584,12 @@ "candidateOwnerBoundaryReadable": { "title": "Candidate owner boundary readable", "body": "確認 human record owner、backup owner、聯絡窗口與責任邊界可讀,但不代表 owner 已接案。", - "guard": "owner decision received=0;review ready=0" + "guard": "owner decision 已收到=0;review 就緒=0" }, "candidateDecisionSummaryReadable": { "title": "Candidate decision summary readable", - "body": "確認候選決策摘要、風險接受邊界與 no-execution statement 可讀,仍不是正式 decision record。", - "guard": "decision record created=false;accepted=0" + "body": "確認候選決策摘要、風險接受邊界與 no-execution statement 可讀,仍不是正式 決策紀錄。", + "guard": "決策紀錄 created=false;已接受=0" }, "candidateScopeExpiryCurrent": { "title": "Candidate scope and expiry current", @@ -6595,39 +6598,39 @@ }, "candidateScanLimitsNotAuthorization": { "title": "Candidate scan limits not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 沒有被寫成掃描授權。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 沒有被寫成掃描授權。", "guard": "scan authorized=false;操作按鈕s=false" }, "candidateCredentialBoundaryMetadataOnly": { - "title": "Candidate credential boundary metadata-only", - "body": "確認 credential owner、retention、masking 與 forbidden collection 仍是 metadata-only。", - "guard": "secret collection=false;原始載荷=false" + "title": "Candidate credential boundary 僅中繼資料", + "body": "確認 credential owner、retention、masking 與 forbidden collection 仍是 僅中繼資料。", + "guard": "機密 collection=false;原始載荷=false" }, "candidateMaintenanceRollbackTraceable": { - "title": "Candidate maintenance and rollback traceable", - "body": "確認 maintenance window、constraints、rollback owner、recovery path 與人工聯絡點可追溯。", - "guard": "host change=false;Kali update=false" + "title": "Candidate maintenance and 回復 traceable", + "body": "確認 maintenance window、constraints、回復 owner、recovery path 與人工聯絡點可追溯。", + "guard": "主機變更=false;Kali update=false" }, "candidateValidationRuntimeGateSeparate": { "title": "Candidate validation and 執行期閘門 separate", - "body": "確認 validation evidence pointer、post-check metrics 與 執行期閘門 requirement 仍維持獨立。", + "body": "確認 validation evidence pointer、事後檢查指標 與 執行期閘門 requirement 仍維持獨立。", "guard": "執行期閘門 opened=false;runtime execution=false" }, "candidateNoExecutionAttestationPresent": { "title": "Candidate no-execution attestation present", "body": "確認 not authorization、no execution、no approval、no 執行期閘門 statement 都可見。", - "guard": "not_authorization=true;approval record=false" + "guard": "not_authorization=true;批准紀錄=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewCandidateOutcomes": { - "title": "主機 Owner Decision Record Human Record Owner Review Candidate Outcome Lanes", - "subtitle": "Human record owner review candidate outcome lanes 只顯示 candidate checklist 後下一步分流。不代表 checklist passed、不開始 review、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Candidate 結果分流", + "subtitle": "Human record owner review candidate outcome lanes 只顯示 candidate checklist 後下一步分流。不代表 checklist passed、不開始 review、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "laneLabel": "Review candidate outcome", "nextLabel": "下一步", "items": { "readyForHumanRecordOwnerReviewPreparation": { - "title": "Ready for human record owner review preparation candidate", + "title": "就緒 for human record owner review preparation candidate", "body": "所有 candidate checklist 只讀條件都可被準備成未來人工 record owner review 畫面,但目前仍只是 preparation candidate。", "next": "display only;review started=0" }, @@ -6637,9 +6640,9 @@ "next": "refresh identity trace;check passed=0" }, "ownerBoundaryNeedsClarification": { - "title": "Owner boundary needs clarification", + "title": "負責人 boundary needs clarification", "body": "human record owner、backup owner、contact channel 或責任邊界仍需釐清,不能視為 owner 已接案。", - "next": "clarify owner boundary;decision received=0" + "next": "clarify owner boundary;decision 已收到=0" }, "decisionSummaryNeedsClarification": { "title": "Decision summary needs clarification", @@ -6649,33 +6652,33 @@ "scopeExpiryNeedsRefresh": { "title": "範圍 and expiry need refresh", "body": "host、network、service、exclusion、observation intent 或 expiry 需要刷新後才能進下一層人工準備。", - "next": "refresh scope;review ready=0" + "next": "refresh scope;review 就緒=0" }, "scanLimitsRemainAmbiguous": { "title": "Scan limits remain ambiguous", - "body": "observe-only、future active scan 或 credentialed scan limits 仍可能被誤讀成授權,需要保留為阻擋分流。", + "body": "僅觀察、future active scan 或 憑證掃描 limits 仍可能被誤讀成授權,需要保留為阻擋分流。", "next": "clarify limits;scan authorized=false" }, "credentialBoundaryFailed": { - "title": "Credential boundary failed", - "body": "credential owner、retention、masking 或 forbidden collection 沒有維持 metadata-only 時必須隔離。", - "next": "quarantine credential boundary;secret collection=false" + "title": "憑證 boundary failed", + "body": "credential owner、retention、masking 或 forbidden collection 沒有維持 僅中繼資料 時必須隔離。", + "next": "quarantine credential boundary;機密 collection=false" }, "maintenanceRollbackIncomplete": { - "title": "Maintenance and rollback incomplete", - "body": "maintenance window、constraints、rollback owner、recovery path 或人工聯絡點仍缺漏,不能導向主機變更。", - "next": "complete maintenance data;host change=false" + "title": "維護 and 回復 incomplete", + "body": "maintenance window、constraints、回復 owner、recovery path 或人工聯絡點仍缺漏,不能導向主機變更。", + "next": "complete maintenance data;主機變更=false" }, "runtimeGateStillRequired": { - "title": "Runtime gate still required", - "body": "validation evidence、post-check metrics 或 follow-up 執行期閘門 pointer 仍需獨立 gate,不可由 candidate outcome 開啟。", - "next": "active 執行期閘門s=0;操作按鈕s=false" + "title": "Runtime 閘門 still required", + "body": "validation evidence、事後檢查指標 或 後續追蹤 執行期閘門 pointer 仍需獨立 閘門,不可由 candidate outcome 開啟。", + "next": "啟用中的執行期閘門=0;操作按鈕s=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewPreparationPackets": { - "title": "主機 Owner Decision Record Human Record Owner Review Preparation Packets", - "subtitle": "Human record owner review preparation packets 只整理未來人工 record owner review 畫面需要的 metadata。它不代表 preparation completed、不開始 review、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Preparation Packets", + "subtitle": "Human record owner review preparation packets 只整理未來人工 record owner review 畫面需要的 metadata。它不代表 preparation completed、不開始 review、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "packetLabel": "Review preparation packet", "guardLabel": "保護邊界", "items": { @@ -6687,12 +6690,12 @@ "preparationOwnerBoundary": { "title": "Preparation owner boundary packet", "body": "整理 human record owner、backup owner、聯絡窗口、責任邊界與待確認項目,但不代表 owner 已接案或已決策。", - "guard": "owner decision received=0;review ready=0" + "guard": "owner decision 已收到=0;review 就緒=0" }, "preparationDecisionSummary": { "title": "Preparation decision summary packet", - "body": "整理候選決策摘要、風險接受邊界、no-execution statement 與正式紀錄前置說明,仍不是 decision record。", - "guard": "decision record created=false;accepted=0" + "body": "整理候選決策摘要、風險接受邊界、no-execution statement 與正式紀錄前置說明,仍不是 決策紀錄。", + "guard": "決策紀錄 created=false;已接受=0" }, "preparationScopeExpiry": { "title": "Preparation scope and expiry packet", @@ -6701,34 +6704,34 @@ }, "preparationScanLimits": { "title": "Preparation scan limits packet", - "body": "整理 observe-only、future active scan、credentialed scan limits 與仍需獨立批准的掃描邊界。", + "body": "整理 僅觀察、future active scan、憑證掃描 limits 與仍需獨立批准的掃描邊界。", "guard": "scan authorized=false;操作按鈕s=false" }, "preparationCredentialBoundary": { "title": "Preparation credential boundary packet", - "body": "整理 credential owner、retention、masking、forbidden collection 與隔離規則,只允許 metadata-only。", - "guard": "secret collection=false;原始載荷=false" + "body": "整理 credential owner、retention、masking、forbidden collection 與隔離規則,只允許 僅中繼資料。", + "guard": "機密 collection=false;原始載荷=false" }, "preparationMaintenanceRollback": { - "title": "Preparation maintenance and rollback packet", - "body": "整理 maintenance window、constraints、rollback owner、recovery path 與人工聯絡點,但不代表可以變更主機。", - "guard": "host change=false;Kali update=false" + "title": "Preparation maintenance and 回復 packet", + "body": "整理 maintenance window、constraints、回復 owner、recovery path 與人工聯絡點,但不代表可以變更主機。", + "guard": "主機變更=false;Kali update=false" }, "preparationValidationRuntimeGate": { "title": "Preparation validation and 執行期閘門 packet", - "body": "整理 validation evidence pointer、post-check metrics 與獨立 執行期閘門 requirement,仍不能由 preparation packet 開 gate。", + "body": "整理 validation evidence pointer、事後檢查指標 與獨立 執行期閘門 requirement,仍不能由 preparation packet 開 閘門。", "guard": "執行期閘門 opened=false;runtime execution=false" }, "preparationNoExecutionAttestation": { "title": "Preparation no-execution attestation packet", "body": "固定 not authorization、no execution、no approval、no 執行期閘門 statement,避免 preparation packet 被誤解成批准。", - "guard": "not_authorization=true;approval record=false" + "guard": "not_authorization=true;批准紀錄=false" } } }, "hostOwnerDecisionRecordHumanRecordOwnerReviewPreparationChecklist": { - "title": "主機 Owner Decision Record Human Record Owner Review Preparation Checklist", - "subtitle": "Human record owner review preparation checklist 只核對 preparation packets 是否可讀。不代表 preparation completed、不代表 checklist passed、不開始 review、不標記 review ready、不收 owner decision、不建立 decision record、不建立 approval record、不開 執行期閘門。", + "title": "主機 負責人 Decision Record Human Record 負責人 Review Preparation Checklist", + "subtitle": "Human record owner review preparation checklist 只核對 preparation packets 是否可讀。不代表 preparation completed、不代表 checklist passed、不開始 review、不標記 review 就緒、不收 owner decision、不建立 決策紀錄、不建立 批准紀錄、不開 執行期閘門。", "checkLabel": "Review preparation check", "guardLabel": "保護邊界", "items": { @@ -6740,12 +6743,12 @@ "preparationOwnerBoundaryReadable": { "title": "Preparation owner boundary readable", "body": "確認 human record owner、backup owner、聯絡窗口、責任邊界與待確認項目可讀,但不代表 owner 已接案。", - "guard": "owner decision received=0;review ready=0" + "guard": "owner decision 已收到=0;review 就緒=0" }, "preparationDecisionSummaryReadable": { "title": "Preparation decision summary readable", - "body": "確認候選決策摘要、風險接受邊界、no-execution statement 與正式紀錄前置說明可讀,仍不是 decision record。", - "guard": "decision record created=false;accepted=0" + "body": "確認候選決策摘要、風險接受邊界、no-execution statement 與正式紀錄前置說明可讀,仍不是 決策紀錄。", + "guard": "決策紀錄 created=false;已接受=0" }, "preparationScopeExpiryCurrent": { "title": "Preparation scope and expiry current", @@ -6754,137 +6757,137 @@ }, "preparationScanLimitsNotAuthorization": { "title": "Preparation scan limits not authorization", - "body": "確認 observe-only、future active scan 與 credentialed scan limits 沒有被寫成掃描授權。", + "body": "確認 僅觀察、future active scan 與 憑證掃描 limits 沒有被寫成掃描授權。", "guard": "scan authorized=false;操作按鈕s=false" }, "preparationCredentialBoundaryMetadataOnly": { - "title": "Preparation credential boundary metadata-only", - "body": "確認 credential owner、retention、masking、forbidden collection 與隔離規則仍是 metadata-only。", - "guard": "secret collection=false;原始載荷=false" + "title": "Preparation credential boundary 僅中繼資料", + "body": "確認 credential owner、retention、masking、forbidden collection 與隔離規則仍是 僅中繼資料。", + "guard": "機密 collection=false;原始載荷=false" }, "preparationMaintenanceRollbackTraceable": { - "title": "Preparation maintenance and rollback traceable", - "body": "確認 maintenance window、constraints、rollback owner、recovery path 與人工聯絡點可追溯。", - "guard": "host change=false;Kali update=false" + "title": "Preparation maintenance and 回復 traceable", + "body": "確認 maintenance window、constraints、回復 owner、recovery path 與人工聯絡點可追溯。", + "guard": "主機變更=false;Kali update=false" }, "preparationValidationRuntimeGateSeparate": { "title": "Preparation validation and 執行期閘門 separate", - "body": "確認 validation evidence pointer、post-check metrics 與獨立 執行期閘門 requirement 仍維持分離。", + "body": "確認 validation evidence pointer、事後檢查指標 與獨立 執行期閘門 requirement 仍維持分離。", "guard": "執行期閘門 opened=false;runtime execution=false" }, "preparationNoExecutionAttestationPresent": { "title": "Preparation no-execution attestation present", "body": "確認 not authorization、no execution、no approval、no 執行期閘門 statement 都可見,避免 checklist 被誤解成批准。", - "guard": "not_authorization=true;approval record=false" + "guard": "not_authorization=true;批准紀錄=false" } } }, "progressHoldMovementGates": { "title": "為什麼現在是 61%", - "subtitle": "AwoooP 正式只讀 landing 已有部署與消費證據,所以 headline 從 58% 保守重估到 61%。其餘四個高層 gate 仍是 0 / false,框架、文件與前端可見性不會被灌水成 runtime 執行。", + "subtitle": "AwoooP 正式只讀 landing 已有部署與消費證據,所以 重點 從 58% 保守重估到 61%。其餘四個高層 閘門 仍是 0 / false,框架、文件與前端可見性不會被灌水成 runtime 執行。", "gateLabel": "移動門檻", "moveLabel": "什麼時候會動", "guardLabel": "不灌水原則", "items": { "ownerResponseAccepted": { - "title": "負責人回覆 accepted 仍是 0", - "body": "S4.9-S4.12 都還沒有負責人回覆 已收到 / 已接受,S4.9 目前只是 request-ready。", - "move": "第一批脫敏負責人回覆通過 S4.9 preflight 與 S4.13 rollup 後,headline 才有重估依據。", - "guard": "不把 request-ready、範本、preflight 或焦點當成 已收到 / 已接受。" + "title": "負責人回覆 已接受 仍是 0", + "body": "S4.9-S4.12 都還沒有負責人回覆 已收到 / 已接受,S4.9 目前只是 request-就緒。", + "move": "第一批脫敏負責人回覆通過 S4.9 preflight 與 S4.13 rollup 後,重點 才有重估依據。", + "guard": "不把 request-就緒、範本、preflight 或焦點當成 已收到 / 已接受。" }, "redactedPayloadIngested": { - "title": "脫敏 payload 匯入仍未啟用", - "body": "目前只定義 evidence refs、redaction examples、quarantine 與 preflight,尚未有 accepted payload ingestion。", - "move": "脫敏 payload 經人工批准、通過 preflight、進入只讀 ingestion 後,runtime landing 才能重估。", + "title": "脫敏 載荷 匯入仍未啟用", + "body": "目前只定義 evidence refs、redaction examples、quarantine 與 preflight,尚未有 已接受 載荷 ingestion。", + "move": "脫敏 載荷 經人工批准、通過 preflight、進入只讀 ingestion 後,runtime landing 才能重估。", "guard": "不收原始載荷、不收 credential plaintext、不把文件範例當 ingestion。" }, "activeRuntimeGate": { "title": "主動 執行期閘門 仍是 0", - "body": "Kali `/execute`、SSH、主機更新、blocking control、repo / refs / workflow 動作都仍在獨立 gate 之外。", - "move": "人工批准、scope、rollback、post-check metrics 完整,並另開 active 執行期閘門 後才會動。", + "body": "Kali `/execute`、SSH、主機更新、阻擋控制、repo / refs / 工作流程 動作都仍在獨立 閘門 之外。", + "move": "人工批准、scope、回復、事後檢查指標 完整,並另開 active 執行期閘門 後才會動。", "guard": "不從 IwoooS 前端、progress 數字或 checklist 開 執行期閘門。" }, "githubPrimaryReady": { "title": "GitHub 主要來源就緒數仍是 0", - "body": "GitHub target、refs truth、工作流程 / 機密 name parity、rollback ADR 都還在負責人回覆 / 就緒度階段。", - "move": "至少一批 repo 通過 target、refs、工作流程 / 機密 name 與 rollback readiness,primary_ready_count 才可大於 0。", - "guard": "不建 repo、不 sync refs、不切主要來源、不把候選項當就緒。" + "body": "GitHub target、refs 真相、工作流程 / 機密 name parity、回復 ADR 都還在負責人回覆 / 就緒度階段。", + "move": "至少一批 repo 通過 target、refs、工作流程 / 機密 name 與 回復 readiness,primary_就緒_count 才可大於 0。", + "guard": "不建 repo、不 同步 refs、不切主要來源、不把候選項當就緒。" }, "awooopReadOnlyLanding": { "title": "AwoooP 正式只讀 landing 已驗證", "body": "正式站已能在 AwoooP / IwoooS / 安全頁只讀顯示資安鏡像進度、證據邊界與禁止動作,且沒有接 execution router。", - "move": "這項證據已推動 headline 從 58% 重估到 61%;後續仍要等 owner response、runtime gate 或 GitHub primary 才能再動。", - "guard": "read-only landing 不是 操作按鈕、approval、runtime execution 或 blocking control。" + "move": "這項證據已推動 重點 從 58% 重估到 61%;後續仍要等 負責人回覆、runtime 閘門 或 GitHub primary 才能再動。", + "guard": "read-only landing 不是 操作按鈕、approval、runtime execution 或 阻擋控制。" } } }, "headlineMovementAcceptanceGate": { "title": "61% 重估驗收紀錄", - "subtitle": "S2.100 的五個高層 gate 中,AwoooP production landing evidence 已有正式部署與只讀消費證據,因此本次只把 headline 從 58% 保守重估到 61%;其餘 owner response、脫敏匯入、執行期閘門與 GitHub 主要來源仍是 0 / false。", - "gateLabel": "重估 gate", + "subtitle": "S2.100 的五個高層 閘門 中,AwoooP 正式環境落地 evidence 已有正式部署與只讀消費證據,因此本次只把 重點 從 58% 保守重估到 61%;其餘 負責人回覆、脫敏匯入、執行期閘門與 GitHub 主要來源仍是 0 / false。", + "gateLabel": "重估 閘門", "acceptanceLabel": "驗收條件", "guardLabel": "仍禁止", "boundaryTitle": "進度重估邊界", "summary": { "headline": { - "label": "目前 headline", + "label": "目前 重點", "detail": "已從 58% 保守重估到 61%,不把框架層堆疊灌水成落地執行。" }, "signals": { "label": "移動訊號", - "detail": "五個高層 gate 中 1 個已有正式只讀 landing 證據。" + "detail": "五個高層 閘門 中 1 個已有正式只讀 landing 證據。" }, "s49Accepted": { - "label": "S4.9 accepted", + "label": "S4.9 已接受", "detail": "五個 負責人回覆 template 尚未收到可接受 evidence。" }, "review": { "label": "重估紀錄", - "detail": "已建立本次 headline review record;runtime 仍未授權。" + "detail": "已建立本次 重點 審查 record;runtime 仍未授權。" } }, "items": { "s49OwnerResponseAccepted": { "title": "S4.9 負責人回覆驗收", "body": "下一個真正會推動 61% 的 P0 是 Gitea owner attestation:public-only / local gap、org/user endpoint、110 adjacent scope、repo owner canonical scope、legacy / inaccessible disposition 五項要收到脫敏 evidence。", - "acceptance": "五項都通過 preflight 與 S4.13 validation rollup,才可記錄 owner_response_accepted_count > 0。", + "acceptance": "五項都通過 preflight 與 S4.13 validation rollup,才可記錄 owner_response_已接受_count > 0。", "guard": "不代填、不催收、不標記 已收到 / 已接受、不建立審批紀錄。" }, "redactedPayloadAccepted": { - "title": "脫敏 payload 匯入驗收", - "body": "只有 redacted metadata pointer 可以進入只讀收件與驗收;原始 dump、git object、token、cookie、private key 或 credential plaintext 都要隔離。", - "acceptance": "人工批准 ingestion path、preflight 通過、quarantine 結果可追溯後,payloads_ingested 才可改變。", + "title": "脫敏 載荷 匯入驗收", + "body": "只有 redacted 中繼資料指標 可以進入只讀收件與驗收;原始 dump、git object、token、cookie、private key 或 credential plaintext 都要隔離。", + "acceptance": "人工批准 ingestion path、preflight 通過、quarantine 結果可追溯後,載荷s_ingested 才可改變。", "guard": "不收明文機密、不保存原始載荷、不把文件範例當匯入完成。" }, "runtimeGateApproved": { "title": "執行期閘門人工批准", - "body": "Kali `/execute`、SSH、主機更新、掃描、修復、blocking control 與部署都必須另開人工 執行期閘門。", - "acceptance": "scope、rollback、maintenance window、post-check metrics 與人工批准都到齊後,active_runtime_gate_count 才能大於 0。", + "body": "Kali `/execute`、SSH、主機更新、掃描、修復、阻擋控制 與部署都必須另開人工 執行期閘門。", + "acceptance": "scope、回復、maintenance window、事後檢查指標 與人工批准都到齊後,active_runtime_閘門_count 才能大於 0。", "guard": "IwoooS 沒有執行按鈕;進度看板不能啟動 runtime。" }, "githubPrimaryEvidenceReady": { "title": "GitHub 主要來源就緒證據", - "body": "Gitea 轉 GitHub 的長期方向需要 target owner、visibility、refs truth、工作流程 / 機密 name parity 與 rollback ADR 都能驗證。", - "acceptance": "至少一批 repo 有完整負責人回覆與 rollback readiness,primary_ready_count 才能從 0 往上。", + "body": "Gitea 轉 GitHub 的長期方向需要 target owner、visibility、refs 真相、工作流程 / 機密 name parity 與 回復 ADR 都能驗證。", + "acceptance": "至少一批 repo 有完整負責人回覆與 回復 readiness,primary_就緒_count 才能從 0 往上。", "guard": "不建立 repo、不同步 refs、不改 工作流程 / 機密、不切主要來源、不停用 Gitea。" }, "awooopProductionLandingProof": { "title": "AwoooP 正式只讀消費證據", - "body": "AwoooP 主線已在正式站只讀消費 IwoooS / security mirror 的 headline、evidence refs、guard result 與 forbidden actions。", + "body": "AwoooP 主線已在正式站只讀消費 IwoooS / security 鏡像 的 重點、evidence refs、guard result 與 forbidden action。", "acceptance": "已有 Gitea main commit、CD 成功與正式站路由驗證;execution_router_linked=false、runtime_execution_authorized=false。", - "guard": "只讀 landing 不是 approval、操作按鈕、execution router 或 blocking control。" + "guard": "只讀 landing 不是 approval、操作按鈕、execution router 或 阻擋控制。" }, "nextHeadlineReviewRecord": { - "title": "本次 headline review record", + "title": "本次 重點 審查 record", "body": "本次重估只引用 AwoooP 正式只讀 landing 證據,說明為何從 58% 調整到 61%。", "acceptance": "review record 必須引用具體 evidence refs、guard output、風險邊界與禁止動作清單;本次仍鎖 runtime。", - "guard": "不因為新增看板、文件或清單就調整 headline。" + "guard": "不因為新增看板、文件或清單就調整 重點。" } } }, "sourceControlReadiness": { "title": "GitHub 主要來源就緒度", - "subtitle": "把 Gitea 轉 GitHub 的長期方向拆成只讀就緒度:候選 repo、負責人回覆、refs truth、工作流程 / 機密 名稱與 rollback ADR 都要到齊,才會重估 primary_ready_count。", + "subtitle": "把 Gitea 轉 GitHub 的長期方向拆成只讀就緒度:候選 repo、負責人回覆、refs 真相、工作流程 / 機密 名稱與 回復 ADR 都要到齊,才會重估 primary_就緒_count。", "gateLabel": "就緒度閘門", "guardLabel": "仍禁止", "items": { @@ -6894,28 +6897,28 @@ "guard": "不建立 GitHub repo、不改可見性。" }, "primaryReady": { - "title": "primary_ready_count 仍為 0", - "body": "尚無 repo 通過 target、refs、工作流程 / 機密 名稱與 rollback readiness。", + "title": "primary_就緒_count 仍為 0", + "body": "尚無 repo 通過 target、refs、工作流程 / 機密 名稱與 回復 readines。", "guard": "不切 GitHub 主要來源、不停用 Gitea。" }, "ownerResponses": { "title": "負責人回覆仍等待", - "body": "S4.9-S4.12 共 22 個範本,目前 received=0、accepted=0。", - "guard": "不把 request-ready 當 response accepted。" + "body": "S4.9-S4.12 共 22 個範本,目前 已收到=0、已接受=0。", + "guard": "不把 request-就緒 當 回覆已接受。" }, "refsTruth": { "title": "Refs truth 尚未接受", "body": "main / dev truth、release tags、deprecated refs 仍需 owner 判定。", - "guard": "不 push、delete、force push refs。" + "guard": "不 push、delete、強制推送 ref。" }, "workflowSecrets": { "title": "工作流程 / 機密 名稱未完成", - "body": "7 個範圍內 repo 的 workflow、runner、webhook、secret name parity 還缺 evidence。", + "body": "7 個範圍內 repo 的 工作流程、runner、webhook、機密 name parity 還缺 evidence。", "guard": "只收名稱與 owner,不收 機密明文值。" }, "rollbackAdr": { "title": "Rollback ADR 未批准", - "body": "7 個範圍內 repo 的 rollback 負責人、驗證窗口與 trigger 尚待人工審查。", + "body": "7 個範圍內 repo 的 回復 負責人、驗證窗口與 trigger 尚待人工審查。", "guard": "不 dry-run cutover、不切 primary。" } } @@ -7028,7 +7031,7 @@ }, "redactedEvidence": { "title": "收脫敏證據", - "body": "目前沒有匯入 payload;後續只能先收可驗證、可隔離、可回溯的脫敏證據。", + "body": "目前沒有匯入 載荷;後續只能先收可驗證、可隔離、可回溯的脫敏證據。", "movement": "schema、遮罩、來源、隔離與拒收規則都通過後,才進入下一步。", "guard": "不收機密明文值、不保存 token value、不直接改外部系統。" }, @@ -7094,13 +7097,13 @@ "title": "分支 / 標籤真相回覆", "body": "需要 main、dev、release tag、deprecated refs 與保留策略的負責人判定。", "movement": "五項 refs 真相都齊全後,才允許規劃同步或清理方案。", - "guard": "不同步、不刪除、不 force push 任何分支或標籤參照。" + "guard": "不同步、不刪除、不 強制推送 任何分支或標籤參照。" }, "workflowSecretNames": { "title": "工作流程 / 機密名稱回覆", - "body": "需要 workflow、runner、webhook、secret name parity 與部署責任人的脫敏回覆。", + "body": "需要 工作流程、runner、webhook、機密 name parity 與部署責任人的脫敏回覆。", "movement": "五項名稱與責任範圍齊全後,才允許進入設定差異審查。", - "guard": "不收機密明文值、不修改工作流程、不注入或旋轉 secret。" + "guard": "不收機密明文值、不修改工作流程、不注入或旋轉 機密。" } } }, @@ -7432,7 +7435,7 @@ "title": "主要來源分離", "body": "GitHub 主要來源切換、Gitea 停用、工作流程 / 機密設定或 refs 動作不能由候選直接推進。", "preflight": "只標記需要另開主要來源或版本控制人工閘門。", - "guard": "不切 GitHub 主要來源、不停用 Gitea、不改 workflow / 機密設定。" + "guard": "不切 GitHub 主要來源、不停用 Gitea、不改 工作流程 / 機密設定。" } } }, @@ -7494,15 +7497,15 @@ }, "quarantineSensitivePayload": { "title": "隔離敏感載荷", - "body": "若候選含機密明文、token、cookie、private key 或 exploit payload,必須先隔離。", + "body": "若候選含機密明文、token、cookie、private key 或 exploit 載荷,必須先隔離。", "result": "只標記隔離原因與來源欄位。", "guard": "不展示、不保存、不轉送任何機密明文值。" }, "rejectMutationRequest": { "title": "拒收變更要求", - "body": "若候選夾帶專案庫、refs、workflow、機密設定、主機或部署變更要求,先拒收。", + "body": "若候選夾帶專案庫、refs、工作流程、機密設定、主機或部署變更要求,先拒收。", "result": "只標記拒收原因,等待重新提交只讀候選。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定。" }, "runtimeOrCutoverGateRequired": { "title": "另開執行或切換閘門", @@ -7576,9 +7579,9 @@ }, "handoffSourceControlPointer": { "title": "主要來源指標包", - "body": "GitHub 主要來源切換、Gitea 停用、refs 或 workflow / 機密設定 動作只能作為後續人工閘門指標。", + "body": "GitHub 主要來源切換、Gitea 停用、refs 或 工作流程 / 機密設定 動作只能作為後續人工閘門指標。", "handoff": "只標記版本控制與主要來源相關待決事項。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不停用 Gitea。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不停用 Gitea。" } } }, @@ -7640,9 +7643,9 @@ }, "mutationRequestReject": { "title": "變更要求拒收檢查", - "body": "檢查交接包是否夾帶專案庫、refs、workflow、機密設定、部署或主機變更要求。", + "body": "檢查交接包是否夾帶專案庫、refs、工作流程、機密設定、部署或主機變更要求。", "review": "只標記需要拒收或重送只讀版本的項目。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeCutoverSeparation": { "title": "執行與切換分離", @@ -7710,15 +7713,15 @@ }, "quarantineSensitivePayload": { "title": "隔離敏感載荷", - "body": "若交接包或補件夾帶 token、cookie、private key、密碼或 exploit payload,必須隔離。", + "body": "若交接包或補件夾帶 token、cookie、private key、密碼或 exploit 載荷,必須隔離。", "result": "只標記隔離原因與來源欄位。", "guard": "不展示、不保存、不轉送任何機密明文值。" }, "rejectMutationRequest": { "title": "拒收變更要求", - "body": "若驗收結果夾帶專案庫、refs、workflow、機密設定、部署或主機變更要求,先拒收。", + "body": "若驗收結果夾帶專案庫、refs、工作流程、機密設定、部署或主機變更要求,先拒收。", "result": "只標記拒收原因,等待重新提交只讀版本。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeOrCutoverGateRequired": { "title": "另開執行或切換閘門", @@ -7792,9 +7795,9 @@ }, "mutationRejectionPacket": { "title": "變更拒收包", - "body": "整理專案庫、refs、workflow、機密設定、部署或主機變更要求是否已被拒收。", + "body": "整理專案庫、refs、工作流程、機密設定、部署或主機變更要求是否已被拒收。", "prepare": "只標記拒收理由與需要重送只讀版本的項目。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeCutoverPointer": { "title": "執行切換指標包", @@ -7868,9 +7871,9 @@ }, "mutationRejectionCheck": { "title": "變更拒收檢查", - "body": "確認專案庫、refs、workflow、機密設定、部署或主機變更要求是否已被拒收或隔離。", + "body": "確認專案庫、refs、工作流程、機密設定、部署或主機變更要求是否已被拒收或隔離。", "review": "只標記拒收狀態與需要重送只讀版本的項目。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeCutoverSeparationCheck": { "title": "執行切換分離檢查", @@ -7944,9 +7947,9 @@ }, "rejectMutationRequest": { "title": "拒收變更要求", - "body": "若結果夾帶專案庫、refs、workflow、機密設定、部署或主機變更要求,必須拒收。", + "body": "若結果夾帶專案庫、refs、工作流程、機密設定、部署或主機變更要求,必須拒收。", "result": "只標記拒收原因,等待重新提交只讀版本。", - "guard": "不建立專案庫、不改 refs、不改 workflow / 機密設定、不部署。" + "guard": "不建立專案庫、不改 refs、不改 工作流程 / 機密設定、不部署。" }, "runtimeOrPrimaryGateRequired": { "title": "另開執行或主要來源閘門", @@ -8338,32 +8341,32 @@ }, "awooopReadOnlyLandingReadiness": { "title": "AwoooP 只讀接入就緒度", - "subtitle": "S2.51 把 AwoooP 主線要如何只讀消費 IwoooS / 資安鏡像狀態整理成接入準備面板。這是接入就緒度,不是 production landing enabled,也不接 execution router。", + "subtitle": "S2.51 把 AwoooP 主線要如何只讀消費 IwoooS / 資安鏡像狀態整理成接入準備面板。這是接入就緒度,不是 正式環境落地 enabled,也不接 execution router。", "readinessLabel": "只讀接入", "requirementLabel": "接入要求", "guardLabel": "仍鎖住", "items": { "rollupSnapshotReadable": { "title": "彙總快照可讀", - "body": "`security-mirror-status-rollup.snapshot.json` 與 `iwooos-posture-projection.snapshot.json` 已可作為 AwoooP 只讀入口的主要來源。", + "body": "`security-鏡像-status-rollup.snapshot.json` 與 `iwooos-posture-projection.snapshot.json` 已可作為 AwoooP 只讀入口的主要來源。", "requirement": "AwoooP 只讀消費已提交快照與 guard output,不直接呼叫 Kali、Gitea、GitHub 或 runtime API。", "guard": "production_landing_enabled=false;execution router linked=false" }, "evidenceRefsReadable": { - "title": "Evidence refs 可追溯", - "body": "IwoooS 已列出資安 rollout、負責人回覆驗證、Kali 狀態、彙總與投影的 evidence refs。", + "title": "證據 refs 可追溯", + "body": "IwoooS 已列出資安 分階段套用、負責人回覆驗證、Kali 狀態、彙總與投影的 evidence ref。", "requirement": "AwoooP landing 只能顯示 evidence refs 與狀態摘要,不保存原始載荷、credential plaintext 或 token value。", - "guard": "payloads_ingested=false;機密明文值 collection=false" + "guard": "載荷s_ingested=false;機密明文值 collection=false" }, "guardChecksKnown": { "title": "Guard 檢查已知", - "body": "`security-mirror-progress-guard.py` 與 `source-control-owner-response-guard.py` 是接入前必跑的只讀檢查。", + "body": "`security-鏡像-progress-guard.py` 與 `source-control-owner-response-guard.py` 是接入前必跑的只讀檢查。", "requirement": "AwoooP 主線接入前必須保留進度、負責人回覆、runtime flags、操作按鈕 與 forbidden output 檢查。", - "guard": "不跳過 guard;不把 guard pass 當 runtime approval" + "guard": "不跳過 guard;不把 guard pass 當 runtime 批准" }, "routeGroupsKnown": { "title": "鏡像路由群組已知", - "body": "`security_mirror_route_v1` 已定義操作控制台、runtime state、channel event、audit evidence、approval queue 的只讀目的地。", + "body": "`security_鏡像_route_v1` 已定義操作控制台、runtime state、channel event、audit evidence、approval queue 的只讀目的地。", "requirement": "AwoooP 只能依 route group 顯示與分類,不新增掃描、執行、修復、repo、refs 或部署動作。", "guard": "action_buttons_allowed=false;runtime_execution_authorized=false" }, @@ -8377,40 +8380,40 @@ "title": "Production 交接仍待接入", "body": "目前只是 AwoooP 只讀 landing 的接入準備,尚未證明 AwoooP production 主線已消費這組狀態。", "requirement": "需要後續 PR / deployment evidence 證明 AwoooP 主線只讀顯示 rollup、evidence refs 與 guard result。", - "guard": "progress_change_applied=false;headline percent delta=0" + "guard": "progress_change_applied=false;重點 percent delta=0" } } }, "progressAcceleration": { "title": "進度加速與真正解鎖點", - "subtitle": "目前不是沒有推進,而是 61% headline 只在負責人回覆、執行期閘門、GitHub 主要來源就緒度或 AwoooP production landing 有實質 evidence 時才會重估。這裡把下一批有感推進點集中顯示。", + "subtitle": "目前不是沒有推進,而是 61% 重點 只在負責人回覆、執行期閘門、GitHub 主要來源就緒度或 AwoooP 正式環境落地 有實質 evidence 時才會重估。這裡把下一批有感推進點集中顯示。", "laneLabel": "加速路線", "unlockLabel": "解鎖訊號", "guardLabel": "仍維持低摩擦邊界", "items": { "ownerResponses": { "title": "負責人回覆先收斂", - "body": "S4.9-S4.12 的 Gitea、GitHub target、refs truth、工作流程 / 機密 name 負責人回覆是目前 61% 最主要的卡點。", - "unlock": "收到並驗收第一批脫敏負責人回覆後,headline 才有重估依據。", - "guard": "只收脫敏 evidence;不建立 repo、不同步 refs、不修改 workflow、不收 機密明文值。" + "body": "S4.9-S4.12 的 Gitea、GitHub target、refs 真相、工作流程 / 機密 name 負責人回覆是目前 61% 最主要的卡點。", + "unlock": "收到並驗收第一批脫敏負責人回覆後,重點 才有重估依據。", + "guard": "只收脫敏 evidence;不建立 repo、不同步 refs、不修改 工作流程、不收 機密明文值。" }, "redactedIngestion": { "title": "脫敏匯入接上可見證據", - "body": "資安 finding、Kali observe 訊號與負責人 evidence 需要先以 redacted metadata 進入只讀收件面,再談 runtime。", - "unlock": "redacted payload ingestion adapter 經人工批准並通過 preflight 後,runtime landing 會有實質訊號。", + "body": "資安 發現、Kali observe 訊號與負責人 evidence 需要先以 redacted metadata 進入只讀收件面,再談 runtime。", + "unlock": "脫敏載荷 ingestion adapter 經人工批准並通過 preflight 後,runtime landing 會有實質訊號。", "guard": "不收原始載荷、不收 credential plaintext、不啟動 active scan。" }, "runtimeGate": { - "title": "Runtime gate 必須獨立批准", - "body": "後續真正掃描、修復、主機更新或 blocking control 都不能從前端狀態自動推進。", - "unlock": "S3 / S3.4 有人工批准、rollback、post-check metrics 與 active 執行期閘門 後,才進入落地重估。", - "guard": "active 執行期閘門=0;操作按鈕=false;Kali /execute 仍是 block candidate。" + "title": "Runtime 閘門 必須獨立批准", + "body": "後續真正掃描、修復、主機更新或 阻擋控制 都不能從前端狀態自動推進。", + "unlock": "S3 / S3.4 有人工批准、回復、事後檢查指標 與 active 執行期閘門 後,才進入落地重估。", + "guard": "active 執行期閘門=0;操作按鈕=false;Kali /execute 仍是 阻擋候選。" }, "githubReadiness": { "title": "GitHub 主要來源就緒度要拆關鍵缺口", - "body": "Gitea 轉 GitHub 的大方向已確認,但 target、refs、工作流程 / 機密 name、rollback ADR 還沒全量驗證。", - "unlock": "負責人回覆、refs truth、workflow parity 與 rollback ADR 都可驗證後,primary_ready_count 才能往上。", - "guard": "不切主要來源、不 force push、不刪 refs、不建立未批准 target repo。" + "body": "Gitea 轉 GitHub 的大方向已確認,但 target、refs、工作流程 / 機密 name、回復 ADR 還沒全量驗證。", + "unlock": "負責人回覆、refs 真相、工作流程 parity 與 回復 ADR 都可驗證後,primary_就緒_count 才能往上。", + "guard": "不切主要來源、不 強制推送、不刪 refs、不建立未批准 target repo。" }, "awooopLanding": { "title": "AwoooP / IwoooS 主線可見", @@ -8421,14 +8424,14 @@ "cadenceCompression": { "title": "後續節奏改成批次推進", "body": "S2.38-S2.45 太多細層 checklist 讓進度看起來碎。後續應優先收斂 P0 負責人回覆 與 AwoooP landing,而不是無限拆小核對項。", - "unlock": "相同類型的 framework detail 之後合併成一批回報,只有高層 gate 變動才調整 headline。", - "guard": "節奏加快不等於放寬安全;runtime 與 source-control cutover 仍需人工 gate。" + "unlock": "相同類型的 framework detail 之後合併成一批回報,只有高層 閘門 變動才調整 重點。", + "guard": "節奏加快不等於放寬安全;runtime 與 source-control cutover 仍需人工 閘門。" } } }, "ownerResponseNextActionFocus": { - "title": "Owner Response 下一步收件焦點", - "subtitle": "S2.47 將下一個真正能推動 61% 的 負責人回覆 工作排清楚:先收 S4.9 Gitea owner attestation,再依序處理 GitHub target、refs truth、工作流程 / 機密 name。這裡只顯示收件焦點,不催收、不代填、不標記 received。", + "title": "負責人 Response 下一步收件焦點", + "subtitle": "S2.47 將下一個真正能推動 61% 的 負責人回覆 工作排清楚:先收 S4.9 Gitea owner attestation,再依序處理 GitHub target、refs 真相、工作流程 / 機密 name。這裡只顯示收件焦點,不催收、不代填、不標記 已收到。", "focusLabel": "下一步焦點", "nextLabel": "要看的 evidence", "guardLabel": "仍禁止", @@ -8436,41 +8439,41 @@ "giteaOwnerAttestation": { "title": "S4.9 Gitea owner attestation 先收", "body": "先確認 Gitea 覆蓋範圍、public-only / local gap、org/user endpoint、110 adjacent source、canonical owner 與 legacy disposition。", - "next": "需要 owner 依 GITEA-INVENTORY-OWNER-ATTESTATION-RESPONSE 回覆 5 個脫敏 evidence refs。", - "guard": "received=0;accepted=0;不保存 token value、不寫 Gitea、不 sync refs、不切 primary。" + "next": "需要 owner 依 GITEA-INVENTORY-OWNER-ATTESTATION-RESPONSE 回覆 5 個脫敏 evidence ref。", + "guard": "已收到=0;已接受=0;不保存 token value、不寫 Gitea、不 同步 refs、不切 primary。" }, "githubTargetOwnerDecision": { "title": "S4.10 GitHub target 決策接續", "body": "確認每個 GitHub target 的 owner、visibility、canonical disposition 與 not_found_or_private 處理方式。", - "next": "S4.9 通過後,才依 GITHUB-TARGET-OWNER-DECISION-RESPONSE 收 7 個 target responses。", + "next": "S4.9 通過後,才依 GITHUB-TARGET-OWNER-DECISION-RESPONSE 收 7 個 target response。", "guard": "不建立 GitHub repo、不改 visibility、不同步 refs、不把 target response 當 primary approval。" }, "refsTruthOwnerResponse": { "title": "S4.11 Refs truth 再判定", "body": "釐清 main/dev truth、deprecated drift、release tag 與 GitHub-only refs,避免 migration 時把舊 refs 誤當真相。", "next": "需要 repo owner 對 141 個 ref review items 做單 repo / 單 ref 判定。", - "guard": "不 fetch、不 push、不 delete refs、不 force push、不 rewrite history。" + "guard": "不 fetch、不 push、不 delete refs、不 強制推送、不 rewrite history。" }, "workflowSecretOwnerResponse": { "title": "S4.12 工作流程 / 機密 名稱最後補齊", - "body": "補 webhook、runner、deploy key、branch protection / CODEOWNERS、repository secret name parity。", + "body": "補 webhook、runner、deploy key、branch protection / CODEOWNERS、repository 機密 name parity。", "next": "只收名稱、owner 與脫敏 parity evidence,讓 GitHub readiness 有可驗證缺口表。", - "guard": "不收 機密明文值、不改 workflow、不啟用 runner、不使用 write token。" + "guard": "不收 機密明文值、不改 工作流程、不啟用 runner、不使用 write token。" } } }, "s49OwnerResponseRequestTemplates": { - "title": "S4.9 Owner Response 五個回覆 Template", - "subtitle": "S2.49 將 S4.9 owner 要逐項回答的五個 template 顯示在 IwoooS。這裡只是 request-ready 清單:request 仍未送出、不催收、不代填、不標記 已收到 / 已接受,也不把任何 template 當成 Gitea inventory 或 GitHub migration approval。", + "title": "S4.9 負責人 Response 五個回覆 Template", + "subtitle": "S2.49 將 S4.9 owner 要逐項回答的五個 template 顯示在 IwoooS。這裡只是 request-就緒 清單:request 仍未送出、不催收、不代填、不標記 已收到 / 已接受,也不把任何 template 當成 Gitea inventory 或 GitHub migration approval。", "templateLabel": "Template", - "ownerActionLabel": "Owner 要回覆", + "ownerActionLabel": "負責人 要回覆", "guardLabel": "仍禁止", "items": { "publicOnlyVsLocalGiteaGap": { "title": "Public-only / local Gitea gap", "body": "判定 `wooo/clawbot-v5` 與 `wooo/wooo-aiops` 是否屬於本輪 inventory / migration scope。", - "ownerAction": "逐 repo 回覆 in scope、out of scope、legacy archived、external system、inaccessible 或 needs more evidence,並引用脫敏 evidence refs。", - "guard": "request_ready_not_sent;received=0;accepted=0;不寫 Gitea、不建立 repo、不 sync refs。" + "ownerAction": "逐 repo 回覆 in scope、out of scope、legacy archived、external system、inaccessible 或 needs more evidence,並引用脫敏 evidence ref。", + "guard": "request_就緒_not_sent;已收到=0;已接受=0;不寫 Gitea、不建立 repo、不 同步 ref。" }, "orgUserEndpointIdentity": { "title": "Gitea `wooo` org/user endpoint", @@ -8492,8 +8495,8 @@ }, "legacyOrInaccessibleDisposition": { "title": "Legacy / inaccessible disposition", - "body": "對 legacy、inaccessible 或 external repo 留下 disposition、理由與 follow-up owner。", - "ownerAction": "標示 archive、exclude、follow-up evidence 或 external owner,並保留脫敏 trace。", + "body": "對 legacy、inaccessible 或 external repo 留下 disposition、理由與 後續追蹤 owner。", + "ownerAction": "標示 archive、exclude、後續追蹤 evidence 或 external owner,並保留脫敏 trace。", "guard": "不刪除、不停用、不封存 repo;disposition 只是人工分類,不是執行命令。" } } @@ -8519,7 +8522,7 @@ }, "accepted": { "label": "已接受", - "detail": "目前仍是 0,不推動 headline。" + "detail": "目前仍是 0,不推動 重點。" } }, "items": { @@ -8584,11 +8587,11 @@ }, "singleSecurityNarrative": { "title": "收斂資安敘事", - "body": "原本分散在安全、合規、治理、授權、告警與 Code Review 的內容,統一由 IwoooS 顯示整體邊界。" + "body": "原本分散在安全、合規、治理、授權、告警與 程式碼審查 的內容,統一由 IwoooS 顯示整體邊界。" }, "runtimeControls": { "title": "不新增執行控制", - "body": "本階段只有可視化與資訊架構整理,不新增掃描、修復、批准、部署或 blocking control。" + "body": "本階段只有可視化與資訊架構整理,不新增掃描、修復、批准、部署或 阻擋控制。" } } }, @@ -8718,11 +8721,11 @@ "evidencePacket": { "title": "脫敏證據包", "body": "可以整理版本來源、負責人回覆、快照與 guard 結果的脫敏參照。", - "gate": "不可收集機密明文、token value 或未脫敏 payload。" + "gate": "不可收集機密明文、token value 或未脫敏 載荷。" }, "humanReviewPrep": { "title": "人工審查準備", - "body": "可以把例外、風險接受、修復順序與候選 gate 整理成人工審查材料。", + "body": "可以把例外、風險接受、修復順序與候選 閘門 整理成人工審查材料。", "gate": "不可把準備材料視為批准紀錄或執行期閘門。" }, "runtimeClosed": { @@ -8734,9 +8737,9 @@ }, "progressMovementSignals": { "title": "61% 進度移動訊號驗收條", - "subtitle": "S2.113 把真正會讓整體資安網 headline 往前的訊號拉到 IwoooS:AwoooP 落地證據已驗證為 1,讓整體從 58% 保守重估到 61%;負責人回覆、脫敏證據匯入、執行期閘門與 GitHub 主要來源仍是 0 或 false。", + "subtitle": "S2.113 把真正會讓整體資安網 重點 往前的訊號拉到 IwoooS:AwoooP 落地證據已驗證為 1,讓整體從 58% 保守重估到 61%;負責人回覆、脫敏證據匯入、執行期閘門與 GitHub 主要來源仍是 0 或 false。", "boundaryTitle": "進度移動驗收邊界", - "boundaryIntro": "以下鍵值固定:這是 headline 移動條件的只讀驗收條,不是進度灌水、批准、掃描、修復、部署、主機變更或版本來源操作入口。", + "boundaryIntro": "以下鍵值固定:這是 重點 移動條件的只讀驗收條,不是進度灌水、批准、掃描、修復、部署、主機變更或版本來源操作入口。", "summary": { "headline": { "label": "目前進度", @@ -8748,7 +8751,7 @@ }, "passed": { "label": "已通過", - "detail": "目前 1,AwoooP 正式只讀 landing 是第一個 headline 移動證據。" + "detail": "目前 1,AwoooP 正式只讀 landing 是第一個 重點 移動證據。" }, "runtime": { "label": "執行期閘門", @@ -8758,11 +8761,11 @@ "items": { "ownerResponse": { "title": "負責人回覆接受", - "body": "S4.9 至少要有可追溯、已脫敏且通過驗收的 負責人回覆,才可能觸發 headline review。" + "body": "S4.9 至少要有可追溯、已脫敏且通過驗收的 負責人回覆,才可能觸發 重點 審查。" }, "redactedEvidence": { "title": "脫敏證據匯入", - "body": "只接受 metadata 與脫敏參照;未脫敏 payload、機密明文與 token value 仍要隔離。" + "body": "只接受 metadata 與脫敏參照;未脫敏 載荷、機密明文與 token value 仍要隔離。" }, "runtimeGate": { "title": "執行期閘門開啟", @@ -8770,7 +8773,7 @@ }, "sourceControl": { "title": "GitHub 主要來源就緒", - "body": "需要 target、refs truth、工作流程 / 機密 名稱與 rollback readiness 都有 owner evidence。" + "body": "需要 target、refs 真相、工作流程 / 機密 名稱與 回復 readiness 都有 owner evidence。" }, "awooopLanding": { "title": "AwoooP 落地證據", @@ -8783,7 +8786,7 @@ "subtitle": "S2.123 回應「很難理解有哪些具體工作」:把目前資安網拆成六條實體工作流。已完成的是前台可視化與只讀框架;真正會推動 61% 的下一步仍是 S4.9 負責人回覆被收到、脫敏並接受。", "workLabel": "工作", "boundaryTitle": "具體工作邊界", - "boundaryIntro": "以下鍵值固定:這張圖只是把具體工作流講清楚,不是 runtime 授權、Kali 掃描、主機變更、repo/refs/workflow/secret 操作、GitHub primary 切換或 Gitea 停用。", + "boundaryIntro": "以下鍵值固定:這張圖只是把具體工作流講清楚,不是 runtime 授權、Kali 掃描、主機變更、repo/refs/工作流程/機密 操作、GitHub primary 切換或 Gitea 停用。", "summary": { "streams": { "label": "工作流", @@ -8795,7 +8798,7 @@ }, "realGate": { "label": "下一真門檻", - "detail": "S4.9 負責人回覆 accepted 才會讓 61% 有機會移動。" + "detail": "S4.9 負責人回覆 已接受 才會讓 61% 有機會移動。" }, "runtime": { "label": "執行授權", @@ -8810,18 +8813,18 @@ }, "hostScopeInventory": { "title": "主機與範圍盤點框架", - "body": "已把 Kali 192.168.0.112、開發主機 192.168.0.168、192.168.0.111 放入 host coverage、action gate 與 evidence readiness。", + "body": "已把 Kali 192.168.0.112、開發主機 192.168.0.168、192.168.0.111 放入 host coverage、action 閘門 與 evidence readines。", "evidence": "具體產出:看得到主機納管範圍與禁止動作;尚未 SSH、更新主機、掃描或變更設定。" }, "sourceControlMigration": { "title": "GitHub / Gitea 版本來源遷移準備", - "body": "已建立 GitHub primary readiness、rollback ADR、refs truth、workflow/secret 名稱盤點與 負責人回覆 驗收框架。", - "evidence": "具體產出:知道哪些 repo、refs、workflow/secret 要 owner 回覆;尚未建立 repo、同步 refs、切 primary 或停用 Gitea。" + "body": "已建立 GitHub 主要來源就緒度、回復 ADR、refs 真相、工作流程/機密 名稱盤點與 負責人回覆 驗收框架。", + "evidence": "具體產出:知道哪些 repo、refs、工作流程/機密 要 owner 回覆;尚未建立 repo、同步 refs、切 primary 或停用 Gitea。" }, "ownerEvidenceIntake": { "title": "S4.9 負責人回覆與脫敏證據收件", "body": "已把第一個能推動 61% 的路徑拆成工作單、封套欄位、送件前檢查、送件鏈路與第一解鎖證據包。", - "evidence": "具體產出:下一步很明確,是收到並驗收可追溯的 S4.9 負責人回覆;目前 received/accepted 仍是 0。" + "evidence": "具體產出:下一步很明確,是收到並驗收可追溯的 S4.9 負責人回覆;目前 已收到/已接受 仍是 0。" }, "reviewerHumanFlow": { "title": "reviewer / 人工審查流程", @@ -8831,7 +8834,7 @@ "runtimeExecutionGate": { "title": "runtime 掃描、修復、部署與主機變更", "body": "已把所有執行動作放在人工批准與後續 執行期閘門 之後,不讓初期框架把資安限制拉太高。", - "evidence": "具體產出:目前 active_runtime_gate_count=0,scan/deploy/host change/source-control mutation 全部仍禁止。" + "evidence": "具體產出:目前 active_runtime_閘門_count=0,scan/deploy/主機變更/source-control mutation 全部仍禁止。" } } }, @@ -8871,21 +8874,21 @@ }, "hostScopeEvidence": { "title": "主機範圍與證據欄位", - "delivered": "已把 Kali 192.168.0.112、開發主機 192.168.0.168、192.168.0.111 納入只讀 host coverage 與 action gate。", + "delivered": "已把 Kali 192.168.0.112、開發主機 192.168.0.168、192.168.0.111 納入只讀 host coverage 與 action 閘門。", "next": "等待脫敏主機證據、範圍確認與負責人回覆進入收件流程。", "blocked": "不可 SSH、更新主機、掃描、調整設定或收未脫敏主機資料。" }, "sourceControlEvidence": { "title": "GitHub / Gitea 遷移證據", - "delivered": "已建立 GitHub primary readiness、rollback ADR、refs truth、workflow/secret 名稱與 負責人回覆 驗收框架。", - "next": "等待 GitHub target owner、refs truth、workflow/secret 名稱與 Gitea attestation 的脫敏 負責人回覆。", - "blocked": "不可建立 repo、同步 refs、修改 workflow/secret、切 GitHub primary 或停用 Gitea。" + "delivered": "已建立 GitHub 主要來源就緒度、回復 ADR、refs 真相、工作流程/機密 名稱與 負責人回覆 驗收框架。", + "next": "等待 GitHub target owner、refs 真相、工作流程/機密 名稱與 Gitea attestation 的脫敏 負責人回覆。", + "blocked": "不可建立 repo、同步 refs、修改 工作流程/機密、切 GitHub primary 或停用 Gitea。" }, "s49OwnerPacket": { "title": "S4.9 第一解鎖證據包", "delivered": "已定義工作單、封套欄位、送件前檢查、送件結果分流、送件鏈路與第一解鎖證據包。", "next": "收到可追溯、已脫敏且可預檢的 S4.9 負責人回覆。", - "blocked": "不可收 raw payload、機密明文、token value 或把草稿當成已收到。" + "blocked": "不可收 raw 載荷、機密明文、token value 或把草稿當成已收到。" }, "reviewerPreparation": { "title": "人工 reviewer 準備序列", @@ -8896,23 +8899,23 @@ "runtimeGate": { "title": "runtime 開閘條件", "delivered": "已把掃描、修復、部署、主機變更與 Kali 執行放在後續人工批准與 執行期閘門 之後。", - "next": "需要明確人工批准、scope、rollback、disable 條件與 active 執行期閘門。", - "blocked": "不可 scan、deploy、host change、Kali execution、source-control mutation 或生產部署。" + "next": "需要明確人工批准、scope、回復、disable 條件與 active 執行期閘門。", + "blocked": "不可 scan、deploy、主機變更、Kali execution、source-control mutation 或生產部署。" } } }, "concreteSecurityBlockerResolution": { "title": "目前阻塞與解除條件", - "subtitle": "S2.125 把 61% 無法前進的原因拆成六個阻塞點。每個阻塞點都標明為什麼卡住,以及要用哪種脫敏證據或人工 gate 才能解除;這仍是只讀狀態,不是批准或執行入口。", + "subtitle": "S2.125 把 61% 無法前進的原因拆成六個阻塞點。每個阻塞點都標明為什麼卡住,以及要用哪種脫敏證據或人工 閘門 才能解除;這仍是只讀狀態,不是批准或執行入口。", "blockerLabel": "阻塞", "whyLabel": "卡住原因", "unlockLabel": "解除條件", "boundaryTitle": "阻塞解除邊界", - "boundaryIntro": "以下鍵值固定:阻塞解除圖只說明為什麼 headline 仍是 61%,不會自動收件、開 reviewer queue、啟動 Kali、改主機、同步 refs、切 GitHub primary 或停用 Gitea。", + "boundaryIntro": "以下鍵值固定:阻塞解除圖只說明為什麼 重點 仍是 61%,不會自動收件、開 reviewer queue、啟動 Kali、改主機、同步 refs、切 GitHub primary 或停用 Gitea。", "summary": { "blockers": { "label": "阻塞點", - "detail": "六個阻塞共同讓 headline 暫停。" + "detail": "六個阻塞共同讓 重點 暫停。" }, "resolved": { "label": "已解除", @@ -8931,32 +8934,32 @@ "ownerResponseMissing": { "title": "S4.9 負責人回覆 尚未收到", "why": "沒有可追溯負責人回覆,就不能把下一步視為有效進度證據。", - "unlock": "收到已脫敏、含 owner role / decision / scope / reason / follow-up owner 的 S4.9 回覆。" + "unlock": "收到已脫敏、含 owner role / decision / scope / reason / 後續追蹤 owner 的 S4.9 回覆。" }, "redactedEvidenceMissing": { "title": "脫敏證據參照尚未成立", - "why": "未脫敏 payload、機密明文與 token value 都不能進入前台或台帳。", + "why": "未脫敏 載荷、機密明文與 token value 都不能進入前台或台帳。", "unlock": "只收 metadata、evidence refs、脫敏聲明與預檢軌跡,並通過收件預檢。" }, "reviewerQueueClosed": { "title": "reviewer queue 仍關閉", "why": "證據未被接受前,不應建立 reviewer candidate 或指派 reviewer。", - "unlock": "owner evidence accepted 後,再由人工決定是否開 queue、建立 candidate 與指派 reviewer。" + "unlock": "owner evidence 已接受 後,再由人工決定是否開 queue、建立 candidate 與指派 reviewer。" }, "sourceControlNotReady": { - "title": "GitHub primary readiness 未成立", - "why": "GitHub target owner、refs truth、workflow/secret 名稱與 rollback readiness 還沒有 owner evidence。", - "unlock": "四類版本來源證據都收到、脫敏、預檢並接受後,才可進入 primary readiness review。" + "title": "GitHub 主要來源就緒度 未成立", + "why": "GitHub target owner、refs 真相、工作流程/機密 名稱與 回復 readiness 還沒有 owner evidence。", + "unlock": "四類版本來源證據都收到、脫敏、預檢並接受後,才可進入 主要來源就緒度 review。" }, "hostEvidencePending": { "title": "主機證據仍待收件", "why": "Kali 與開發主機雖已納入範圍,但沒有被授權執行 live 掃描或主機調校。", - "unlock": "收到脫敏主機範圍、owner 回覆、變更風險與 rollback 條件後,才討論 執行期閘門。" + "unlock": "收到脫敏主機範圍、owner 回覆、變更風險與 回復 條件後,才討論 執行期閘門。" }, "runtimeGateClosed": { "title": "執行期閘門 未開", - "why": "目前所有 scan、repair、deploy、host change、Kali execution 都被擋在人工批准之後。", - "unlock": "需要明確人工批准、scope、rollback、disable 條件與 active 執行期閘門 才能執行。" + "why": "目前所有 scan、repair、deploy、主機變更、Kali execution 都被擋在人工批准之後。", + "unlock": "需要明確人工批准、scope、回復、disable 條件與 active 執行期閘門 才能執行。" } } }, @@ -8998,25 +9001,25 @@ "title": "所有前台網站與公開產品頁", "current": "可套用安全狀態摘要、低摩擦說明、合規 / 風險可視化與繁中文案規範。", "next": "先接只讀資安摘要,不放掃描、修復、部署或主機操作按鈕。", - "boundary": "不得讓公開頁面暴露內網 IP、敏感證據、機密明文值 或 raw payload。" + "boundary": "不得讓公開頁面暴露內網 IP、敏感證據、機密明文值 或 raw 載荷。" }, "sourceControl": { "title": "GitHub / Gitea 所有專案庫", - "current": "可套用 GitHub primary readiness、refs truth、工作流程 / 機密 名稱與 rollback readiness 欄位。", - "next": "等待 負責人回覆 與脫敏證據後,再評估每個 repo 的 primary readiness。", + "current": "可套用 GitHub 主要來源就緒度、refs 真相、工作流程 / 機密 名稱與 回復 readiness 欄位。", + "next": "等待 負責人回覆 與脫敏證據後,再評估每個 repo 的 主要來源就緒度。", "boundary": "不得自動建立 repo、同步 refs、修改 工作流程 / 機密、切 primary 或停用 Gitea。" }, "hosts": { "title": "Kali 與開發主機", - "current": "可套用 host coverage、action gate、evidence readiness 與三軸進度。", + "current": "可套用 host coverage、action 閘門、evidence readiness 與三軸進度。", "next": "等待人工批准與主機範圍證據後,才討論 live scan 或調校。", "boundary": "不得自動 SSH、更新主機、掃描、變更設定或收未脫敏資料。" }, "toolsMonitoring": { "title": "監控、工具與自動化流程", - "current": "可套用只讀狀態、阻塞解除條件、evidence refs 與人工 gate 顯示。", - "next": "先讓工具輸出 metadata-only evidence,再接 reviewer 與 執行期閘門。", - "boundary": "不得讓工具自動觸發修復、部署、secret 收集或外部付費變更。" + "current": "可套用只讀狀態、阻塞解除條件、evidence refs 與人工 閘門 顯示。", + "next": "先讓工具輸出 僅中繼資料證據,再接 reviewer 與 執行期閘門。", + "boundary": "不得讓工具自動觸發修復、部署、機密 收集或外部付費變更。" }, "futureProducts": { "title": "未來新增專案與產品", @@ -9028,13 +9031,13 @@ }, "productRolloutWaveLedger": { "title": "全產品分階段套用台帳", - "subtitle": "S2.127 把「所有專案產品都套用」轉成六個 rollout wave:先套只讀可視化與證據欄位,再依 owner evidence、人工審查與 執行期閘門 分段收嚴。這仍是產品套用台帳,不是掃描、修復、部署或主機操作入口。", + "subtitle": "S2.127 把「所有專案產品都套用」轉成六個 分階段套用 wave:先套只讀可視化與證據欄位,再依 owner evidence、人工審查與 執行期閘門 分段收嚴。這仍是產品套用台帳,不是掃描、修復、部署或主機操作入口。", "waveLabel": "波次", "allowedLabel": "目前可做", "beforeRuntimeLabel": "進 runtime 前", "forbiddenLabel": "仍禁止", "boundaryTitle": "套用台帳邊界", - "boundaryIntro": "以下鍵值固定:全產品 rollout 目前停在 read-only visibility wave;runtime wave、enforcement wave、owner accepted 與 active 執行期閘門 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:全產品 分階段套用 目前停在 read-only visibility wave;runtime wave、enforcement wave、owner 已接受 與 active 執行期閘門 全部仍是 0。", "summary": { "waves": { "label": "套用波次", @@ -9050,57 +9053,57 @@ }, "nextGate": { "label": "下一門檻", - "detail": "第一個 runtime 候選仍是 S4.9 accepted。" + "detail": "第一個 runtime 候選仍是 S4.9 已接受。" } }, "items": { "coreProduct": { "title": "核心產品波次", "allowed": "AWOOOI、IwoooS、AwoooP 先維持同一份三軸進度與只讀 guard。", - "beforeRuntime": "需要 owner evidence accepted、reviewer queue 人工開啟與 active 執行期閘門。", + "beforeRuntime": "需要 owner evidence 已接受、reviewer queue 人工開啟與 active 執行期閘門。", "forbidden": "不得從核心產品頁直接批准、執行、掃描或部署。" }, "publicSurfaces": { "title": "公開網站波次", "allowed": "前台網站可顯示資安摘要、合規狀態、風險分流與繁中文案。", "beforeRuntime": "需要公開內容脫敏審查、敏感欄位封鎖與人工內容 owner 接受。", - "forbidden": "不得暴露內網 IP、機密明文值、raw payload、掃描結果原文或主機細節。" + "forbidden": "不得暴露內網 IP、機密明文值、raw 載荷、掃描結果原文或主機細節。" }, "sourceControl": { "title": "版本來源波次", - "allowed": "GitHub / Gitea 專案庫只顯示 target、refs truth、工作流程 / 機密 名稱與 rollback readiness。", - "beforeRuntime": "需要逐 repo 負責人回覆、refs truth accepted、工作流程 / 機密 名稱驗收與 rollback ADR approval。", + "allowed": "GitHub / Gitea 專案庫只顯示 target、refs 真相、工作流程 / 機密 名稱與 回復 readines。", + "beforeRuntime": "需要逐 repo 負責人回覆、refs 真相 已接受、工作流程 / 機密 名稱驗收與 回復 ADR approval。", "forbidden": "不得建立 repo、改可見性、同步 / 刪除 / 強推 refs、修改 工作流程 / 機密 或切 primary。" }, "hostCoverage": { "title": "主機覆蓋波次", - "allowed": "Kali、192.168.0.168、192.168.0.111 只顯示 coverage、action gate 與 evidence readiness。", - "beforeRuntime": "需要明確主機 scope、maintenance window、credential handling、rollback 與人工 執行期閘門。", + "allowed": "Kali、192.168.0.168、192.168.0.111 只顯示 coverage、action 閘門 與 evidence readines。", + "beforeRuntime": "需要明確主機 scope、maintenance window、credential handling、回復 與人工 執行期閘門。", "forbidden": "不得自動 SSH、更新主機、掃描、調校、收未脫敏資料或執行 Kali /execute。" }, "monitoringTools": { "title": "監控工具波次", - "allowed": "監控、告警、Code Review、工具台只顯示 metadata-only evidence 與阻塞解除條件。", + "allowed": "監控、告警、程式碼審查、工具台只顯示 僅中繼資料證據 與阻塞解除條件。", "beforeRuntime": "需要工具輸出通過 redaction / retention / reviewer checks,且 owner 接受後才接 執行期閘門。", - "forbidden": "不得由工具自動觸發修復、部署、付費 provider 變更、secret 收集或外部送出。" + "forbidden": "不得由工具自動觸發修復、部署、付費 provider 變更、機密 收集或外部送出。" }, "futureTemplate": { "title": "未來產品模板波次", - "allowed": "新專案預設繼承三軸進度、繁中 UI、只讀 governance、false runtime flags。", - "beforeRuntime": "需要產品 owner、資料分級、scope、rollback、disable 條件與逐階段審查。", + "allowed": "新專案預設繼承三軸進度、繁中 UI、只讀 governance、false runtime flag。", + "beforeRuntime": "需要產品 owner、資料分級、scope、回復、disable 條件與逐階段審查。", "forbidden": "不得讓新產品一建立就套 blocking enforcement、host action、source-control mutation 或 production deploy。" } } }, "productRolloutAcceptanceGates": { - "title": "全產品 rollout 波次驗收門檻", - "subtitle": "S2.128 把 S2.127 的六個產品波次再補上驗收門檻:每個波次都要先通過只讀證據、owner evidence、脫敏審查、版本來源證明、主機安全窗口與 rollback / disable 條件,才可能被列入後續 runtime 候選。這仍是驗收門檻可視化,不是批准或執行。", + "title": "全產品 分階段套用 波次驗收門檻", + "subtitle": "S2.128 把 S2.127 的六個產品波次再補上驗收門檻:每個波次都要先通過只讀證據、owner evidence、脫敏審查、版本來源證明、主機安全窗口與 回復 / disable 條件,才可能被列入後續 runtime 候選。這仍是驗收門檻可視化,不是批准或執行。", "gateLabel": "門檻", "requiredEvidenceLabel": "需要證據", "acceptanceSignalLabel": "驗收訊號", "stillClosedLabel": "仍關閉", "boundaryTitle": "波次驗收邊界", - "boundaryIntro": "以下鍵值固定:全產品 rollout 目前只做到 read-only acceptance;通過門檻、owner accepted、runtime wave、enforcement wave 與 active 執行期閘門 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:全產品 分階段套用 目前只做到 read-only 驗收;通過門檻、owner 已接受、runtime wave、enforcement wave 與 active 執行期閘門 全部仍是 0。", "summary": { "gateCount": { "label": "驗收門檻", @@ -9112,7 +9115,7 @@ }, "ownerEvidence": { "label": "第一證據", - "detail": "第一個可前進訊號仍是 S4.9 owner evidence accepted。" + "detail": "第一個可前進訊號仍是 S4.9 owner evidence 已接受。" }, "runtime": { "label": "runtime 波次", @@ -9130,43 +9133,43 @@ "title": "負責人證據已收件並接受", "requiredEvidence": "需要產品 owner、範圍、資料分級、風險說明與脫敏 evidence pointer。", "acceptanceSignal": "負責人回覆 已收到 / 已接受 計數由人工驗收後才可移動。", - "stillClosed": "目前 received=0、accepted=0,不得視為任何產品已批准。" + "stillClosed": "目前 已收到=0、已接受=0,不得視為任何產品已批准。" }, "redactionReview": { "title": "脫敏與公開呈現通過", - "requiredEvidence": "公開頁、AwoooP、IwoooS 與工具台只能保留 metadata、摘要與 false flags。", - "acceptanceSignal": "raw payload、機密明文值、內網細節與掃描原文都被拒收或遮罩。", - "stillClosed": "不得收機密明文、raw payload、未脫敏截圖或可直接攻擊的細節。" + "requiredEvidence": "公開頁、AwoooP、IwoooS 與工具台只能保留 metadata、摘要與 false flag。", + "acceptanceSignal": "raw 載荷、機密明文值、內網細節與掃描原文都被拒收或遮罩。", + "stillClosed": "不得收機密明文、raw 載荷、未脫敏截圖或可直接攻擊的細節。" }, "sourceControlProof": { "title": "版本來源證明齊備", - "requiredEvidence": "GitHub / Gitea target、refs truth、工作流程 / 機密 名稱、rollback readiness 都要逐 repo 可追溯。", - "acceptanceSignal": "refs truth accepted、工作流程 / 機密 名稱驗收與 rollback ADR 皆由人工確認。", + "requiredEvidence": "GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱、回復 readiness 都要逐 repo 可追溯。", + "acceptanceSignal": "refs 真相 已接受、工作流程 / 機密 名稱驗收與 回復 ADR 皆由人工確認。", "stillClosed": "不得建立 repo、改可見性、同步 refs、改 工作流程 / 機密、切 primary 或停用 Gitea。" }, "hostSafetyWindow": { - "title": "主機安全窗口與 rollback 可用", - "requiredEvidence": "Kali、192.168.0.168、192.168.0.111 需要 scope、maintenance window、credential handling 與 rollback owner。", + "title": "主機安全窗口與 回復 可用", + "requiredEvidence": "Kali、192.168.0.168、192.168.0.111 需要 scope、maintenance window、credential handling 與 回復 owner。", "acceptanceSignal": "主機 owner 明確接受後,才可建立後續 執行期閘門 候選。", "stillClosed": "目前不得 SSH、掃描、更新主機、調校設定或執行 Kali /execute。" }, "rollbackDisable": { "title": "回復與停用條件可操作", - "requiredEvidence": "每個波次都要有 disable 條件、rollback owner、驗證方式與停止條件。", + "requiredEvidence": "每個波次都要有 disable 條件、回復 owner、驗證方式與停止條件。", "acceptanceSignal": "人工審查確認失敗時能回到只讀狀態,且不留下半套 enforcement。", - "stillClosed": "不得在沒有回復條件前啟用 production deploy、blocking control 或 source-control mutation。" + "stillClosed": "不得在沒有回復條件前啟用 production deploy、阻擋控制 或 source-control mutation。" } } }, "productRolloutAcceptanceOutcomes": { - "title": "全產品 rollout 驗收結果分流", + "title": "全產品 分階段套用 驗收結果分流", "subtitle": "S2.129 把 S2.128 的驗收門檻往後補成七條結果分流:維持只讀、退回補證、隔離敏感、版本待證、主機暫停、待人工審與 runtime 未開。這讓所有產品的後續狀態可以被理解,但仍不建立 reviewer candidate、執行期閘門 或任何執行動作。", "laneLabel": "分流", "whyLabel": "判定原因", "nextLabel": "下一步", "blockedLabel": "仍禁止", "boundaryTitle": "結果分流邊界", - "boundaryIntro": "以下鍵值固定:目前結果分流只做 read-only outcome routing;returned、quarantined、human review candidate、runtime candidate、owner accepted 與 active 執行期閘門 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前結果分流只做 read-only outcome routing;returned、quarantined、human review candidate、runtime candidate、owner 已接受 與 active 執行期閘門 全部仍是 0。", "summary": { "outcomes": { "label": "結果分流", @@ -9194,25 +9197,25 @@ }, "returnEvidence": { "title": "退回補證分流", - "why": "owner 回覆、範圍、資料分級、rollback 或 disable 條件缺漏。", - "next": "退回對應產品 owner 補 metadata-only evidence pointer。", - "blocked": "不得用口頭說明、截圖原文、raw payload 或 機密明文值 補證。" + "why": "owner 回覆、範圍、資料分級、回復 或 disable 條件缺漏。", + "next": "退回對應產品 owner 補 僅中繼資料證據 pointer。", + "blocked": "不得用口頭說明、截圖原文、raw 載荷 或 機密明文值 補證。" }, "quarantineSensitive": { "title": "敏感內容隔離分流", - "why": "若 evidence 含機密明文、內網細節、掃描原文或未脫敏 payload,只能隔離。", + "why": "若 evidence 含機密明文、內網細節、掃描原文或未脫敏 載荷,只能隔離。", "next": "保留隔離原因與脫敏要求,等待重新提交安全摘要。", "blocked": "不得在公開頁、AwoooP、IwoooS 或工具台顯示敏感原文。" }, "sourceControlHold": { "title": "版本來源待證分流", - "why": "GitHub / Gitea target、refs truth、工作流程 / 機密 名稱或 rollback readiness 尚未通過。", - "next": "回到逐 repo 負責人回覆、refs truth 與 rollback ADR 驗收。", + "why": "GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱或 回復 readiness 尚未通過。", + "next": "回到逐 repo 負責人回覆、refs 真相 與 回復 ADR 驗收。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary 或停用 Gitea。" }, "hostSafetyHold": { "title": "主機安全暫停分流", - "why": "Kali、192.168.0.168、192.168.0.111 尚缺 scope、maintenance window、credential handling 或 rollback owner。", + "why": "Kali、192.168.0.168、192.168.0.111 尚缺 scope、maintenance window、credential handling 或 回復 owner。", "next": "等待主機 owner 明確接受後,才可列入後續 執行期閘門 候選。", "blocked": "不得 SSH、更新主機、掃描、調校或執行 Kali /execute。" }, @@ -9225,20 +9228,20 @@ "runtimeDenied": { "title": "runtime 未開分流", "why": "即使某些資訊已可見,只要 active 執行期閘門 為 0,就不能執行。", - "next": "等待 owner accepted、人工審查、rollback / disable 可用與 執行期閘門 明確批准。", + "next": "等待 owner 已接受、人工審查、回復 / disable 可用與 執行期閘門 明確批准。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作或正式環境變更。" } } }, "productEvidenceWiringMap": { "title": "全產品證據接線地圖", - "subtitle": "S2.130 把所有產品下一步要接的證據線整理成六條 metadata-only channel:產品範圍、負責人回覆、脫敏證據、版本來源真相、主機安全窗口與監控工具摘要。這是只讀接線圖,不代表任何產品已完成接線、通過驗收或可進 runtime。", + "subtitle": "S2.130 把所有產品下一步要接的證據線整理成六條 僅中繼資料 channel:產品範圍、負責人回覆、脫敏證據、版本來源真相、主機安全窗口與監控工具摘要。這是只讀接線圖,不代表任何產品已完成接線、通過驗收或可進 runtime。", "channelLabel": "證據線", "evidenceLabel": "需要證據", "handoffLabel": "交接方式", "blockedLabel": "仍禁止", "boundaryTitle": "證據接線邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only evidence wiring;connected product、owner accepted、redacted evidence accepted、source-control truth accepted、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only 證據接線;connected product、owner 已接受、redacted evidence 已接受、source-control truth 已接受、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "channels": { "label": "證據線", @@ -9261,7 +9264,7 @@ "productScope": { "title": "產品範圍接線", "evidence": "每個產品要有產品名稱、owner、公開面、內部面、資料分級與適用波次。", - "handoff": "先以 metadata-only scope pointer 交給 IwoooS 顯示,不匯入 raw inventory。", + "handoff": "先以 僅中繼資料 scope pointer 交給 IwoooS 顯示,不匯入 raw inventory。", "blocked": "不得因範圍欄位存在就自動納入掃描、blocking policy 或正式部署。" }, "ownerResponse": { @@ -9274,23 +9277,23 @@ "title": "脫敏證據接線", "evidence": "只允許摘要、hash、檔名、時間、來源系統與可追溯 evidence ref。", "handoff": "敏感內容先進隔離分流,重新提交安全摘要後才可回到接線圖。", - "blocked": "不得收 機密明文值、raw payload、掃描原文、內網拓撲細節或未遮罩截圖。" + "blocked": "不得收 機密明文值、raw 載荷、掃描原文、內網拓撲細節或未遮罩截圖。" }, "sourceControlTruth": { "title": "版本來源真相接線", - "evidence": "GitHub / Gitea target、refs truth、工作流程 / 機密 名稱與 rollback readiness 要逐 repo 對照。", - "handoff": "只顯示 refs truth 與 readiness metadata,等 owner accepted 後再列入人工審查候選。", + "evidence": "GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱與 回復 readiness 要逐 repo 對照。", + "handoff": "只顯示 refs 真相 與 readiness metadata,等 owner 已接受 後再列入人工審查候選。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostSafetyWindow": { "title": "主機安全窗口接線", - "evidence": "Kali、192.168.0.168、192.168.0.111 需要 scope、maintenance window、credential handling 與 rollback owner。", + "evidence": "Kali、192.168.0.168、192.168.0.111 需要 scope、maintenance window、credential handling 與 回復 owner。", "handoff": "先只顯示主機證據缺口與等待窗口,不開 live scan 或 SSH path。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "monitoringToolEvidence": { "title": "監控工具摘要接線", - "evidence": "監控、告警、Code Review 與工具輸出只接摘要、狀態、時間與 evidence ref。", + "evidence": "監控、告警、程式碼審查 與工具輸出只接摘要、狀態、時間與 evidence ref。", "handoff": "工具先產生可讀摘要,通過脫敏與 owner review 後才進下一階段。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" } @@ -9305,7 +9308,7 @@ "failRouteLabel": "未通過分流", "stillClosedLabel": "仍關閉", "boundaryTitle": "接線預檢邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only evidence wiring preflight;passed、ready for connection、owner accepted、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only 證據接線 preflight;passed、就緒 for connection、owner 已接受、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "checks": { "label": "預檢項", @@ -9342,29 +9345,29 @@ "redactionBoundary": { "title": "脫敏邊界預檢", "checkPoint": "確認 evidence 只含摘要、hash、檔名、時間、來源系統與可追溯 ref。", - "passSignal": "通過後才可成為 metadata-only 接線候選。", - "failRoute": "出現 raw payload、機密明文值、內網拓撲或未遮罩截圖時直接隔離。", + "passSignal": "通過後才可成為 僅中繼資料 接線候選。", + "failRoute": "出現 raw 載荷、機密明文值、內網拓撲或未遮罩截圖時直接隔離。", "stillClosed": "不得在前台、AwoooP、IwoooS 或工具台顯示敏感原文。" }, "sourceTruth": { "title": "版本來源真相預檢", - "checkPoint": "確認 GitHub / Gitea target、refs truth、工作流程 / 機密 名稱與 rollback readiness 可逐 repo 對照。", - "passSignal": "只建立 read-only truth candidate,不代表 primary readiness。", - "failRoute": "target、refs 或 rollback 缺證時退回版本來源待證分流。", + "checkPoint": "確認 GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱與 回復 readiness 可逐 repo 對照。", + "passSignal": "只建立 read-only truth candidate,不代表 主要來源就緒度。", + "failRoute": "target、refs 或 回復 缺證時退回版本來源待證分流。", "stillClosed": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindow": { "title": "主機安全窗口預檢", - "checkPoint": "確認 Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 與 rollback owner 都只以 metadata 呈現。", + "checkPoint": "確認 Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 與 回復 owner 都只以 metadata 呈現。", "passSignal": "只可標示 host evidence gap 已可讀,不能建立 live action。", - "failRoute": "缺窗口、credential 邊界或 rollback owner 時維持主機安全暫停。", + "failRoute": "缺窗口、credential 邊界或 回復 owner 時維持主機安全暫停。", "stillClosed": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolOutput": { "title": "監控工具摘要預檢", - "checkPoint": "確認監控、告警、Code Review 與工具輸出只含摘要、狀態、時間與 evidence ref。", + "checkPoint": "確認監控、告警、程式碼審查 與工具輸出只含摘要、狀態、時間與 evidence ref。", "passSignal": "通過後只可放進只讀摘要接線候選。", - "failRoute": "若工具輸出含 raw payload、外送資料或機密值,退回隔離與重提摘要。", + "failRoute": "若工具輸出含 raw 載荷、外送資料或機密值,退回隔離與重提摘要。", "stillClosed": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" } } @@ -9377,7 +9380,7 @@ "nextLabel": "下一步", "blockedLabel": "仍禁止", "boundaryTitle": "預檢結果分流邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only preflight outcome routing;ready for connection、returned、quarantined、runtime candidate、owner accepted、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only preflight outcome routing;就緒 for connection、returned、quarantined、runtime candidate、owner 已接受、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "outcomes": { "label": "結果分流", @@ -9406,7 +9409,7 @@ "returnScope": { "title": "退回範圍分流", "why": "產品名稱、owner、公開面、內部面、資料分級或適用波次缺漏。", - "next": "退回產品 owner 補 metadata-only scope pointer。", + "next": "退回產品 owner 補 僅中繼資料 scope pointer。", "blocked": "不得用 raw inventory、內網拓撲原文或未脫敏截圖補範圍。" }, "returnOwnerEnvelope": { @@ -9417,32 +9420,32 @@ }, "quarantineSensitive": { "title": "隔離敏感分流", - "why": "證據或工具輸出含 raw payload、機密明文值、內網細節或未遮罩截圖。", + "why": "證據或工具輸出含 raw 載荷、機密明文值、內網細節或未遮罩截圖。", "next": "只保留隔離原因與重新提交安全摘要的要求。", "blocked": "不得在前台、AwoooP、IwoooS、工具台或文件中顯示敏感原文。" }, "sourceTruthHold": { "title": "版本來源暫停分流", - "why": "GitHub / Gitea target、refs truth、工作流程 / 機密 名稱或 rollback readiness 缺證。", - "next": "回到逐 repo 版本來源真相與 rollback readiness 補證。", + "why": "GitHub / Gitea target、refs 真相、工作流程 / 機密 名稱或 回復 readiness 缺證。", + "next": "回到逐 repo 版本來源真相與 回復 readiness 補證。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindowHold": { "title": "主機安全暫停分流", - "why": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 或 rollback owner 不完整。", - "next": "等待主機 owner 以 metadata-only 形式補齊窗口與 rollback 邊界。", + "why": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 或 回復 owner 不完整。", + "next": "等待主機 owner 以 僅中繼資料 形式補齊窗口與 回復 邊界。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummaryHold": { "title": "工具摘要待補分流", - "why": "監控、告警、Code Review 或工具輸出尚未轉成安全摘要與 evidence ref。", + "why": "監控、告警、程式碼審查 或工具輸出尚未轉成安全摘要與 evidence ref。", "next": "退回工具輸出產生可讀摘要、狀態、時間與 evidence ref。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "runtimeClosed": { "title": "runtime 關閉分流", "why": "即使預檢可見,只要 active 執行期閘門 為 0,就不能執行。", - "next": "等待 owner accepted、人工審查、rollback / disable 可用與 執行期閘門 明確批准。", + "next": "等待 owner 已接受、人工審查、回復 / disable 可用與 執行期閘門 明確批准。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作或正式環境變更。" } } @@ -9456,7 +9459,7 @@ "handoffLabel": "回收方式", "blockedLabel": "仍禁止", "boundaryTitle": "補件回收台帳邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only recovery ledger;submitted、accepted、returned、quarantined、ready for preflight retry、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only recovery ledger;submitted、已接受、returned、quarantined、就緒 for preflight retry、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "queues": { "label": "補件隊列", @@ -9480,49 +9483,49 @@ "title": "範圍 metadata 補件", "owner": "產品 owner 或網站 owner。", "required": "產品名稱、公開面、內部面、資料分級、適用波次與 evidence ref。", - "handoff": "只以 metadata-only scope pointer 回到預檢,不匯入 raw inventory。", + "handoff": "只以 僅中繼資料 scope pointer 回到預檢,不匯入 raw inventory。", "blocked": "不得貼內網拓撲原文、未遮罩截圖、完整資產 dump 或掃描輸出。" }, "ownerEnvelope": { "title": "負責人封套補件", "owner": "S4.9 負責人回覆 負責人或後續指定負責人。", - "required": "owner role、decision、理由、受影響範圍、脫敏 evidence refs 與 follow-up owner。", + "required": "owner role、decision、理由、受影響範圍、脫敏 evidence refs 與 後續追蹤 owner。", "handoff": "回到 負責人回覆 封套預檢,只標示補件待檢。", "blocked": "不得代填、代簽、送出 request、建立審批或把聊天同意當正式證據。" }, "redactedEvidence": { "title": "脫敏證據重送", "owner": "證據提供者與安全審查者共同確認。", - "required": "摘要、時間、來源、遮罩策略、evidence ref 與不含 raw payload 的聲明。", + "required": "摘要、時間、來源、遮罩策略、evidence ref 與不含 raw 載荷 的聲明。", "handoff": "敏感內容只回到隔離原因;重新提交時只收安全摘要。", - "blocked": "不得顯示 機密明文值、token、credential、raw log、host dump 或未遮罩截圖。" + "blocked": "不得顯示 機密明文值、token、credential、原始日誌、主機 dump 或未遮罩截圖。" }, "sourceTruth": { "title": "版本來源補證", - "owner": "repo owner、GitHub / Gitea migration owner 或 rollback owner。", - "required": "canonical target、refs truth、工作流程 / 機密 名稱清單、rollback readiness 與 owner evidence ref。", - "handoff": "回到版本來源真相檢查與 rollback readiness,不改任何 repo 狀態。", + "owner": "repo owner、GitHub / Gitea migration owner 或 回復 owner。", + "required": "canonical target、refs 真相、工作流程 / 機密 名稱清單、回復 readiness 與 owner evidence ref。", + "handoff": "回到版本來源真相檢查與 回復 readiness,不改任何 repo 狀態。", "blocked": "不得建立 repo、改可見性、同步 / 刪除 / 強制推送 refs、改 工作流程 / 機密、切 primary 或停用 Gitea。" }, "hostWindow": { "title": "主機窗口補齊", "owner": "Kali、192.168.0.168、192.168.0.111 對應主機 owner。", - "required": "scope、maintenance window、credential handling、rollback owner 與 validation 指標。", - "handoff": "只回收 metadata-only host safety window,不建立 live action。", + "required": "scope、maintenance window、credential handling、回復 owner 與 validation 指標。", + "handoff": "只回收 僅中繼資料 host safety window,不建立 live action。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummary": { "title": "工具摘要補件", - "owner": "監控、告警、Code Review 或工具鏈負責人。", + "owner": "監控、告警、程式碼審查 或工具鏈負責人。", "required": "摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", "handoff": "只把工具輸出轉成可讀摘要,等待下一輪預檢。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "runtimeGate": { "title": "runtime 門檻待補", - "owner": "人工審查負責人、rollback / disable owner 與 執行期閘門 owner。", - "required": "owner accepted、人工審查結果、rollback / disable 可用性、後驗證與明確 gate 記錄。", - "handoff": "只顯示 runtime 還缺哪些條件,不建立 gate。", + "owner": "人工審查負責人、回復 / disable owner 與 執行期閘門 owner。", + "required": "owner 已接受、人工審查結果、回復 / disable 可用性、後驗證與明確 閘門 記錄。", + "handoff": "只顯示 runtime 還缺哪些條件,不建立 閘門。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作或正式環境變更。" } } @@ -9535,7 +9538,7 @@ "retryLabel": "重試方式", "blockedLabel": "仍禁止", "boundaryTitle": "補件重試門檻邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only recovery retry gate;retry candidate、submitted、passed、failed、ready for connection、ready for human review 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only recovery retry 閘門;retry candidate、submitted、passed、failed、就緒 for connection、就緒 for human review 與 就緒 for runtime 全部仍是 0。", "summary": { "gates": { "label": "重試門檻", @@ -9563,31 +9566,31 @@ }, "ownerReady": { "title": "封套重試門檻", - "ready": "owner role、decision、理由、受影響範圍、脫敏 evidence refs 與 follow-up owner 都可讀。", - "retry": "只可回到 owner envelope preflight,不標記 負責人回覆 accepted。", + "ready": "owner role、decision、理由、受影響範圍、脫敏 evidence refs 與 後續追蹤 owner 都可讀。", + "retry": "只可回到 owner envelope preflight,不標記 負責人回覆 已接受。", "blocked": "不得代填、代簽、催收、送出 request、建立審批或把口頭同意當證據。" }, "redactionReady": { "title": "脫敏重試門檻", - "ready": "補件只含摘要、時間、來源、遮罩策略、evidence ref 與不含 raw payload 的聲明。", + "ready": "補件只含摘要、時間、來源、遮罩策略、evidence ref 與不含 raw 載荷 的聲明。", "retry": "只可移出隔離原因的下一輪摘要候選,不保留敏感原文。", - "blocked": "不得顯示 機密明文值、token、credential、raw log、host dump 或未遮罩截圖。" + "blocked": "不得顯示 機密明文值、token、credential、原始日誌、主機 dump 或未遮罩截圖。" }, "sourceReady": { "title": "版本重試門檻", - "ready": "canonical target、refs truth、工作流程 / 機密 名稱與 rollback readiness 均有 owner evidence ref。", + "ready": "canonical target、refs 真相、工作流程 / 機密 名稱與 回復 readiness 均有 owner evidence ref。", "retry": "只可重跑版本來源真相預檢,不改 GitHub / Gitea 狀態。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostReady": { "title": "主機重試門檻", - "ready": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 與 rollback owner 均以 metadata 呈現。", + "ready": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 與 回復 owner 均以 metadata 呈現。", "retry": "只可標示 host safety window retry candidate,等待人工再檢。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolReady": { "title": "工具摘要重試門檻", - "ready": "監控、告警、Code Review 或工具輸出已轉為摘要、狀態、時間、來源工具與 evidence ref。", + "ready": "監控、告警、程式碼審查 或工具輸出已轉為摘要、狀態、時間、來源工具與 evidence ref。", "retry": "只可回到工具摘要預檢,不讓工具自動修復或部署。", "blocked": "不得外送資料、增加付費 provider 呼叫、收機密明文或觸發自動修復。" } @@ -9595,13 +9598,13 @@ }, "productEvidenceWiringPreflightRetryOutcomes": { "title": "全產品重試結果分流", - "subtitle": "S2.135 把 S2.134 的重試門檻後續結果拆成八條分流:維持只讀候選、退回補件、隔離敏感、版本退回、主機暫停、摘要退回、等待人工審查與 runtime 仍關閉。這讓所有產品看得懂重試後往哪裡走,但仍不代表接線完成、owner accepted、reviewer queue 開啟或 runtime 授權。", + "subtitle": "S2.135 把 S2.134 的重試門檻後續結果拆成八條分流:維持只讀候選、退回補件、隔離敏感、版本退回、主機暫停、摘要退回、等待人工審查與 runtime 仍關閉。這讓所有產品看得懂重試後往哪裡走,但仍不代表接線完成、owner 已接受、reviewer queue 開啟或 runtime 授權。", "outcomeLabel": "結果", "decisionLabel": "判定", "nextLabel": "下一步", "blockedLabel": "仍禁止", "boundaryTitle": "重試結果分流邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry outcome routing;ready for connection、returned、quarantined、human review candidate、runtime candidate 與 ready for runtime 全部仍是 0。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry outcome routing;就緒 for connection、returned、quarantined、human review candidate、runtime candidate 與 就緒 for runtime 全部仍是 0。", "summary": { "outcomes": { "label": "結果分流", @@ -9624,49 +9627,49 @@ "stayCandidate": { "title": "維持只讀候選", "decision": "補件已符合重新預檢的基本形狀,但尚未有人工接受或正式接線訊號。", - "next": "保留為 metadata-only retry outcome candidate,等待下一輪預檢與人工審查條件補齊。", + "next": "保留為 僅中繼資料 retry outcome candidate,等待下一輪預檢與人工審查條件補齊。", "blocked": "不得把候選狀態升格為已接線、已接受、已審查或可執行。" }, "returnSupplement": { "title": "退回補件", - "decision": "補件仍缺 scope、owner role、decision、理由、evidence ref 或 follow-up owner。", - "next": "退回 S2.133 補件回收台帳,要求產品 owner 重新補齊 metadata-only 欄位。", + "decision": "補件仍缺 scope、owner role、decision、理由、evidence ref 或 後續追蹤 owner。", + "next": "退回 S2.133 補件回收台帳,要求產品 owner 重新補齊 僅中繼資料 欄位。", "blocked": "不得代填、代簽、催收、自動送 request、建立審批或把聊天同意當正式證據。" }, "quarantineSensitive": { "title": "隔離敏感", - "decision": "重試內容仍含 raw payload、機密明文值、credential、host dump、內網細節或未遮罩截圖。", + "decision": "重試內容仍含 raw 載荷、機密明文值、credential、主機 dump、內網細節或未遮罩截圖。", "next": "只保留隔離原因與重新提交安全摘要的要求,不把原文放進前台或文件。", "blocked": "不得在 IwoooS、AwoooP、前台、工具台或文件中顯示敏感原文。" }, "sourceTruthReturn": { "title": "版本來源退回", - "decision": "canonical target、refs truth、工作流程 / 機密 名稱或 rollback readiness 仍無 owner evidence ref。", + "decision": "canonical target、refs 真相、工作流程 / 機密 名稱或 回復 readiness 仍無 owner evidence ref。", "next": "回到版本來源補證隊列,等待 repo owner 以脫敏方式補足來源真相。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindowPause": { "title": "主機安全暫停", - "decision": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 或 rollback owner 仍不完整。", - "next": "等待主機 owner 補 metadata-only host safety window,再回到重試門檻。", + "decision": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling 或 回復 owner 仍不完整。", + "next": "等待主機 owner 補 僅中繼資料 host safety window,再回到重試門檻。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummaryReturn": { "title": "工具摘要退回", - "decision": "監控、告警、Code Review 或工具輸出尚未轉成安全摘要、狀態、時間、來源工具與 evidence ref。", + "decision": "監控、告警、程式碼審查 或工具輸出尚未轉成安全摘要、狀態、時間、來源工具與 evidence ref。", "next": "退回工具鏈負責人產生可讀摘要與脫敏參照,再重新進預檢。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "humanReviewWait": { "title": "等待人工審查", - "decision": "重試結果可讀但尚未達到 reviewer queue 開啟條件,也沒有 owner accepted。", - "next": "等待人工審查負責人確認 owner accepted、脫敏證據、rollback / disable 與後驗證條件。", + "decision": "重試結果可讀但尚未達到 reviewer queue 開啟條件,也沒有 owner 已接受。", + "next": "等待人工審查負責人確認 owner 已接受、脫敏證據、回復 / disable 與後驗證條件。", "blocked": "不得建立 reviewer candidate、指派 reviewer、建立稽核事件或標記人工審查完成。" }, "runtimeStillClosed": { "title": "runtime 仍關閉", "decision": "即使重試結果可見,只要 active 執行期閘門 為 0,就不能執行。", - "next": "等待明確 執行期閘門、rollback / disable 可用與人工批准後再進下一階段。", + "next": "等待明確 執行期閘門、回復 / disable 可用與人工批准後再進下一階段。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作或正式環境變更。" } } @@ -9679,7 +9682,7 @@ "handoffLabel": "交接方式", "blockedLabel": "仍禁止", "boundaryTitle": "人工審查候選準備邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preparation;packet completed、ready、queue open、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preparation;packet completed、就緒、queue open、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "packets": { "label": "準備包", @@ -9713,37 +9716,37 @@ }, "ownerScopePacket": { "title": "負責人與範圍包", - "required": "owner role、decision、reason、scope、follow-up owner、產品公開面與內部面。", - "handoff": "只整理給人工審查的範圍摘要,不標記 負責人回覆 accepted。", + "required": "owner role、decision、reason、scope、後續追蹤 owner、產品公開面與內部面。", + "handoff": "只整理給人工審查的範圍摘要,不標記 負責人回覆 已接受。", "blocked": "不得代填、代簽、送出 request、建立審批或把口頭同意當正式證據。" }, "redactionAttestation": { "title": "脫敏聲明包", - "required": "摘要、遮罩策略、不含 raw payload 聲明、機密明文值 排除聲明與 evidence ref。", + "required": "摘要、遮罩策略、不含 raw 載荷 聲明、機密明文值 排除聲明與 evidence ref。", "handoff": "只交接脫敏聲明與安全摘要,不保留敏感原文。", - "blocked": "不得顯示 token、credential、raw log、host dump、內網細節或未遮罩截圖。" + "blocked": "不得顯示 token、credential、原始日誌、主機 dump、內網細節或未遮罩截圖。" }, "sourceControlReadiness": { "title": "版本來源證據包", - "required": "canonical target、refs truth、工作流程 / 機密 名稱、rollback readiness 與 repo owner evidence ref。", + "required": "canonical target、refs 真相、工作流程 / 機密 名稱、回復 readiness 與 repo owner evidence ref。", "handoff": "只交接版本來源真相摘要,不改 GitHub / Gitea 狀態。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostSafetyWindow": { "title": "主機安全窗口包", - "required": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、rollback owner 與 validation 指標。", - "handoff": "只交接 metadata-only host safety window,不建立 live action。", + "required": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、回復 owner 與 validation 指標。", + "handoff": "只交接 僅中繼資料 host safety window,不建立 live action。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummaryEvidence": { "title": "工具摘要證據包", - "required": "監控、告警、Code Review 或工具輸出的摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", + "required": "監控、告警、程式碼審查 或工具輸出的摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", "handoff": "只交接工具摘要,讓人工審查可以理解訊號來源。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "runtimeSeparation": { "title": "runtime 分離包", - "required": "active 執行期閘門=0、rollback / disable 尚待確認、後驗證待補與 no-execution attestation。", + "required": "active 執行期閘門=0、回復 / disable 尚待確認、後驗證待補與 no-execution attestation。", "handoff": "只提醒人工審查前 runtime 仍關閉,不能轉成執行工作。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作、正式環境變更或開啟 操作按鈕。" } @@ -9758,7 +9761,7 @@ "failLabel": "未通過分流", "blockedLabel": "仍禁止", "boundaryTitle": "人工審查候選預檢邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight;passed、ready for queue、queue open、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight;passed、就緒 for queue、queue open、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "checks": { "label": "預檢項", @@ -9794,44 +9797,44 @@ }, "ownerScope": { "title": "負責人與範圍預檢", - "requirement": "owner role、decision、reason、scope、follow-up owner、公開面與內部面都可讀。", - "pass": "只可標示 owner scope readable,不標記 負責人回覆 accepted。", - "fail": "缺 owner、decision、scope 或 follow-up owner 時退回補件。", + "requirement": "owner role、decision、reason、scope、後續追蹤 owner、公開面與內部面都可讀。", + "pass": "只可標示 owner scope readable,不標記 負責人回覆 已接受。", + "fail": "缺 owner、decision、scope 或 後續追蹤 owner 時退回補件。", "blocked": "不得代填、代簽、送出 request、建立審批或把口頭同意當正式證據。" }, "redactionAttestation": { "title": "脫敏聲明預檢", - "requirement": "摘要、遮罩策略、不含 raw payload 聲明、機密明文值 排除聲明與 evidence ref 都存在。", + "requirement": "摘要、遮罩策略、不含 raw 載荷 聲明、機密明文值 排除聲明與 evidence ref 都存在。", "pass": "只可標示 redaction attestation readable,不匯入敏感原文。", - "fail": "若出現 raw payload、機密明文值、credential 或未遮罩截圖,直接隔離。", - "blocked": "不得顯示 token、credential、raw log、host dump、內網細節或未遮罩截圖。" + "fail": "若出現 raw 載荷、機密明文值、credential 或未遮罩截圖,直接隔離。", + "blocked": "不得顯示 token、credential、原始日誌、主機 dump、內網細節或未遮罩截圖。" }, "sourceControlTruth": { "title": "版本來源證據預檢", - "requirement": "canonical target、refs truth、工作流程 / 機密 名稱、rollback readiness 與 repo owner evidence ref 都可追溯。", + "requirement": "canonical target、refs 真相、工作流程 / 機密 名稱、回復 readiness 與 repo owner evidence ref 都可追溯。", "pass": "只可標示 source-control truth readable,不改 GitHub / Gitea 狀態。", - "fail": "版本來源、refs 或 rollback 缺證時退回版本來源證據包。", + "fail": "版本來源、refs 或 回復 缺證時退回版本來源證據包。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostSafetyWindow": { "title": "主機安全窗口預檢", - "requirement": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、rollback owner 與 validation 指標都以 metadata 呈現。", + "requirement": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、回復 owner 與 validation 指標都以 metadata 呈現。", "pass": "只可標示 host safety window readable,不建立 live action。", - "fail": "缺窗口、credential 邊界或 rollback owner 時維持主機暫停。", + "fail": "缺窗口、credential 邊界或 回復 owner 時維持主機暫停。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummary": { "title": "工具摘要預檢", - "requirement": "監控、告警、Code Review 或工具輸出已轉為摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", + "requirement": "監控、告警、程式碼審查 或工具輸出已轉為摘要、狀態、時間、來源工具、脫敏方式與 evidence ref。", "pass": "只可標示 tool summary readable,讓人工審查理解訊號來源。", - "fail": "工具輸出含 raw payload、外送資料或機密值時退回摘要補件。", + "fail": "工具輸出含 raw 載荷、外送資料或機密值時退回摘要補件。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" }, "runtimeSeparation": { "title": "runtime 分離預檢", - "requirement": "active 執行期閘門=0、rollback / disable 尚待確認、後驗證待補與 no-execution attestation 都可見。", + "requirement": "active 執行期閘門=0、回復 / disable 尚待確認、後驗證待補與 no-execution attestation 都可見。", "pass": "只可標示 runtime separation readable,不能轉成執行工作。", - "fail": "若出現執行要求、操作按鈕 或 gate open 暗示,退回 runtime 分離包。", + "fail": "若出現執行要求、操作按鈕 或 閘門 open 暗示,退回 runtime 分離包。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作、正式環境變更或開啟 操作按鈕。" } } @@ -9844,7 +9847,7 @@ "nextLabel": "下一步", "blockedLabel": "仍禁止", "boundaryTitle": "人工審查候選預檢結果分流邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight outcome routing;ready for queue、returned、quarantined、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight outcome routing;就緒 for queue、returned、quarantined、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "outcomes": { "label": "分流數", @@ -9873,7 +9876,7 @@ "returnIdentity": { "title": "退回識別補件", "decision": "產品名稱、批次、來源分流、重試時間、owner 或 evidence ref 缺漏時退回。", - "next": "回到 S2.136 候選識別準備包補齊 metadata-only 識別欄位。", + "next": "回到 S2.136 候選識別準備包補齊 僅中繼資料 識別欄位。", "blocked": "不得代填 owner、跳過批次追溯、建立審查排程或送出 request。" }, "returnTrace": { @@ -9884,25 +9887,25 @@ }, "returnOwnerScope": { "title": "退回負責人與範圍", - "decision": "owner role、decision、reason、scope、follow-up owner、公開面或內部面缺漏時退回。", + "decision": "owner role、decision、reason、scope、後續追蹤 owner、公開面或內部面缺漏時退回。", "next": "回到負責人與範圍包補件,等待人工可讀範圍成立。", - "blocked": "不得代簽、代填、送審批、把口頭同意當正式證據或標記 負責人回覆 accepted。" + "blocked": "不得代簽、代填、送審批、把口頭同意當正式證據或標記 負責人回覆 已接受。" }, "quarantineRedaction": { "title": "隔離敏感證據", - "decision": "出現 raw payload、機密明文值、credential、未遮罩截圖或可識別內網細節時隔離。", + "decision": "出現 raw 載荷、機密明文值、credential、未遮罩截圖或可識別內網細節時隔離。", "next": "只保留脫敏摘要與 evidence ref,要求重新提交安全摘要。", "blocked": "不得顯示、轉送、匯入、保存或讓工具處理敏感原文。" }, "sourceHostHold": { "title": "版本 / 主機暫停", - "decision": "版本來源、refs truth、rollback、Kali / 開發主機窗口或 rollback owner 缺證時暫停。", + "decision": "版本來源、refs 真相、回復、Kali / 開發主機窗口或 回復 owner 缺證時暫停。", "next": "回到版本來源證據包或主機安全窗口包,補齊 canonical target 與 maintenance window。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、SSH、掃描、更新主機、調校或切換 GitHub primary。" }, "readyForHumanReviewWait": { "title": "等待人工審查", - "decision": "metadata-only 欄位可讀、敏感證據已隔離、版本與主機仍維持只讀時,才可標示為等待人工審查候選。", + "decision": "僅中繼資料 欄位可讀、敏感證據已隔離、版本與主機仍維持只讀時,才可標示為等待人工審查候選。", "next": "停在等待人工審查,不開 reviewer queue,直到 負責人回覆 與正式審查條件另行成立。", "blocked": "不得自動建立 reviewer candidate、指派 reviewer、產生 audit event、批准或觸發任何修復。" }, @@ -9923,7 +9926,7 @@ "recoveryLabel": "回收方式", "blockedLabel": "仍禁止", "boundaryTitle": "預檢補件回收台帳邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight recovery ledger;submitted、accepted、rejected、quarantined、ready for preflight retry、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight recovery ledger;submitted、已接受、rejected、quarantined、就緒 for preflight retry、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "queues": { "label": "回收佇列", @@ -9959,35 +9962,35 @@ }, "ownerScopeSupplement": { "title": "負責人與範圍補件回收", - "owner": "scope owner 補足 role、decision、reason、scope 與 follow-up owner。", + "owner": "scope owner 補足 role、decision、reason、scope 與 後續追蹤 owner。", "required": "公開面、內部面、決策理由、範圍邊界、後續負責人與口頭同意排除聲明。", - "recovery": "補齊後只回到 owner scope 預檢,不標記 負責人回覆 accepted。", + "recovery": "補齊後只回到 owner scope 預檢,不標記 負責人回覆 已接受。", "blocked": "不得代簽、代填、送審批、把口頭同意當正式證據或建立正式紀錄。" }, "redactionResubmission": { "title": "脫敏重送回收", - "owner": "證據提交者必須移除 raw payload、機密明文值、credential 與未遮罩截圖。", - "required": "脫敏摘要、遮罩策略、不含 raw payload 聲明、機密明文值 排除聲明與 evidence ref。", + "owner": "證據提交者必須移除 raw 載荷、機密明文值、credential 與未遮罩截圖。", + "required": "脫敏摘要、遮罩策略、不含 raw 載荷 聲明、機密明文值 排除聲明與 evidence ref。", "recovery": "只收安全摘要與 evidence pointer;若仍含敏感值,維持隔離。", "blocked": "不得顯示、轉送、匯入、保存、貼上或讓工具處理敏感原文。" }, "sourceControlEvidence": { "title": "版本來源補證回收", - "owner": "repo owner 或 release owner 補 canonical target、refs truth 與 rollback readiness。", - "required": "GitHub / Gitea 目標、分支 / 標籤真相、工作流程 / 機密 名稱、rollback owner 與 evidence ref。", + "owner": "repo owner 或 release owner 補 canonical target、refs 真相 與 回復 readines。", + "required": "GitHub / Gitea 目標、分支 / 標籤真相、工作流程 / 機密 名稱、回復 owner 與 evidence ref。", "recovery": "只補版本來源真相摘要,等待 source-control truth 預檢重跑。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindowEvidence": { "title": "主機窗口補證回收", "owner": "主機維運 owner 補 Kali、192.168.0.168、192.168.0.111 的窗口與回復責任。", - "required": "scope、maintenance window、credential handling、rollback owner、validation 指標與 no-execution 聲明。", - "recovery": "只收 metadata-only host window,等待主機安全窗口預檢。", + "required": "scope、maintenance window、credential handling、回復 owner、validation 指標與 no-execution 聲明。", + "recovery": "只收 僅中繼資料 host window,等待主機安全窗口預檢。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummarySupplement": { "title": "工具摘要補件回收", - "owner": "監控、告警、Code Review 或工具輸出 owner 只補摘要與來源。", + "owner": "監控、告警、程式碼審查 或工具輸出 owner 只補摘要與來源。", "required": "摘要、狀態、時間、來源工具、脫敏方式、evidence ref 與外送資料排除聲明。", "recovery": "補齊後只讓人工審查理解訊號來源,不讓工具自動修復。", "blocked": "不得讓工具自動修復、部署、外送資料、增加付費 provider 呼叫或收機密明文。" @@ -9995,7 +9998,7 @@ "runtimeAttestation": { "title": "runtime 分離聲明回收", "owner": "平台 owner 補 active 執行期閘門=0、操作按鈕 關閉與 no-execution attestation。", - "required": "執行期閘門 關閉、rollback / disable 尚待確認、後驗證待補與正式決策缺口。", + "required": "執行期閘門 關閉、回復 / disable 尚待確認、後驗證待補與正式決策缺口。", "recovery": "只作為後續人工決策的邊界證據,不能轉成執行工作。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作、正式環境變更或開啟 操作按鈕。" } @@ -10009,7 +10012,7 @@ "retryLabel": "重試方式", "blockedLabel": "仍禁止", "boundaryTitle": "補件重試門檻邊界", - "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight recovery retry gate;candidate、submitted、passed、ready for preflight retry、ready for human review、candidate created、reviewer assigned、audit emitted 與 ready for runtime 全部仍是 0 / false。", + "boundaryIntro": "以下鍵值固定:目前只做 read-only retry review candidate preflight recovery retry 閘門;candidate、submitted、passed、就緒 for preflight retry、就緒 for human review、candidate created、reviewer assigned、audit emitted 與 就緒 for runtime 全部仍是 0 / false。", "summary": { "gates": { "label": "重試門檻", @@ -10043,26 +10046,26 @@ }, "ownerScopeGate": { "title": "負責人與範圍重試門檻", - "ready": "owner role、decision、reason、scope、follow-up owner、公開面、內部面與口頭同意排除聲明都可讀。", - "retry": "只能重跑 owner scope 預檢,不標記 負責人回覆 accepted。", + "ready": "owner role、decision、reason、scope、後續追蹤 owner、公開面、內部面與口頭同意排除聲明都可讀。", + "retry": "只能重跑 owner scope 預檢,不標記 負責人回覆 已接受。", "blocked": "不得代簽、代填、送審批、把口頭同意當正式證據或建立正式紀錄。" }, "redactionGate": { "title": "脫敏重試門檻", - "ready": "脫敏摘要、遮罩策略、不含 raw payload 聲明、機密明文值 排除聲明與 evidence ref 都存在。", + "ready": "脫敏摘要、遮罩策略、不含 raw 載荷 聲明、機密明文值 排除聲明與 evidence ref 都存在。", "retry": "只以安全摘要與 evidence pointer 回到脫敏預檢;若仍含敏感值,維持隔離。", "blocked": "不得顯示、轉送、匯入、保存、貼上或讓工具處理敏感原文。" }, "sourceControlGate": { "title": "版本來源重試門檻", - "ready": "GitHub / Gitea 目標、分支 / 標籤真相、工作流程 / 機密 名稱、rollback owner 與 evidence ref 都可追溯。", + "ready": "GitHub / Gitea 目標、分支 / 標籤真相、工作流程 / 機密 名稱、回復 owner 與 evidence ref 都可追溯。", "retry": "只重跑 source-control truth 預檢,不改任何版本來源狀態。", "blocked": "不得建立 repo、同步 refs、改 工作流程 / 機密、切 primary、停用 Gitea 或改可見性。" }, "hostWindowGate": { "title": "主機窗口重試門檻", - "ready": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、rollback owner、validation 指標與 no-execution 聲明都補齊。", - "retry": "只以 metadata-only host window 回到主機安全窗口預檢。", + "ready": "Kali、192.168.0.168、192.168.0.111 的 scope、maintenance window、credential handling、回復 owner、validation 指標與 no-execution 聲明都補齊。", + "retry": "只以 僅中繼資料 host window 回到主機安全窗口預檢。", "blocked": "不得 SSH、更新主機、掃描、調校、收 credential 明文或執行 Kali /execute。" }, "toolSummaryGate": { @@ -10073,7 +10076,7 @@ }, "runtimeGate": { "title": "runtime 分離重試門檻", - "ready": "active 執行期閘門=0、操作按鈕 關閉、rollback / disable 尚待確認、後驗證待補與 no-execution attestation 都可見。", + "ready": "active 執行期閘門=0、操作按鈕 關閉、回復 / disable 尚待確認、後驗證待補與 no-execution attestation 都可見。", "retry": "只重跑 runtime separation 預檢,確認仍不可執行。", "blocked": "不得掃描、修復、部署、主機變更、版本來源操作、正式環境變更或開啟 操作按鈕。" } @@ -10081,7 +10084,7 @@ }, "firstProgressUnlockPath": { "title": "第一個進度解鎖路徑", - "subtitle": "S2.114 把 61% 下一個真正能往前的路徑收斂到 S4.9 負責人回覆:先收到可追溯回覆,再補齊脫敏證據參照,通過收件預檢與審查接受後,才可能成為 headline review 候選。", + "subtitle": "S2.114 把 61% 下一個真正能往前的路徑收斂到 S4.9 負責人回覆:先收到可追溯回覆,再補齊脫敏證據參照,通過收件預檢與審查接受後,才可能成為 重點 審查 候選。", "stepLabel": "步驟", "boundaryTitle": "第一解鎖路徑邊界", "boundaryIntro": "以下鍵值固定:這是 S4.9 第一解鎖路徑的只讀收斂,不是送件完成、回覆已收到、批准、掃描、修復、部署或執行期入口。", @@ -10096,7 +10099,7 @@ }, "accepted": { "label": "已接受", - "detail": "目前 0,還不能觸發 headline review。" + "detail": "目前 0,還不能觸發 重點 審查。" }, "headline": { "label": "進度審查", @@ -10106,11 +10109,11 @@ "items": { "ownerResponseScope": { "title": "收到負責人回覆", - "body": "先確認 S4.9 owner role、decision、reason、scope 與 follow-up owner 都可追溯。" + "body": "先確認 S4.9 owner role、decision、reason、scope 與 後續追蹤 owner 都可追溯。" }, "redactedEvidencePointer": { "title": "補齊脫敏證據參照", - "body": "只收 metadata 與 evidence refs,不收機密明文、token value 或未脫敏 payload。" + "body": "只收 metadata 與 evidence refs,不收機密明文、token value 或未脫敏 載荷。" }, "intakePreflight": { "title": "通過收件預檢", @@ -10122,13 +10125,13 @@ }, "headlineReviewCandidate": { "title": "成為進度審查候選", - "body": "只有 accepted evidence 出現後,才可能進入 headline review;目前仍未授權。" + "body": "只有 已接受 evidence 出現後,才可能進入 重點 審查;目前仍未授權。" } } }, "firstUnlockEvidencePacket": { "title": "第一解鎖證據包", - "subtitle": "S2.115 把 S4.9 要讓 61% 真正前進所需的證據收斂成五個欄位:負責人判定 metadata、範圍與來源參照、脫敏聲明、收件預檢軌跡、審查接受摘要。這裡只顯示要補什麼,不收 raw payload、不收機密明文、不開 headline review。", + "subtitle": "S2.115 把 S4.9 要讓 61% 真正前進所需的證據收斂成五個欄位:負責人判定 metadata、範圍與來源參照、脫敏聲明、收件預檢軌跡、審查接受摘要。這裡只顯示要補什麼,不收 raw 載荷、不收機密明文、不開 重點 審查。", "slotLabel": "欄位", "boundaryTitle": "證據包收件邊界", "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的只讀欄位定義,不是送件、收件、驗收通過、審批、掃描、修復、部署或執行期入口。", @@ -10146,22 +10149,22 @@ "detail": "目前仍是 0,不能觸發進度審查。" }, "payload": { - "label": "敏感 payload", - "detail": "raw payload、token value 與機密明文都禁止收件。" + "label": "敏感 載荷", + "detail": "raw 載荷、token value 與機密明文都禁止收件。" } }, "items": { "ownerDecisionMetadata": { "title": "負責人判定 metadata", - "body": "需要 owner role、decision、reason、follow-up owner 與判定時間;不接受口頭同意。" + "body": "需要 owner role、decision、reason、後續追蹤 owner 與判定時間;不接受口頭同意。" }, "scopeEvidenceRefs": { "title": "範圍與來源參照", - "body": "需要對應 S4.9 範圍、Gitea / GitHub 來源脈絡與可追溯 evidence refs。" + "body": "需要對應 S4.9 範圍、Gitea / GitHub 來源脈絡與可追溯 evidence ref。" }, "redactionAttestation": { "title": "脫敏聲明", - "body": "需要明確標示只含 metadata 與 evidence pointer,raw payload 與機密值已隔離。" + "body": "需要明確標示只含 metadata 與 evidence pointer,raw 載荷 與機密值已隔離。" }, "preflightTrace": { "title": "收件預檢軌跡", @@ -10175,10 +10178,10 @@ }, "firstUnlockEvidencePacketPreflightOutcomes": { "title": "第一解鎖證據包預檢分流", - "subtitle": "S2.116 把第一解鎖證據包進來後的結果分成六條只讀分流:可進審查、補 owner metadata、補範圍參照、隔離 raw payload、拒收機密值、等待 reviewer。這裡只說明預檢結果,不把任何分流當成已接受或授權。", + "subtitle": "S2.116 把第一解鎖證據包進來後的結果分成六條只讀分流:可進審查、補 owner metadata、補範圍參照、隔離 raw 載荷、拒收機密值、等待 reviewer。這裡只說明預檢結果,不把任何分流當成已接受或授權。", "laneLabel": "分流", "boundaryTitle": "預檢分流邊界", - "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的預檢結果分流,不是證據已補齊、審查已接受、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的預檢結果分流,不是證據已補齊、審查已接受、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "lanes": { "label": "結果分流", @@ -10190,11 +10193,11 @@ }, "quarantine": { "label": "已隔離", - "detail": "目前仍是 0;若有 raw payload 才會隔離。" + "detail": "目前仍是 0;若有 raw 載荷 才會隔離。" }, "accepted": { "label": "已接受", - "detail": "目前仍是 0,不能推動 headline。" + "detail": "目前仍是 0,不能推動 重點。" } }, "items": { @@ -10204,15 +10207,15 @@ }, "needsOwnerMetadata": { "title": "要求補 owner metadata", - "body": "缺 owner role、decision、reason、follow-up owner 或判定時間時,只能退回補欄。" + "body": "缺 owner role、decision、reason、後續追蹤 owner 或判定時間時,只能退回補欄。" }, "needsScopeRefs": { "title": "要求補範圍參照", "body": "缺 S4.9 範圍、來源脈絡或 evidence refs 時,不能進審查。" }, "quarantineRawPayload": { - "title": "隔離 raw payload", - "body": "任何未脫敏 payload、截圖原文或高風險輸出都要隔離,不進一般審查。" + "title": "隔離 raw 載荷", + "body": "任何未脫敏 載荷、截圖原文或高風險輸出都要隔離,不進一般審查。" }, "rejectSecretValue": { "title": "拒收機密明文值", @@ -10220,16 +10223,16 @@ }, "waitingReviewer": { "title": "等待 reviewer 接受", - "body": "預檢可通過也不代表 accepted;仍需人工 reviewer 接受後才可能形成 movement signal。" + "body": "預檢可通過也不代表 已接受;仍需人工 reviewer 接受後才可能形成 movement signal。" } } }, "firstUnlockEvidencePacketSupplementPath": { "title": "第一解鎖證據包補件路徑", - "subtitle": "S2.117 把第一解鎖證據包未通過預檢時的補件方式拆成五步:補 owner metadata、補範圍參照、補脫敏聲明、補預檢軌跡、等待 reviewer queue。這裡只顯示補件路徑,不送出 request、不接受證據、不開 headline review。", + "subtitle": "S2.117 把第一解鎖證據包未通過預檢時的補件方式拆成五步:補 owner metadata、補範圍參照、補脫敏聲明、補預檢軌跡、等待 reviewer queue。這裡只顯示補件路徑,不送出 request、不接受證據、不開 重點 審查。", "stepLabel": "補件步驟", "boundaryTitle": "補件路徑邊界", - "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的補件說明,不是送件、收件、審查接受、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是第一解鎖證據包的補件說明,不是送件、收件、審查接受、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "steps": { "label": "補件步驟", @@ -10245,13 +10248,13 @@ }, "accepted": { "label": "已接受", - "detail": "目前仍是 0,headline 不提高。" + "detail": "目前仍是 0,重點 不提高。" } }, "items": { "ownerMetadataPatch": { "title": "補 owner metadata", - "body": "補齊 owner role、decision、reason、follow-up owner 與判定時間;缺一項就不能進審查。" + "body": "補齊 owner role、decision、reason、後續追蹤 owner 與判定時間;缺一項就不能進審查。" }, "scopeRefsPatch": { "title": "補範圍與來源參照", @@ -10259,7 +10262,7 @@ }, "redactionPatch": { "title": "補脫敏聲明", - "body": "只允許 metadata 與 evidence pointer;raw payload、token value、私鑰與登入口令仍不可收。" + "body": "只允許 metadata 與 evidence pointer;raw 載荷、token value、私鑰與登入口令仍不可收。" }, "preflightTracePatch": { "title": "補預檢軌跡", @@ -10267,7 +10270,7 @@ }, "reviewerQueuePatch": { "title": "等待 reviewer queue", - "body": "補件就緒也只是進入人工 reviewer queue;accepted 前不得成為 movement signal。" + "body": "補件就緒也只是進入人工 reviewer queue;已接受 前不得成為 movement signal。" } } }, @@ -10276,7 +10279,7 @@ "subtitle": "S2.118 把補件要進 reviewer queue 前的檢查拆成六項:owner metadata 完整、範圍參照可追溯、脫敏聲明成立、預檢軌跡附上、禁止變更條款維持、reviewer queue 未開。這裡只顯示送審前檢查,不代表補件已送出或已接受。", "checkLabel": "檢查", "boundaryTitle": "送審前檢查邊界", - "boundaryIntro": "以下鍵值固定:這是補件送審前檢查,不是送件、收件、審查接受、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是補件送審前檢查,不是送件、收件、審查接受、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "checks": { "label": "檢查項", @@ -10298,7 +10301,7 @@ "items": { "ownerMetadataComplete": { "title": "owner metadata 完整", - "body": "確認 owner role、decision、reason、follow-up owner 與判定時間都存在且可追溯。" + "body": "確認 owner role、decision、reason、後續追蹤 owner 與判定時間都存在且可追溯。" }, "scopeRefsTraceable": { "title": "範圍參照可追溯", @@ -10306,7 +10309,7 @@ }, "redactionAttested": { "title": "脫敏聲明成立", - "body": "確認只含 metadata 與 evidence pointer,raw payload、token value、私鑰與登入口令都未進入收件。" + "body": "確認只含 metadata 與 evidence pointer,raw 載荷、token value、私鑰與登入口令都未進入收件。" }, "preflightTraceAttached": { "title": "預檢軌跡附上", @@ -10314,7 +10317,7 @@ }, "noMutationClauseHeld": { "title": "禁止變更條款維持", - "body": "確認補件不會觸發 repo、refs、workflow、secret、Kali、SSH、部署或主機變更。" + "body": "確認補件不會觸發 repo、refs、工作流程、機密、Kali、SSH、部署或主機變更。" }, "reviewerQueueReady": { "title": "reviewer queue 未開", @@ -10327,7 +10330,7 @@ "subtitle": "S2.119 把補件送審前檢查後可能出現的結果拆成六條只讀分流:可排入 reviewer queue、退回補件、隔離敏感材料、拒收變更要求、維持佇列未開、等待 reviewer 指派。這裡只顯示結果分流,不代表 queue 已開、補件已送出或審查已接受。", "outcomeLabel": "結果", "boundaryTitle": "結果分流邊界", - "boundaryIntro": "以下鍵值固定:這是補件送審前檢查後的只讀結果分流,不是送件、收件、審查接受、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是補件送審前檢查後的只讀結果分流,不是送件、收件、審查接受、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "lanes": { "label": "結果分流", @@ -10357,11 +10360,11 @@ }, "quarantineSensitiveMaterial": { "title": "隔離敏感材料", - "body": "raw payload、token value、私鑰、登入口令或未脫敏輸出都要隔離,不進一般審查。" + "body": "raw 載荷、token value、私鑰、登入口令或未脫敏輸出都要隔離,不進一般審查。" }, "rejectMutationRequest": { "title": "拒收變更要求", - "body": "任何要求 repo、refs、workflow、secret、Kali、SSH、部署或主機變更的內容直接拒收。" + "body": "任何要求 repo、refs、工作流程、機密、Kali、SSH、部署或主機變更的內容直接拒收。" }, "keepQueueClosed": { "title": "維持佇列未開", @@ -10369,7 +10372,7 @@ }, "waitReviewerAssignment": { "title": "等待 reviewer 指派", - "body": "queue 開啟後仍需人工 reviewer 指派;未指派前不形成 accepted evidence。" + "body": "queue 開啟後仍需人工 reviewer 指派;未指派前不形成 已接受 evidence。" } } }, @@ -10378,7 +10381,7 @@ "subtitle": "S2.120 把補件結果分流之後,若未來要進人工 reviewer 指派前需要整理的六個準備包前台化:佇列狀態凍結、reviewer 角色邊界、範圍包、證據索引、衝突揭露、指派稽核草稿。這裡只顯示準備包,不代表 reviewer candidate 已成立、queue 已開或 reviewer 已指派。", "packetLabel": "準備包", "boundaryTitle": "指派準備邊界", - "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前的只讀準備包,不是開 queue、指派 reviewer、接受補件、建立稽核事件、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前的只讀準備包,不是開 queue、指派 reviewer、接受補件、建立稽核事件、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "packets": { "label": "準備包", @@ -10400,7 +10403,7 @@ "items": { "queueStatusFreeze": { "title": "佇列狀態凍結", - "body": "把 queue_open=false、ready_for_queue_count=0 與 request_sent=false 固定在同一個準備包,避免被誤讀成已開佇列。" + "body": "把 queue_open=false、就緒_for_queue_count=0 與 request_sent=false 固定在同一個準備包,避免被誤讀成已開佇列。" }, "reviewerRoleBoundary": { "title": "reviewer 角色邊界", @@ -10412,7 +10415,7 @@ }, "evidencePointerIndex": { "title": "證據索引", - "body": "只索引 metadata 與 evidence pointer;raw payload、token value、私鑰與登入口令仍不得進入準備包。" + "body": "只索引 metadata 與 evidence pointer;raw 載荷、token value、私鑰與登入口令仍不得進入準備包。" }, "conflictDisclosure": { "title": "衝突揭露", @@ -10429,7 +10432,7 @@ "subtitle": "S2.121 把 reviewer 指派準備包之後的六項檢查前台化:佇列仍關閉、角色邊界可追溯、範圍包可追溯、證據索引已脫敏、衝突揭露已釐清、稽核草稿只含 metadata。這裡只顯示指派前檢查,不代表 reviewer candidate 已成立、queue 已開或 reviewer 已指派。", "checkLabel": "檢查", "boundaryTitle": "指派前檢查邊界", - "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前的只讀檢查,不是開 queue、建立 reviewer candidate、指派 reviewer、接受補件、建立稽核事件、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前的只讀檢查,不是開 queue、建立 reviewer candidate、指派 reviewer、接受補件、建立稽核事件、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "checks": { "label": "檢查項", @@ -10451,11 +10454,11 @@ "items": { "queueStillClosed": { "title": "佇列仍關閉", - "body": "確認 queue_open=false、ready_for_queue_count=0、request_sent=false,避免檢查清單被當成已開 queue。" + "body": "確認 queue_open=false、就緒_for_queue_count=0、request_sent=false,避免檢查清單被當成已開 queue。" }, "roleBoundaryTraceable": { "title": "角色邊界可追溯", - "body": "確認 reviewer 只負責人工審查與建議,不具備部署、掃描、repo、refs、workflow 或 secret 操作權。" + "body": "確認 reviewer 只負責人工審查與建議,不具備部署、掃描、repo、refs、工作流程 或 機密 操作權。" }, "scopePacketTraceable": { "title": "範圍包可追溯", @@ -10463,7 +10466,7 @@ }, "evidenceIndexRedacted": { "title": "證據索引已脫敏", - "body": "確認只保留 metadata 與 evidence pointer;raw payload、token value、私鑰與登入口令仍不可收。" + "body": "確認只保留 metadata 與 evidence pointer;raw 載荷、token value、私鑰與登入口令仍不可收。" }, "conflictDisclosureClear": { "title": "衝突揭露已釐清", @@ -10477,10 +10480,10 @@ }, "firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome": { "title": "第一解鎖證據包 reviewer 指派前檢查結果分流", - "subtitle": "S2.122 把 reviewer 指派前檢查後的六條結果分流前台化:維持佇列關閉、退回角色邊界、退回範圍包、隔離未脫敏證據、暫停衝突揭露、保留 metadata-only 稽核草稿。這裡只顯示分流,不代表 reviewer candidate 已成立、queue 已開或 reviewer 已指派。", + "subtitle": "S2.122 把 reviewer 指派前檢查後的六條結果分流前台化:維持佇列關閉、退回角色邊界、退回範圍包、隔離未脫敏證據、暫停衝突揭露、保留 僅中繼資料 稽核草稿。這裡只顯示分流,不代表 reviewer candidate 已成立、queue 已開或 reviewer 已指派。", "outcomeLabel": "結果", "boundaryTitle": "指派前結果分流邊界", - "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前檢查後的只讀結果分流,不是建立 reviewer candidate、開 queue、指派 reviewer、接受補件、建立稽核事件、headline review、掃描、修復、部署或執行期入口。", + "boundaryIntro": "以下鍵值固定:這是 reviewer 指派前檢查後的只讀結果分流,不是建立 reviewer candidate、開 queue、指派 reviewer、接受補件、建立稽核事件、重點 審查、掃描、修復、部署或執行期入口。", "summary": { "outcomes": { "label": "分流", @@ -10502,11 +10505,11 @@ "items": { "keepQueueClosed": { "title": "維持佇列關閉", - "body": "只要 passed_count=0 或 ready_count=0,就維持 queue_open=false,不進 reviewer candidate。" + "body": "只要 passed_count=0 或 就緒_count=0,就維持 queue_open=false,不進 reviewer candidate。" }, "returnRoleBoundary": { "title": "退回角色邊界", - "body": "reviewer 權責不清時退回補齊,仍不得賦予部署、掃描、repo、refs、workflow 或 secret 操作權。" + "body": "reviewer 權責不清時退回補齊,仍不得賦予部署、掃描、repo、refs、工作流程 或 機密 操作權。" }, "returnScopePacket": { "title": "退回範圍包", @@ -10514,7 +10517,7 @@ }, "quarantineEvidenceIndex": { "title": "隔離未脫敏證據", - "body": "若出現 raw payload、token value、私鑰或登入口令,必須隔離並不得進 reviewer 指派。" + "body": "若出現 raw 載荷、token value、私鑰或登入口令,必須隔離並不得進 reviewer 指派。" }, "holdConflictDisclosure": { "title": "暫停衝突揭露", @@ -10527,8 +10530,8 @@ } }, "s49OwnerResponseWorkOrder": { - "title": "S4.9 Owner Response 人工收件工作單", - "subtitle": "S2.101 把第一個真正能推動 61% 的 S4.9 回覆收件格式放到 IwoooS:每項都要包含 owner role/team、decision、decision reason、受影響 scope、脫敏 evidence refs 與 follow-up owner。這裡只是人工收件工作單,不送出 request、不收件、不標記 已收到 / 已接受。", + "title": "S4.9 負責人 Response 人工收件工作單", + "subtitle": "S2.101 把第一個真正能推動 61% 的 S4.9 回覆收件格式放到 IwoooS:每項都要包含 owner role/team、decision、decision reason、受影響 scope、脫敏 evidence refs 與 後續追蹤 owner。這裡只是人工收件工作單,不送出 request、不收件、不標記 已收到 / 已接受。", "itemLabel": "收件項目", "requiredFieldsLabel": "必填欄位", "acceptanceLabel": "驗收方式", @@ -10549,43 +10552,43 @@ }, "accepted": { "label": "已接受", - "detail": "目前仍是 0,五項通過前不得 accepted。" + "detail": "目前仍是 0,五項通過前不得 已接受。" } }, "items": { "scopeGapResponse": { "title": "Public-only / local gap 回覆", "body": "請 owner 判定 public-only 與 local Gitea 差異是否納入本輪 inventory / migration scope。", - "requiredFields": "owner role/team、decision、decision reason、affected scope、redacted evidence refs、follow-up owner。", + "requiredFields": "owner role/team、decision、decision reason、affected scope、redacted evidence refs、後續追蹤 owner。", "acceptance": "decision 必須落在 in scope、out of scope、legacy archived、external system、inaccessible 或 needs more evidence。", "guard": "不建立 repo、不讀私有內容、不同步 refs、不把差異判定當 migration approval。" }, "endpointIdentityResponse": { "title": "Gitea `wooo` endpoint 身分回覆", "body": "請 owner 判定 `wooo` 應以 user、org 或雙重來源盤點,避免把 endpoint 404 誤讀成不存在。", - "requiredFields": "owner role/team、canonical endpoint identity、decision reason、affected endpoint、redacted evidence refs、follow-up owner。", - "acceptance": "必須能追溯到已知 endpoint evidence,且不得含 token、cookie、private URL credential 或 admin API payload。", + "requiredFields": "owner role/team、canonical endpoint identity、decision reason、affected endpoint、redacted evidence refs、後續追蹤 owner。", + "acceptance": "必須能追溯到已知 endpoint evidence,且不得含 token、cookie、private URL credential 或 admin API 載荷。", "guard": "不呼叫 Gitea admin API、不使用 token、不把 endpoint 身分當 inventory completed。" }, "adjacentSourceResponse": { "title": "110 adjacent source scope 回覆", "body": "請 owner 判定 `bitan-pharmacy`、`root/momo-pro-system`、`tsenyang-website`、`wooo/wooo-infra-config` 是否納入本輪 scope。", - "requiredFields": "owner role/team、per-source decision、decision reason、affected source、redacted evidence refs、follow-up owner。", + "requiredFields": "owner role/team、per-source decision、decision reason、affected source、redacted evidence refs、後續追蹤 owner。", "acceptance": "逐項標示 in scope、out of scope、legacy、external、inaccessible 或 needs more evidence,並保留脫敏 trace。", "guard": "不讀取私有 repo 內容、不匯入 archive、不把 110 adjacent source 自動納入 migration。" }, "canonicalOwnerResponse": { "title": "Repo owner / canonical scope 回覆", "body": "請 owner 為 in-scope repo 指定 canonical source、GitHub target candidate、visibility review owner 與理由。", - "requiredFields": "owner role/team、canonical source、GitHub target candidate、visibility review owner、redacted evidence refs、follow-up owner。", + "requiredFields": "owner role/team、canonical source、GitHub target candidate、visibility review owner、redacted evidence refs、後續追蹤 owner。", "acceptance": "target candidate 只能作為 readiness evidence,需後續 S4.10 / S4.11 / S4.12 驗收後才可進 primary review。", "guard": "不建立 GitHub repo、不改 visibility、不切 primary、不把 target candidate 當 approval。" }, "legacyDispositionResponse": { "title": "Legacy / inaccessible disposition 回覆", "body": "請 owner 對 legacy、inaccessible 或 external repo 留下 disposition、理由與後續負責人。", - "requiredFields": "owner role/team、disposition、decision reason、affected repo/source、redacted evidence refs、follow-up owner。", - "acceptance": "disposition 只能是 archive candidate、exclude、follow-up evidence、external owner 或 needs more evidence。", + "requiredFields": "owner role/team、disposition、decision reason、affected repo/source、redacted evidence refs、後續追蹤 owner。", + "acceptance": "disposition 只能是 archive candidate、exclude、後續追蹤 evidence、external owner 或 needs more evidence。", "guard": "不刪除、不停用、不封存 repo;disposition 只是人工分類,不是執行命令。" } } @@ -10828,13 +10831,13 @@ }, "redactedEvidenceDraft": { "title": "脫敏證據參照草稿", - "body": "只允許引用脫敏快照、文件路徑或 metadata 指標,避免把 token、私鑰、cookie、session 或原始 inventory payload 放進請求。", + "body": "只允許引用脫敏快照、文件路徑或 metadata 指標,避免把 token、私鑰、cookie、session 或原始 inventory 載荷 放進請求。", "gap": "尚未有可接受的脫敏證據包,不進收件。", "guard": "不保存機密明文、不轉送敏感載荷。" }, "noMutationClauseDraft": { "title": "禁止變更條款草稿", - "body": "送件文字必須明確說明這不是建立專案庫、改可見性、同步分支、修改 workflow、收集 機密明文值 或切換主要來源的要求。", + "body": "送件文字必須明確說明這不是建立專案庫、改可見性、同步分支、修改 工作流程、收集 機密明文值 或切換主要來源的要求。", "gap": "禁止變更條款未經人工確認前,不可送件。", "guard": "不把 request 草稿變成 GitHub、Gitea、分支 / 標籤參照、工作流程或機密設定動作。" }, @@ -10853,23 +10856,23 @@ } }, "s49OwnerResponsePreflight": { - "title": "S4.9 Owner Response 收件前 Preflight", - "subtitle": "S2.48 把 S4.9 的 6 個收件前檢查拉到 IwoooS:先確認回覆是否對應已知 attestation item、欄位完整、decision 合法、evidence 脫敏、沒有執行要求,且五個 items 到齊前不得 accepted。這裡只顯示 preflight,不寄送 request、不標記 received、不建立 audit event。", - "checkLabel": "Preflight", + "title": "S4.9 負責人 Response 收件前 預檢", + "subtitle": "S2.48 把 S4.9 的 6 個收件前檢查拉到 IwoooS:先確認回覆是否對應已知 attestation item、欄位完整、decision 合法、evidence 脫敏、沒有執行要求,且五個 items 到齊前不得 已接受。這裡只顯示 preflight,不寄送 request、不標記 已收到、不建立 audit event。", + "checkLabel": "預檢", "failureLabel": "不通過時", "guardLabel": "仍禁止", "items": { "knownAttestationItem": { "title": "對應 S4.7 已知 item", "body": "負責人回覆 必須明確對應 public-only / local gap、org/user endpoint、110 adjacent source、canonical owner 或 legacy disposition 其中之一。", - "failure": "不明確時只能 request owner correction,不能進 accepted。", + "failure": "不明確時只能 request owner correction,不能進 已接受。", "guard": "不把模糊回覆當作 coverage attestation,也不自動補成某個 item。" }, "requiredOwnerFields": { "title": "必填欄位完整", "body": "每筆回覆都要有 owner role/team、decision、decision reason、受影響 scope、evidence refs 與 followup owner。", "failure": "欄位不足只能 request more evidence。", - "guard": "不接受口頭 OK、不用缺欄位回覆建立 approval record。" + "guard": "不接受口頭 OK、不用缺欄位回覆建立 批准紀錄。" }, "allowedDecision": { "title": "Decision 在允許值內", @@ -10879,27 +10882,27 @@ }, "redactedEvidenceOnly": { "title": "只接受脫敏 evidence refs", - "body": "evidence 只能指向 repo 內文件、snapshot 或脫敏 metadata pointer,不貼 token、secret、cookie、session、private key 或私有 URL 憑證。", - "failure": "出現敏感 payload 只能 quarantine sensitive payload。", - "guard": "不保存 raw secret、不匯入 DB dump、不收 git object pack 或 repo archive。" + "body": "evidence 只能指向 repo 內文件、snapshot 或脫敏 中繼資料指標,不貼 token、機密、cookie、session、private key 或私有 URL 憑證。", + "failure": "出現敏感 載荷 只能 quarantine sensitive 載荷。", + "guard": "不保存 raw 機密、不匯入 DB dump、不收 git object pack 或 repo archive。" }, "noExecutionRequest": { "title": "不得夾帶執行要求", - "body": "回覆不得要求 Gitea/GitHub 寫入、repo 建立、visibility 修改、refs sync/delete/force-push、workflow/secret/runner 變更、scan 或 runtime action。", + "body": "回覆不得要求 Gitea/GitHub 寫入、repo 建立、visibility 修改、refs sync/delete/force-push、工作流程/機密/runner 變更、scan 或 runtime action。", "failure": "夾帶執行要求時 reject execution request。", "guard": "不寫 Gitea、不建 GitHub repo、不同步 refs、不開 執行期閘門。" }, "allFiveItemsBeforeAccepted": { "title": "五個項目到齊前不得 Accepted", - "body": "S4.9 要被標示 accepted 前,五個回覆範本都必須收到可驗收的負責人回覆。", + "body": "S4.9 要被標示 已接受 前,五個回覆範本都必須收到可驗收的負責人回覆。", "failure": "部分回覆只能維持 waiting 或 request more evidence。", - "guard": "preflight 可見不代表 request sent、received、accepted 或 audit emitted。" + "guard": "preflight 可見不代表 request sent、已收到、已接受 或 audit emitted。" } } }, "awooopCrossSessionHandoff": { "title": "AwoooP 跨 Session Handoff", - "subtitle": "S2.52 將目前 PR、分支、進度語義、必跑 guard、禁止動作與下一個協調 gate 固定成只讀 handoff packet,讓另一個 AwoooP Session 可直接接手,不把 handoff 當 production landing 或執行授權。", + "subtitle": "S2.52 將目前 PR、分支、進度語義、必跑 guard、禁止動作與下一個協調 閘門 固定成只讀 handoff packet,讓另一個 AwoooP Session 可直接接手,不把 handoff 當 正式環境落地 或執行授權。", "packetLabel": "Handoff packet", "handoffLabel": "交接說明", "guardLabel": "仍鎖住", @@ -10908,39 +10911,66 @@ "title": "PR / 分支錨點", "body": "目前以 PR #117 與 codex/security-supply-chain-contracts-20260512 作為只讀同步錨點。", "handoff": "另一個 Session 先確認同一 PR / branch / latest commit,再讀 LOGBOOK 與 rollup ledger。", - "guard": "不從 handoff 自動 merge、deploy、切 primary 或改 refs。" + "guard": "不從 handoff 自動 merge、deploy、切 primary 或改 ref。" }, "progressSemantics": { "title": "進度語義", - "body": "headline 仍是 61%,framework 86-88%,runtime / ingestion / GitHub primary / AwoooP production landing 40-45%。", - "handoff": "AwoooP production landing evidence 已記錄;後續新 UI / docs / snapshot 仍只能進 framework_detail ledger,除非 負責人回覆、執行期閘門或 GitHub primary 有新 evidence。", - "guard": "不把 framework detail、readiness、handoff、guard pass 當 headline delta。" + "body": "重點 仍是 61%,framework 86-88%,runtime / ingestion / GitHub primary / AwoooP 正式環境落地 40-45%。", + "handoff": "AwoooP 正式環境落地 evidence 已記錄;後續新 UI / docs / snapshot 仍只能進 framework_detail ledger,除非 負責人回覆、執行期閘門或 GitHub primary 有新 evidence。", + "guard": "不把 framework detail、readiness、handoff、guard pass 當 重點 delta。" }, "requiredGuardCommands": { "title": "必跑 Guard", - "body": "接手前先跑 security-mirror-progress-guard.py 與 source-control-owner-response-guard.py。", + "body": "接手前先跑 security-鏡像-progress-guard.py 與 source-control-owner-response-guard.py。", "handoff": "兩個 guard 都通過後才能繼續 read-only projection;失敗時先停下修 contract / snapshot。", - "guard": "不跳過 guard;不把 guard pass 當 runtime approval。" + "guard": "不跳過 guard;不把 guard pass 當 runtime 批准。" }, "forbiddenRuntimeActions": { "title": "Runtime 禁止動作", - "body": "Kali /execute、SSH、host update、active scan、credentialed scan、blocking control、repo / refs / workflow 動作仍未授權。", + "body": "Kali /execute、SSH、主機更新、active scan、憑證掃描、阻擋控制、repo / refs / 工作流程 動作仍未授權。", "handoff": "另一個 Session 只能新增 read-only evidence、UI projection、docs、snapshot、guard。", "guard": "runtime_execution_authorized=false;action_buttons_allowed=false" }, "awooopReadOnlyInputs": { "title": "AwoooP 只讀輸入", - "body": "可消費 rollup snapshot、IwoooS projection、負責人回覆 validation rollup、Kali status 與 rollout policy。", - "handoff": "AwoooP 主線接入時只顯示狀態、evidence refs、route group 與 forbidden actions。", - "guard": "不保存原始載荷、credential plaintext、token value 或 execution payload。" + "body": "可消費 rollup snapshot、IwoooS projection、負責人回覆 validation rollup、Kali status 與 分階段套用 policy。", + "handoff": "AwoooP 主線接入時只顯示狀態、evidence refs、route group 與 forbidden action。", + "guard": "不保存原始載荷、credential plaintext、token value 或 execution 載荷。" }, "nextCoordinationGate": { - "title": "下一個協調 Gate", - "body": "AwoooP production landing 已成為第一個完成的高層 gate;下一個真正能再推動 headline 的 gate 是負責人回覆 accepted、redacted payload ingestion、active 執行期閘門或 GitHub primary ready。", + "title": "下一個協調 閘門", + "body": "AwoooP 正式環境落地 已成為第一個完成的高層 閘門;下一個真正能再推動 重點 的 閘門 是負責人回覆 已接受、脫敏載荷 ingestion、active 執行期閘門或 GitHub primary 就緒。", "handoff": "另一個 Session 若要繼續推進,必須沿用這份 read-only consumption evidence,不得把它升級成 execution router。", "guard": "不把 handoff packet 或 landing evidence 當 runtime execution。" } } + }, + "fastProgress": { + "eyebrow": "快速進度回報", + "title": "目前做了什麼,一眼看懂", + "subtitle": "這裡只放使用者最需要先知道的結論:哪些已經前台可見、Kali 112 是否納管、所有產品是否套用、以及哪些執行動作仍未批准。詳細證據保留在下方區塊。", + "nextGate": { + "title": "下一個真正會推動進度的 Gate", + "body": "先收到並驗收 S4.9 Gitea 清冊負責人回覆。這件事完成前,61% 不應假性前進;完成後才檢查是否能打開 reviewer / runtime 的下一段人工流程。" + }, + "items": { + "done": { + "title": "前台可見工作已整合", + "body": "IwoooS 已串起安全合規、告警、授權、治理、錯誤追蹤、操作日誌與程式碼審查,讓資安工作不再只藏在文件。" + }, + "kali112": { + "title": "Kali 112 已納入資安網", + "body": "192.168.0.112 已在主機覆蓋與證據框架中;目前是只讀納管,不是已批准主動掃描、憑證掃描、/execute 或主機更新。" + }, + "allProducts": { + "title": "所有產品先套只讀框架", + "body": "核心產品、公開網站、版本來源、主機、監控工具與未來產品六類都已套用 IwoooS 可視化與人工 Gate 口徑。" + }, + "runtime": { + "title": "執行期仍保持關閉", + "body": "目前 active runtime gate 是 0;SSH、掃描、修復、部署、主機更新、repo / refs / workflow 變更都還沒被批准。" + } + } } } } diff --git a/apps/web/src/app/[locale]/code-review/page.tsx b/apps/web/src/app/[locale]/code-review/page.tsx index a6c24b28e..be17c1ad8 100644 --- a/apps/web/src/app/[locale]/code-review/page.tsx +++ b/apps/web/src/app/[locale]/code-review/page.tsx @@ -13,24 +13,29 @@ import { ShieldCheck, } from 'lucide-react' -const GITEA_ACTIONS_URL = 'http://192.168.0.110:3001/wooo/awoooi/actions' - const agents = [ { name: 'Hermes', role: '變更摘要與規則脈絡', state: 'wired' }, - { name: 'OpenClaw', role: 'AI review orchestration', state: 'wired' }, + { name: 'OpenClaw', role: 'AI 程式碼審查編排', state: 'wired' }, { name: 'Elephant Alpha', role: '風險分級與修復決策', state: 'wired' }, { name: 'NemoTron', role: '高風險推理席位', state: 'standby' }, ] const stages = [ - { label: 'push', state: 'Gitea main' }, - { label: 'start', state: 'Telegram card' }, - { label: 'scan', state: 'secret / destructive / diff-check' }, - { label: 'grade', state: 'CRITICAL / HIGH / MEDIUM / LOW' }, - { label: 'finish', state: 'Telegram report' }, + { label: '推送', state: 'Gitea main' }, + { label: '啟動', state: 'Telegram 卡片' }, + { label: '掃描', state: '機密 / 毀滅性操作 / 差異檢查' }, + { label: '分級', state: '危急 / 高 / 中 / 低' }, + { label: '回報', state: 'Telegram 報告' }, ] +const agentStateLabel: Record = { + wired: '已接線', + standby: '待命', +} + export default function CodeReviewPage({ params }: { params: { locale: string } }) { + const evidenceHref = `/${params.locale}/awooop/runs` + return (
@@ -39,21 +44,19 @@ export default function CodeReviewPage({ params }: { params: { locale: string }
- AWOOOI Code Review + AWOOOI 程式碼審查
-

AI Code Review 控制面

+

AI 程式碼審查控制面

- Hermes → OpenClaw → Elephant Alpha → NemoTron + Hermes → OpenClaw → Elephant Alpha → NemoTron,只做審查與分級,不自動推版。

- 查看 Gitea Actions + 查看 AwoooP 執行紀錄 @@ -63,34 +66,34 @@ export default function CodeReviewPage({ params }: { params: { locale: string }
- Source + 來源
gitea main
-
192.168.0.110:3001
+
以只讀證據回看,不在前端暴露內網入口
- Trigger + 觸發
-
push / manual
-
Code Review workflow
+
推送 / 手動
+
程式碼審查工作流
- Gate + 閘門
-
non-blocking v1
-
critical / high visible
+
非阻擋 v1
+
危急 / 高風險優先顯示
- Report + 報告
Telegram + Actions
-
start and completion cards
+
啟動卡片與完成卡片
@@ -98,7 +101,7 @@ export default function CodeReviewPage({ params }: { params: { locale: string }
- Review Pipeline + 審查流程
{stages.map((stage, index) => ( @@ -117,7 +120,7 @@ export default function CodeReviewPage({ params }: { params: { locale: string }
- Agent Assignment + Agent 分工
{agents.map((agent) => ( @@ -128,7 +131,7 @@ export default function CodeReviewPage({ params }: { params: { locale: string } {agent.name} {agent.role} - {agent.state} + {agentStateLabel[agent.state] ?? agent.state}
))} diff --git a/apps/web/src/app/[locale]/compliance/page.tsx b/apps/web/src/app/[locale]/compliance/page.tsx index 1635749f1..54ad0801b 100644 --- a/apps/web/src/app/[locale]/compliance/page.tsx +++ b/apps/web/src/app/[locale]/compliance/page.tsx @@ -70,7 +70,7 @@ export default function CompliancePage({ params }: { params: { locale: string }
{t('totalIncidents')}
{summary.total_incidents}
-
30 days
+
{t('window30Days')}
{t('resolvedRate')}
@@ -100,11 +100,10 @@ export default function CompliancePage({ params }: { params: { locale: string } }
- {/* Severity Distribution */} {summary && summary.severity_distribution.length > 0 && (
- Severity Distribution + {t('severityDistribution')}
{summary.severity_distribution.map(({ severity, count }) => { diff --git a/apps/web/src/app/[locale]/demo/page.tsx b/apps/web/src/app/[locale]/demo/page.tsx index e451367de..893604f75 100644 --- a/apps/web/src/app/[locale]/demo/page.tsx +++ b/apps/web/src/app/[locale]/demo/page.tsx @@ -97,7 +97,7 @@ export default function DemoPage({ params }: { params: { locale: string } }) { if (process.env.NEXT_PUBLIC_ENABLE_DEMO !== 'true') { return (
-

Demo page is disabled in production.

+

展示頁已在正式環境停用。

) } diff --git a/apps/web/src/app/[locale]/iwooos/page.tsx b/apps/web/src/app/[locale]/iwooos/page.tsx index 755019191..ecb604926 100644 --- a/apps/web/src/app/[locale]/iwooos/page.tsx +++ b/apps/web/src/app/[locale]/iwooos/page.tsx @@ -32,6 +32,13 @@ type PostureMetric = { tone: 'steady' | 'warn' | 'locked' } +type FastProgressItem = { + key: string + value: string + icon: typeof ShieldCheck + tone: 'steady' | 'warn' | 'locked' +} + type ProgressAccelerationLane = { key: string lane: string @@ -627,6 +634,13 @@ const postureMetrics: PostureMetric[] = [ { key: 'activeGates', value: '0', tone: 'locked' }, ] +const fastProgressItems: FastProgressItem[] = [ + { key: 'done', value: '7 頁', icon: CheckCircle2, tone: 'steady' }, + { key: 'kali112', value: '已納管', icon: ShieldCheck, tone: 'warn' }, + { key: 'allProducts', value: '6 / 6', icon: Radar, tone: 'steady' }, + { key: 'runtime', value: 'Gate 0', icon: Lock, tone: 'locked' }, +] + const allProductCoverageSnapshotSummary = [ { key: 'scopeCount', value: '6', icon: ListChecks, tone: 'steady' }, { key: 'readOnlyScopes', value: '6', icon: ShieldCheck, tone: 'steady' }, @@ -3440,6 +3454,76 @@ function MetricCard({ item }: { item: PostureMetric }) { ) } +function IwoooSFastProgressSummary() { + const t = useTranslations('iwooos.fastProgress') + return ( +
+
+
+
+ + {t('eyebrow')} +
+

{t('title')}

+

+ {t('subtitle')} +

+
+
+
+ + {t('nextGate.title')} +
+

+ {t('nextGate.body')} +

+
+
+
+ {fastProgressItems.map(item => { + const Icon = item.icon + return ( +
+
+ + {item.value} +
+

+ {t(`items.${item.key}.title` as never)} +

+

+ {t(`items.${item.key}.body` as never)} +

+
+ ) + })} +
+
+ ) +} + function IwoooSOperatorNextTasksBoard() { const t = useTranslations('iwooos.operatorNextTasks') return ( @@ -12070,6 +12154,8 @@ export default function IwoooSPage({ params }: { params: { locale: string } }) {
+ +
{t('totalIncidents')}
{summary.total_incidents}
-
30 days
+
{t('window30Days')}
{t('resolvedRate')}
@@ -102,7 +102,7 @@ export function CompliancePanel() { {summary && summary.severity_distribution.length > 0 && (
- Severity Distribution + {t('severityDistribution')}
{summary.severity_distribution.map(({ severity, count }) => ( diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index ff6510e7f..ee391d89d 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,49 @@ +## 2026-05-31|IwoooS 首屏資安推進總覽與全站繁中收斂 + +**背景**: + +- 使用者指出資安工作推進時間太久、缺少「到底做了哪些工作」的直接感受,也不清楚 Kali `192.168.0.112`、兩台開發主機、所有產品 / 網站 / 工具的資安機制目前完成到哪裡。 +- 原 `/iwooos` 已有大量 read-only 證據、host coverage、全產品 rollout 與 gate 資訊,但資訊分散且預設內容過多,第一屏沒有直接回答「完成 / 未完成 / 下一步」。 + +**本次調整**: + +- `/iwooos` 首屏新增 `iwooos-fast-progress-summary`,直接顯示四個結論: + - 前台可見工作已整合:安全合規、告警、授權、治理、錯誤追蹤、操作日誌與程式碼審查。 + - Kali `192.168.0.112` 已納入資安網:目前是只讀納管,不是已批准主動掃描、憑證掃描、`/execute` 或主機更新。 + - 所有產品先套只讀框架:核心產品、公開網站、版本來源、主機、監控工具與未來產品六類都套用 IwoooS 可視化與人工 Gate 口徑。 + - 執行期仍保持關閉:active runtime gate `0`;SSH、掃描、修復、部署、主機更新、repo / refs / workflow 變更都還沒被批准。 +- `apps/web/messages/en.json` 完整鏡像 `zh-TW.json`,讓 `/en` 路徑也以繁體中文呈現。 +- `/code-review` 改為繁體中文控制面,並移除前端直接顯示內網 Gitea Actions URL 的按鈕,改連 AwoooP 執行紀錄。 +- `/compliance` 與 `CompliancePanel` 移除硬編碼英文 `30 days` / `Severity Distribution`。 +- `security-mirror-progress-guard.py` 新增 full-site `en.json` / `zh-TW.json` mirror guard,防止網站內容再分叉成英文。 + +**驗證**: + +```text +python3 -m json.tool apps/web/messages/zh-TW.json / en.json + -> pass +python3 -m py_compile scripts/security/security-mirror-progress-guard.py scripts/security/source-control-owner-response-guard.py + -> pass +python3 scripts/security/security-mirror-progress-guard.py + -> SECURITY_MIRROR_PROGRESS_GUARD_OK +python3 scripts/security/source-control-owner-response-guard.py + -> SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK +git diff --check + -> pass +pnpm --dir apps/web run typecheck + -> pass +NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --dir apps/web run build + -> pass +本地 Playwright(production build / next start): + /zh-TW/iwooos -> iwooos-fast-progress-summary 可見,含 Kali 112 / 全產品只讀 / runtime Gate 0 / 下一 Gate;截圖 `/tmp/iwooos-fast-progress-zh.png` + /en/iwooos -> 同樣繁體中文可見;無水平溢出 +``` + +**進度邊界**: + +- 整體資安網仍維持 `61%`;框架 / 治理 / 文件 / schema / read-only evidence 約 `86-88%`;runtime landing 約 `40-45%`。 +- active runtime gate 仍為 `0`;本輪是可見化與理解度加速,不是掃描、SSH、主機更新、修復、部署、repo/refs/workflow 變更或 GitHub primary 切換授權。 + ## 2026-05-31|IwoooS `/en` 內容層繁體中文收斂 **背景**: diff --git a/scripts/security/security-mirror-progress-guard.py b/scripts/security/security-mirror-progress-guard.py index 860b716b5..1502f3676 100755 --- a/scripts/security/security-mirror-progress-guard.py +++ b/scripts/security/security-mirror-progress-guard.py @@ -218,6 +218,11 @@ def validate(root: Path) -> None: ) assert_equal("web_messages.en.nav.traditional_chinese_mirror", web_messages_en["nav"], web_messages_zh["nav"]) assert_equal("web_messages.en.iwooos.traditional_chinese_mirror", web_messages_en["iwooos"], web_messages_zh["iwooos"]) + assert_equal( + "web_messages.en.full_site_traditional_chinese_mirror", + web_messages_en, + web_messages_zh, + ) progress = rollup["progress_estimate"] assert_equal("progress.overall_percent", progress["overall_percent"], 61)