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

92 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2026-02-27 13:45:37 +00:00
---
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 |
|-----------|---|---|---|
| 具體性 | 僅有抽象原則,無程式碼範例 | 包含具代表性的程式碼範例 | 具備涵蓋所有使用模式的豐富範例 |
| 可執行性 | 不清楚該採取什麼行動 | 主要步驟容易理解 | 具備立即執行性,涵蓋邊緣情況 |
| 範圍契合度 | 太廣泛或太狹隘 | 大部分合適,邊界略顯模糊 | 名稱、觸發點與內容完美契合 |
| 非冗餘性 | 與另一項技能幾乎相同 | 有些重疊但具備獨特觀點 | 具備完全獨特的價值 |
| 覆蓋完整度 | 僅涵蓋目標任務的一小部分 | 涵蓋主要情況,缺少常見變體 | 涵蓋主要情況、邊緣情況與陷阱 |
- 每個維度評分為 15 分
- 若任何維度低於 3 分,請修改草稿並重新評分,直到所有維度均 ≥ 3
- 向使用者展示評分表與最終草稿
6. 請求使用者確認:
- 展示:預計儲存路徑 + 評分表 + 最終草稿
- 在獲得明確確認後才進行寫入
7. 儲存至選定的位置
## 步驟 5 的輸出格式 (評分表)
| 維度 | 分數 | 理由/依據 |
|-----------|-------|-----------|
| 具體性 | N/5 | ... |
| 可執行性 | N/5 | ... |
| 範圍契合度 | N/5 | ... |
| 非冗餘性 | N/5 | ... |
| 覆蓋完整度 | N/5 | ... |
| **總分** | **N/25** | |
## 注意事項
- 不要擷取瑣碎的修復 (拼字錯誤、簡單的語法錯誤)
- 不要擷取一次性的問題 (特定 API 故障等)
- 專注於能為未來會話節省時間的模式
- 保持技能專一 — 每個技能檔案僅包含一個模式
- 若「覆蓋完整度」評分較低,請在儲存前加入相關的變體說明