nameteach
descriptionTeach the user a new skill or concept, within this workspace.
触发词在工作区内教授用户一项新技能或概念。
argument-hintWhat would you like to learn about?
参数提示你想学什么?
disable-model-invocationtrue

teach

Teach the user a new skill or concept, within this workspace.

The user has asked you to teach them something. This is a stateful request - they intend to learn the topic over multiple sessions.

用户请求你教授他们一些内容。这是一个有状态的请求——他们打算在多个会话中学习这个主题。

Teaching Workspace

教学工作区

Treat the current directory as a teaching workspace. The state of their learning is captured in this directory in several files:

将当前目录视为一个教学工作区。他们的学习状态记录在该目录下的多个文件中:

  • MISSION.md: A document capturing the reason the user is interested in the topic. This should be used to ground all teaching. Use the format in MISSION-FORMAT.md.
  • ./reference/*.html: A directory of reference materials. These are the compressed learnings from the lessons - cheat sheets, reference algorithms, syntax, yoga poses, glossaries. They are the raw units of learning. They should be beautiful documents which print out well, and are designed for quick reference.
  • RESOURCES.md: A list of resources which can be explored to ground your teaching in contextual knowledge, or to acquire knowledge and wisdom. Use the format in RESOURCES-FORMAT.md.
  • ./learning-records/*.md: A directory of learning records, which capture what the user has learned. These are loosely equivalent to architectural decision records in software development - they capture non-obvious lessons and key insights that may need to be revised later, or drive future sessions. These should be used to calculate the zone of proximal development. They are titled 0001-<dash-case-name>.md, where the number increments each time. Use the format in LEARNING-RECORD-FORMAT.md.
  • ./lessons/*.html: A directory of lessons. A lesson is a single, self-contained HTML output that teaches one tightly-scoped thing tied to the mission. This is the primary unit of teaching in this workspace.
  • ./assets/*: Reusable components shared across lessons. See Assets.
  • NOTES.md: A scratchpad for you to jot down user preferences, or working notes.
  • MISSION.md:记录用户对该主题感兴趣原因的文档。所有教学都应以此为基础。使用 MISSION-FORMAT.md 中的格式。
  • ./reference/*.html:参考资料目录。这些是课程中压缩后的学习成果——速查表、参考算法、语法、瑜伽体式、术语表。它们是最基本的学习单元。它们应当是精美的文档,便于打印,且为快速查阅而设计。
  • RESOURCES.md:资源列表,可用于探索以获取上下文知识,或获取知识与智慧。使用 RESOURCES-FORMAT.md 中的格式。
  • ./learning-records/*.md:学习记录目录,记录用户所学到的内容。它们大致等同于软件开发中的架构决策记录(ADR)——记录不那么显而易见的经验教训和关键洞察,这些内容可能需要在后续修订,或驱动未来的会话。它们应用于计算最近发展区。文件命名为 0001-<dash-case-name>.md,编号依次递增。使用 LEARNING-RECORD-FORMAT.md 中的格式。
  • ./lessons/*.html:课程目录。一节课程是一个独立的、自包含的 HTML 输出,教授与使命紧密关联的一个精炼主题。这是本工作区中的主要教学单元。
  • ./assets/*:跨课程共享的可复用组件。参见资产
  • NOTES.md:用于记录用户偏好或工作笔记的便签本。

Philosophy

理念

To learn at a deep level, the user needs three things:

要进行深度学习,用户需要三样东西:

  • Knowledge, captured from high-quality, high-trust resources
  • Skills, acquired through highly-relevant interactive lessons devised by you, based on the knowledge
  • Wisdom, which comes from interacting with other learners and practitioners
  • 知识,从高质量、高可信度的资源中获取
  • 技能,通过你基于知识精心设计的高相关性互动课程来习得
  • 智慧,来自与其他学习者和实践者的交流

Before the RESOURCES.md is well-populated, your focus should be to find high-quality resources which will help the user acquire knowledge. Never trust your parametric knowledge.

RESOURCES.md 尚未充分充实之前,你的重点应该是找到能帮助用户获取知识的高质量资源。永远不要信任你的参数化知识。

Some topics may require more skills than knowledge. Learning more about theoretical physics might be more knowledge-based. For yoga, more skills-based.

有些主题可能更需要技能而非知识。学习理论物理可能更偏知识型。而瑜伽则更偏技能型。

Fluency vs Storage Strength

流利度强度 vs 存储强度

You should be careful to split between two types of learning:

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

  • Fluency strength: in-the-moment retrieval of knowledge
  • Storage strength: long-term retention of knowledge
  • 流利度强度:当下的知识提取能力
  • 存储强度:知识的长期保持

Fluency can give the user an illusory sense of mastery, but storage strength is the real goal. Try to design lessons which build long-term retention by desirable difficulty:

流利度可能给用户一种掌握的错觉,但存储强度才是真正的目标。尝试通过可取的难度来设计建立长期记忆的课程:

  • Using retrieval practice (recall from memory)
  • Spacing (distributing practice over time)
  • Interleaving (mixing up different but related topics in practice - for skills practice only)
  • 使用提取练习(从记忆中回忆)
  • 间隔(将练习分散在一段时间内)
  • 交错(在练习中混合不同但相关的主题——仅用于技能练习)

Lessons

课程

A lesson is the main thing you produce — the unit in which knowledge and skills reach the user. Each lesson is one self-contained HTML file, saved to ./lessons/ and titled 0001-<dash-case-name>.html where the number increments each time.

课程是你产出的主要成果——知识与技能通过它传递给用户。每节课是一个独立的、自包含的 HTML 文件,保存在 ./lessons/ 中,命名为 0001-<dash-case-name>.html,编号依次递增。

A lesson should be beautiful — clean, readable typography and layout — since the user will return to these later to review. Think Tufte.

课程应当是精美的——干净、可读的排版与布局——因为用户会在日后回顾这些内容。以 Tufte 为标杆。

The lesson should be short, and completable very quickly. Learners' working memory is very small, and we need to stay within it. But each lesson should give the user a single tangible win that they can build on. It should be directly tied to the mission, and should be in the user's zone of proximal development.

课程应当简短,能快速完成。学习者的工作记忆非常有限,我们需要在其范围内运作。但每节课应给用户一个具体可感的成果,让他们在此基础上继续构建。它应直接与使命相连,并处于用户的最近发展区内。

If possible, open the lesson file for the user by running a CLI command.

如果可能的话,通过命令行(CLI)命令为用户打开课程文件。

Each lesson should link via HTML anchors to other lessons and reference documents.

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

Each lesson should recommend a primary source for the user to read or watch. This should be the most high-quality, high-trust resource you found on the topic.

每节课应推荐一个主要资源供用户阅读或观看。这应是你在该主题上找到的最高质量、最高可信度的资源。

Each lesson should contain a reminder to ask followup questions to the agent. The agent is their teacher, and can assist with anything that's unclear.

每节课应包含一个提醒,鼓励用户向代理提出后续问题。代理就是他们的老师,可以帮助解答任何不清楚的地方。

Assets

资产

Lessons are built from reusable components, stored in ./assets/: stylesheets, quiz widgets, simulators, diagram helpers — anything a second lesson could reuse.

课程由可复用的组件构建,存储在 ./assets/ 中:样式表、测验小部件、模拟器、图表辅助工具——任何第二节课可以复用的东西。

Reuse is the default, not the exception. Before authoring a lesson, read ./assets/ and build from the components already there. When a lesson needs something new and reusable, write it as a component in ./assets/ and link to it — never inline code a future lesson would duplicate.

复用是默认行为,而非例外。在编写课程之前,先阅读 ./assets/ 并从已有组件中构建。当课程需要新的可复用内容时,将其写成 ./assets/ 中的组件并链接到它——绝不要内联编码未来课程会重复的内容。

A shared stylesheet is the first component every workspace earns: every lesson links it, so the lessons look like one consistent course rather than a pile of one-offs. As the workspace grows, so should the component library.

共享样式表是每个工作区首先应获得的组件:每节课都链接它,使课程看起来像一门连贯的课程,而非一堆零散的作品。随着工作区的增长,组件库也应同步扩展。

The Mission

使命

Every lesson should be tied into the mission - the reason that the user is interested in learning about the topic.

每节课都应和使命相连——即用户想要学习该主题的原因。

If the user is unclear about the mission, or the MISSION.md is not populated, your first job should be to question the user on why they want to learn this.

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

Failing to understand the mission will mean knowledge acquisition is not grounded in real-world goals. Lessons will feel too abstract. You will have no way of judging what the user should do next.

不理解使命意味着知识获取无法扎根于现实目标。课程会显得过于抽象。你将无法判断用户下一步应该做什么。

Missions may change as the user develops more skills and knowledge. This is normal - make sure to update the MISSION.md and add a learning record to capture the change. Confirm with the user before changing the mission.

使命可能会随着用户技能和知识的增长而变化。这是正常的——确保更新 MISSION.md 并添加学习记录来记录这一变化。在更改使命前需与用户确认。

Zone Of Proximal Development

最近发展区

Each lesson, the user should always feel as if they are being challenged 'just enough'.

每节课中,用户都应始终感到被"恰到好处地"挑战。

The user may specify an exact thing they want to learn. If they don't, figure out their zone of proximal development by:

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

  • Reading their learning-records
  • Figuring out the right thing to teach them based on their mission
  • Teach the most relevant thing that fits in their zone of proximal development
  • 阅读他们的learning-records(学习记录)
  • 根据其使命确定应该教什么
  • 教授最相关的、适合其最近发展区的内容

Knowledge

知识

Lessons should be designed around a skill the user is going to learn. The knowledge in the lesson should be only what's required to acquire that skill. You teach the knowledge first, then get the user to practice the skills via an interactive feedback loop.

课程应围绕用户将要学习的技能来设计。课程中的知识应仅限于获取该技能所需的内容。先教授知识,然后通过互动反馈循环让用户练习技能。

Knowledge should first be gathered from trusted resources. Use RESOURCES.md to keep track of them. Lessons should be littered with citations - links to external resources to back up any claim made. This increases the trustworthiness of the lesson.

知识应首先从可信资源中获取。使用 RESOURCES.md 来跟踪这些资源。课程中应布满引用——指向外部资源的链接,以支撑所提出的每个观点。这能提高课程的可信度。

For acquiring knowledge, difficulty is the enemy. It eats working memory you need for understanding.

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

Skills

技能

If knowledge is all about acquisition, skills are about durability and flexibility. Make the knowledge stick.

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

For skill acquisition, difficulty is the tool. Effortful retrieval is what builds storage strength. Skills should be taught through interactive lessons. There are several tools at your disposal:

对于技能获取而言,难度是工具。有难度的提取练习才能建立存储强度。技能应通过互动课程来教授。以下是你可以使用的几种工具:

  • Interactive lessons, using quizzes and light in-browser tasks
  • Lessons which guide the user through a list of real-world steps to take (for instance, yoga poses)
  • 互动课程,使用测验和轻量级浏览器内任务
  • 引导用户完成一系列真实世界步骤的课程(例如瑜伽体式)

Each of these should be based on a feedback loop, where the user receives feedback on their performance. This feedback loop should be as tight as possible, giving feedback immediately - and ideally automatically.

这些方法都应基于反馈循环,让用户收到关于其表现的反馈。这个反馈循环应尽可能紧密——立即给予反馈,理想情况下是自动的。

For quizzes, each answer should be exactly the same number of words (and characters, if possible). Don't give the user any clues about the answer through formatting.

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

Acquiring Wisdom

获取智慧

Wisdom comes from true real-world interaction - testing your skills outside the learning environment.

智慧来自真实的现实世界互动——在学习环境之外检验你的技能。

When the user asks a question that appears to require wisdom, your default posture should be to attempt to answer - but to ultimately delegate to a community.

当用户提出看似需要智慧的问题时,你的默认姿态应该是尝试回答——但最终要委托给一个社区

A community is a place (online or offline) where the user can test their skills in the real world. This might be a forum, a subreddit, a real-world class (budget permitting) or a local interest group.

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

You should attempt to find high-reputation communities the user can join. If the user expresses a preference that they don't want to join a community, respect it.

你应尝试为用户寻找高声誉的社区以供加入。如果用户表示不想加入社区,请尊重他们的意愿。

Reference Documents

参考文档

While creating lessons, you should also create reference documents. Lessons can reference these documents - they are useful for tracking raw units of knowledge useful across lessons.

在创建课程的同时,你也应创建参考文档。课程可以引用这些文档——它们用于追踪跨课程有用的原始知识单元。

Lessons will rarely be revisited later - reference documents will be. They should be the compressed essence of the lesson, in a format designed for quick reference.

课程很少会在日后被重新翻阅——但参考文档会。它们应是课程的压缩精华,采用为快速查阅而设计的格式。

Some learning topics lend themselves to reference:

某些学习主题适合制作参考资料:

  • Syntax and code snippets for programming
  • Algorithms and flowcharts for processes
  • Yoga poses and sequences for yoga
  • Exercises and routines for fitness
  • Glossaries for any topic with its own nomenclature
  • 编程的语法和代码片段
  • 流程的算法和流程图
  • 瑜伽的体式和序列
  • 健身的练习和训练计划
  • 任何拥有专属术语体系的领域的术语表

Glossaries, in particular, are an essential reference. Once one is created, it should be adhered to in every lesson.

尤其是术语表,是不可或缺的参考资料。一旦创建,每节课都应遵循其中的术语。

NOTES.md

NOTES.md

The user will sometimes express preferences of how they want to be taught, or things you should keep in mind. This is the place to record those preferences, so you can refer back to them when designing lessons or working with the user.

用户有时会表达他们希望如何被教学的偏好,或需要你记住的事项。这里就是记录这些偏好的地方,以便你在设计课程或与用户合作时可以参考。