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

92 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 故障等)
- 專注於能為未來會話節省時間的模式
- 保持技能專一 — 每個技能檔案僅包含一個模式
- 若「覆蓋完整度」評分較低,請在儲存前加入相關的變體說明