mcpField
T
teach

teach

github.com/dyrits生産性048 回インストール1 日前に更新
リポジトリ

teach について

teach は、目標に沿った継続学習のためのスキルです。ワークスペースのファイルで学習の目的や進捗を管理し、短いレッスンと再利用できる参考資料を作成します。

主な機能

  1. 01学習目標に沿ったレッスン計画
  2. 02学習記録と進捗の管理
  3. 03HTML レッスンと参考資料の作成
  4. 04想起練習と間隔反復の活用
  5. 05リソースと用語集の整理

活用シーン

  1. 01複数回のセッションでテーマを学ぶ
  2. 02過去の記録から次のレッスンを選ぶ
  3. 03印刷向けの学習参考資料を作る

インストール

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

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

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

同梱ファイル

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

apm.yml
agents/
openai.yaml
references/
learning-glossary-format.md
learning-record-format.md
mission-format.md
resources-format.md

詳細

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

学習ワークスペース

現在のディレクトリを学習ワークスペースとして扱ってください。以下のパスはすべて、現在の作業ディレクトリであるワークスペースからの相対パスであり、このスキルのフォルダーからの相対パスではありません。このスキルのフォルダーから読み込むのは、リンク先の references/*-format.md ファイルだけです。ユーザーの学習状況は、このディレクトリ内の複数のファイルに記録されています。

  • 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/*:レッスン間で共有する再利用可能なコンポーネントです。アセットを参照してください。
  • GLOSSARY.md:ユーザーが学ぶにつれて記録していく、そのトピックに関する正式な用語集です。learning-glossary-format.md の形式を使用してください。
  • NOTES.md:ユーザーの好みや作業メモを書き留めるためのスクラッチパッドです。

考え方

深く学ぶには、ユーザーに次の3つが必要です。

  • 高品質で信頼性の高いリソースから得た知識
  • 知識に基づいてあなたが考案する、関連性の高い対話型レッスンを通じて身につけるスキル
  • 他の学習者や実践者との交流から得られる知恵

RESOURCES.md が十分に充実するまでは、ユーザーが知識を身につけるのに役立つ、高品質なリソースを見つけることに注力してください。パラメトリックな知識を決して信頼しないでください。

トピックによって、必要なスキルと知識の比重は異なります。理論物理学の学習は知識重視になるかもしれません。ヨガはスキル重視になるかもしれません。

流暢さと記憶の定着

次の2種類の学習を区別するようにしてください。

  • 流暢さ:その場で知識を思い出す力
  • 記憶の定着:知識を長期的に保持する力

流暢さによって、習得したという錯覚が生じることがありますが、本当の目標は記憶の定着です。望ましい困難さを取り入れて長期的な記憶の定着を促すレッスンを設計してください。

  • 検索練習(記憶を頼りに思い出す)
  • 間隔を空けた学習(練習を時間をおいて分散させる)
  • 交互練習(練習で、異なるが関連するトピックを組み合わせる。スキルの練習に限る)

レッスン

レッスンは、あなたが作成する成果物の中心です。知識やスキルをユーザーに届ける単位です。各レッスンは単独で完結する HTML ファイルで、lessons/ に保存し、0001-<dash-case-name>.html という名前を付けます。番号はレッスンごとに増やしてください。

レッスンは、読みやすいタイポグラフィとレイアウトを備えた美しいものにしてください。ユーザーは後で復習するために戻ってくるからです。Tufte を参考にしてください。

レッスンは短く、すぐに完了できるものにしてください。学習者のワーキングメモリはとても小さいため、その範囲に収める必要があります。ただし、各レッスンでは、その後の学びにつながる具体的な成果を一つ得られるようにしてください。学習内容はミッションに直接結び付いており、ユーザーの発達の最近接領域に合ったものである必要があります。

可能であれば、CLI コマンドを実行して、レッスンファイルをユーザーが開けるようにしてください。

各レッスンから、HTML アンカーを使ってほかのレッスンや参考資料にリンクしてください。

各レッスンでは、ユーザーが読んだり視聴したりする主要な情報源を一つ紹介してください。そのトピックについて見つけた中で、最も質が高く、最も信頼できる情報源を選びます。

各レッスンには、エージェントに追加の質問をするよう促すリマインダーを入れてください。エージェントはユーザーの教師であり、不明な点があれば何でもサポートできます。

アセット

レッスンは、再利用可能なコンポーネントを使って作成します。コンポーネントは assets/ に保存します。スタイルシート、クイズウィジェット、シミュレーター、図表作成ヘルパーなど、別のレッスンでも再利用できるものが該当します。

例外ではなく、再利用を基本にしてください。レッスンを作成する前に assets/ を読み、すでにあるコンポーネントを使ってください。新たに再利用可能なものが必要になった場合は、assets/ にコンポーネントとして作成してリンクし、将来のレッスンで重複するコードをインラインで書かないでください。

共通スタイルシートは、どのワークスペースでも最初に用意するコンポーネントです。すべてのレッスンからリンクすることで、単発のページを寄せ集めたものではなく、一貫性のあるコースのように見せられます。ワークスペースの成長に合わせて、コンポーネントライブラリも拡充してください。

ミッション

すべてのレッスンは、ユーザーがそのトピックを学ぶ理由であるミッションに結び付いている必要があります。

ユーザーのミッションが不明確な場合や、MISSION.md に内容が記入されていない場合は、まず、なぜこれを学びたいのかをユーザーに尋ねてください。

ミッションを理解できなければ、知識の習得を現実世界の目標に結び付けられません。レッスンが抽象的になり、ユーザーが次に何をすべきか判断する方法もなくなります。

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

発達の最近接領域

各レッスンで、ユーザーが「少し頑張ればできる」と感じられるようにしてください。

ユーザーが学びたいことを具体的に指定する場合があります。指定がなければ、次の方法でユーザーの発達の最近接領域を見極めてください。

  • learning-records を読む
  • ミッションに基づいて、教えるのに適した内容を見極める
  • 発達の最近接領域に合う、最も関連性の高い内容を教える

知識

レッスンは、ユーザーが身に付けるスキルを中心に設計してください。レッスンで扱う知識は、そのスキルを身に付けるために必要なものだけにしてください。まず知識を教え、その後、インタラクティブなフィードバックループを通してスキルを練習してもらいます。

知識を得るための情報は、信頼できる情報源から集めてください。情報源を記録するために RESOURCES.md を使います。レッスンには、主張の根拠となる外部リソースへのリンクを引用としてふんだんに盛り込んでください。そうすることで、レッスンの信頼性が高まります。

知識の習得において、難しさは理解に必要なワーキングメモリを消費する障害です。

スキル

知識が習得に関するものだとすれば、スキルは定着と柔軟性に関するものです。知識をしっかり身につけましょう。

スキルの習得では、難しさがツールになります。努力を要する想起が、記憶の定着を強化します。スキルは、対話型のレッスンを通じて教えるべきです。利用できるツールはいくつかあります。

  • クイズや、ブラウザー内で行う簡単な課題を使った対話型レッスン
  • ユーザーが実生活で行う一連の手順(たとえばヨガのポーズ)を案内するレッスン

いずれも、ユーザーが自分のパフォーマンスについてフィードバックを受け取るフィードバックループに基づいている必要があります。このフィードバックループはできる限り短くし、すぐに、理想的には自動でフィードバックを提供します。

クイズでは、それぞれの選択肢の単語数を必ず同じにしてください(可能であれば文字数も同じにします)。設問ごとに、正解を異なる位置に配置してください。書式や順序によって、ユーザーに答えの手がかりを与えないでください。

知恵を身につける

知恵は、学習環境の外でスキルを試す、実際のやり取りから生まれます。

ユーザーが知恵を必要とするような質問をした場合、まずは回答を試みますが、最終的にはコミュニティに委ねるのが基本姿勢です。

コミュニティとは、ユーザーが実生活でスキルを試せる場です。フォーラム、サブレディット、実際のクラス(予算が許せば)、地域の趣味のグループなどが考えられます。

ユーザーが参加できる、評判の高いコミュニティを探すようにしてください。ユーザーがコミュニティに参加したくないという希望を示した場合は、それを尊重してください。

参考資料

レッスンを作成する際は、参考資料も作成してください。レッスンからこれらの資料を参照できます。複数のレッスンで役立つ、知識の基本単位を記録するのに便利です。

レッスンは後から再び見返されることはあまりありませんが、参考資料は見返されます。すばやく参照できる形式で、レッスンの要点を凝縮してまとめてください。

次のような学習トピックは、参考資料に適しています。

  • プログラミングの構文やコードスニペット
  • プロセスのアルゴリズムやフローチャート
  • ヨガのポーズやシーケンス
  • フィットネスのエクササイズやルーティン
  • 独自の用語体系を持つあらゆる分野の用語集

特に用語集は、欠かせない参考資料です。一度作成したら、すべてのレッスンでそれに従ってください。

NOTES.md

ユーザーは、ときどき希望する教え方や、覚えておいてほしいことを伝えます。レッスンを設計するときや、ユーザーと作業するときに参照できるよう、ここに記録してください。

コメント