用於審查 Claude Skill 與指令的品質。支援快速掃描(僅針對有變更的 Skill)與全面盤點模式,並透過 subagent 進行順序批次評估。
skill-stocktake
斜線指令(/skill-stocktake),透過品質檢查清單加上 AI 全面判斷,審查所有的 Claude Skill 與指令。支援兩種模式:針對最近變更 Skill 的「快速掃描(Quick Scan)」,以及進行完整審查的「全面盤點(Full Stocktake)」。
適用範圍
本指令會針對相對於執行所在目錄的以下路徑進行處理:
| 路徑 | 說明 |
|---|---|
~/.claude/skills/ |
全域 Skill(適用於所有專案) |
{cwd}/.claude/skills/ |
專案層級 Skill(若該資料夾存在) |
在階段 1(Phase 1)開始時,指令會明確列出找到並已掃描的路徑。
指定特定專案
若要包含專案層級的 Skill,請在該專案的根目錄下執行:
cd ~/path/to/my-project
/skill-stocktake
若該專案沒有 .claude/skills/ 資料夾,則僅會評估全域 Skill 與指令。
執行模式
| 模式 | 觸發條件 | 預估耗時 |
|---|---|---|
| 快速掃描(Quick Scan) | results.json 存在(預設) |
5–10 分鐘 |
| 全面盤點(Full Stocktake) | results.json 不存在,或輸入 /skill-stocktake full |
20–30 分鐘 |
結果快取路徑: ~/.claude/skills/skill-stocktake/results.json
快速掃描流程
僅重新評估上次執行後有變更的 Skill(約 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偵測;僅在有需要時才手動傳入) - 若輸出為
[]:回報「自上次執行以來無任何變更。」並停止 - 使用相同的階段 2(Phase 2)標準,僅重新評估有變更的檔案
- 延用前次結果中未變更的 Skill
- 僅輸出差異(diff)
- 執行:
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"
全面盤點流程
階段 1 — 清冊盤點
執行:bash ~/.claude/skills/skill-stocktake/scripts/scan.sh
腳本會列舉 Skill 檔案、擷取 frontmatter,並收集 UTC 格式的修改時間(mtime)。
專案目錄會自動從 $PWD/.claude/skills 偵測;僅在有需要時才手動傳入。
根據腳本輸出展示掃描摘要與盤點清單表格:
Scanning:
✓ ~/.claude/skills/ (17 files)
✗ {cwd}/.claude/skills/ (not found — global skills only)
| Skill | 7 天使用率 | 30 天使用率 | 說明 |
|---|
階段 2 — 品質評估
使用完整的盤點清單與檢查清單啟動 Agent 工具 subagent(general-purpose agent):
Agent(
subagent_type="general-purpose",
prompt="
Evaluate the following skill inventory against the checklist.
[INVENTORY]
[CHECKLIST]
Return JSON for each skill:
{ \"verdict\": \"Keep\"|\"Improve\"|\"Update\"|\"Retire\"|\"Merge into [X]\", \"reason\": \"...\" }
"
)
subagent 會讀取每個 Skill,對照檢查清單進行審查,並回傳每個 Skill 的 JSON 結果:
{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }
分批處理建議: 每次調用 subagent 處理約 20 個 Skill,以維持 context 的易控性。每完成一批次後,將中間結果寫入 results.json(設定 status: "in_progress")。
當所有 Skill 都評估完成後:設定 status: "completed",並進入階段 3。
中斷恢復偵測: 若啟動時偵測到 status: "in_progress",將從第一個尚未評估的 Skill 繼續執行。
每個 Skill 都會對照以下檢查清單進行評估:
- [ ] 已檢查是否與其他 Skill 內容重疊
- [ ] 已檢查是否與 MEMORY.md / CLAUDE.md 重疊
- [ ] 已驗證技術參考資料的時效性(若含有工具名稱 / CLI 參數 / API,請使用 WebSearch 驗證)
- [ ] 已考量使用頻率
評估結論標準:
| 評估結論 (Verdict) | 意涵 |
|---|---|
| Keep | 實用且符合當前現況 |
| Improve | 值得保留,但需要特定調整與改進 |
| Update | 所引用的技術已過時(需透過 WebSearch 驗證) |
| Retire | 品質低落、過期失效或效益不符成本 |
| Merge into [X] | 與另一個 Skill 有大幅重疊;需指定合併目標 |
評估方式為 AI 全面綜合判斷 — 非數值化的評分標準。引導維度包括:
- 可執行性 (Actionability):包含能立即操作的程式碼範例、指令或步驟
- 範圍契合度 (Scope fit):名稱、觸發條件與內容彼此符合;不會過於寬泛或狹隘
- 獨特性 (Uniqueness):其價值無法被 MEMORY.md / CLAUDE.md / 其他 Skill 取代
- 時效性 (Currency):技術參考資料在當前環境中依然適用
理由品質要求 — reason 欄位必須完整自洽且具備決策依據:
- 切勿僅填寫「無變更」— 請務必重新列出核心依據
- 針對 Retire:說明 (1) 發現了什麼具體缺陷,(2) 有什麼替代方案可涵蓋相同需求
- 差:
"Superseded" - 好:
"disable-model-invocation: true 已設定;已被 continuous-learning-v2 取代,後者涵蓋了完全相同的模式並加上信心度評分。已無任何獨特內容。"
- 差:
- 針對 Merge:指名合併目標並說明應整合哪些內容
- 差:
"Overlaps with X" - 好:
"僅 42 行單薄內容;chatlog-to-article 的步驟 4 已涵蓋相同的流程。請將 'article angle' 的技巧作為註記整合至該 Skill 中。"
- 差:
- 針對 Improve:描述具體需要的變更(包含特定區塊、操作方式,若相關可附上目標長度)
- 差:
"Too long" - 好:
"共 276 行;'Framework Comparison' 區塊(L80–140)與 ai-era-architecture-principles 重複;刪除該區塊以使長度縮減至約 150 行。"
- 差:
- 針對 Keep(快速掃描中僅 mtime 變更):重新陳述原本的評估理由,請勿寫「無變更」
- 差:
"Unchanged" - 好:
"mtime 已更新但內容未變。包含 rules/python/ 所明確匯入的獨特 Python 參考資料;未發現重疊。"
- 差:
階段 3 — 摘要表格
| Skill | 7 天使用率 | 評估結論 | 原因 |
|---|
階段 4 — 整合與清理
- Retire / Merge:在向使用者確認前,針對每個檔案提供詳細的合理化依據:
- 發現的具體問題(如內容重疊、內容過時、失效的參考連結等)
- 涵蓋相同功能的替代方案(針對 Retire:是哪項現有的 Skill/規則;針對 Merge:目標檔案以及要整合的內容)
- 移除的影響(是否影響任何相依的 Skill、MEMORY.md 參考資料或工作流程)
- Improve:提出具體的改進建議與理由:
- 欲變更的內容與理由(例如:「將 430 行精簡至 200 行,因 X/Y 區塊與 python-patterns 重複」)
- 由使用者決定是否執行
- Update:提供經來源查驗後的更新內容
- 檢查 MEMORY.md 的行數;若超過 100 行則建議進行壓縮
結果檔案 Schema
~/.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": "Concrete, actionable, unique value for X workflow",
"mtime": "2026-01-15T08:30:00Z"
}
}
}
注意事項
- 評估過程不帶偏見(blind):無論 Skill 來源為何(ECC、自行撰寫、自動擷取),皆套用相同的檢查清單
- 封存 / 刪除操作永遠需要取得使用者的明確確認
- 不會因 Skill 來源不同而產生不同的結論判斷分流






