--- description: 從會話中擷取可重用的模式,在儲存前進行品質自評,並決定正確的儲存路徑(全域 vs 專案)。 --- # /learn-eval - 擷取、評估並儲存 擴充了 `/learn` 指令,在寫入任何技能檔案之前,加入品質閘控 (Quality gate) 與儲存位置的決策。 ## 擷取對象 尋找以下內容: 1. **錯誤修復模式** — 根本原因 + 修復方法 + 可重用性 2. **偵錯技巧** — 非直觀的步驟、工具組合 3. **權宜措施 (Workarounds)** — 套件庫的奇特行為、API 限制、特定版本的修正 4. **專案特定模式** — 慣例、架構決策、整合模式 ## 流程 1. 審查會話以找出可擷取的模式 2. 識別出最有價值且可重用的見解 3. **決定儲存位置:** - 詢問:「這個模式是否對其他專案也有用?」 - **全域 (Global)** (`~/.claude/skills/learned/`):可在 2 個以上不同專案中使用的通用模式 (Bash 相容性、LLM API 行為、偵錯技巧等)。 - **專案 (Project)** (目前專案中的 `.claude/skills/learned/`):專案特定的知識 (特定配置檔案的特性、專案內部的架構決策等)。 - 若有疑慮,優先選擇「全域」(將全域遷移至專案比反向操作更容易)。 4. 使用以下格式撰寫技能檔案草稿: ```markdown --- name: 模式名稱 description: "請控制在 130 個字元以內" user-invocable: false origin: auto-extracted --- # [描述性模式名稱] **擷取日期:** [日期] **適用情境:** [簡短描述適用此模式的時機] ## 問題 [解決了什麼問題 — 請具體說明] ## 解決方案 [模式/技術/權宜措施 — 包含程式碼範例] ## 何時使用 [觸發條件] ``` 5. **儲存前進行自評** (參考以下標準): | 維度 | 1 | 3 | 5 | |-----------|---|---|---| | 具體性 | 僅有抽象原則,無程式碼範例 | 包含具代表性的程式碼範例 | 具備涵蓋所有使用模式的豐富範例 | | 可執行性 | 不清楚該採取什麼行動 | 主要步驟容易理解 | 具備立即執行性,涵蓋邊緣情況 | | 範圍契合度 | 太廣泛或太狹隘 | 大部分合適,邊界略顯模糊 | 名稱、觸發點與內容完美契合 | | 非冗餘性 | 與另一項技能幾乎相同 | 有些重疊但具備獨特觀點 | 具備完全獨特的價值 | | 覆蓋完整度 | 僅涵蓋目標任務的一小部分 | 涵蓋主要情況,缺少常見變體 | 涵蓋主要情況、邊緣情況與陷阱 | - 每個維度評分為 1–5 分 - 若任何維度低於 3 分,請修改草稿並重新評分,直到所有維度均 ≥ 3 - 向使用者展示評分表與最終草稿 6. 請求使用者確認: - 展示:預計儲存路徑 + 評分表 + 最終草稿 - 在獲得明確確認後才進行寫入 7. 儲存至選定的位置 ## 步驟 5 的輸出格式 (評分表) | 維度 | 分數 | 理由/依據 | |-----------|-------|-----------| | 具體性 | N/5 | ... | | 可執行性 | N/5 | ... | | 範圍契合度 | N/5 | ... | | 非冗餘性 | N/5 | ... | | 覆蓋完整度 | N/5 | ... | | **總分** | **N/25** | | ## 注意事項 - 不要擷取瑣碎的修復 (拼字錯誤、簡單的語法錯誤) - 不要擷取一次性的問題 (特定 API 故障等) - 專注於能為未來會話節省時間的模式 - 保持技能專一 — 每個技能檔案僅包含一個模式 - 若「覆蓋完整度」評分較低,請在儲存前加入相關的變體說明