技能庫存審計 是做什麼的?
斜線指令 (/skill-stocktake),使用品質檢查清單 + AI 整體判斷,審計所有 Claude 技能與指令。支援兩種模式:快速掃描(僅檢查最近變更的技能)與完整庫存(全面審查)。
範圍
指令會鎖定以下相對於執行目錄的路徑:
| 路徑 | 說明 |
|---|---|
~/.claude/skills/ | 全域技能(所有專案) |
{cwd}/.claude/skills/ | 專案層級技能(若目錄存在) |
在第一階段開始時,指令會明確列出哪些路徑被找到並掃描。
指定特定專案
若要包含專案層級技能,請在該專案的根目錄執行:
cd ~/path/to/my-project
/skill-stocktake
若專案沒有 .claude/skills/ 目錄,則僅評估全域技能與指令。
模式
| 模式 | 觸發條件 | 持續時間 |
|---|---|---|
| 快速掃描 | results.json 存在(預設) | 5–10 分鐘 |
| 完整庫存 | results.json 不存在,或 /skill-stocktake full | 20–30 分鐘 |
結果快取: ~/.claude/skills/skill-stocktake/results.json
快速掃描流程
僅重新評估自上次執行後有變更的技能(5–10 分鐘)。
- 讀取
~/.claude/skills/skill-stocktake/results.json - 執行:
bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json(專案目錄會從$PWD/.claude/skills自動偵測;僅在需要時才明確傳入) - 若輸出為
[]:回報「自上次執行後無變更。」並停止 - 僅使用相同的第二階段標準重新評估那些變更過的檔案
- 從先前的結果中沿用未變更的技能
- 僅輸出差異
- 執行:
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"
完整庫存流程
第一階段 — 庫存盤點
執行:bash ~/.claude/skills/skill-stocktake/scripts/scan.sh
該腳本會列舉技能檔案、提取 frontmatter 並收集 UTC 修改時間。
專案目錄會從 $PWD/.claude/skills 自動偵測;僅在需要時才明確傳入。
從腳本輸出中呈現掃描摘要與庫存表格:
正在掃描:
✓ ~/.claude/skills/ (17 個檔案)
✗ {cwd}/.claude/skills/ (未找到 — 僅限全域技能)
| 技能 | 7 天使用次數 | 30 天使用次數 | 說明 |
|---|
第二階段 — 品質評估
啟動一個 Agent 工具子代理 (通用型代理),並提供完整的庫存清單與檢查清單:
Agent(
subagent_type="general-purpose",
prompt="
請根據以下檢查清單評估技能庫存。
[庫存清單]
[檢查清單]
為每個技能回傳 JSON:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }
"
)
子代理會讀取每個技能、套用檢查清單,並回傳每個技能的 JSON:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }
區塊指導: 為保持上下文可管理,每次子代理呼叫約處理 20 個技能。每個區塊處理後,將中間結果儲存至 results.json(status: "in_progress")。
所有技能評估完畢後:將 status 設為 "completed",然後進入第三階段。
斷點續傳偵測: 若啟動時發現 status: "in_progress",則從第一個未評估的技能繼續。
每個技能都會根據以下檢查清單進行評估:
- [ ] 已檢查與其他技能的內容重疊
- [ ] 已檢查與 MEMORY.md / CLAUDE.md 的重疊
- [ ] 已檢查技術參考資料的新鮮度(若出現工具名稱 / CLI 標誌 / API,請使用 WebSearch)
- [ ] 已考慮使用頻率
裁決標準:
| 裁決 | 含義 |
|---|---|
| Keep | 有用且符合現狀 |
| Improve | 值得保留,但需要特定改進 |
| Update | 引用的技術已過時(請使用 WebSearch 驗證) |
| Retire | 品質低、過時或成本效益不對稱 |
| Merge into [X] | 與另一個技能有實質重疊;請指定合併目標 |
評估是 AI 整體判斷 — 而非數字評分表。指導維度:
- 可操作性:包含可立即執行的程式碼範例、指令或步驟
- 範圍契合度:名稱、觸發條件與內容一致;不會過於廣泛或狹隘
- 獨特性:價值無法被 MEMORY.md / CLAUDE.md / 其他技能取代
- 時效性:技術參考資料在當前環境中可正常運作
理由品質要求 — reason 欄位必須自足且有助於決策:
- 請勿僅寫「未變更」— 務必重新陳述核心證據
- 對於 Retire:說明 (1) 發現了什麼具體缺陷、(2) 哪個項目涵蓋了相同的需求
- 不良:
"已取代" - 良好:
"disable-model-invocation: true 已設定;已由 continuous-learning-v2 取代,該技能涵蓋所有相同模式並加上信心評分。無任何獨特內容留存。"
- 不良:
- 對於 Merge:指定目標並描述要整合哪些內容
- 不良:
"與 X 重疊" - 良好:
"42 行的簡短內容;chatlog-to-article 的第 4 步已涵蓋相同工作流程。將「文章角度」技巧作為註解整合到該技能中。"
- 不良:
- 對於 Improve:說明具體需要的變更(哪個區段、什麼操作、目標大小)
- 不良:
"太長" - 良好:
"276 行;區段「框架比較」(L80–140) 與 ai-era-architecture-principles 重複;刪除後約可縮減至 150 行。"
- 不良:
- 對於 Keep(快速掃描中僅 mtime 變更):重新陳述原始裁決理由,請勿寫「未變更」
- 不良:
"未變更" - 良好:
"mtime 更新但內容未變更。獨特的 Python 參考資料,由 rules/python/ 明確匯入;未發現重疊。"
- 不良:
第三階段 — 摘要報表
| 技能 | 7 天使用次數 | 裁決 | 理由 |
|---|
第四階段 — 合併
- 淘汰 / 合併:在向使用者確認前,針對每個檔案提供詳細的說明:
- 發現了什麼具體問題(重疊、過時、參考中斷等)
- 哪個替代方案涵蓋相同功能(對於 Retire:哪個現有技能/規則;對於 Merge:目標檔案及要整合的內容)
- 移除的影響(任何相依的技能、MEMORY.md 參考或受影響的工作流程)
- 改進:提供具體的改進建議及理由:
- 要變更什麼及其原因(例如「將 430 行裁剪為 200 行,因為區段 X/Y 與 python-patterns 重複」)
- 由使用者決定是否執行
- 更新:呈現更新後的內容及已檢查的來源
- 檢查 MEMORY.md 行數;若超過 100 行,建議壓縮
結果檔案結構
~/.claude/skills/skill-stocktake/results.json:
evaluated_at:必須設為評估完成的實際 UTC 時間。
透過 Bash 取得:date -u +%Y-%m-%dT%H:%M:%SZ。切勿使用僅有日期的近似值如 T00:00:00Z。
{
"evaluated_at": "2026-02-21T10:00:00Z",
"mode": "full",
"batch_progress": {
"total": 80,
"evaluated": 80,
"status": "completed"
},
"skills": {
"skill-name": {
"path": "~/.claude/skills/skill-name/SKILL.md",
"verdict": "Keep",
"reason": "具體、可操作,對 X 工作流程具有獨特價值",
"mtime": "2026-01-15T08:30:00Z"
}
}
}
備註
- 評估是盲審的:所有技能(無論來源為 ECC、自撰或自動提取)均套用相同的檢查清單
- 封存 / 刪除操作一律需要使用者明確確認
- 不因技能來源不同而異的裁決