skill-stocktake

skill-stocktake

熱門

用於審查 Claude Skill 與指令的品質。支援快速掃描(僅針對有變更的 Skill)與全面盤點模式,並透過 subagent 進行順序批次評估。

24萬星標
3.6萬分支
更新於 2026/8/2
SKILL.md
唯讀
名稱
skill-stocktake
描述

用於審查 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 分鐘)。

  1. 讀取 ~/.claude/skills/skill-stocktake/results.json
  2. 執行:bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json
    (專案目錄會自動從 $PWD/.claude/skills 偵測;僅在有需要時才手動傳入)
  3. 若輸出為 []:回報「自上次執行以來無任何變更。」並停止
  4. 使用相同的階段 2(Phase 2)標準,僅重新評估有變更的檔案
  5. 延用前次結果中未變更的 Skill
  6. 僅輸出差異(diff)
  7. 執行: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 — 整合與清理

  1. Retire / Merge:在向使用者確認前,針對每個檔案提供詳細的合理化依據:
    • 發現的具體問題(如內容重疊、內容過時、失效的參考連結等)
    • 涵蓋相同功能的替代方案(針對 Retire:是哪項現有的 Skill/規則;針對 Merge:目標檔案以及要整合的內容)
    • 移除的影響(是否影響任何相依的 Skill、MEMORY.md 參考資料或工作流程)
  2. Improve:提出具體的改進建議與理由:
    • 欲變更的內容與理由(例如:「將 430 行精簡至 200 行,因 X/Y 區塊與 python-patterns 重複」)
    • 由使用者決定是否執行
  3. Update:提供經來源查驗後的更新內容
  4. 檢查 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 來源不同而產生不同的結論判斷分流