create-map は何をしますか?
学習者の現在地から目標までの、教えられるノードの最短経路を構築します。
理論的背景: Gagnéの学習階層(1968)、認知タスク分析(Clark et al. 2008; Tofel-Grehl & Feldon 2013)、4C/ID 全体タスク順序付け(van Merriënboer & Kirschner 2018)、改訂版ブルーム分類学(Anderson & Krathwohl 2001)、知識空間理論の外縁、知識コンポーネント(Koedinger et al. 2012)。
データベース: 学習者のプロジェクトルート(チャットを開始したフォルダ)でバンドルスクリプトを実行してください。データは
./.learn/learn.dbに保存されます。${CLAUDE_SKILL_DIR}はこのスキルのフォルダです。Claude Code はこれを自動的に設定します。他のエージェントを使用する場合は、この SKILL.md が含まれるフォルダのパスを使用してください。
入力
- clarify-me で確認された目標
- check-me の要約(確実 / 不安定 / 未学習 / 誤概念)
手順
-
ルート設定: 目標を全体タスクとして最上部に配置します。
-
後方分解: 目標から始め、新しいノードごとに「学習者がこれを実行できるようになるために、すでに何ができなければならないか?」と問いかけます。また、人が忘れがちなエキスパートの質問も行います。
- 「エキスパートはここでどんな判断、手がかり、チェックを行っているか?」
- 「初心者はここでどんな間違いをよく犯すか?」
隠れた判断はノードにするか、ノードのタイトルに含めます。
-
分解の停止: check-me で 確実 と判定された項目に到達したブランチは、それ以上分解しません。確実なものはマップに含めません。
-
ノードの適切なサイズ: 各ノードは以下の条件を満たします。
- 「[動詞] できる」という形式で明確な能力を1つだけ持つ。
- 1回の短いレッスン(チャットで約5~20分)で教えられる。
- 最大3つのアウトカムに収まる。それ以上必要な場合は分割する。単独では確認できない場合は統合する。
-
ギャップを含める: 不安定な項目は短いノードにします。誤概念は専用のノードとするか、それを修正するノードのタイトルに明記します。
-
順序付け: すべてのノードがその前提条件の後に来るように並べます。「なぜ機能するか」を説明するノードは、それに依存する手順の直前に配置します。数ノードごとに、それまでの内容を統合する小さな全体タスクノードを挿入し、断片化を防ぎます。最後のノードは目標そのものです。
-
小さく保つ: ノード数は約5~15個にします。それ以上必要な場合、目標が遠すぎます。clarify-me に戻って目標を引き下げてください。
-
マップの表示: 短い番号付きパスとしてマップを表示し、「このパスは正しいですか?既に知っている項目やスキップしたい項目はありますか?」と尋ねます。一度だけ調整します。
-
学習者が同意したら保存:
python3 "${CLAUDE_SKILL_DIR}/scripts/db.py" new-map '{"goal": "<目標の記述>", "baseline": "<check-me の要約>"}'次に、すべてのノードを一度の呼び出しで追加します。
keyは任意の短いラベル、requiresは同じ呼び出し内の前提ノードのキー(または既存ノードのID)をリストで指定します。python3 "${CLAUDE_SKILL_DIR}/scripts/db.py" add-nodes '{"map_id": 1, "nodes": [ {"key": "a", "title": "できる ...", "requires": []}, {"key": "b", "title": "できる ...", "requires": ["a"]} ]}'各ノードには作成日時が自動的に記録されます。引用符を含む JSON を渡す場合は、ヒアドキュメントを使用して標準入力から渡すと便利です。
後でマップを変更する
教示中に不足している前提条件が見つかった場合は、add-nodes で追加し(既存ノードのIDを requires に使用)、学習者にその理由を簡単に説明します。
注意すべき落とし穴
- 目標に必要な順序ではなく、教科書の順序に従ってしまう。
- ノードが大きすぎる(「微積分を学ぶ」)か、小さすぎる(定義1つだけ)。
- 学習者がすでに確実と示した内容を再び教えてしまう。
- 巨大なマップで学習者を圧倒してしまう。