From coding-workflow
交互式学习系统,基于Bloom的"2 Sigma问题"理论和掌握学习原则。 当用户想要学习某个主题时使用此skill。触发短语包括: - "我想学习X"、"教我X"、"帮我入门X" - "开始学习某个主题" - "继续学习"(继续上次的学习,开新对话也能恢复) - "继续学习X"(继续特定主题的学习) - "深入探讨X"、"分支学习X"(进入分支探索) - "回到主线"(从分支返回主学习路径) - "生成交互图 [类型] [主题]"(创建可视化交互组件) - "复习"、"今日复习"、"复习计划"(艾宾浩斯复习) 该skill会: - 在指定目录创建学习文件夹 - 生成结构化的学习文件,支持Obsidian双向链接 - 通过检查站问题评估掌握程度 - 支持分支探索和主线回归 - 动态加载上下文,避免AI幻觉 - 跨对话继续学习,开新对话也能恢复进度 - 生成交互式可视化组件(流程图、树状图、表格等) - 根据反馈自适应调整学习进度 - 支持来源引用(文件/Obsidian笔记/网站),减少幻觉 - 基于艾宾浩斯遗忘曲线的复习系统
How this skill is triggered — by the user, by Claude, or both
Slash command
/coding-workflow:interactive-learningThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
基于Benjamin Bloom的"2 Sigma问题"研究:一对一辅导的学生比普通课堂学生表现高出2个标准差(超越96%的课堂学生)。
基于Benjamin Bloom的"2 Sigma问题"研究:一对一辅导的学生比普通课堂学生表现高出2个标准差(超越96%的课堂学生)。
核心原则:掌握学习(Mastery Learning)——学生真正理解内容后,才推进到下一阶段。不因进度压力跳过未掌握的内容。
重要:所有注释、文档和学习文件必须使用中文。
所有配置在 config.json 中管理:
{
"learningDirectory": "./学习",
"language": "zh-CN",
"visualization": { "enabled": true, "outputSubdir": "visuals" },
"teaching": { "verificationLevel": "L3", "maxBranchDepth": 2 },
"sources": {
"obsidianVault": null,
"defaultSearchEngine": "web"
}
}
配置说明:
| 字段 | 说明 | 默认值 |
|---|---|---|
learningDirectory | 学习笔记保存目录 | ./学习(工作区根目录下) |
obsidianVault | Obsidian 库路径 | null(不启用块 ID 功能) |
defaultSearchEngine | AI 主动搜索行为 | web(启用网络搜索) |
AI启动时读取 config.json 获取配置。
{learningDirectory}/
├── Python基础\
│ ├── 进度.md
│ ├── 知识图谱.md
│ ├── 复习计划.md ← 艾宾浩斯复习计划
│ ├── 参考资料.md ← 主题参考资料库
│ ├── books/ ← 本地书籍/文档存放
│ │ ├── Python编程从入门到实践.pdf
│ │ └── fluent-python.pdf
│ ├── visuals/ ← 交互式可视化组件
│ │ ├── 01_作用域链.html
│ │ └── 02_闭包原理.html
│ ├── 01_变量与数据类型.md
│ ├── 02_函数基础.md
│ ├── 02a_闭包深入.md ← 分支课程
│ └── 03_面向对象.md
└── 机器学习\
├── 进度.md
├── 知识图谱.md
├── 复习计划.md
├── 参考资料.md
├── books/
└── ...
详细文档: docs/source-management.md
核心功能: 基于用户提供的材料生成课程,减少AI幻觉
来源类型:
^block-id 精确引用)AI读取时机: 用户发起学习主题时
详细文档: docs/branch-mechanism.md
触发条件:
关键命令:
深入探讨 [概念] - 进入分支探索回到主线 - 结束分支,返回主学习路径AI读取时机: 用户触发分支操作或新对话恢复分支状态时
详细文档: docs/visualization-system.md
支持类型: 流程图、树状图、对比表格、代码执行、状态机等
触发条件:
在课程中引用:
> [!tip] 🔗 交互式演示
> **[[visuals/01_作用域链.html|点击打开:作用域链可视化]]**
AI读取时机: 需要生成可视化组件时
详细文档: docs/feynman-verification.md
核心原则: 不只判断对错,深挖理解
验证深度等级:
| 等级 | 判断标准 |
|---|---|
| L1 复述 | 能说出关键词 |
| L2 解释 | 能用类比或例子 |
| L3 应用 | 能处理变体问题 ← 最低通过标准 |
| L4 迁移 | 能向新手解释清楚 |
| L5 创造 | 能主动关联其他知识 |
AI读取时机: 用户回答检查站问题后
详细文档: docs/review-system.md
核心功能: 基于遗忘曲线的复习机制,巩固记忆
复习间隔:
| 复习次数 | 间隔时间 |
|---|---|
| 第1次 | 20分钟后 |
| 第2次 | 1小时后 |
| 第3次 | 1天后 |
| 第4次 | 2天后 |
| 第5次 | 6天后 |
| 第6次 | 31天后 |
触发方式:
复习 - 开始复习待复习课程今日复习 - 查看今日复习任务复习计划 - 查看完整复习计划复习 [课程名] - 复习指定课程AI读取时机: 用户说"复习"、"今日复习"或"继续学习"时
当用户首次发起学习请求时,如果 config.json 不存在,AI 应主动询问配置:
> [!info] 🎯 首次使用配置
欢迎来到交互式学习系统!在开始之前,我需要了解一些配置:
**Q1: 学习目录**
你的学习笔记要保存在哪里?
- 默认:`./学习`(当前工作目录下)
- 或输入自定义路径
**Q2: Obsidian 集成**(可选)
你是否使用 Obsidian?
- 是 → 请提供库路径,我会自动添加 `^block-id` 支持精确引用
- 否 → 使用普通 Markdown 链接
**Q3: AI 搜索来源**
当生成课程时,AI 是否可以主动搜索网络来源?
- 是(推荐)→ AI 会搜索并标注可信度
- 否 → 仅使用你提供的材料
---
请回答以上问题,或说"使用默认配置"跳过。
引导流程:
用户首次发起学习
│
├── 检查 config.json 是否存在
│ ├── 不存在 → 启动配置引导
│ └── 存在 → 跳过引导
│
├── AI 询问配置问题
│
├── 用户回答
│
├── AI 创建 config.json
│
└── 开始正常学习流程
进度.md 和 知识图谱.md详细文档: docs/source-management.md
来源材料获取优先级:
参考资料.mdbooks/ 目录主题文件夹结构:
投资理财入门/
├── 参考资料.md ← 主题参考资料库
├── books/ ← 本地书籍/文档
│ ├── 聪明的投资者.pdf
│ └── 投资入门.md
参考资料.md 格式:
# 参考资料
## 📚 本地文件
- ./books/聪明的投资者.pdf
- ./books/投资入门.md
## 📚 Obsidian笔记
- [[投资笔记/PE估值]]
## 🌐 网站
- https://www.investopedia.com/terms/p/price-earningsratio.asp
## 📖 书籍
- 《证券分析》- Benjamin Graham
用户可通过以下方式提供来源材料:
我想学习X,参考资料:
- 文件:./books/投资入门.pdf
- 网站:https://example.com/investing-guide
- Obsidian笔记:[[投资笔记/PE估值]]
来源类型:
| 类型 | 提供方式 | 可信度 |
|---|---|---|
| 📚 本地文件 | 文件路径(PDF、MD、TXT) | 高 |
| 📚 Obsidian笔记 | [[笔记名]] 链接 | 高 |
| 📖 书籍 | 书名 + 章节 | 高 |
| 🌐 权威网站 | 官方文档、维基百科等 | 高 |
| 🌐 一般网站 | 博客、论坛等 | 中 |
AI处理流程:
AI读取时机: 用户发起学习主题时
命名规则:XX_标题.md
01_标题.md、02_标题.md02a_标题.md(从02课分支出来)重要:AI应主动监测用户的追问模式,而非仅等待显式命令。
触发信号:
AI响应:
判断标准:
| 信号强度 | 行为表现 | AI响应 |
|---|---|---|
| 弱 | 单次提问 | 直接回答,不触发分支建议 |
| 中 | 对同一概念追问2次 | 回答后主动建议分支学习 |
| 强 | 追问3次以上或提出质疑 | 回答后强烈建议分支学习 |
详细文档: docs/branch-mechanism.md → "隐式触发条件"
文件结构:
# 【主题】- 第N课 | 标题
> [!info] 课程信息
> - **前置知识**:[[上一课文件名]]
> - **学习目标**:本节结束后能做到什么
> - **参考资料**:X份文档/书籍/网站
## 内容讲解
(使用类比、费曼技巧、脚手架原则)
(每个关键知识点后标注来源[^n])
## 小结
- 关键点1
- 关键点2
- 关键点3
## 知识链接
> [!tip] 相关知识点
> - 前置:[[上一课]]
> - 延伸:[[可探索的分支方向]]
## 参考文献
> [!quote] 本课参考资料
> 1. 📚 [[笔记名#^block-id]] - 描述 - **本地笔记**
> 2. 🌐 [网站标题](URL) - 描述 - **权威网站**
> 3. 📖 《书名》章节 - 作者 - **经典书籍**
## 检查站
> [!info] 本课核心概念
> - 概念1:简要描述
> - 概念2:简要描述
> - 概念3:简要描述
**AI将根据以上主题,在对话中逐一提问验证。**
---
> [!tip] 💡 学习提示
> 如果你对某个概念有疑问,可以:
> - 直接问我问题,我会帮你解答
> - 说"深入探讨[概念]",我会创建专门的分支课程
>
> **如果你发现自己在连续追问同一个概念,我会主动建议分支学习,帮你更系统地理解!**
---
请告诉我:`准备好了` - 开始检查站验证
- `深入探讨 [概念]` - 对某个概念进行分支探索
- `回到主线` - 结束分支,返回主学习路径
- `纠错 [内容]` - 对课程内容提出质疑和纠错
详细文档: docs/feynman-verification.md
核心改变: 问题不在课程文件中预设,AI 在对话中动态生成。
AI读取时机: 用户说"准备好了"开始检查站验证时
详细文档: docs/error-correction.md
原则: 承认AI会犯错,把纠错当作学习的一部分。
AI读取时机: 用户说"纠错X"、"这里有问题"时
对话是短暂的,文件是永久的。 所有学习状态都存储在文件中。
用户: 继续学习
│
├── 扫描学习目录
├── 读取进度.md
├── 检查"当前状态"字段
│ ├── 学习中 → 读取当前课程文件
│ └── 分支探索中 → 读取活跃分支文件
└── 向用户确认并继续
## 恢复点(新对话必读)
> [!important] 快速恢复
> - **当前状态**:学习中 / 分支探索中
> - **当前位置**:[[02_核心原理]]
> - **活跃分支**:[[02a_闭包深入]](分支探索中时)
> - **下一步**:完成检查站问题
原则:按需读取文件,不依赖对话历史。
原因:长对话会导致AI遗忘早期上下文、产生幻觉。
| 操作 | 加载内容 |
|---|---|
| 继续学习 | 当前课程 + 进度 |
| 进入分支 | 分支来源课程 + 上下文摘要 |
| 回归主线 | 主线课程 + 分支收获摘要 |
| 命令 | 说明 |
|---|---|
我想学习X | 开始新主题学习 |
继续学习 | 恢复上次的学习进度(跨对话有效) |
继续学习X | 恢复特定主题的学习进度 |
深入探讨 [概念] | 进入分支探索 |
回到主线 | 结束分支,返回主学习路径 |
纠错 [内容] | 对课程内容提出质疑和纠错 |
继续下一课 | 进入下一课 |
复习 | 开始复习待复习课程 |
今日复习 | 查看今日复习任务 |
复习计划 | 查看完整复习计划 |
复习 [课程名] | 复习指定课程 |
当前进度 | 查看学习状态 |
知识图谱 | 查看完整学习路径图 |
学习历史 | 查看所有主题的学习进度 |
生成交互图 [类型] [主题] | 创建可视化交互组件 |
每次交互时确认:
隐式触发检查(每次用户提问后):
检查站验证检查(每次用户回答后):
复习检查(用户说"继续学习"时):
npx claudepluginhub zhaohuanke123/vanko-skill --plugin interactive-learningGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.