---
description: 从会话中提取可重用模式，在保存前自我评估质量，并确定正确的保存位置（全局与项目）。
---

# /learn-eval - 提取、评估、然后保存

扩展 `/learn`，在写入任何技能文件之前加入质量门和保存位置决策。

## 提取内容

寻找：

1. **错误解决模式** — 根本原因 + 修复方法 + 可重用性
2. **调试技术** — 非显而易见的步骤、工具组合
3. **变通方法** — 库的怪癖、API 限制、特定版本的修复
4. **项目特定模式** — 约定、架构决策、集成模式

## 流程

1. 回顾会话，寻找可提取的模式

2. 识别最有价值/可重用的见解

3. **确定保存位置：**
   * 提问："这个模式在其他项目中会有用吗？"
   * **全局** (`~/.claude/skills/learned/`)：可在 2 个以上项目中使用的通用模式（bash 兼容性、LLM API 行为、调试技术等）
   * **项目** (当前项目中的 `.claude/skills/learned/`)：项目特定的知识（特定配置文件的怪癖、项目特定的架构决策等）
   * 不确定时，选择全局（将全局 → 项目移动比反向操作更容易）

4. 使用此格式起草技能文件：

```markdown
---
name: pattern-name
description: "Under 130 characters"
user-invocable: false
origin: auto-extracted
---

# [描述性模式名称]

**提取日期：** [日期]
**上下文：** [简要描述此模式适用的场景]

## 问题
[此模式解决的具体问题 - 请详细说明]

## 解决方案
[模式/技术/变通方案 - 附带代码示例]

## 何时使用
[触发条件]
```

5. **在保存前自我评估**，使用此评分标准：

   | 维度 | 1 | 3 | 5 |
   |-----------|---|---|---|
   | 具体性 | 仅抽象原则，无代码示例 | 有代表性代码示例 | 包含所有使用模式的丰富示例 |
   | 可操作性 | 不清楚要做什么 | 主要步骤可理解 | 立即可操作，涵盖边界情况 |
   | 范围契合度 | 过于宽泛或过于狭窄 | 基本合适，存在一些边界模糊 | 名称、触发器和内容完美匹配 |
   | 非冗余性 | 几乎与另一技能相同 | 存在一些重叠但有独特视角 | 完全独特的价值 |
   | 覆盖率 | 仅涵盖目标任务的一小部分 | 涵盖主要情况，缺少常见变体 | 涵盖主要情况、边界情况和陷阱 |

   * 为每个维度评分 1–5
   * 如果任何维度评分为 1–2，改进草案并重新评分，直到所有维度 ≥ 3
   * 向用户展示评分表和最终草案

6. 请求用户确认：
   * 展示：提议的保存路径 + 评分表 + 最终草案
   * 在写入前等待明确确认

7. 保存到确定的位置

## 第 5 步的输出格式（评分表）

| 维度 | 评分 | 理由 |
|-----------|-------|-----------|
| 具体性 | N/5 | ... |
| 可操作性 | N/5 | ... |
| 范围契合度 | N/5 | ... |
| 非冗余性 | N/5 | ... |
| 覆盖率 | N/5 | ... |
| **总计** | **N/25** | |

## 注意事项

* 不要提取琐碎的修复（拼写错误、简单的语法错误）
* 不要提取一次性问题（特定的 API 中断等）
* 专注于能在未来会话中节省时间的模式
* 保持技能聚焦 — 每个技能一个模式
* 如果覆盖率评分低，在保存前添加相关变体
