問題:Claude Codeは「忘れる」
Claude Codeを学習ツールとして使う時、最大の課題はセッション間の記憶がリセットされること。学習者が「前回の続きから」と言っても、Claude Codeは前回どこまで進んだか覚えていない。
通常の開発では大きな問題にならないが、20セッションにわたる体系的な学習カリキュラムでは致命的だ。毎回「Session 1からやりましょうか?」と聞かれたら、学習者は脱落する。
解決策:ファイルベースの進捗管理
メモリやClaude Codeの記憶機能に頼らず、プロジェクト内のファイルに進捗を書き込むアプローチを採用した。
ディレクトリ構成
knowledge/
├── sessions/
│ ├── session-00.md # 各セッションの学習記録
│ ├── session-01.md
│ └── ...
└── prompts/ # フェーズ別の固定プロンプト
CLAUDE.mdに書く「最優先ルール」
## 「続き」と言われたとき — 最優先ルール
「続き」という言葉が来たら、メモリではなく
以下のファイルを必ず読みに行くこと。
### 必ずやること(この順番で)
1. knowledge/sessions/ のファイル一覧を確認する
2. 最新のセッションファイルを読む
3. docs/roadmap.md を読んで、次にやるべきセッションを特定する
4. 「前回はSession Nで〇〇を学びましたね。
今日はSession N+1の〇〇に進みましょう!」と案内する
### セッションファイルが1つもない場合
Session 0 から始める。
ポイントは**「メモリではなくファイルを読みに行く」**と明示的に書くこと。これがないと、Claude Codeは自身の記憶(往々にして不正確)に頼ろうとする。
セッションファイルの設計
各セッション終了時に、Claude Codeが自動で学習記録を生成する。
# Session 7: JavaScript — 配列とオブジェクト
## 学習日: 2026-04-05
## 完了した内容
- 配列の基本操作(push, pop, map, filter)
- オブジェクトリテラルの書き方
- 配列の中のオブジェクトを操作する
## 理解度チェック結果
- 選択問題: 16/18 正解
- 記述問題: 3/4 正解
- 弱点: mapの戻り値が新しい配列であることの理解がやや曖昧
## 次回やること
- Session 8: TypeScript基礎(型、interface)
## 学習者のつまずきポイント
- mapとforEachの違いで混乱した
- スプレッド構文は初見で理解できた
なぜこの形式か
- 完了した内容:次回の「前回のおさらい」に使える
- 理解度チェック結果:弱点を次回の指導に反映できる
- つまずきポイント:同じ概念が出てきた時に補足説明を挟める
- 次回やること:「続き」と言われた時の即答に使える
セッション終了時の自動書き込み
CLAUDE.mdに終了処理のルールも書いておく:
## セッション終了時のルール
学習者が「終わり」「今日はここまで」等と言った場合:
1. 今日の学習内容をまとめる
2. knowledge/sessions/session-{番号}.md に書き込む
3. 理解度チェックの結果を記録する
4. 「お疲れさまでした!次回はSession Nからですね」と伝える
運用知見
ファイル名は連番にする
session-07.md のように0埋めの連番にすることで、ls やファイル一覧で自然にソートされる。日付ベース(2026-04-05.md)だと、同じ日に2セッション進めた場合に困る。
「読みに行く」の動詞が重要
CLAUDE.mdに「参照してください」ではなく「読みに行くこと」と書く。「参照」だとメモリ内の情報を参照する解釈もありえるが、「読みに行く」はファイルアクセスを明示する。
roadmap.mdとの組み合わせ
セッションファイルだけでは「全体の中でどこにいるか」がわからない。docs/roadmap.mdに全20セッションの計画を書いておき、セッションファイルと照合することで正確な現在位置がわかる。
まとめ
Claude Codeの「忘れる」問題は、CLAUDE.mdのルール設計だけで解決できる:
- 「ファイルを読みに行け」と明示する — メモリに頼らせない
- セッション終了時に自動書き込み — 進捗をファイルに永続化
- 連番ファイル名 — ソート可能で管理しやすい
- roadmap.mdとの照合 — 全体の中の現在位置を把握
この教材を使ったプログラミング学習サポートをMENTAで提供しています。→ プランページ
YouTubeでもAI×プログラミングの情報を発信中 → チャンネルはこちら