mcpField
T
teach

teach

github.com/erikpr1994生産性357 回インストール1 週間前に更新
リポジトリ

teach について

teachは、学習者の目標に沿った学習ワークスペースを構築するステートフルな指導スキルです。リンクされたレッスン、参考資料、学習記録を作り、信頼できる情報源や想起練習を通じて継続的な学習を支えます。

主な機能

  1. 01目標に沿った学習ワークスペースの維持
  2. 02リンク付きの独立したHTMLレッスン作成
  3. 03参考資料と標準用語集の作成
  4. 04学習記録と好みの記録
  5. 05信頼できる情報源と想起練習の活用

活用シーン

  1. 01学習者の目的に沿ったコースを作成
  2. 02クイックリファレンスで概念を復習
  3. 03過去の学習記録を踏まえて指導を継続

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/erikpr1994/materialize --skill teach

インストール後、Claude Code で/teachを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

DASHBOARD-FORMAT.md
GLOSSARY-FORMAT.md
LEARNING-RECORD-FORMAT.md
MISSION-FORMAT.md
RESOURCES-FORMAT.md

詳細

ユーザーは何かを教えてほしいと依頼しています。これは状態を保持するリクエストです。ユーザーは複数回のセッションを通じて、そのトピックを学ぶつもりです。

学習ワークスペース

現在のディレクトリを学習ワークスペースとして扱ってください。状態は次のファイルに保存されています。

  • index.html:モバイルファーストのダッシュボードです。ホームページとして、すべてのレッスン、参考資料、ミッション、リソースにリンクします。DASHBOARD-FORMAT.mdの形式を使用してください。
  • MISSION.md:ユーザーがそのトピックを学びたい理由です。すべての指導の土台となります。MISSION-FORMAT.mdの形式を使用してください。
  • GLOSSARY.md:このトピックで使用する標準用語を簡潔にまとめたものです。すべてのレッスンと参考資料でこれに従います。GLOSSARY-FORMAT.mdの形式を使用してください。
  • ./reference/*.html:学んだ内容を簡潔にまとめたものです。チートシート、アルゴリズム、構文、ポーズなどを扱います。見やすく、印刷しやすく、すばやく参照できるものにしてください。GLOSSARY.mdをHTMLとして表示してもかまいません。
  • RESOURCES.md:指導の土台となる知識や知恵を得るためのリソースです。RESOURCES-FORMAT.mdの形式を使用してください。
  • ./learning-records/*.md:ADRのように、ユーザーが学んだ内容を記録します。自明ではない教訓や洞察を記録し、最近接発達領域を見極めるために使用します。LEARNING-RECORD-FORMAT.mdの形式を使用してください。
  • ./lessons/*.html:ミッションに関連する、範囲を絞ったトピックごとに、自己完結型のHTMLを1つ作成します。これが指導の中心となる単位です。
  • ./assets/*:レッスン間で共有する再利用可能なコンポーネントです。アセットを参照してください。
  • NOTES.md:ユーザーの好みや作業メモを記録するスクラッチパッドです。

哲学

深い学びには、次の3つが必要です。知識(質が高く信頼できるリソース。パラメトリック知識は決して信用しません)、スキル(その知識に基づく対話型レッスン)、そして知恵(ほかの学習者や実践者から得られるもの)です。トピックに応じて、その配分を調整してください。理論物理学なら知識を重視し、ヨガならスキルを重視します。RESOURCES.mdが十分に充実するまでは、よいリソースを探すことを優先してください。

学習を流暢性の強化(その場で思い出す力)と保存力の強化(長期的な定着)に分けてください。流暢性が高まると習得したように感じますが、目指すべきは保存力の強化です。望ましい困難、つまり検索練習、間隔を空けた学習、交互学習(スキルの練習のみ)によって、保存力を高めてください。

レッスン

レッスンは成果物の主要な単位です。./lessons/ に置く、自己完結した HTML ファイル 1 つで、ファイル名は 0001-<dash-case-name>.html とし、番号を順に増やします。

美しく仕上げてください。読みやすく、すっきりとしたタフテ風のタイポグラフィにします。ユーザーは後から何度も読み返すためです。説明するだけでなく、実際に見せましょう。空間的、関係的、動的な概念は文章だけで表すのではなく、図や小さなインタラクティブビジュアルとして描画し、再利用可能な ./assets/ コンポーネントにします(アセットを参照)。これにより、情報を思い出すための経路がもう 1 つ増えます。

階層構造やツリー構造は、ASCII アートではなく、意味に沿った HTML(ネストしたリスト、CSS)で表現してください。プロポーショナルフォントでは位置がずれてしまいます。ASCII を使う必要がある場合は、インラインスタイルを混在させず、<pre><code> で囲んでください。

レッスンは短く、すぐに完了できる長さにしてください。ワーキングメモリには限りがあります。それぞれのレッスンで、ユーザーのミッションに結びつき、発達の最近接領域に合った、具体的な成果を 1 つ得られるようにします。可能であれば、CLI コマンドでレッスンファイルを開いてください。

すべてのレッスンに、一貫したナビゲーションバーを設けます。クリック可能な ◀ Previous / Next ▶(先頭と末尾では無効)と、ルートの index.html に戻る Contents リンクを配置し、オフラインの file:// でも使える相対パスにしてください。レッスンを追加したら、前のレッスンの Next のリンク先を新しいレッスンに変更して、ダッシュボードにも追加し、連鎖を更新します。関連するリファレンスドキュメントにも、本文中からアンカーリンクを張ってください。

各レッスンでは、見つかった中で最も信頼性が高く、品質の高い一次資料をおすすめし、エージェントに追加の質問をするようユーザーに促してください。

読んでいる途中で疑問が浮かぶことがあります。レッスンを離れて疑問を思い出しながら書き直すと、流れが途切れ、疑問が生まれた箇所も見失ってしまいます。すべてのレッスンに、共通の ./assets/ 疑問記録コンポーネントを設けてください(アセットを参照)。読んでいる箇所に関連づけて質問を書き留め、内容を保存できる場所です。ワンタップでコピーすると、各疑問に引用箇所を添えた形式で、あなたに貼り付けて送れるようにします。ディスクから開いたレッスンでは、ほかにあなたとやり取りする方法がないためです。

アセット

レッスンは ./assets/ にある再利用可能なコンポーネント(スタイルシート、クイズウィジェット、シミュレーター、図の補助ツール)で構成します。

既存のものを再利用するのが基本です。レッスンを作成する前に ./assets/ を確認し、そこにあるものを活用してください。新たに再利用可能なものが必要になったら、コンポーネントとして作成してリンクし、今後のレッスンで複製するためにインラインで書くことは避けてください。共有スタイルシートは、どのワークスペースでも最初に用意すべきコンポーネントです。すべてのレッスンを 1 つのコースとして統一感のある見た目にできます。ワークスペースの成長に合わせて、ライブラリも拡充してください。

ダッシュボード

ワークスペースの唯一の入口は、ルートにある index.html です。DASHBOARD-FORMAT.md の形式に従ってください。

レッスンとダッシュボードは通常の HTML です。スマートフォンで確認する場合は、任意の静的サーバー(例:python -m http.server)でワークスペースのディレクトリを配信し、ローカルネットワーク経由で開くか、リモートアクセスには Tailscale や Cloudflare Tunnel などの安全なトンネルを利用してください。学習者には必ず index.html を案内してください。

HTML 出力のスタイル設定

レッスン、ダッシュボード、リファレンスドキュメントなど、すべての HTML 出力には、手書きの <style> ではなく Tailwind v4 Play CDN を使ってスタイルを適用してください。これにより、複数レッスンからなるコース全体で見た目の一貫性を保ち、各ファイルを軽量にできます。

<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>

独自のテーマ設定は、<style type="text/tailwindcss"> ブロックに記述してください。CDN が読み込めない可能性がある場合は、代わりに CSS をインラインで記述してください。たとえば、オフライン環境や外部スクリプトの integrity ハッシュを必須とするセッションフックがある環境が該当します。ページはレンダリングされないため、CDN の読み込みがブロックされてもエラーは表示されません。レッスンはスタイルのないマークアップとして開き、問題に気づくのは学習者だけです。

レッスンにコードを表示する場合は、シンタックスハイライターを読み込み、コードブロックに色を付けてください。language-* クラスを付けるだけでは何も起きません。また、Tailwind がスタイルを適用するのはレイアウトであり、トークンではありません。highlight.js も同じように導入できます(オフライン時の注意点も同じです。完全オフラインのファイルではインラインにしてください)。

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@highlightjs/cdn-assets/styles/github.min.css">
<script src="https://cdn.jsdelivr.net/npm/@highlightjs/cdn-assets/highlight.min.js"></script>
<script>hljs.highlightAll()</script>

ミッション

すべてのレッスンはミッション、つまりユーザーがそのトピックを学びたい理由に結び付けます。ユーザーの意図がはっきりしない場合、または MISSION.md が未記入の場合は、まずその理由を尋ねます。そうでなければ、レッスンが抽象的で地に足の着かないものになってしまいます。

スキルや知識が身に付くにつれて、ミッションは変わることがあります。MISSION.md を更新し、その変更を記録する学習記録を追加します。まずユーザーに確認してください。

最近接発達領域

それぞれのレッスンは、「ちょうどよい」難しさに感じられるものにします。ユーザーが具体的な目標を指定していない場合は、次の方法でその人の最近接発達領域を見極めます。

  • learning-records を読みます。直近の数件は全文を読み、記録が積み重なってきたら(約8件以上)、すべてのファイルを読み直す代わりに、古い記録については NOTES.md の継続的な概念要約を参照します(長いコースでコストが二次的に増加するのを防ぐためです)。
  • ミッションに合う内容を検討します。
  • その人の最近接発達領域に合う、最も関連性の高い内容を教えます。

知識

レッスンは習得するスキルを軸に設計し、そのスキルに必要な知識だけを含めます。まず知識を教え、その後、インタラクティブなフィードバックループを通じてユーザーに練習してもらいます。

信頼できる情報源から知識を集め、RESOURCES.md に記録します。レッスンの信頼性を高めるため、外部情報源を随所で引用します。知識の習得では、難しさは敵です。理解に必要なワーキングメモリを奪ってしまうからです。

スキル

スキルとは、知識を定着させ、柔軟に応用できるようにするものです。ここでは難しさが有効な手段になります。努力を要する想起によって、記憶の保持力が高まります。クイズ、簡単なブラウザー内課題、現実世界での手順(ヨガのポーズなど)をガイドするレッスンといった、インタラクティブなレッスンを通じてスキルを教えます。各レッスンでは、できる限り短いフィードバックループを設け、理想的には自動化します。

クイズでは、すべての選択肢の回答文を同じ長さ(単語数、可能であれば文字数も)にして、書式から正解が分からないようにします。正解の位置は変え、誤答の選択肢も、明らかに見当違いなものではなく、もっともらしく自信を持って述べられた誤りにします。

知恵を身に付ける

知恵は現実世界との関わりから生まれます。知恵が必要な質問には回答を試みますが、最終的には、実際にスキルを試せるコミュニティ(フォーラム、subreddit、現実世界のクラス、地域の関心グループなど)をユーザーに紹介します。評判の高いコミュニティを探し、参加したくないというユーザーの意思を尊重します。

参考資料

レッスンと併せて、すばやく参照できる形式でレッスンの要点をまとめた参考資料を作成します。レッスンは再び受ける機会が少ない一方、参考資料は繰り返し参照されます。参考資料に適したトピックには、構文やコードスニペット(プログラミング)、アルゴリズムやフローチャート(プロセス)、ポーズや一連の動き(ヨガ)、エクササイズやルーティン(フィットネス)などがあります。

用語集(上記の GLOSSARY.md)は、独自の用語体系を持つあらゆるトピックで必須です。用語を定義したら、すべてのレッスンでその用語に従います。参考資料では、すばやく参照できるように用語集を HTML で表示してもかまいません。

NOTES.md

レッスンの設計時に参照できるよう、ユーザーの学習方法の好みをここに記録します。また、すでに学んだ概念の継続的な要約も保管し、セッション終了時に更新します。これにより、履歴が長くなったあとも、すべての学習記録を読み直さずに、古いレッスンを踏まえて最近接発達領域を判断できます。

コメント