# Lesson Miner

> 经验挖掘器——交互式记录卡点、生成项目级最佳实践文档。当用户说"记录踩坑""总结最佳实践""更新 pitfalls""刚才的坑记一下"或探索新技能/工具/方向遇到问题时自动触发。维护 01 你的项目/<项目>/PITFALLS.md，支持上下文感知、智能项目识别、决策树自动生成。

- Skill: `finger88/lesson-miner` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add finger88/lesson-miner`
- Raw SKILL.md: https://api.skillmd.com/api/skills/finger88/lesson-miner/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: finger88 (https://skillmd.com/u/finger88)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/finger88/lesson-miner

---


# lesson-miner

将"踩坑→总结→迭代"模式工具化。用户探索新技能、工具或方向时，交互式记录卡点、生成结构化最佳实践文档、持续迭代维护。

## 核心流程

```
用户触发（语义匹配）
  ↓
检测当前位置（专注区/项目区/其他）
  ↓
识别目标项目（对话提取 + 文件历史 + 用户确认）
  ↓
交互式录入卡点（现象-根因-方案-检测信号）
  ↓
更新/创建 PITFALLS.md
  ↓
生成/更新决策树
```

## 触发条件

### 主要触发词
- "记录踩坑" / "capture lessons"
- "总结最佳实践" / "更新 pitfalls"
- "刚才的坑记一下" / "又踩坑了"

### 自动触发场景
- 用户多次尝试同一操作失败后主动说"记录一下"
- 探索型任务完成后用户表示"需要总结一下"

## 位置感知策略

| 当前位置 | 行为 |
|---------|------|
| **专注区** | 识别对话中的项目名，匹配或创建 01 你的项目/<项目>/ |
| **项目区** | 默认当前项目，但询问是否切换到对话中提到的其他项目 |
| **其他位置** | 询问目标位置，默认建议 01 你的项目/ |

## 项目识别逻辑

1. **用户明确指定**："记录到做饭智能体的踩坑"
2. **近期文件推断**：检查最近修改的项目文件
3. **对话内容分析**：提取技能名/工具名/方向名
4. **直接询问**：无法推断时列出项目列表供选择

## 交互录入格式

每个卡点录入四个维度：

| 维度 | 问题 | 示例 |
|------|------|------|
| **现象** | 用户看到了什么？ | Python 报错 `can't open file 'D:\c\Users\...'` |
| **根因** | 为什么会这样？ | Windows 下 `~` 展开后被错误解析 |
| **解决方案** | 具体怎么做？ | 使用绝对路径或改用 web-access skill |
| **检测信号** | 如何快速识别？ | 看到 `can't open file` + 路径中有 `\c` |

## 文档结构标准

生成的 PITFALLS.md 包含：

```markdown
# [项目名] 踩坑记录

## 快速决策树（自动生成）

## 卡点记录

### 1. [标题]

| 维度 | 内容 |
|------|------|
| **现象** | ... |
| **根因** | ... |
| **解决方案** | ... |
| **检测信号** | ... |

## 最佳实践

### DO
- [ ] ...

### DON'T
- ❌ ...

## 更新日志
```

## 决策树生成

从所有卡点的"检测信号"自动构建快速决策树：

```text
看到 can't open file + 路径异常？
  ├─ 是 → Windows 路径错误，使用绝对路径
  └─ 否 → 继续判断...
```

## 使用示例

```bash
# 用户触发
> 刚才提取微信文章遇到3个卡点，记录一下

[lesson-miner] 检测到你在专注区。根据对话，你正在使用 web-content-extraction。
          这个项目属于：
          1. web-content-extraction 技能本身（新建项目）
          2. 当前探索的课题（新建项目）
          3. 其他已有项目
          > 1

[lesson-miner] 新项目命名？（建议: web-content-extraction-practice）
          > web-content-extraction-practice

[lesson-miner] 录入卡点 1/3：
          现象？> Python 脚本路径错误...
          根因？> Windows 下 ~ 展开错误...
          ...

[lesson-miner] 已更新 PITFALLS.md，是否生成决策树？
          > y

[lesson-miner] 完成！文档位置：01 你的项目/web-content-extraction-practice/PITFALLS.md
```

## 跨项目通用经验

当经验跨项目适用时，询问：
1. 写入 MEMORY.md（程序性记忆）
2. 创建"通用工具"类项目
3. 关联到多个项目的 PITFALLS.md

## 实现入口

```bash
python "C:\Users\HONOR\.claude\skills\lesson-miner\scripts\lesson_miner.py"
```

或者交互式调用：用户说出触发词后，AI 引导完成整个流程。

---

*核心原则：知识是在反复实践中沉淀的，不是一次设计出来的。*

