Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dsh-learning-plugin · 小学生学习闭环 DSH 插件

把「苏格拉底式四科辅导 + 错题间隔重复复习 + 变式巩固 + 学情报告 + 学习习惯档案」打包成开箱即用的 DSH 插件。源自一个真实四年级孩子的学习知识库,本地优先、纯 Markdown、零网络依赖。

装上即用:插件加载时自动把自带的 8 个技能注册为 DSH runtime skills(ctx.skills.register)——不需要再跑任何安装脚本。项目 .agents/skills 里有同名技能时,自动优先使用项目版本。

分层理念:教学法(怎么引导、怎么批改)在 skills/ 的 SKILL.md——模型读的指令文本;基建(沉淀/复习/报告脚本、工具、定时提醒)在插件层。改教法不用动代码,改基建不用动教法。

✨ 功能特性

  • 四科苏格拉底式辅导:数学 / 语文 / 英语 / 作文——永远用提问引导孩子自己想,不直接给答案
  • 错题沉淀:辅导完自动写入 Obsidian 知识库,带知识点(knowledge)与跨学科习惯(habit)标记
  • 间隔重复复习(SRS):答对间隔翻倍(1→2→4→8…封顶 30 天),连续答对 3 次标「已掌握」,答错回到 1 天
  • 变式巩固:复习后按同一知识点现场生成 2-3 道同类变式题
  • 每日一练:按薄弱知识点主动出题
  • 学情报告:科目掌握度 / 知识点分布 / 错因分类 / 每周趋势 / 薄弱点 Top N
  • 学习习惯档案:按习惯聚合错题,同一习惯跨科目出现会高亮为「通用习惯问题」——市面产品没有的维度
  • 成就系统:复习连击 streak、徽章、已攻克知识点,自动记入成长档案
  • 多孩子:每个孩子独立子库,互不干扰
  • 拍照入库:拍一张卷子/默写本,逐题判定对错后沉淀(多模态)
  • 每日复习提醒(可选):19:30 cron 推送到期复习清单

📦 安装

前置要求:Node.js ≥ 20、pnpm(npm i -g pnpm)、DeepSeek Harness(dsh)。

npm 不是必须的。dsh plugin add 本质是 pnpm 转发,支持 npm 包名 / Git 仓库 / 本地路径等多种来源。本插件已发布 npm,但直接从 GitHub 安装完全等价;社区插件中心(如 DSH Plugin Hub)也按 GitHub dsh-plugin 主题收录本插件。

方式一:从 npm 安装(推荐)

dsh plugin --profile web add https://github.com/farmarguan/dsh-learning-plugin.git

或用 pnpm 的 GitHub 简写:

dsh plugin --profile web add github:farmarguan/dsh-learning-plugin

方式二:从 GitHub 安装

NPM_BLOCK

方式三:本地路径(开发/试用)

dsh plugin --profile web add D:/code/dsh-learning-plugin

安装后重启 dsh web,8 个技能即出现在技能目录中。验证:对孩子说「复习错题」,应触发 review-tutor。

卸载:dsh plugin --profile web remove dsh-learning-plugin

非 DSH 宿主兜底:想让其他本地 Agent(如 Claude Code)也用这套技能,可把技能落盘到用户级目录:node scripts/install-skills.mjs(DSH 下不需要跑)。

🚀 快速开始

安装后直接对 DSH 里的 Agent 说话(不用记任何命令):

你说 触发 会发生什么
"这道题孩子做错了:25×4=90" 学科技能 引导式讲解 → 自动沉淀错题(带知识点+习惯)
"帮我看看这页卷子" + 照片 photo-import 逐题判定对错,错题逐条入库
"复习错题" / "今天复习什么" review-tutor 列出今日到期错题,逐题间隔重复
"出几道题练练" review-tutor 按薄弱知识点出每日一练
"学习习惯怎么样" review-tutor 生成/展示学习习惯档案
"这段时间学得如何" review-tutor 学情量化报告

习惯使用后,知识库长这样:

错题集/<科目>/<日期>_<编号>_<摘要>.md   # 错题笔记
作文/<日期>_<编号>_<题目>.md            # 作文(保存孩子原文)
学情报告/总览.md                         # 量化报告(自动刷新)
学习习惯档案/总览.md                     # habit 专属视图
成长档案/成就.md + gamification.json    # 连击/徽章/已攻克
children/<孩子>/                         # 多孩子独立子库
INDEX.md                                 # 全库总览

🧠 学习闭环(数据模型)

每道错题的 frontmatter 携带完整 SRS 状态:

字段 说明
status 待复习 → 复习中 → 已掌握
next_review_at / due_date 下次到期日
interval_days 当前间隔(1→2→4→8…封顶 30 天)
consecutive_correct 连续答对次数(3 次 → 已掌握)
knowledge 知识点(四科 PEP 词表见 references/knowledge-map.md)
habit 跨学科习惯:检查/读题/专注/书写/记忆

状态流转:

stateDiagram-v2
    [*] --> 待复习: 沉淀错题
    待复习 --> 复习中: 答对(间隔×2)
    复习中 --> 已掌握: 连对3次
    复习中 --> 复习中: 答对(间隔×2)
    待复习 --> 待复习: 答错(回1天)
    复习中 --> 待复习: 答错(回1天)
Loading

👦 多孩子

  • 沉淀时 JSON 加 "child":"朵朵",或脚本加 --child 朵朵,或环境变量 LEARNING_CHILD
  • init_child.ts --name 朵朵 建独立子库(含该孩子的 soul.md 与目录骨架)
  • 各孩子的复习清单 / 报告 / 习惯档案完全隔离

⚙️ 配置

环境变量 默认 说明
LEARNING_BASE 当前工作目录 知识库(Obsidian vault)根目录
LEARNING_CHILD 空 默认孩子名

🧰 注册的 DSH 工具

插件同时注册 5 个工具,供 Agent 直接调用(也可被其他编排引用):

工具 对应脚本 说明
learning_save save_learning_note.ts 沉淀错题/作文
learning_review_today review_today.ts 今日到期清单(--all 全部)
learning_mark_reviewed mark_reviewed.ts 记录复习结果,推进 SRS
learning_drill drill.ts 每日一练计划
learning_report report.ts + habit_report.ts 学情报告 + 习惯档案

🌍 分发渠道说明(维护者必读)

社区里 DSH 插件的主流分发方式有三种,任选其一即可,可组合:

渠道 是否需要 npm 账号 用户安装方式 收录/发现
GitHub 仓库(本插件主渠道) ❌ 不需要 dsh plugin add https://github.com/farmarguan/dsh-learning-plugin.git 或 github:farmarguan/dsh-learning-plugin 社区插件市场(DSH Plugin Hub / dsh-plugin-mall / dsh-find-plugin 等)按 GitHub dsh-plugin 主题聚合搜索
npm 包(可选加分项) ✅ 需要 dsh plugin add dsh-learning-plugin(一键,自动跟随版本) npm 搜索、各插件市场的 npm 源
本地路径(开发调试) ❌ dsh plugin add D:/code/dsh-learning-plugin 无

本仓库的发布流程(README「发布新版本」一节同款):git push 即完成 GitHub 渠道发布;npm publish 是可选的额外动作(dsh plugin update 才能自动升级 npm 渠道的用户)。两个渠道装的是同一份代码,功能完全一致。

想被更多插件市场收录:在 GitHub 仓库页 About ⚙️ 里给仓库加上主题标签 dsh-plugin 和 dsh(仅仓库主人能在网页上操作),各市场工具即会索引本仓库。

🛠️ 开发

lib/index.js        插件入口:技能自动注册 + 工具注册 + 提醒事件
cordis.patch.yml    cordis 补丁:挂载入口 + 可选 cron
skills/<技能>/      SKILL.md(教法)+ references/ + scripts/
scripts/            install-skills.mjs(非 DSH 兜底)
  • 改教法:编辑 skills/*/SKILL.md,重启 dsh 生效(runtime 技能在插件加载时读取)
  • 改脚本:skills/learning-tutor/scripts/*.ts,零依赖(Node 20 + npx tsx),可独立运行
  • 本地测试:dsh plugin --profile web add D:/code/dsh-learning-plugin + 重启;或直接跑单个脚本:echo '{"type":"错题",...}' | npx tsx skills/learning-tutor/scripts/save_learning_note.ts

首次给孩子建档

把 skills/learning-tutor/references/soul.md(模板)替换为孩子真实档案:年龄/年级/性格/各科学情定位。Agent 辅导前会读它来调整说话方式与出题难度。

📤 发布新版本

# 1. 改 package.json 的 version
# 2. 提交并打 tag
git add -A && git commit -m "release: vX.Y.Z"
git tag vX.Y.Z && git push origin master --tags
# 3.(可选)发布 npm —— 包名未被占用,npm login 后即可
npm publish
# 4. 用户侧更新
dsh plugin --profile web update dsh-learning-plugin

❓ FAQ

  • 提示 pnpm not found:npm i -g pnpm(dsh plugin 是 pnpm 转发器)
  • 想换知识库位置:设 LEARNING_BASE 指向你的 Obsidian vault
  • 项目里已有同名技能:项目 .agents/skills(rank 200)优先于插件 runtime 注册(rank 250),可自由覆盖
  • 数据会上传吗:不会。全部本地 Markdown,脚本纯本地运行,无任何网络调用
  • 和直接拷 skills 目录有什么区别:拷贝是散装文件、更新靠手工;插件走 pnpm 依赖管理,dsh plugin update 一键升级,且基建工具/定时提醒只有插件层能提供

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages