Skip to main content

teach-hermes

在 Telegram 异步环境中跨会话、有状态地教用户一门技能或概念,为长期储存(将来用得上)而非当下流畅(此刻学会)设计:使命锚定每节课、ZPD 校准难度、知识阶段降认知负荷/技能阶段加困难、只在有理解证据时写学习记录、cron 主动间隔复习推送。课程为 Markdown,工作区为 Obsidian vault,quiz 异步批改。使用时机:用户表达长期、多次的学习意图——教我 X、带我系统学 X、我想长期学 X、teach。DO NOT use for:一次性事实查询(「Box 是什么」)、使命怎么问都说不清、纯娱乐性浏览——这些走普通问答,不进教学模式。触发词:教我、带我学、我想系统学、长期学、teach。

Zur Installation springen

Quellinformationen

Repository
Loveacup/jz-skills
Letzte Quellaktivität
18. Juni 2026 um 11:50
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
1
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
teach-hermes
description
在 Telegram 异步环境中跨会话、有状态地教用户一门技能或概念,为长期储存(将来用得上)而非当下流畅(此刻学会)设计:使命锚定每节课、ZPD 校准难度、知识阶段降认知负荷/技能阶段加困难、只在有理解证据时写学习记录、cron 主动间隔复习推送。课程为 Markdown,工作区为 Obsidian vault,quiz 异步批改。使用时机:用户表达长期、多次的学习意图——教我 X、带我系统学 X、我想长期学 X、teach。DO NOT use for:一次性事实查询(「Box 是什么」)、使命怎么问都说不清、纯娱乐性浏览——这些走普通问答,不进教学模式。触发词:教我、带我学、我想系统学、长期学、teach。
type
routine
version
0.2.0
author
Alex × Hermes Agent
license
MIT
platforms
["linux","macos"]
metadata
{"hermes":{"tags":["teaching","learning","obsidian","async","spaced-repetition","cron"],"stateful":true,"workspace":"20-Areas/学习/_topics/{topic-slug}","orchestrates":["obsidian","obsidian-md-ac","reply-context-retrieval","cron-worker"]}}
# Teach(异步教学)v0.2 为长期记忆而设计的有状态教学 skill。把「教一个人」从一问一答的无状态对话,重写成可追溯、跨会话、为储存强度服务的工程过程。**编排型 skill**:文件 IO 交给 `obsidian`,自己只管教学逻辑。 ## 🚨 Red Flags — 看到自己在这么想,立即停手 | 你可能的借口 | 为什么错 → 正确动作 | |:---|:---| | 「用户随口问了一句,正好开课教他」 | teach 是重状态、跨会话的承诺。一次性提问走普通问答 → **只在用户表达长期/多次学习意图时才触发**。 | | 「使命用户说得含糊,先开课边教边明确」 | 坏使命比没使命更糟,会带偏后面**所有**课程 → **先别开课**,追问「为什么学」直到收敛成一句具体的话。 | | 「这轮聊得不错,记一条 learning record」 | 流水账会淹没信号、让 ZPD 算不准 → **只在有理解证据时写**(见「四写四不写」)。 | | 「quiz 选项长短不一无所谓,能测就行」 | 不等长会泄露格式线索,学习者靠「最长的通常对」绕过检索,储存强度练不到 → **每个选项等长、无线索**。 | | 「知识点多,一条消息全发给他」 | 知识阶段一次塞太多=把新手按进水里(认知负荷爆表)→ **拆 2–4 条短消息,一条一个点**。 | | 「用户几天没回复,催一下」 | 间隔效应是白送的认知科学利器,延迟回答=正在巩固储存强度 → **不催、不追、不提醒**。cron 复习和用户回复是两条独立轨道。 | ## 方法论内核(30 秒锚定,详见 [[teach-skill-教学方法论]]) **使命锚定 + ZPD 校准 + 困难的辩证 + 理解留痕 + 间隔复习 → 可迁移的长期能力** - **流畅 ≠ 储存**:「刚学完感觉懂了」是危险信号不是成功信号。目标是几周后还能独立调出来用。 - **困难的辩证(手术刀)**:==知识获取阶段,困难是敌人==(降认知负荷、扫清障碍);==技能获取阶段,困难是工具==(故意加阻力、逼检索)。分清当前在哪个阶段,是好老师和差老师的分水岭。 - **异步是特性不是缺陷**:用户隔很久才答题是**好事**(间隔效应+延迟反馈,认知科学里最贵的两样,Telegram 白送)。不要因延迟而催促。 - **cron 间隔复习**:被动等用户来复习 → 遗忘。主动按遗忘曲线推送间隔复习 → 储存强度持续攀升。cron 只管推送,不管批改——用户回复后走正常 quiz 批改流程。 ## 决策树 — 触发后第一步永远是查状态 ```mermaid flowchart TD A["用户触发 teach {主题}"] --> B{"vault 里已有<br/>该主题 workspace?"} B -->|无| C["开局:使命澄清<br/>追问「为什么学」"] C --> C2{"使命收敛成<br/>一句具体的话?"} C2 -->|否| C C2 -->|是| D["写 MISSION.md + LR-0001<br/>+ 创建 cron 复习 job"] B -->|有| E["续上:读 MISSION<br/>+ 最新 learning record"] E --> F["算出当前 ZPD"] D --> F F --> G["选下一节:落在 ZPD 内<br/>且与使命最相关的一件事"] G --> H["开课(先知识后技能)"] ``` ## 运行时适配 & 编排的 skill(v0.2) | skill | 在 teach 里的角色 | 调用时机 | |:---|:---|:---| | `obsidian` | workspace 文件读写、路径解析、wikilink | 全程 | | `obsidian-md-ac` | 写规范 Obsidian Markdown | 生成课程与记录时 | | `reply-context-retrieval` | 异步 quiz 定位「在答哪道题、哪个主题」 | 多主题并行、收到延迟回复时 | | `cron-worker` | 创建/管理间隔复习 cron job | 新主题开课时建 job;停课时删 job | > v0.2 **新增 `cron-worker`**:每个主题一个 daily cron job,扫描 learning-records 日期、按 SM-2 简易间隔推送复习 quiz。 ## Workspace 结构(v0.2) 每个主题一个目录,**严格隔离在 `学习/_topics/` 命名空间下**: ``` 20-Areas/学习/_topics/{topic-slug}/ ├── MISSION.md # 一句话使命 + 成功的样子 + 约束 + 不在范围内 ├── RESOURCES.md # 策展可信来源(Knowledge / Wisdom 两组) ├── NOTES.md # 用户偏好:节奏、风格、不想进社区等 ├── REVIEWS.md # 间隔复习日志:日期 + 考的哪几条 LR + 结果 ├── lessons/ │ ├── 0001-借用与可变借用.md # Markdown 课程,序号命名 │ └── 0002-生命周期标注.md ├── reference/ │ └── GLOSSARY.md # 术语表,课程和复习的权威参考 └── learning-records/ ├── 0001-已会基础语法.md # 教学版 ADR,只追加、按序编号 └── 0002-理解了所有权转移.md ``` ### 文件规格 **RESOURCES.md** — 策展的高信任来源,不是书签堆。格式: ```markdown ## Knowledge(知识来源) - [资源名](URL) — 一句话:覆盖什么、何时用 ## Wisdom(社区) - [社区名](URL) — 一句话:活跃度 + 适合问什么 ## Gaps(缺口) - 缺少什么、为什么需要 ``` 规则:高信任优先;每条必须注解;宁少勿滥;错了就删。 **reference/GLOSSARY.md** — 术语权威定义,课程和复习的单一真相源。格式: ```markdown ## 术语 - **术语**:一句话定义。首次出现于 L{NNNN}。 ``` 规则:创建后,课程和 quiz 中的术语定义必须和此处一致。 **NOTES.md** — 草稿本,记用户偏好(节奏、风格、不想进社区等),不参与教学逻辑。 **REVIEWS.md** — cron 复习的 append-only 日志。格式:`YYYY-MM-DD | 复习 LR-NNNN, LR-NNNN | 通过/部分通过/未通过` ## 执行流程 ### 1. 检查 / 创建 workspace 经 `obsidian` 查 `20-Areas/学习/_topics/{topic-slug}/` 是否存在。有 → 走「续上」;无 → 走「开局」。topic-slug 用主题的简短 kebab/中文短名。 ### 2a. 开局:使命澄清(仅新主题) - 追问「**你为什么要学这个?**」——要的是具体动机,不是宽泛愿望。 - 用户含糊(「想学好 Rust」)→ **怼回去**,逼到具体(「能预判借用检查器、不再靠瞎改通过编译」)。说不清就**别开课**。 - 收敛后写 `MISSION.md`(`# 为什么` / `# 成功的样子` / `# 约束` / `# 不在范围内`,**不超过一屏**——超过就成了大纲),并写 `LR-0001` 记录使命与任何已披露的基础。 - ⚠️ **v0.2 新增**:使命确定后,**立即创建间隔复习 cron job**(见「Spaced Repetition」节)。 ### 2b. 续上:读记录算 ZPD(已有主题) 读 `MISSION.md` + 最新几条 learning record,推断当前 ZPD(独立能做 ↔ 协助能做 之间的甜区)。**ZPD 不是拍脑袋,是从学习轨迹读出来的。** ### 3. 选课 → 发知识(降认知负荷) - 选**落在 ZPD 内、且与使命最相关**的一件事。一节课 = 一个看得见的小胜利。 - 先给**最小必要知识**,拆成 **2–4 条短消息**(适配手机屏),一条一个点,绝不一次塞满。 - 课末给**追问钩子**:「有不懂的直接问我」。 - 课程经 `obsidian-md-ac` 规范后,由 `obsidian` 写入 `lessons/NNNN-*.md`。 ### 4. 异步 quiz(反馈循环,此处加困难) - 知识吃进去后转练习,**故意加阻力**:要求**凭记忆**作答(检索练习),别让用户翻看上文。 - **铁律:每个选项等长、不留格式线索**。能开放式作答(让用户自己写出答案)就更好——叠加生成效应。 - 技术主题让用户**实际写代码/跑命令**把结果贴回;非技术主题做一个真实动作回报。 - 用户**延迟回答是好事,不催**。下一轮收到回复时批改:多主题并行 → 先用 `reply-context-retrieval` 定位是哪道题、哪个主题、ZPD 到哪。 - 批改给出对错 + **为什么**,不只是判分。 ### 5. 捕捉理解证据 → 写 learning record 仅当出现下方「四写」之一,经 `obsidian` 追加 `learning-records/NNNN-slug.md`。**只追加、按序编号、不改写。** ### 6. v0.2 新增:Spaced Repetition(间隔复习) **为什么**:被动等用户想起复习 = 遗忘。主动按记忆曲线推送 = 储存强度叠加。 **机制**:每个主题一条 daily cron job。 #### Cron Job 规格 | 属性 | 值 | |:---|:---| | schedule | `0 10 * * *`(每日 10:00) | | deliver | 当前 Telegram chat | | profile | default | | skills | `[teach, obsidian, obsidian-md-ac]` | | 工作目录 | Obsidian vault | #### Cron 每次运行的决策逻辑 ``` 1. 扫描 20-Areas/学习/_topics/*/MISSION.md → 列出活跃主题 2. 对每个活跃主题: a. 读 REVIEWS.md + learning-records/(拿日期) b. 找尚未复习的 learning record,按创建日期算间隔: - 第 1 次复习:LR 创建日后 +1d - 第 2 次复习:上次复习后 +3d - 第 3 次:+7d - 第 4 次:+14d - 第 5 次:+30d(封顶) c. 筛选出「到期且今天还没复习过」的 LR d. 对这些 LR 涉及的课程内容,生成 1–3 道 mini quiz 3. 如果没有到期的 → 静默退出(不发消息) 4. 如果有到期的 → 向用户发送复习消息 ``` #### 复习消息格式 每个主题一条消息,最多发 2 个主题: ``` 🧠 复习时间!{主题名} {mini quiz 1} {mini quiz 2} (凭记忆回答,别翻笔记 😤) ``` #### 批改流程 - cron 只负责推送,**不批改**——批改是下次用户回复时 interactive session 的事。 - 用户回复后,走 v0.1 的 quiz 批改流程(步骤 4)。 - 批改完成后**追加 REVIEWS.md**:`日期 | 复习 LR-NNNN | 结果` #### 边界规则 - 同一 LR 在同一天内只推一次(查 REVIEWS.md 去重)。 - 如果用户的响应比 cron 推送先到,优先响应真人,cron 复习顺延到下一次。 - 用户明确说「暂停复习」→ 暂停该主题的 cron job(`cronjob action='pause'`)。 - 主题完结(用户说「学完了」)→ 删除 cron job(`cronjob action='remove'`)。 ## 学习记录:四写四不写 | ✅ 写(有理解证据) | ❌ 不写 | |:---|:---| | 用户演示了对非平凡内容的真正理解 | 只是「我讲过了」(等到有证据) | | 用户披露既有知识(「我已经会 X」) | 术语表/已有记录里已覆盖的 | | 一个误解被纠正了 | 逐次活动的流水账 | | 使命随学习发生了偏移 | 没有新信号的寒暄 | 被推翻的旧记录:标记「被 LR-NNNN 取代」,**保留不删**(像 ADR 一样留演进轨迹)。 ## 质量门(每节课开课前自检) - 这节课能**追溯回 MISSION**?追溯不回 → 别教。 - 落在 **ZPD** 内(跳一跳够得着,不无聊也不挫败)? - quiz **选项等长、无格式线索、要求凭记忆**? - 当前是知识阶段(**降**负荷)还是技能阶段(**加**困难)?别搞反。 - learning record **只追加不改写**,状态全在 vault 文件。 - ⚠️ v0.2 新增:**cron 复习 job 是否活跃**?新主题 → 已建 job;暂停 → 已记原因;完结 → 已删 job。 ## ✅ Verification Checklist(收尾前逐条核对) - [ ] workspace 落在 `20-Areas/学习/_topics/{slug}/`,没污染知识库正文 - [ ] `MISSION.md` 收敛成一句具体的话、不超过一屏(是指南针不是大纲) - [ ] 本节课可追溯回使命、且落在 ZPD 内 - [ ] quiz 每个选项等长、无格式线索、要求凭记忆作答 - [ ] 知识阶段拆短降负荷 / 仅在技能阶段加困难(没搞反) - [ ] learning record 只在有理解证据时写,按序号追加、未改写旧记录 - [ ] 所有文件经 `obsidian` 落地、经 `obsidian-md-ac` 规范、带 frontmatter - [ ] v0.2:cron 复习 job 状态正确(新主题已建 / 活跃 / 暂停有记录 / 完结已删) - [ ] v0.2:REVIEWS.md 追加了本次复习结果(如适用) ## v0.2 范围 **做**:v0.1 全部(课程+quiz+learning records)+ 间隔复习 cron 推送 + `RESOURCES.md` + `reference/GLOSSARY.md` + `NOTES.md`。 **不做**:Wisdom 社区委托(→ v0.5)、多主题交叉复习(→ v0.3)、复习间隔自适应调参(→ v0.3)。 --- **配套**:[[teach-skill-教学方法论]](认知科学基础)| [[hermes-teach-skill-设计方案]](完整编排架构与里程碑)
Auf GitHub ansehen