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