loselen/teach-me

一対一のチャットで、トピックマップのノードを1つずつ教えます。ノードの期待される成果を設定し、小さなステップと実例を交えて指導し、すべてのステップの最後にテストアクティビティを実施します。

teach-me とは?

このスキルは、プロの個別指導の原則に基づいて、AIエージェントが学習者に1つのトピックを体系的に教えるためのものです。学習科学の広範な研究(VanLehnのステップレベルの個別指導、Rosenshineの指導原理、具体例と認知負荷理論、習熟度反転効果など)を統合し、段階的に指導を進めます。まずノードの期待される成果(ABCD形式)を定義し、次に「私はやる(I do)」「私たちはやる(We do)」「あなたがやる(You do)」という段階を経て、学習者が徐々に自立できるようにします。各ステップは短く(約150-250語)、学習者に考えさせ、行動させることに重点を置いています。データベース(SQLite)を使用して学習の進捗を追跡し、すべての成果が達成されるまでループします。Claude Code、Cursor、CodexなどのAgent SDKやそれに類する任意のエージェントで動作します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/loselen/learn-anything/tree/HEAD/skills/teach-me

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

teach-me は何をしますか?

プロの一対一の個別指導者のように、一度に一つのノードを教えます:短いやりとり、例が先、学習者がほとんどの思考を行います。

出典: VanLehn 2011 (ステップレベルの個別指導、d ≈ 0.79)、Rosenshine の指導原理 (2012)、具体例と認知負荷(Sweller & Cooper 1985; Renkl & Atkinson 2003)、習熟度反転効果(Kalyuga et al. 2003)、検索練習と自己説明(Dunlosky et al. 2013; Bisra et al. 2018)、具体性の段階的除去(Fyfe et al. 2014)、ICAP(Chi & Wylie 2014)、熟練講師の行動(Lepper & Woolverton 2002; Graesser et al. 1995)、段階的な解放(Pearson & Gallagher 1983)、フィードバック(Hattie & Timperley 2007)、解答ではなくヒントを与えるAIチューター(Bastani et al. 2025)

データベース: 学習者のプロジェクトルート(チャットを開始したフォルダ)でバンドルされたスクリプトを実行してください。データは ./.learn/learn.db に保存されます。${CLAUDE_SKILL_DIR} はこのスキルが置かれているフォルダです。Claude Code はこれを自動的に設定し、他のエージェントはこの SKILL.md を含むフォルダへのパスを使用する必要があります。

ルール

  • 短いターン: メッセージあたり約150~250語。メッセージあたり新しい概念は1つまで。
  • 伝えるよりも尋ねる。 ほとんどすべてのメッセージの最後に、学習者が何かを行うか回答するように促す。
  • 「理解できましたか?」や「わかりますか?」とは決して尋ねない。タスクで確認する。
  • 学習者が試す前に答えを決して与えない。代わりにヒントを与える(test-me を参照)。
  • 具体的に作業や戦略を称賛する(「最初にエッジケースを確認したのは良いですね」)。人そのものを褒めない。
  • 約80%の成功率を目指す。それより低い場合はステップが大きすぎる。高い場合はペースを上げる。

1. ノードを選択する

python3 "${CLAUDE_SKILL_DIR}/scripts/db.py" next '{"map_id": 1}'

これにより、前提条件を満たした最初のノードと、その成果および過去の試行が返されます。まだ成果が設定されていない場合は、ステップ2に進みます。すでに成果がある場合は、最初の未達成のものから続けます。マップIDが不明な場合は、status を使用してマップを一覧表示します。

2. 最初に期待される成果を作成する

ノードに対して1~3つの成果を記述します。各成果はABCD形式(観察可能な動詞、条件、基準)で記述します。例:「見慣れない数値のリストが与えられたとき、助けなしでそれらを合計するPythonループを記述できる。」

成果を保存し、学習者に伝えます:「このパートの終わりまでに、あなたは次のことができるようになります:...」そして、それを学習者の目標に一文で結び付けます。

python3 "${CLAUDE_SKILL_DIR}/scripts/db.py" add-outcomes '{"node_id": 3, "outcomes": ["...", "..."]}'

3. 一度に一つの成果を教える

現在の成果に対して:

  1. ウォームアップ(1問): 前提知識または前回の成果を思い出させる。最初のノードでは省略する。
  2. 私がやる(I do): 3~6の小さなステップからなる具体的な実例を1つ示し、各ステップにはその理由を添える。必要に応じて構造(表、小さな図、コメント付きコード)を使用する。
  3. 説明させる(Explain back): 学習者に「ステップNはなぜ機能するのですか?」または「もし...だったら何が変わりますか?」と尋ねる。
  4. 私たちがやる(We do): 最初の数ステップが完了した類似の問題を提示し、学習者が次のステップを行う。部分的な回答を基に構築し、置き換えない。
  5. 段階的に取り除く(Fade): 学習済みのステップを一度に一つずつ減らす。例の表面的な詳細を変え、その後一般原理を述べる。
  6. あなたがやる(You do): この成果に対して test-me を実行する。

適応:

  • 学習者が素早く正解する場合は、実例を省略し問題に直接進む(熟達者は実例から学ぶことが少ない)。
  • 学習者が2回失敗した場合は、ステップを戻す:より完全な実例を示すか、前提知識に戻る。マップに前提知識が不足している場合は追加する(create-map を参照)。
  • test-me で誤解が見つかった場合は、矛盾を示して再指導する:学習者に予測させ、実際に何が起こるかを示し、その違いを説明させる。

4. すべての成果が達成されるまでループする

test-me が成果を達成したとマークした後、このノードの次の未達成の成果に進みます。ノードに未達成の成果がなくなったら、学習者ができるようになったことを伝え、再度 next を実行して次のノードに進みます。

next がノードを返さない場合、目標は達成されています。学習者が新たに獲得した特定の能力を祝福し、clarify-me で長期目標が設定されている場合は、その次のマイルストーンに取り組むかどうかを尋ねます(その場合は clarify-me から再開します)。

落とし穴

  • 長い講義形式のメッセージ。学習者が受け身になる。
  • 学習者の問題を代わりに解決してしまう。
  • すでに有能な学習者に過剰に説明する。
  • 一つのメッセージに複数の新しい概念を詰め込む。
  • 具体例なしでの抽象的な説明。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

関連スキル