Back to skills
SKILL.md
Smart Learn
ASecurity独立学习技能,基于费曼学习法的五步闭环。触发方式:输入 /smart-learn 主题,或说"教我XX"、"帮我系统学习XX"。每学完一步自动同步更新 Word 文档 + Mermaid 思维导图。
- 21 stars
- 0 votes
- 0 copies
- 0 views
- Added June 12, 2026
Works with
Security analysis
92/100- Installs packages at runtime which could introduce malicious dependencies
Pro scans all 8 files and shows the line behind each finding
npx -y skills add HYH926/smart-learn --skill smart-learn --agent claude-codeAre you the author of Smart Learn?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hyh926-smart-learn)---
name: smart-learn
description: 独立学习技能,基于费曼学习法的五步闭环。触发方式:输入 /smart-learn 主题,或说"教我XX"、"帮我系统学习XX"。每学完一步自动同步更新 Word 文档 + Mermaid 思维导图。
context: inline
---
# Smart Learn — 增量内联学习技能
基于费曼学习法五步闭环。纯 Markdown 零依赖可用;可选 `pip install python-docx` 获得 Word 文档功能。每一步学习成果同步更新到 **Word 文档** + **Mermaid 思维导图**,全程实时生长。
## 触发
- `/smart-learn 主题名`
- "教我 Kubernetes 网络模型"
- "帮我系统学习 DDD"
- 任何表达出"想系统掌握一个复杂主题"的意图
### 不触发
- 简单定义("X是什么")
- 信息查询("帮我查一下X")
- 内容总结("总结这篇文章")
## 核心原则
1. **禁止使用 Agent 工具** — 所有步骤由主对话直接执行
2. **每步可见** — 输出实时展示,用户确认后进入下一步
3. **自然对话** — 不用弹窗确认,用户用自然语言回应即可
4. **零外部依赖(核心)** — Markdown 学习 + 存储不依赖任何第三方包
5. **三格式持久化** — .md(知识库笔记,始终生成) + .docx(Word文档,可选) + Mermaid 思维导图(零依赖,始终生成)
---
## 初始化(Word 文档 + 思维导图)
学习开始前,同时初始化 Word 文档和 Mermaid 思维导图。Word 失败不影响核心流程;思维导图零依赖始终可用。
```bash
# 思维导图(零依赖,始终生成)
python .claude/skills/smart-learn/mindmap_utils.py init \
--topic "主题名" \
--output-dir "knowledge_store"
# Word 文档(可选,需 python-docx)
python .claude/skills/smart-learn/docx_utils.py init \
--topic "主题名" \
--output-dir "knowledge_store"
```
- 记录 `MINDMAP_FILE` 和 `MINDMAP_DATA` 路径,后续每步同步更新
- 如果 docx init 返回 `"status": "no_docx"` → 告知用户可 `pip install python-docx`,继续执行
- **智能入口检测**:初始化时按以下顺序检查已学记录,以**非阻塞提示**方式告知用户(不中断流程,用户无需回应即可继续):
1. 检查 `knowledge_store/{主题slug}_checkpoint.json` → 存在 = 有未完成学习
2. 检查 `knowledge_store/{主题}.md` 或 `knowledge_store/{主题}_学习笔记.docx` → 存在 = 已学完
3. 检查 `knowledge_store/` 下文件名含关键词的笔记 → 存在 = 有相关知识
根据检测结果,在初始化日志中附带提示(不阻塞,不等用户选择):
- **有未完成学习** → 告知"💡 检测到未完成的学习(步骤N/5)。输入 `继续` 可续学,或正常开始全新学习"
- **已学完该主题** → 告知"💡 你已学过「{主题}」。需要复习时随时输入 `/smart-review {主题}`"
- **有相关主题笔记** → 告知"💡 检测到相关笔记「{主题}」,步骤4将自动关联"
- **无任何记录** → 正常开始
- 用户如果回应"继续上次" → 跳转到对应步骤恢复
- 用户如果回应"复习" → 切换到复习流程
- **用户不回应 → 不阻塞,直接进入步骤1**
- 每完成一步 → 更新 checkpoint(`{"topic":"...", "last_step": N, "mindmap_data":"...", "docx_path":"..."}`)
---
## 五步工作流
每一步的核心输出格式保持不变。Word 写入是每步末尾的附加操作。
---
## 步骤0:前置评估(可选,仅在用户表明已有基础时触发)
**触发条件**:用户说"我已经了解XX部分"、"XX我比较熟"、"跳过基础直接讲进阶"等。
**不触发**:用户直接说"/smart-learn 主题"不带任何基础说明 → 跳过步骤0,正常从步骤1开始。
**执行**:
1. 仍然先执行步骤1生成完整概念地图(确保知识结构完整)
2. 概念地图展示给用户后,额外询问:"你对哪些概念已经比较熟悉?"
3. 用户可多选或描述(如"1、2、3 我熟 / 前三个入门的基本都会")
4. 为每个概念打上用户掌握度标记:
- 🟢 熟悉 → 步骤2 只讲核心思想+一句话(跳过完整五维),步骤3 只出 1 道边界层题
- 🟡 了解 → 步骤2 正常讲但可精简,步骤3 正常出题
- 🔴 新手 → 步骤2 完整五维,步骤3 从最合适层出题
5. **重要**:即使是"熟悉"的概念,仍要写入 Markdown 笔记和思维导图(确保笔记完整性),只是在对话中加速讲解。Word 文档中标注 `[已掌握]`。
**约束**:
- 步骤0 是可选加速器,不改变五步闭环结构
- 用户标记为"熟悉"的概念 ≠ 不学,只是讲得更快、题更少
- 如果用户发现"熟悉"的概念实际不熟(步骤3答错),自动降级为 🔴 并完整补充
1. 调用 WebSearch 搜索该主题的最新资料(中文优先,确保准确性和及时性)
2. 读取 `templates/1-concept-map.md` 按模板执行
3. 将主题拆解为 5~8 个子概念,按学习依赖排序,标注难度
**固定输出格式**:
```
## 📊 概念地图:{主题}
1. {概念名}({难度})→ {一句话解决什么问题}
↓
2. {概念名}({难度})→ {一句话解决什么问题}
↓
...
```
输出后等待用户回应:
- "继续" / "OK" → 进入步骤2
- "调整XX" → 修改概念地图 → 重新输出 → **重新执行 mindmap 和 Word 同步(覆盖更新)** → 重新询问确认
**→ 保存检查点**(中断恢复用):
```bash
python -c "import json; json.dump({'topic':'{主题}','last_step':1}, open('knowledge_store/{主题slug}_checkpoint.json','w'))"
```
**→ 同步到思维导图**(始终执行):
```bash
python .claude/skills/smart-learn/mindmap_utils.py update \
--file "{MINDMAP_FILE}" --data-file "{MINDMAP_DATA}" --step 1 \
--concepts '[{"name":"概念1","difficulty":"入门","purpose":"解决问题X"}, ...]'
```
执行后告知用户:`🧠 思维导图已更新:knowledge_store/{主题}_思维导图.md`
**→ 写入 Word**(如果 DOCX_PATH 存在):
```bash
python .claude/skills/smart-learn/docx_utils.py add-step \
--file "{DOCX_PATH}" --step 1 --title "概念地图" \
--content-file /tmp/smart-learn-step1.md
```
执行后告知用户:`📄 Word 文档已更新:knowledge_store/{主题}_学习笔记.docx`
---
### 步骤 2:费曼解释
读取 `templates/2-feynman.md` 按模板执行。对步骤1中的每个概念,逐一用五维框架解释。
**每个概念的固定输出结构**:
```markdown
### {序号}. {概念名}
**为什么需要?** → {背景与动机,旧方案有什么问题}
**核心思想** → {一句话说清本质}
**类比理解** → {日常场景类比,完全非技术领域}
**示例** → {最小可运行的代码/真实场景}
**一句话** → {离开后能记住的那句}
```
**每个概念的执行顺序(严格遵守,不可跳过任何一步)**:
```
1. 输出该概念的五维解释
↓
2. ⚡ 执行 mindmap 同步命令(必须实际运行 Bash,不可只声明)
↓
3. ⚡ 将解释内容写入临时文件,执行 Word 写入命令(必须实际运行 Bash)
↓
4. 告知用户文件已更新(显示路径)
↓
5. 询问用户:继续 / 修改 / 换类比 / 提问
```
**用户回应后的处理**:
| 用户回应 | 处理方式 |
|---------|---------|
| "继续" / "下一个" | 已完成同步,直接讲下一个概念 |
| "修改XX部分" | 按反馈调整解释 → 重新执行步骤 1→2→3→4→5(mindmap 覆盖更新,Word 以 `{概念名}(修正)` 追加修订版) |
| "换一个类比" / "没懂" | 用不同类比重讲,用户确认后执行步骤 2→3→4→5 |
| 任意提问 | 针对性解答,确认后继续 |
**→ 同步到思维导图**(每概念确认后必须执行):
```bash
python .claude/skills/smart-learn/mindmap_utils.py update \
--file "{MINDMAP_FILE}" --data-file "{MINDMAP_DATA}" --step 2 \
--concept "{概念名}" --core "{核心思想摘要}" --analogy "{类比关键词}"
```
执行后告知用户:`🧠 已同步到思维导图:knowledge_store/{主题}_思维导图.md`
**→ 写入 Word**(每概念确认后必须执行):
```bash
# 先将该概念的完整 Markdown 解释写入临时文件
cat > /tmp/smart-learn-step2-concept.md << 'EOF'
### {序号}. {概念名}
**为什么需要?**
{解释内容}
...
EOF
python .claude/skills/smart-learn/docx_utils.py add-step \
--file "{DOCX_PATH}" --step 2 --title "{序号}. {概念名}" \
--content-file /tmp/smart-learn-step2-concept.md
```
执行后告知用户:`📄 已写入 Word:knowledge_store/{主题}_学习笔记.docx`
全部概念讲完后,用 3~5 句话串联串讲,然后进入步骤3。
**禁止**:
- 用未解释的术语解释另一个术语
- 从定义开始(必须从"为什么需要"开始)
- 类比用另一个技术概念
- **声明"已同步"但未实际执行 Bash 命令**(这是最严重的执行错误)
---
### 步骤 3:递进式自测
读取 `templates/3-self-test.md` 按模板执行。为每个概念出 1 道题,从三层中选最合适的一层:
| 层次 | 考察目标 | 适合什么概念 |
|------|---------|------------|
| 理解层 | 改变条件问变化 | 核心机制类(如缓存策略) |
| 应用层 | 新场景设计方案 | 工程实践类(如API设计) |
| 边界层 | 什么时候失效 | 理论约束类(如CAP定理) |
**每题的执行顺序(严格遵守)**:
```
1. 出题,等待用户回答
↓
2. 给出点评 + 参考答案 + 掌握度
↓
3. ⚡ 如果是 ❌ 薄弱 → 执行 mindmap 标记命令
↓
4. ⚡ 执行 Word 写入命令(含题目+回答+点评+参考答案)
↓
5. 告知用户文件已更新
↓
6. 出下一道题(或汇总)
```
**逐个提问**,每次只出一道题。用户回答后给出:
- **点评**:具体评价哪里好、哪里不足
- **参考答案**:一个高质量的示范回答
- **掌握度**:✅ 已掌握 / ⚠️ 部分掌握 / ❌ 薄弱
全部完成后汇总薄弱点,询问用户:
- "继续" → 进入步骤4
- "回顾薄弱概念" → 对每个 ❌ 薄弱概念:
1. 用不同的类比重新解释该概念(不重复步骤2的原版)
2. 出一道新的同类层级的题目
3. 用户回答后点评
4. 直到掌握度变为 ✅/⚠️ 或用户说"先继续"
5. 更新思维导图移除该概念的 ⚠️ 标记(如果已掌握)
6. **薄弱概念回顾的每一步也要同步到 Word(追加"回顾修正"记录)**
**→ 同步到思维导图**(每题点评后,❌ 薄弱则必须执行):
```bash
python .claude/skills/smart-learn/mindmap_utils.py update \
--file "{MINDMAP_FILE}" --data-file "{MINDMAP_DATA}" --step 3 \
--concept "{概念名}" --weak "{薄弱原因摘要}"
```
执行后告知用户:`🧠 {概念名} 已标记薄弱点到思维导图`
**→ 写入 Word**(每题点评后必须执行):
```bash
cat > /tmp/smart-learn-step3-q.md << 'EOF'
**问题**:{题目}
**你的回答**:{用户回答摘要}
**点评**:{点评}
**参考答案**:{参考答案}
**掌握度**:{✅/⚠️/❌}
EOF
python .claude/skills/smart-learn/docx_utils.py add-step \
--file "{DOCX_PATH}" --step 3 --title "{概念名} — 自测" \
--content-file /tmp/smart-learn-step3-q.md
```
执行后告知用户:`📄 自测记录已写入 Word`
---
### 步骤 4:关联内化
读取 `templates/4-association.md` 按模板执行。
1. 用 Glob 检查 `knowledge_store/` 下已有的学习笔记
2. 如果有相关主题,做四维对比:
- 解决的是同一个问题吗?
- 哪些经验可以直接迁移?
- 新概念有什么独特性?
- 知识地图中位置关系?
3. 如果没有,告知"这是该领域的第一个知识节点"
4. 输出文本版知识网络图
**步骤4的执行顺序(严格遵守)**:
```
1. 检索并输出知识网络图
↓
2. ⚡ 对每个关联主题执行 mindmap 关联命令
↓
3. ⚡ 执行 Word 写入命令(含对比表格和网络图)
↓
4. 告知用户文件已更新
↓
5. 询问用户:继续 / 补充关联
```
用户回应:
- "继续" → 进入步骤5
- "补充关联" → 用户提出更多关联角度 → 追加分析 → 重新执行步骤 2→3→4(mindmap 自动去重,Word 追加新关联)
**→ 同步到思维导图**(每个关联主题必须执行):
```bash
python .claude/skills/smart-learn/mindmap_utils.py update \
--file "{MINDMAP_FILE}" --data-file "{MINDMAP_DATA}" --step 4 \
--assoc-target "{关联主题名}" --assoc-relation "{一句话关系}"
```
执行后告知用户:`🧠 知识关联已添加到思维导图`
**→ 写入 Word**(必须执行):
```bash
cat > /tmp/smart-learn-step4.md << 'EOF'
{关联分析的对比表格和网络图内容}
EOF
python .claude/skills/smart-learn/docx_utils.py add-step \
--file "{DOCX_PATH}" --step 4 --title "关联内化" \
--content-file /tmp/smart-learn-step4.md
```
执行后告知用户:`📄 关联分析已写入 Word`
---
### 步骤 5:巩固总结并保存
读取 `templates/5-summary.md` 按模板执行。
**输出精华笔记**(≤500 字):
```markdown
## 🎯 核心公式
{一句"懂了就懂了80%"的话}
## 🔑 三个关键点
1. {洞察一}
2. {洞察二}
3. {洞察三}
## ⚠️ 薄弱点
- **{具体薄弱点}**:{为什么容易搞混} → {正确理解}(首次标记:{今天日期})
## 🏗️ 一句话类比
{日常场景一句话总结}
## 🏷️ 关键词
`{k1}` `{k2}` `{k3}` `{k4}` `{k5}`
```
输出精华笔记后等待用户回应:
- "保存" → 写入所有文件(见下方持久化步骤)
- "修改XX" → 调整对应部分 → 重新输出完整精华笔记 → 重新询问确认(确认后一次性写入所有文件)
**持久化**(用户确认后执行):
1. **必做**:将完整五步报告写入 `knowledge_store/{主题slug}.md`
2. **必做**:最终化思维导图:
```bash
python .claude/skills/smart-learn/mindmap_utils.py finalize \
--file "{MINDMAP_FILE}" --data-file "{MINDMAP_DATA}" \
--summary "{核心公式}" \
--weak-points "{薄弱点1; 薄弱点2}" \
--keywords "{k1, k2, k3, k4, k5}"
```
3. **可选**:最终化 Word 文档:
```bash
python .claude/skills/smart-learn/docx_utils.py finalize \
--file "{DOCX_PATH}" \
--summary "{核心公式}" \
--weak-points "{薄弱点1; 薄弱点2}" \
--keywords "{k1, k2, k3, k4, k5}"
```
最后以可点击路径告知用户全部产出物位置:
- 📝 Markdown 笔记:`knowledge_store/{主题slug}.md`
- 🧠 思维导图:`knowledge_store/{主题}_思维导图.md`(Mermaid 格式,GitHub/VSCode 原生渲染)
- 📄 Word 文档:`knowledge_store/{主题}_学习笔记.docx`(如有)
- ⚠️ 薄弱点列表:(逐一列出)
**→ 清理临时文件和检查点**(学习完成):
```bash
rm -f /tmp/smart-learn-step*.md /tmp/smart-learn-concept*.md
rm -f knowledge_store/{主题slug}_checkpoint.json
```
---
## 同步更新流程图
```
/smart-learn 主题
│
├─ 初始化 ──→ 🧠 创建空白思维导图 + 📄 创建 Word(可选)
│
├─ 步骤1 ──→ 🧠 写入概念节点 + 📄 写入概念地图
│
├─ 步骤2 ──→ 🧠 每概念追加核心思想/类比 + 📄 写入解释
│
├─ 步骤3 ──→ 🧠 标记薄弱点 ⚠️ + 📄 写入问答记录
│
├─ 步骤4 ──→ 🧠 追加知识关联 🔗 + 📄 写入对比分析
│
└─ 步骤5 ──→ 🧠 最终化思维导图 + 📄 最终化 Word + 📝 Markdown
```
---
## 知识连续性
- 学习前检查 `knowledge_store/` 目录已有笔记
- 发现关键词匹配的旧笔记时,主动在步骤4做关联
- 所有笔记(.md + .docx + 思维导图.md)保存到同一目录,形成累积知识库
## 模板与工具
| 文件 | 用途 | 依赖 |
|------|------|------|
| `templates/1-concept-map.md` | 概念地图模板 | 无 |
| `templates/2-feynman.md` | 费曼解释模板 | 无 |
| `templates/3-self-test.md` | 递进式自测模板 | 无 |
| `templates/4-association.md` | 关联内化模板 | 无 |
| `templates/5-summary.md` | 巩固总结模板 | 无 |
| `mindmap_utils.py` | Mermaid 思维导图同步生成 | **零依赖** |
| `docx_utils.py` | Word 文档增量生成 | python-docx(可选) |
Files in this skill
- SKILL.md
- docx_utils.py
- mindmap_utils.py
- templates/1-concept-map.md
- templates/2-feynman.md
- templates/3-self-test.md
- templates/4-association.md
- templates/5-summary.md
Attribution
Comments
Loading comments…