SuperAPI AI Directory

teach

General & other

View repository

Updated 10-15 21:08

About this skill

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

Teaching Workspace

Treat the current directory as the teaching workspace. Their learning state is recorded in this directory through the following files:

  • MISSION.md: A document recording the user'sreasons for being interestedin this topic. All teaching should be based on this. Use the format in MISSION-FORMAT.md .
  • ./reference/*.html: Reference materials directory. These are the compressed learning outcomes of the course—cheat sheets, reference algorithms, syntax, yoga poses, vocabulary lists. They are the raw units of learning. They should be beautifully typeset documents, suitable for printing, and designed for quick reference.
  • RESOURCES.md: A list of resources that can be explored to ground your teaching in contextualized knowledge, or to acquire knowledge and wisdom. Use the format in RESOURCES-FORMAT.md .
  • ./learning-records/*.md: Learning records directory, recording what the user has already learned. This is roughly equivalent to architecture decision records in software development—they capture non-obvious lessons and key insights that may later need revision, or be used to drive future lessons. These should be used to calculate the zone of proximal development. The file naming format is 0001-<dash-case-name>.md, with the number incrementing each time. Use the format in LEARNING-RECORD-FORMAT.md .
  • ./lessons/*.html: Lessons directory.A lessonis an independent, self-contained HTML output that teaches one narrowly scoped piece of content closely related to the mission. This is the primary unit of teaching in this workspace.
  • NOTES.md: A scratchpad for you to record user preferences or working notes.

Philosophy

To learn deeply, the user needs three things:

  • Knowledge, acquired from high-quality, high-trust resources
  • Skills, acquired through highly relevant interactive lessons that you design based on knowledge
  • Wisdom, from exchanges with other learners and practitioners

Until RESOURCES.md is sufficiently enriched, your focus should be on finding high-quality resources that can help the user acquire knowledge. Never trust your parametric knowledge.

Some topics may require more skill than knowledge. Learning theoretical physics may lean more toward knowledge. Yoga leans more toward skill.

Fluency vs Storage Strength

You should be careful to distinguish between two kinds of learning:

  • Fluency strength: the ability to retrieve knowledge immediately in the moment
  • Storage strength: the ability to retain knowledge over the long term

Fluency gives the user a false sense of mastery, but storage strength is the real goal. Try to design lessons that build long-term memory through desirable difficulty:

  • Use retrieval practice (recalling from memory)
  • Spacing (spreading practice across different times)
  • Interleaving (mixing different but related topics in practice—only applies to skill practice)

Lessons

Lessons are the main content you produce—the unit through which knowledge and skills reach the user. Each lesson is an independent HTML file, saved in ./lessons/ , with the naming format 0001-<dash-case-name>.html, with the number incrementing.

Lessons shouldbe beautiful— Clean, readable typography and layout — because users will come back to it later. Think Tufte's design philosophy.

Lessons should be short and completable in a very short time. Learners have very limited working memory, and we need to stay within its capacity. But each lesson should give the user a concrete, tangible outcome that they can build on. It should be directly related to the mission and within the user's zone of proximal development.

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

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

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

Each lesson should include a reminder that the user can ask the agent questions. The agent is their teacher and can help with anything unclear.

Mission

Each lesson should be tied to the mission — that is, the user'sfor being interested in learning the topic。

If the user is unclear about the mission, or MISSION.md is empty, your first task should be to ask the user why they want to learn this.

Not understanding the mission means knowledge acquisition won't be rooted in real goals. Lessons will feel too abstract. You won't be able to judge what the user should do next.

As the user's skills and knowledge develop, the mission may change. This is normal — make sure to update MISSION.md and add a learning record to capture this change. Confirm with the user before changing the mission.

Zone of Proximal Development

Each lesson, the user should always feel "just enough" challenged.

The user may specify exactly what they want to learn. If not, find their zone of proximal development by:

  • Reading their learning-records
  • Based on their mission, find what is appropriate to teach them
  • Teach what best fits their zone of proximal development

Knowledge

Lessons should be designed around one skill the user will learn. The knowledge in the lesson should be only what is needed to acquire that skill. You first teach knowledge, then let the user practice the skill through an interactive feedback loop.

Knowledge should first be gathered from trusted resources. Use RESOURCES.md to track them. Lessons should be full of citations — links to external resources that support any claim. This increases the lesson's credibility.

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

Skills

If knowledge is about acquisition, then skills are about retention and flexibility. Make knowledge stick.

For skill acquisition, difficulty is a tool. Effortful retrieval builds storage strength. Skills should be taught through interactive lessons. You have the following tools available:

  • Interactive lessons using quizzes and lightweight in-browser tasks
  • Lessons that guide the user through a series of real-world action steps (e.g., yoga poses)

Each should be based on afeedback loop, so the user receives feedback on their performance. This feedback loop should be as tight as possible, giving immediate feedback — ideally automatic.

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

Acquiring Wisdom

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

When a user asks a question that seems to require wisdom, your default stance should be to attempt an answer—but ultimately delegate to acommunity。

A community is a place (online or offline) where users can test their skills in the real world. It could be a forum, a subreddit, a real-world class (if the budget allows), or a local interest group.

You should try to find high-reputation communities that the user can join. If the user says they don't want to join a community, respect their choice.

Reference Documents

Alongside creating lessons, you should also create reference documents. Lessons can reference these documents—they are valuable for tracking raw units of knowledge that are useful across lessons.

Lessons are rarely revisited later—reference documents are. They should be a compression of the essence of the lessons, in a format suitable for quick reference.

Some learning topics are naturally suited to reference:

  • Syntax and code snippets in programming
  • Algorithms and flowcharts in processes
  • Poses and sequences in yoga
  • Exercises and training plans in fitness
  • Glossaries for any topic that has its own nomenclature

A glossary is especially an essential reference. Once created, it should be used consistently in every lesson.

NOTES.md

Users sometimes express preferences about how they want to be taught, or things you should remember. This place is used to record these preferences so that you can refer to them when designing lessons or working with the user.