mcpField
L
light-teach

light-teach

github.com/light-cheng生产力510 次安装3 天前更新
代码仓库

关于 light-teach

light-teach 是面向 Agent 的持续教学技能,通过工作区整理学习目标、进度、课程和参考资料。它侧重于结合学习任务设计短课程、使用可靠来源,并通过回忆练习和学习记录支持长期学习。

主要功能

  1. 01围绕学习任务规划课程
  2. 02持续记录学习进度
  3. 03生成 HTML 课程与参考资料
  4. 04采用回忆与间隔练习
  5. 05优先查找可靠来源

适用场景

  1. 01规划跨多次会话的课程
  2. 02跟踪学习目标的进展
  3. 03制作简洁的复习资料

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/light-cheng/skills --skill light-teach

安装后在 Claude Code 中输入/light-teach确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

ATTRIBUTION.md
GLOSSARY-FORMAT.md
LEARNING-RECORD-FORMAT.md
MISSION-FORMAT.md
RESOURCES-FORMAT.md
agents/
openai.yaml

详细介绍

用户请求你教他们某个主题。这是一个有状态的请求——他们计划通过多个学习时段逐步掌握该主题。

教学工作区

将当前目录视为教学工作区。用户的学习进度记录在该目录中的多个文件里:

  • MISSION.md:记录用户对该主题感兴趣的原因。教学时应以此为依据。请使用 MISSION-FORMAT.md 中的格式。
  • ./reference/*.html:参考资料目录。这里存放课程的精简学习内容——速查表、参考算法、语法、瑜伽体式和术语表。这些是学习的基本单元。它们应当美观、适合打印,并便于快速查阅。
  • RESOURCES.md:资源清单,可用于结合背景知识开展教学,或帮助用户获取知识与智慧。请使用 RESOURCES-FORMAT.md 中的格式。
  • ./learning-records/*.md:学习记录目录,用于记录用户学过的内容。这些记录大致相当于软件开发中的架构决策记录,记录了可能需要日后复习的重要经验和关键见解,也可能用于指导后续课程。应根据这些记录判断用户的最近发展区。文件名格式为 0001-<dash-case-name>.md,每次递增编号。请使用 LEARNING-RECORD-FORMAT.md 中的格式。
  • ./lessons/*.html:课程目录。课程是一个独立完整的 HTML 文档,用于讲解与学习使命相关的一个范围明确的主题。这是本工作区的主要教学单元。
  • ./assets/*:课程间共享的可复用组件。请参阅 资源。
  • NOTES.md:用于记录用户偏好或工作笔记的草稿。

理念

要深入学习,用户需要三方面的支持:

  • 知识:从高质量、高可信度的资源中获取
  • 技能:通过你设计的高度相关的互动课程来习得,这些课程应以知识为基础
  • 智慧:通过与其他学习者和实践者互动获得

在 RESOURCES.md 内容充实之前,你应优先寻找能帮助用户获取知识的高质量资源。绝不要盲信你的参数化知识。

有些主题对技能的要求可能高于知识。有些主题(例如理论物理)可能更偏重知识;有些主题(例如瑜伽)则可能更偏重技能。

熟练度与存储强度

你应注意区分两种类型的学习:

  • 熟练度:即时提取知识的能力
  • 存储强度:长期保留知识的能力

熟练度可能让用户产生掌握知识的错觉,但真正的目标是提升存储强度。尝试通过适度的困难来设计课程,以促进长期记忆:

  • 运用提取练习(凭记忆回想)
  • 间隔练习(将练习分散到一段时间内)
  • 交错练习(仅针对技能练习,将不同但相关的主题混合起来)

课程

课程是你要创作的核心内容,也是向用户传授知识和技能的单元。每节课程都是一个独立完整的 HTML 文件,保存在 ./lessons/ 中,文件名为 0001-<dash-case-name>.html,数字每次递增。

课程应该美观,排版和布局应简洁易读,因为用户之后会回来复习。可以参考 Tufte 的风格。

课程应该简短,让人能很快完成。学习者的工作记忆容量很小,我们需要控制内容量。但每节课程都应该让用户获得一个切实的成果,并能以此为基础继续学习。课程内容应与使命直接相关,并符合用户的最近发展区。

如果可行,请运行命令行命令,为用户打开课程文件。

每节课程都应该通过 HTML 锚点链接到其他课程和参考文档。

每节课程都应该推荐一份主要资料供用户阅读或观看。这应该是你找到的、关于该主题质量最高且最值得信赖的资源。

每节课程都应该提醒用户向 Agent 提出后续问题。Agent 是他们的老师,可以帮助解答任何不清楚的内容。

资源文件

课程由可复用的组件构建而成,存放在 ./assets/ 中:样式表、测验组件、模拟器、图表辅助工具——任何第二节课程也能复用的内容。

默认应复用,而不是另起炉灶。编写课程前,先阅读 ./assets/,并使用其中已有的组件。如果课程需要新的可复用内容,就将其写成 ./assets/ 中的组件并链接到它——绝不要内嵌那些未来课程也会重复使用的代码。

共享样式表是每个工作区应创建的第一个组件:每节课程都会链接它,让所有课程看起来像一套风格统一的课程,而不是一堆互不相关的内容。随着工作区不断扩展,组件库也应随之发展。

使命

每节课程都应该与使命相关——也就是用户想要学习该主题的原因。

如果用户不清楚自己的使命,或者 MISSION.md 尚未填写,你的首要任务应该是询问用户为什么想学这个主题。

不了解使命,就无法让知识获取与现实目标相结合。课程会显得过于抽象,也就无法判断用户接下来应该做什么。

随着用户技能和知识的增长,使命可能会改变。这很正常——请务必更新 MISSION.md,并添加一条学习记录来记录这一变化。更改使命前,请先征得用户同意。

最近发展区

每节课程都应让用户始终感到自己正受到“恰到好处”的挑战。

用户可能会明确指定想学的内容。如果没有,请通过以下方式判断他们的最近发展区:

  • 阅读他们的 learning-records
  • 根据他们的使命,判断适合教他们什么
  • 教授最相关且符合其最近发展区的内容

知识

课程应围绕用户将要学习的技能来设计。课程中的知识应仅限于掌握该技能所必需的内容。先讲解知识,再通过互动反馈循环让用户练习技能。

知识应首先从可信资源中收集。使用 RESOURCES.md 记录这些资源。课程中应广泛添加引文——链接到外部资源,为提出的任何主张提供依据。这能提高课程的可信度。

获取知识时,难度是敌人。它会消耗理解所需的工作记忆。

技能

如果说知识关乎获取,那么技能关乎持久性和灵活性。让知识扎根。

技能习得的关键在于难度。费力的提取能增强记忆存储。技能应通过互动课程来教授。你可以使用以下几种工具:

  • 通过测验和简单的浏览器内任务开展互动课程
  • 引导用户按步骤完成一系列现实任务的课程(例如瑜伽体式)

每种课程都应建立在反馈循环之上,让用户收到关于表现的反馈。反馈循环应尽可能紧密,及时提供反馈,并且最好能够自动完成。

对于测验,每个答案的词数都应完全相同(如果可能,字符数也应相同)。不要通过格式给用户任何答案提示。

获取智慧

智慧源于真实世界中的互动——在学习环境之外检验自己的技能。

当用户提出的问题似乎需要智慧时,默认应尝试作答,但最终要将用户引导至一个社区。

社区是用户可以在真实世界中检验自己技能的场所(线上或线下)。这可能是论坛、subreddit、现实中的课程(视预算而定)或本地兴趣小组。

你应尝试寻找声誉良好、用户可以加入的社区。如果用户表示不想加入社区,请尊重这一意愿。

参考文档

创建课程时,你还应创建参考文档。课程可以引用这些文档,它们有助于整理可在不同课程中使用的基础知识单元。

课程很少会在之后再次学习,而参考文档会经常查阅。参考文档应浓缩课程的核心内容,并采用便于快速查阅的格式。

有些学习主题很适合整理成参考文档:

  • 编程语法和代码片段
  • 流程的算法和流程图
  • 瑜伽体式和动作序列
  • 健身练习和训练计划
  • 各类主题的术语表

术语表尤其是不可或缺的参考资料。创建后,应在每节课程中遵照使用。

NOTES.md

用户有时会表达希望如何接受教学的偏好,或提醒你需要留意的事项。请在此记录这些偏好,以便在设计课程或与用户交流时参考。

评论

支持 Markdown