claude-code/claude-zh/commands/learn-eval.md

3.4 KiB
Raw Blame History

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. 使用以下格式撰寫技能檔案草稿:

---
name: 模式名稱
description: "請控制在 130 個字元以內"
user-invocable: false
origin: auto-extracted
---

# [描述性模式名稱]

**擷取日期:** [日期]
**適用情境:** [簡短描述適用此模式的時機]

## 問題
[解決了什麼問題 — 請具體說明]

## 解決方案
[模式/技術/權宜措施 — 包含程式碼範例]

## 何時使用
[觸發條件]
  1. 儲存前進行自評 (參考以下標準)

    維度 1 3 5
    具體性 僅有抽象原則,無程式碼範例 包含具代表性的程式碼範例 具備涵蓋所有使用模式的豐富範例
    可執行性 不清楚該採取什麼行動 主要步驟容易理解 具備立即執行性,涵蓋邊緣情況
    範圍契合度 太廣泛或太狹隘 大部分合適,邊界略顯模糊 名稱、觸發點與內容完美契合
    非冗餘性 與另一項技能幾乎相同 有些重疊但具備獨特觀點 具備完全獨特的價值
    覆蓋完整度 僅涵蓋目標任務的一小部分 涵蓋主要情況,缺少常見變體 涵蓋主要情況、邊緣情況與陷阱
    • 每個維度評分為 15 分
    • 若任何維度低於 3 分,請修改草稿並重新評分,直到所有維度均 ≥ 3
    • 向使用者展示評分表與最終草稿
  2. 請求使用者確認:

    • 展示:預計儲存路徑 + 評分表 + 最終草稿
    • 在獲得明確確認後才進行寫入
  3. 儲存至選定的位置

步驟 5 的輸出格式 (評分表)

維度 分數 理由/依據
具體性 N/5 ...
可執行性 N/5 ...
範圍契合度 N/5 ...
非冗餘性 N/5 ...
覆蓋完整度 N/5 ...
總分 N/25

注意事項

  • 不要擷取瑣碎的修復 (拼字錯誤、簡單的語法錯誤)
  • 不要擷取一次性的問題 (特定 API 故障等)
  • 專注於能為未來會話節省時間的模式
  • 保持技能專一 — 每個技能檔案僅包含一個模式
  • 若「覆蓋完整度」評分較低,請在儲存前加入相關的變體說明