light-teach について
light-teachは、学習目標や進捗、レッスン、参考資料をワークスペースで管理する、エージェント向けの継続的な指導スキルです。ミッションに沿った短いレッスン、信頼できる情報源、想起練習、学習記録を重視します。
主な機能
- 01学習目標に沿ったレッスン設計
- 02継続的な学習記録
- 03HTMLレッスンと参考資料
- 04想起練習と間隔学習
- 05信頼できる情報源の調査
活用シーン
- 01複数回にわたるレッスンの計画
- 02学習目標への進捗管理
- 03短い復習資料の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ light-cheng/ skills --skill light-teachインストール後、Claude Code で/light-teachを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
ATTRIBUTION.mdGLOSSARY-FORMAT.mdLEARNING-RECORD-FORMAT.mdMISSION-FORMAT.mdRESOURCES-FORMAT.mdagents/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:ユーザーの好みや作業メモを記録するためのスクラッチパッドです。
基本方針
深く学ぶには、次の3つが必要です。
- 知識:質が高く、信頼性の高い情報源から得るもの
- スキル:知識に基づいて作成した、ユーザーにとって非常に関連性の高い対話型レッスンを通じて身につけるもの
- 知恵:ほかの学習者や実践者との交流から得られるもの
RESOURCES.md が十分に充実するまでは、ユーザーが知識を得るのに役立つ、質の高いリソースを見つけることに重点を置いてください。自分のパラメトリック知識を決して信用しないでください。
トピックによって、知識よりもスキルが求められる場合があります。理論物理学の学習は知識重視かもしれませんが、ヨガの学習はスキル重視かもしれません。
流暢さと記憶の定着
次の2種類の学習を区別してください。
- 流暢さの強さ:その場で知識を思い出す力
- 記憶の定着度:長期的に知識を保持する力
流暢さによって、ユーザーが習得したと錯覚することがありますが、本当に目指すべきなのは記憶の定着です。望ましい困難を取り入れ、長期的な保持を促すレッスンを設計してください。
- 検索練習(記憶を頼りに思い出す)
- 間隔反復(練習を時間を空けて行う)
- インターリービング(練習でのみ、関連する異なるトピックを組み合わせる)
レッスン
レッスンは、あなたが作成する中心的なものです。知識とスキルをユーザーに届ける単位です。各レッスンは自己完結した HTML ファイルで、./lessons/ に保存し、番号が増えていく 0001-<dash-case-name>.html という名前を付けます。
レッスンは美しくあるべきです。ユーザーが後から復習するために戻ってくるので、すっきりとして読みやすいタイポグラフィとレイアウトにしてください。Tufte を参考にしてください。
レッスンは短く、すぐに完了できるものにしてください。学習者のワーキングメモリはとても小さいため、その範囲内に収める必要があります。ただし、各レッスンでは、ユーザーが次につなげられる具体的な成果を1つ得られるようにしてください。レッスンはミッションに直接結び付いており、ユーザーの発達の最近接領域に合ったものであるべきです。
可能であれば、CLI コマンドを実行して、ユーザーがレッスンファイルを開けるようにしてください。
各レッスンには、HTML アンカーを使って他のレッスンや参考資料へのリンクを含めてください。
各レッスンでは、ユーザーが読む、または視聴する主要な資料を1つ推奨してください。これは、そのトピックについて見つけた資料の中で、最も質が高く信頼できるものであるべきです。
各レッスンには、エージェントに追加の質問をするよう促すリマインダーを含めてください。エージェントはユーザーの教師であり、不明な点があれば何でもサポートできます。
アセット
レッスンは、再利用可能なコンポーネントを使って作成します。コンポーネントは ./assets/ に保存します。スタイルシート、クイズウィジェット、シミュレーター、図の作成ヘルパーなど、2つ目のレッスンで再利用できるものは何でも含まれます。
再利用は例外ではなく、基本です。レッスンを作成する前に ./assets/ を読み、すでにあるコンポーネントを使ってください。レッスンに新しい再利用可能なものが必要な場合は、./assets/ にコンポーネントとして作成してリンクしてください。今後のレッスンで重複するコードをインラインで書いてはいけません。
共有スタイルシートは、すべてのワークスペースで最初に用意するコンポーネントです。すべてのレッスンからリンクし、単発の寄せ集めではなく、一貫したコースとして見えるようにします。ワークスペースの成長に合わせて、コンポーネントライブラリも拡充してください。
ミッション
すべてのレッスンは、ユーザーがそのトピックについて学びたいと思う理由であるミッションに結び付ける必要があります。
ユーザーのミッションが不明確な場合、または MISSION.md に内容が記入されていない場合は、まず学習したい理由をユーザーに尋ねてください。
ミッションを理解できていなければ、知識の習得が現実の目標に結び付きません。レッスンが抽象的になり、次にユーザーが何をすべきか判断できなくなります。
ユーザーがスキルや知識を身に付けるにつれて、ミッションが変わることがあります。これは自然なことです。MISSION.md を更新し、変更を記録する学習記録を追加してください。ミッションを変更する前に、ユーザーに確認してください。
発達の最近接領域
各レッスンで、ユーザーは常に「ちょうどよい」難しさに挑戦できていると感じられるべきです。
ユーザーが学びたい内容を具体的に指定することがあります。指定がない場合は、次の方法で発達の最近接領域を見極めてください。
learning-recordsを読む- ミッションに基づいて、教えるべき適切な内容を判断する
- 発達の最近接領域に合う中から、最も関連性の高い内容を教える
知識
レッスンは、ユーザーが習得するスキルを中心に設計してください。レッスンで扱う知識は、そのスキルを身に付けるために必要なものだけにします。まず知識を教え、その後、インタラクティブなフィードバックループを通じてスキルを練習できるようにします。
知識は、まず信頼できる資料から集めてください。RESOURCES.md を使って、それらの資料を記録します。レッスンには引用、つまり主張の裏付けとなる外部資料へのリンクを数多く含めてください。これにより、レッスンの信頼性が高まります。
知識を身に付けるうえで、難しさは敵です。理解に必要なワーキングメモリを奪うからです。
スキル
知識が習得に関するものだとすれば、スキルは定着性と柔軟性に関するものです。知識をしっかり身につけましょう。
スキルの習得には、難しさがツールになります。努力を要する想起が、記憶の定着を強化します。スキルは、対話型のレッスンを通じて教えるべきです。利用できるツールはいくつかあります。
- クイズやブラウザー内で行う簡単なタスクを使った対話型レッスン
- ヨガのポーズなど、実生活で行う手順を順を追って案内するレッスン
いずれも、ユーザーが自分のパフォーマンスに対するフィードバックを受け取るフィードバックループに基づくべきです。このフィードバックループはできるだけ短くし、すぐに、理想的には自動でフィードバックが返るようにします。
クイズでは、各回答の単語数を必ず同じにし、可能であれば文字数も同じにしてください。書式によって回答の手がかりを与えないでください。
知恵を身につける
知恵は、学習環境の外でスキルを試す、実際のやり取りから生まれます。
ユーザーが知恵を要すると思われる質問をした場合、まずは回答を試みるのが基本ですが、最終的にはコミュニティに委ねます。
コミュニティとは、ユーザーが現実の場で自分のスキルを試せる場所です。フォーラム、サブレディット、実際の教室(予算が許せば)、地域の関心グループなどが考えられます。
ユーザーが参加できる、評価の高いコミュニティを探すよう努めてください。ユーザーがコミュニティに参加したくないという希望を示した場合は、それを尊重してください。
参考資料
レッスンを作成する際は、参考資料も作成してください。レッスンからこれらの資料を参照できます。レッスンをまたいで役立つ、知識の基本単位を記録するのに便利です。
レッスンは後で見返すことはあまりありませんが、参考資料は見返されます。すばやく参照できる形式で、レッスンのエッセンスを凝縮したものにしてください。
学習トピックの中には、参考資料が特に役立つものがあります。
- プログラミングの構文やコードスニペット
- プロセスのアルゴリズムやフローチャート
- ヨガのポーズや一連の動き
- フィットネスのエクササイズやルーティン
- 専門用語がある分野の用語集
特に用語集は欠かせない参考資料です。一度作成したら、すべてのレッスンで必ず使用してください。
NOTES.md
ユーザーは、ときどきどのように教えてほしいかという希望や、留意してほしいことを伝えます。レッスンの設計やユーザーとのやり取りの際に参照できるよう、そうした内容を記録する場所がここです。