| name | skill-updater |
| description | 技能版本更新機制。指示 AI Agent 直接透過工具讀取遠端 GitHub 倉庫,比對 public/SKILLS/ 內技能的差異並執行自動化更新流程。 |
Skill Updater (技能版本更新機制)
此技能定義了 AI Agent 如何自主檢查並同步 SKILLS_All-in-one 平台中位於 public/SKILLS/ 內的公共技能,確保其安全性與遠端來源保持一致。
🚀 核心工作流 (Agent-Driven Update Pipeline)
當接收到「檢核更新」任務時,AI Agent 必須 執行以下動作:
Step 1: 遠端探索與內容比對 (Discovery & Diff)
- 讀取元數據:從
@src/data/skills.ts 取得技能的 githubUrl。
- 定位本地路徑:僅針對路徑位於
@public/SKILLS/ 下的技能執行檢查。
- 獲取遠端內容:使用
web_fetch 讀取遠端路徑下的 SKILL.md (原始碼)。
- 提示:確保將 GitHub Tree URL 轉換為
raw.githubusercontent.com 下載路徑。
- 執行比對:將遠端
SKILL.md 的內容與本地 public/SKILLS/ 目錄下的 SKILL.md 進行內容比對。
- 判定異動:若內容不一致或遠端 YAML 中的
version 較新,則標記為「待更新」。
Step 2: 抓取新版 (Import Phase)
- 調用邏輯:參考
github-skill-importer。
- 目標:將遠端技能目錄下的所有檔案(含輔助腳本與資源)下載至臨時暫存區
@public/SKILLS/Uncategorized/tmp-update-{FolderName}/。
Step 3: 安全審查 (Audit Phase)
- 調用技能:
skill-security-auditor
- 目標:對暫存區的新檔案執行代碼掃描,產出《更新安全審查報告》。
- 規則:結果必須為
PASS 方可繼續。
Step 4: 原子化更新與遷移 (Update & SQL)
- 備份與校驗:
- 校驗:執行覆蓋前,必須 使用
read_file 讀取暫存區檔案,確保內容非空且未損壞。
- 備份:考慮將舊版檔案暫存至
tmp-bak/,以利更新失敗時還原。
- 覆蓋本地檔案:將通過審核的暫存區檔案移動至
@public/SKILLS/{Category}/ 下的正式路徑,覆蓋舊版。
- 元數據同步:更新
src/data/skills.ts 中該技能的 updatedAt 或 version。
- 資料庫遷移:調用
sql-migration-manager 將 UPDATE 語句記錄於 database/incremental_updates.sql 頂部。
Step 5: 系統同步 (Manifest Sync)
- 執行指令:
npm run prebuild。
- 回報:向使用者呈報更新結果與版本變更摘要。
🚦 狀態管控規則 (Guardrails)
- 僅限公共技能:本更新機制 僅適用於
public/SKILLS/ 目錄下的技能。嚴禁將此流程應用於 .agent/skills/ 內的內部管理技能。
- 自主性要求:AI Agent 應直接使用自身工具執行比對,嚴禁依賴外部腳本。
- 禁止靜默更新:偵測到差異後,應先列出清單向使用者確認。
- 防空檔案覆蓋 (Null-Overwrite Prevention):嚴禁使用空檔案或未完整下載的檔案覆蓋正式環境。覆蓋前 必須 通過內容校驗。
- 檔案完整性:更新時必須確保該技能目錄下的所有關聯檔案同步更新。
📝 任務紀錄範本