| name | curation |
| description | Retrospective batch cleanup — 修復 learned skills 的格式缺陷(malformed frontmatter、legacy 評分格式),HITL 確認後刪除已廢棄項目。不重新評分、不提取新 patterns。 |
| allowed-tools | Bash, Read, Glob, Grep, Edit, Write, AskUserQuestion |
/curation — Learned Skills 品質管控
按需執行的維護工具,用於清理和標準化 ~/.claude/skills/learned/ 中累積的 learned skills。不綁定任何自動化流程,使用者想整理時手動呼叫。
Role: Retrospective Format Remediation
修復既有 learned skills 的格式漂移。與 /update Step 4(在新寫入時強制格式)互補,非替代。
| 時機 | 工具 |
|---|
| 批量修復既有 learned skills | /curation |
| 新 skill 寫入時格式把關 | /update Step 4 (learn-eval) |
Step 1: 掃描 learned skills
掃描 ~/.claude/skills/learned/ 目錄(含子目錄),對每個 .md 檔案收集:slug(檔名)、有無 frontmatter、frontmatter 完整度(是否包含 name/description/user-invocable/origin)、品質評分格式(表格 vs 單行 vs 無)、mtime、檔案大小。
輸出統計表:
Learned Skills 掃描結果:
- 總數:XX 個
- 有 frontmatter:XX 個
- 無 frontmatter:XX 個
- 評分格式分布:表格 XX / 單行 XX / 無 XX
用 TaskCreate 為每個有問題的檔案建一個 task(含問題類型與預期修正動作),作為 Step 4 逐項修正與驗證的追蹤基準。
Step 2: 分類問題
將掃描結果分為四類:
| 問題類型 | 判斷標準 | 可自動修正 |
|---|
fmt-missing-frontmatter | 檔案不以 --- 開頭 | Yes — 從 H1 標題推斷 name,從第一段推斷 description |
fmt-incomplete-frontmatter | 有 frontmatter 但缺少必要欄位 | Yes — 補全缺少的欄位 |
fmt-score-inconsistent | 品質評分使用單行格式(specificity=4, ...)而非表格 | Yes — 轉換為 5 維度表格 |
deprecated-marked | 在索引檔案(如 ~/.claude/skills/learned/index.md 或目錄下的 README.md)中被 ~~strikethrough~~ 標記但 .md 檔案仍存在。若無索引檔案,跳過此分類並在報告中註明 | HITL — 確認後刪除 |
明確不做:
- 不自動合併「相似」的 skills(相似度判斷主觀,需人工決定)
- 不重新評分現有 skills(現有分數是提取時的判斷,有歷史價值)
Step 3: HITL 確認(批次)
用 AskUserQuestion 展示分類統計(總數、格式問題各類數量、廢棄標記數量),提供選項:
- 全部自動修正(格式問題 + 刪除廢棄)
- 只修正格式,廢棄項目逐一確認
- 逐一確認所有修正
- 只查看清單,不修正
Step 4: 執行修正
根據使用者選擇執行:
格式修正(自動):
-
無 frontmatter → 從內容推斷並插入:
name:從 H1 標題轉 kebab-case
description:取第一段的第一句話
user-invocable: false
origin: auto-extracted
-
不完整 frontmatter → 補全缺少欄位
-
評分格式轉換:specificity=4, actionability=5, ... → 5 維度表格(保留原有數值,將 specificity=4 對應填入 specificity 列的「分數 (1-5)」欄)
| 維度 | 分數 (1-5) | 說明 |
|---|
| specificity | | 知識的具體程度 |
| actionability | | 可直接應用的程度 |
| scope fit | | 適用範圍是否恰當 |
| non-redundancy | | 與現有 skills 的重複度 |
| coverage | | 涵蓋場景的完整度 |
廢棄清理(HITL):
- 對每個廢棄標記的 skill,展示名稱和描述
- 使用者確認後刪除 .md 檔案
- 同步更新索引檔案(移除 strikethrough 條目)
修正後驗證:
每個修正動作執行後,立即執行確定性驗證並更新對應 task 狀態:
fmt-missing-frontmatter 修正後:grep -c "^---" <file> 確認 ≥ 2(開頭與結尾各一個 ---)
fmt-incomplete-frontmatter 修正後:grep -E "^(name|description|user-invocable|origin):" <file> 確認 4 個欄位全部存在
fmt-score-inconsistent 修正後:grep -c "| specificity |" <file> 確認 ≥ 1(表格列存在)
驗證通過 → 標記 task 完成;驗證失敗 → task 保留開放狀態,不可視為完成。
Step 5: 輸出報告
## /curation 執行結果
### 統計
- 掃描:XX 個 skills
- 修正格式:XX 個
- 刪除廢棄:XX 個
- 跳過:XX 個
### 修正明細
| Skill | 問題 | 動作 |
|-------|------|------|
| xxx.md | 無 frontmatter | 已補全 |
| yyy.md | 評分格式 | 已轉換為表格 |
| zzz.md | 已廢棄 | 已刪除 |
### 剩餘問題
<!-- 列出使用者跳過或驗證失敗、狀態非完成的項目 -->