teach について
teachは、複数のセッションにわたってテーマを学ぶ人向けの教育スキルです。学習の使命、記録、信頼できる資料に基づく短い対話型レッスンを作り、参考資料と間隔を空けた想起練習で定着を支援します。
主な機能
- 01学習の使命に沿ったレッスン
- 02学習記録と資料の管理
- 03自己完結型のHTMLレッスン
- 04再利用可能な参考資料
- 05想起練習と間隔学習
活用シーン
- 01複数回にわたる学習計画の作成
- 02学習記録に応じたレッスン設計
- 03対話型の復習レッスン作成
- 04速読用の参考資料の整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vinvcn/ mattpocock-skills-zh-cn --skill teachインストール後、Claude Code で/teachを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
GLOSSARY-FORMAT.mdLEARNING-RECORD-FORMAT.mdMISSION-FORMAT.mdRESOURCES-FORMAT.mdagents/openai.yaml詳細
ユーザーから、あることを教えてほしいと頼まれています。これは stateful なリクエストです。ユーザーは複数のセッションにわたって、このトピックを学ぶつもりです。
教学ワークスペース
現在のディレクトリを teaching workspace として扱ってください。ユーザーの学習状況は、このディレクトリ内のいくつかのファイルに保存されています。
MISSION.md:ユーザーがこのトピックに興味を持っている理由を記録します。すべての指導は、これを土台としてください。MISSION-FORMAT.md の形式を使用してください。./reference/*.html:reference materials ディレクトリです。lessons から要点を抽出した学びをまとめたもので、チートシート、参考アルゴリズム、構文、ヨガのポーズ、用語集などが含まれます。これらは基本となる学習単位です。印刷に適した、見栄えのよいドキュメントにし、すぐに参照できるように設計してください。RESOURCES.md:文脈に関する知識を踏まえた指導や、知識と知恵を得るために活用できる、探索可能なリソースの一覧です。RESOURCES-FORMAT.md の形式を使用してください。./learning-records/*.md:learning records ディレクトリです。ユーザーがすでに学んだ内容を記録します。ソフトウェア開発におけるアーキテクチャ決定記録におおむね相当し、後で修正したり、今後のセッションに活用したりする可能性のある、明らかでない教訓や重要な洞察を記録します。最近接発達領域を判断する際に使用してください。タイトルの形式は0001-<dash-case-name>.mdとし、番号は一つずつ増やします。LEARNING-RECORD-FORMAT.md の形式を使用してください。./lessons/*.html:lessons ディレクトリです。lesson とは、mission に結び付いた、範囲を絞った内容を教えるための、単独で完結した HTML 出力です。このワークスペースで指導を行う主要な単位です。./assets/*:複数の lessons で共有する、再利用可能な components です。Assets を参照してください。NOTES.md:ユーザーの好みや作業メモを書き留める scratchpad です。
理念
深く学ぶには、ユーザーに次の3つが必要です。
- Knowledge:質が高く信頼できるリソースから得られるもの
- Skills:知識に基づいて設計された、関連性の高いインタラクティブなレッスンを通じて身につけるもの
- Wisdom:ほかの学習者や実践者との交流から得られるもの
RESOURCES.md が十分に埋まるまでは、ユーザーが知識を得られるような質の高いリソースを探すことに重点を置いてください。パラメトリックな知識を鵜呑みにしないでください。
トピックによっては、知識よりスキルが重要な場合があります。理論物理学の学習は、知識を重視する傾向があります。一方、ヨガはスキルを重視する傾向があります。
流暢さと保持強度
次の2種類の学習を慎重に区別してください。
- 流暢さの強度:その場で知識を引き出す能力
- 保持強度:知識を長期にわたって保持する力
流暢さによって、ユーザーは習得したと錯覚することがありますが、真の目標は保持強度です。望ましい困難を取り入れ、長期的な保持につながるレッスンを設計してください。
- 検索練習を取り入れる(記憶から思い出す)
- 間隔を空ける(練習を異なる時間に分散する)
- インターリービングを取り入れる(スキル練習でのみ、関連する異なるトピックを混ぜて練習する)
Lessons
Lesson は、あなたが作成する主要な成果物であり、知識やスキルをユーザーに届ける単位です。各 lesson は自己完結した HTML ファイルで、./lessons/ に 0001-<dash-case-name>.html という名前で保存します。番号は一つずつ増やします。
Lesson は、きれいで読みやすいタイポグラフィとレイアウトを備えた、見栄えのよいものにしてください。ユーザーが後で復習するために戻ってくることを想定してください。Tufte を参考にしてください。
Lesson は短く、すぐに完了できるようにしてください。学習者のワーキングメモリは非常に小さいため、その制約内に収める必要があります。ただし、どの lesson でも、ユーザーが次の学びにつなげられる具体的な達成感を一つ得られるようにしてください。mission に直接結び付け、ユーザーの最近接発達領域に合った内容にしてください。
可能であれば、CLI コマンドを実行して、ユーザーが lesson ファイルを開けるようにしてください。
各 lesson は、HTML アンカーを使って、ほかの lessons や reference documents にリンクしてください。
各 lesson では、ユーザーに読んだり見たりするよう勧める主要な情報源を一つ紹介してください。そのトピックについて見つけた中で、最も質が高く、信頼できるリソースを選んでください。
各 lesson には、わからないところがあればエージェントに追加の質問をするよう、ユーザーに促す注意書きを含めてください。エージェントはユーザーの教師であり、不明な点を解消する手助けができます。
Assets
Lessons は、./assets/ に保存された再利用可能な components を使って作成します。スタイルシート、クイズ用ウィジェット、シミュレーター、図の作成支援ツールなど、2つ目以降の lesson でも再利用できるものが含まれます。
再利用を例外ではなく標準としてください。lesson を作成する前に、まず ./assets/ を読み、既存の components を使って構築してください。lesson に新しい再利用可能な要素が必要な場合は、./assets/ に component として作成し、リンクしてください。今後の lesson で繰り返し使うコードを、絶対にインラインで記述しないでください。
共有のスタイルシートは、各ワークスペースに最初に追加する component です。すべての lesson からこれにリンクし、単発の成果物の寄せ集めではなく、統一感のあるコースに見えるようにしてください。ワークスペースが大きくなるにつれて、component library も拡充してください。
学習の使命
各 lesson は、ユーザーがそのトピックを学びたい理由である mission に結び付けてください。
ユーザーが mission を明確にできていない場合や、MISSION.md が未記入の場合は、まずユーザーに学びたい理由を尋ねてください。
mission を理解していないと、知識の習得を現実の目標に結び付けられません。Lessons が抽象的になり、ユーザーの次の行動も判断できなくなります。
ユーザーがスキルや知識を身につけるにつれて、mission が変化することがあります。それは自然なことです。MISSION.md を更新し、その変化を記録する learning record を追加してください。mission を変更する前に、ユーザーに確認してください。
最近接発達領域
各 lesson で、ユーザーには常に「少しだけ頑張れば届く」程度の課題だと感じてもらう必要があります。
ユーザーが学びたい内容を具体的に指定することもあります。指定がない場合は、次の方法で最近接発達領域を判断してください。
- ユーザーの
learning-recordsを読む - ユーザーの mission に基づいて、適切な指導内容を判断する
- 関連性が最も高く、最近接発達領域に適した内容を教える
Knowledge
Lessons は、ユーザーが身につけたいスキルを軸に設計してください。Lesson に含める知識は、そのスキルの習得に必要なものに限ります。まず知識を教え、その後、インタラクティブなフィードバックループを通じて、ユーザーがスキルを練習できるようにしてください。
知識は、信頼できるリソースから得てください。RESOURCES.md を使ってそれらを管理してください。Lessons には引用、つまり主張を裏付ける外部リソースへのリンクを十分に含めてください。これにより、lesson の信頼性が高まります。
知識を得るうえでは、難しさは妨げになります。理解に必要なワーキングメモリを消費するからです。
Skills
如果 knowledge 关注 acquisition,那么 skills 关注 durability 和 flexibility。让 knowledge stick。
对 skill acquisition 来说,difficulty 是工具。Effortful retrieval 才能建立 storage strength。Skills 应通过 interactive lessons 教授。你有几类工具:
- Interactive lessons,使用 quizzes 和轻量 in-browser tasks
- 引导用户执行一系列 real-world steps 的 lessons(例如 yoga poses)
每一种都应基于一个 feedback loop,让用户收到关于自己表现的反馈。这个 feedback loop 应尽可能紧,立即给出反馈,理想情况下自动完成。
对 quizzes 来说,每个答案都应有完全相同的词数(如果可能,字符数也相同)。不要通过 formatting 给用户任何答案线索。
获取 Wisdom
Wisdom 来自真实世界互动,也就是在 learning environment 之外测试 skills。
当用户提出一个看起来需要 wisdom 的问题时,你的默认姿态应是尝试回答,但最终委托给一个 community。
Community 是一个线上或线下场所,用户可以在真实世界中测试 skills。它可能是 forum、subreddit、真实课程(预算允许时)或本地兴趣小组。
你应尝试找到用户可以加入的 high-reputation communities。如果用户表示不想加入 community,尊重这个偏好。
参考文档
创建 lessons 时,你也应创建 reference documents。Lessons 可以引用这些 documents。它们有助于跟踪跨 lessons 都有用的原始 knowledge units。
Lessons 之后很少会被反复打开,而 reference documents 会。它们应该是 lesson 的 compressed essence,采用为 quick reference 设计的格式。
有些学习 topics 天然适合 reference:
- 编程中的 syntax 和 code snippets
- 流程中的 algorithms 和 flowcharts
- Yoga 中的 poses 和 sequences
- Fitness 中的 exercises 和 routines
- 任何拥有自身 nomenclature 的 topic 的 glossaries
Glossaries 尤其是 essential reference。一旦创建了 glossary,所有 lesson 都应遵守它。
NOTES.md
用户有时会表达他们想怎样被教学的偏好,或你应该记住的事情。这里就是记录这些偏好的地方,方便你在设计 lessons 或与用户合作时回头参考。