diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 741674824..ac3a06ddd 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -8145,7 +8145,53 @@ "repair_command": "受控修復命令或 Ansible playbook,不能是純診斷命令。", "rollback_command": "修復失敗時的回滾或安全停止方案。", "verifier_plan": "修復後如何驗證成功、失敗與是否要升級人工。", - "owner_review": "負責人、風險等級、適用條件與批准紀錄。" + "owner_review": "負責人、風險等級、適用條件與批准紀錄。", + "script_or_ansible_ref": "腳本或 Ansible 參照,必須能被安全路由與 reviewer 查到。", + "schedule_or_monitoring_rule_ref": "排程、監控規則或 recurrence 偵測參照,避免同類告警只靠人工記憶。", + "km_update_plan": "KM 更新草稿與 owner review 計畫,避免錯知識直接固化。", + "automation_asset_record": "自動化資產紀錄,包含 asset id、owner、狀態、來源與下一步。" + }, + "assetsTitle": "自動化資產沉澱板", + "assets": { + "km": { + "type": "KM", + "owner": "Hermes", + "visibility": "Knowledge Base:根因、處置、引用來源與 owner review。", + "status": "待草稿" + }, + "playbook": { + "type": "PlayBook", + "owner": "OpenClaw", + "visibility": "Work Items:服務專屬步驟、trust policy、適用條件。", + "status": "待審核" + }, + "script": { + "type": "Script / Ansible", + "owner": "Executor lane", + "visibility": "Runs:安全路由、check-mode、命令來源與阻擋原因。", + "status": "待安全路由" + }, + "schedule": { + "type": "Schedule / Monitoring", + "owner": "SRE / Hermes", + "visibility": "Observability:recurrence、alert rule、日週月報關聯。", + "status": "待綁定" + }, + "verifier": { + "type": "Verifier", + "owner": "PostExecutionVerifier", + "visibility": "時間線:成功、降級、失敗、rollback 判定。", + "status": "待計畫" + } + }, + "writebackTitle": "必須回寫的結果", + "writebacks": { + "incident_timeline_stage_update": "Incident timeline 必須標記目前階段、處置包、owner 與下一步。", + "execution_or_manual_handoff_result": "無執行時也要寫入人工接手結果,不能只留下批准紀錄。", + "verifier_result": "Verifier 要能記錄成功、失敗、降級或尚未執行。", + "km_update_draft": "Hermes 產生 KM 草稿,owner review 後才可寫入高影響知識。", + "playbook_trust_update": "PlayBook 成功 / 失敗 / 未執行都要回寫 trust 與適用條件。", + "automation_asset_inventory_record": "資產清冊要留下 KM、PlayBook、腳本、排程、Verifier 的 ID 與狀態。" }, "guardrailTitle": "阻擋原因與禁止誤讀", "blocker": "目前缺少可信修復候選;系統只能建立人工草案工作項,不能把 no-action、診斷結果或通用兜底當作已修復。", diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 741674824..ac3a06ddd 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -8145,7 +8145,53 @@ "repair_command": "受控修復命令或 Ansible playbook,不能是純診斷命令。", "rollback_command": "修復失敗時的回滾或安全停止方案。", "verifier_plan": "修復後如何驗證成功、失敗與是否要升級人工。", - "owner_review": "負責人、風險等級、適用條件與批准紀錄。" + "owner_review": "負責人、風險等級、適用條件與批准紀錄。", + "script_or_ansible_ref": "腳本或 Ansible 參照,必須能被安全路由與 reviewer 查到。", + "schedule_or_monitoring_rule_ref": "排程、監控規則或 recurrence 偵測參照,避免同類告警只靠人工記憶。", + "km_update_plan": "KM 更新草稿與 owner review 計畫,避免錯知識直接固化。", + "automation_asset_record": "自動化資產紀錄,包含 asset id、owner、狀態、來源與下一步。" + }, + "assetsTitle": "自動化資產沉澱板", + "assets": { + "km": { + "type": "KM", + "owner": "Hermes", + "visibility": "Knowledge Base:根因、處置、引用來源與 owner review。", + "status": "待草稿" + }, + "playbook": { + "type": "PlayBook", + "owner": "OpenClaw", + "visibility": "Work Items:服務專屬步驟、trust policy、適用條件。", + "status": "待審核" + }, + "script": { + "type": "Script / Ansible", + "owner": "Executor lane", + "visibility": "Runs:安全路由、check-mode、命令來源與阻擋原因。", + "status": "待安全路由" + }, + "schedule": { + "type": "Schedule / Monitoring", + "owner": "SRE / Hermes", + "visibility": "Observability:recurrence、alert rule、日週月報關聯。", + "status": "待綁定" + }, + "verifier": { + "type": "Verifier", + "owner": "PostExecutionVerifier", + "visibility": "時間線:成功、降級、失敗、rollback 判定。", + "status": "待計畫" + } + }, + "writebackTitle": "必須回寫的結果", + "writebacks": { + "incident_timeline_stage_update": "Incident timeline 必須標記目前階段、處置包、owner 與下一步。", + "execution_or_manual_handoff_result": "無執行時也要寫入人工接手結果,不能只留下批准紀錄。", + "verifier_result": "Verifier 要能記錄成功、失敗、降級或尚未執行。", + "km_update_draft": "Hermes 產生 KM 草稿,owner review 後才可寫入高影響知識。", + "playbook_trust_update": "PlayBook 成功 / 失敗 / 未執行都要回寫 trust 與適用條件。", + "automation_asset_inventory_record": "資產清冊要留下 KM、PlayBook、腳本、排程、Verifier 的 ID 與狀態。" }, "guardrailTitle": "阻擋原因與禁止誤讀", "blocker": "目前缺少可信修復候選;系統只能建立人工草案工作項,不能把 no-action、診斷結果或通用兜底當作已修復。", diff --git a/apps/web/src/app/[locale]/awooop/work-items/page.tsx b/apps/web/src/app/[locale]/awooop/work-items/page.tsx index 2576f954f..ddea2eb47 100644 --- a/apps/web/src/app/[locale]/awooop/work-items/page.tsx +++ b/apps/web/src/app/[locale]/awooop/work-items/page.tsx @@ -1040,6 +1040,27 @@ const REPAIR_CANDIDATE_DRAFT_REQUIRED_FIELDS = [ "rollback_command", "verifier_plan", "owner_review", + "script_or_ansible_ref", + "schedule_or_monitoring_rule_ref", + "km_update_plan", + "automation_asset_record", +] as const; + +const REPAIR_CANDIDATE_AUTOMATION_ASSETS = [ + "km", + "playbook", + "script", + "schedule", + "verifier", +] as const; + +const REPAIR_CANDIDATE_WRITEBACKS = [ + "incident_timeline_stage_update", + "execution_or_manual_handoff_result", + "verifier_result", + "km_update_draft", + "playbook_trust_update", + "automation_asset_inventory_record", ] as const; const REPAIR_CANDIDATE_DRAFT_BLOCKED_OPERATIONS = [ @@ -2911,6 +2932,31 @@ function RepairCandidateDraftPanel({ ))} + +
+ {t(`assets.${asset}.type` as never)} +
++ {t(`assets.${asset}.owner` as never)} +
++ {t(`assets.${asset}.visibility` as never)} +
+ + {t(`assets.${asset}.status` as never)} + ++ {writeback} +
++ {t(`writebacks.${writeback}` as never)} +
+