第6章 CLAUDE.md・3層メモリ・CHANGELOG/TODOの習慣化
第5章までで、作業の進め方の「型」が身についたと思います。
第6章は、Code をもっと賢く動かすための仕組みについて。具体的には、
- Code がどうやって過去のことを覚えているのか(メモリ)
- 「CLAUDE.md」というファイルが、なぜ大事なのか
- Code に毎回作らせたい2つのファイル(CHANGELOG.md と TODO.md)
- 長く作業すると Code がだんだん「おかしくなる」現象とその対処
このあたりが見えてくると、Code が「自分のプロジェクト専属の AI」として育っていく感覚が出てきます。
6-1. LLM のコンテキストウィンドウとは
【学習目標】
- 「コンテキストウィンドウ」という言葉の意味を理解する
- Code が「覚えていられること」と「忘れること」がある理由を知る
【前提知識】
- 第5章まで完了していること
【概念解説】
Code に何度も話しかけていると、こんなことに気づきます。
- さっき言ったことを、ちゃんと覚えていてくれる
- でも、何時間も話していると、たまに「あれ?」となる
- 別のセッションを開くと、前のセッションのことは知らない
これ、不思議に思いますよね。これを理解するキーワードが「コンテキストウィンドウ」です。
コンテキストウィンドウ=AI の「短期記憶」
人間で例えると、コンテキストウィンドウは「今、頭の中で考えていられる範囲」です。
たとえば、僕が電話で誰かと話しているとします。
- 「今日の天気は晴れだね」と言ったら、相手はそれを覚えている
- そのまま「で、明日の予定は?」と聞かれたら、文脈を踏まえて答えられる
- でも、3時間ぶっ続けで話していると、最初の話題が霞んでくる
- 電話を切って次の日に電話したら、前日の会話の詳細は曖昧
Code(やすべての AI)も、これと同じ仕組みです。1つのセッションの中で「今頭に入れていられる情報の量」に上限があって、これがコンテキストウィンドウ。
サイズには上限がある
コンテキストウィンドウは「トークン」という単位で測ります。トークンは、ざっくり「文字」と思えばOK。
- 短い会話:トークン少ない → 余裕で覚えている
- 長い会話:トークン多い → だんだん上限に近づく
- 上限を超えると、古い情報から「忘れて」いく
これが「長く話していると、たまに変なことを言い出す」現象の正体です。
セッションをまたぐと覚えていない
別のセッションを開くと、前のセッションの会話は引き継がれません。これは「電話を切って次の日にかけ直す」のと同じ。新しいセッションは、ゼロから始まります。
「じゃあ、覚えていてほしいことはどうする?」
ここで登場するのが、次のレッスンの主役、3層メモリです。Code には、コンテキストウィンドウとは別に、「永続的に覚えていられる仕組み」があるんですよ。
【ハンズオン手順】
▼ ブラウザ側でやること
- ブラウザに次のように打って、自分の理解を確かめる
LLM のコンテキストウィンドウを、人間の「短期記憶」に例えて
初心者に分かるように説明してください。
また、コンテキストウィンドウが満杯になるとどうなるかも教えてください。
- 「短期記憶のように上限がある、満杯になると古い情報から忘れていく」といった内容が返ってくればOK
【つまずきポイント】
- 「Claude は何でも覚えてくれる」は誤解。1つのセッション内では覚えますが、セッションを超えると忘れます
- 長いセッションでパフォーマンスが落ちるのは「変な現象」ではなく「正常」。コンテキストウィンドウの仕様
【確認問題】
- コンテキストウィンドウとは、AI にとっての何ですか?
- 別のセッションを開くと、前のセッションの会話は引き継がれますか?
【次のレッスンへの橋渡し】
短期記憶の仕組みが分かりました。次は、Code が「長期的に覚えている」3層構造を見ていきます。
6-2. Claude Code の3層メモリ — CLAUDE.md / Auto Memory / Session Memory
【学習目標】
- Code が持つ3層のメモリ構造を理解する
- それぞれが「いつ」「何を」覚えているかを区別できる
【前提知識】
- 6-1 でコンテキストウィンドウを理解していること
【概念解説】
Code には、大きく3層のメモリがあります。それぞれ役割が違うので、混同しないようにしておきましょう。
1層目:CLAUDE.md(プロジェクトの「設定書」)
- ファイルとしてプロジェクトのフォルダに置く(
CLAUDE.md) - セッションを開くたびに、Code が自動で読み込む
- ここに書いた内容は、毎回 Code の脳内に展開される
- 自分で書いて、自分で管理する
2層目:Auto Memory(自動的に学習される事実)
- Code が会話の中から「これは覚えておくべき」と判断したことを、勝手にメモする
- 例:「このプロジェクトでは Tailwind CSS を使っている」「ユーザーの好みのフォントは Inter」
- セッションをまたいで保持される
- 自分が直接書き換えることもできる
3層目:Session Memory(その回の会話だけ)
- 1つのセッションの中だけで覚えている内容
- セッションを閉じると消える
- 6-1 で説明した「コンテキストウィンドウ」がこれ
3層の関係を図にすると
[CLAUDE.md] ← 設定書、毎回読まれる
↓
[Auto Memory] ← 自動学習された事実
↓
[Session Memory] ← 今の会話だけ
↓
あなたとの会話
セッションが始まる時、Code は CLAUDE.md と Auto Memory を読み込んだ状態で、Session Memory(今のセッション)に入ります。
「使い分け」の感覚
- 絶対に覚えていてほしいこと(プロジェクトの方針、使う技術スタック、自分の好み)→ CLAUDE.md に書く
- 覚えていてくれたら嬉しいけど絶対ではないこと(細かい好み、過去の選択)→ Auto Memory に任せる
- 今だけ使う情報(今回のセッションの目標、一時的なメモ)→ Session Memory(普通の会話)でOK
正直、「この3層が頭に入っているかどうかで、Code との付き合い方の安定感が全然違う」。
【ハンズオン手順】
▼ ブラウザ側でやること
- ブラウザに次のように打って、自分の理解を整理する
Claude Code の3層メモリ(CLAUDE.md / Auto Memory / Session Memory)
について、それぞれの「いつ」「何を」覚えているかを比較表にして
教えてください。
- 比較表が返ってくる。表を見ながら3層の違いを目で確認
▼ Code 側でやること(Auto Memory を覗いてみる)
- Code のサイドバーから「Customize」または「設定」を探す
- 「Memories」「記憶」のようなセクションがあれば、それが Auto Memory
- 今までに自動で学習された事項が並んでいるはず
▼ スクショ伴走のチェックポイント
- Auto Memory の中身のスクショを撮っておくと、Code が「自分のことをどう認識しているか」が見えます
【つまずきポイント】
- Auto Memory の編集は慎重に。間違って消すと、Code が「あれ、その情報忘れた」となる可能性
- 「全部 CLAUDE.md に書けばいいんじゃない?」と思いがちだが、それは違う。書きすぎると毎回読み込みでコンテキストウィンドウが圧迫されます
【確認問題】
- 3層メモリのうち、ファイルとして自分で管理するのはどれですか?
- セッションを閉じると消えるのは、どの層ですか?
【次のレッスンへの橋渡し】
3層の構造が見えました。次は、その中で最も大事な「CLAUDE.md」の書き方を学びます。
6-3. CLAUDE.md の役割と書き方
【学習目標】
- CLAUDE.md に書くべきことと、書くべきでないことを区別できる
- 自分のプロジェクトで CLAUDE.md を1枚書ける
【前提知識】
- 6-2 で3層メモリを理解していること
【概念解説】
CLAUDE.md は、プロジェクトの「取扱説明書」のようなものです。
このファイルをプロジェクトのルートフォルダに置いておくと、Code はセッションを開くたびに自動で読み込みます。だから、ここに書いたことは「常に Code が知っている前提」で会話できます。
CLAUDE.md に書くべきこと
- プロジェクトの目的(何を作っているか)
- 使っている技術スタック(HTML/CSS/JS、Next.js、Supabase など)
- 守ってほしいルール(コーディング規約、ファイル命名規則)
- 重要な設計判断(なぜこの構成にしているか)
- よくある作業の進め方
- 自分の好み(日本語で会話してほしい、コードに日本語コメントを入れてほしい、など)
CLAUDE.md に書かない方がいいこと
- 細かいファイルの内容(Code が必要に応じて読みます)
- 一時的な作業内容(次のセッションでは不要)
- 機密情報(API キー、パスワードなど)
- 大量の参考資料(コンテキストウィンドウを圧迫します)
書き方の例(カフェ紹介サイトの場合)
# プロジェクト概要
小さなカフェ「○○」の紹介サイトです。
個人客向け、温かみのあるデザインを意識しています。
# 技術スタック
- HTML / CSS / JavaScript(フレームワーク不使用)
- ホスティング:Cloudflare Pages
# コーディングルール
- インデントは半角スペース2つ
- セレクタは BEM 風(block__element--modifier)
- 日本語コメントを適度に入れる
# 守ってほしいこと
- 会話は日本語で
- 修正前に Plan を提示してほしい
- 「変更後のイメージ」をできるだけ提示してほしい
これくらいの分量で充分。長く書きすぎると逆効果なので、A4 1枚以内を目安にしてください。
僕からのコツ
僕は「CLAUDE.md は最初から完璧を目指さない」と言っています。
- プロジェクトを始める時、必要最低限を書く
- 作業中に「あ、これ毎回伝えるの面倒だな」と思ったら、CLAUDE.md に追加
- セッションを重ねるうちに、自然と充実していく
これくらいの感覚で運用するのがいいです。
【ハンズオン手順】
▼ Code 側でやること(CLAUDE.md を作る)
- プロジェクトフォルダ(例:第1章で作った
practiceフォルダ)を Code で開く - Code に次のように依頼
このプロジェクトに、シンプルな CLAUDE.md を作ってください。
プロジェクトの目的、技術スタック、守ってほしいことを含めて、
A4 1枚以内に収まる量で書いてください。
- Code が CLAUDE.md を作ってくれる
- 中身を読んで、必要なら追記・修正
▼ Code 側でやること(CLAUDE.md の効果を確認)
- 一度 Code を閉じて、再起動
- 同じプロジェクトフォルダを開く
- Code が起動時に CLAUDE.md を読み込んでいることを確認(「読み込みました」と表示されることもあります)
- 何か簡単な依頼を出して、CLAUDE.md の内容(コーディングルールなど)が反映されているか確認
▼ スクショ伴走のチェックポイント
- 自分が書いた CLAUDE.md の内容のスクショ
- Code が起動時に CLAUDE.md を読み込んでいる画面のスクショ
【つまずきポイント】
- CLAUDE.md は長く書きすぎない。A4 1枚を超えると、毎セッションで読み込まれる負担が増えます
- 機密情報を書かない。CLAUDE.md は他人とプロジェクトを共有する時に一緒に渡されることがあります
- 「英語で書かないとダメ?」→ 日本語でOK。Code は日本語の CLAUDE.md もちゃんと読みます
【確認問題】
- CLAUDE.md は、プロジェクトのどこに置きますか?
- CLAUDE.md に「書かない方がいい」内容を3つ挙げてください
【次のレッスンへの橋渡し】
CLAUDE.md の基本ができました。次は、CLAUDE.md を階層的に配置する応用編に進みます。
6-4. 階層的 CLAUDE.md とプロジェクト間の知識引き継ぎ
【学習目標】
- CLAUDE.md を「グローバル」「プロジェクト」「ローカル」の3階層で配置できる
- 過去のプロジェクトから新しいプロジェクトへ知識を引き継ぐパターンを知る
【前提知識】
- 6-3 で CLAUDE.md の基本を理解したこと
【概念解説】
CLAUDE.md は、実は複数の階層に置けるんです。
3階層の配置
[グローバル] ~/.claude/CLAUDE.md
↓ どのプロジェクトでも読まれる
[プロジェクト] プロジェクトフォルダ/CLAUDE.md
↓ そのプロジェクトでだけ読まれる
[ローカル] プロジェクトフォルダ/sub/CLAUDE.md
↓ そのサブフォルダで作業する時だけ読まれる
それぞれの役割:
1. グローバル CLAUDE.md(~/.claude/CLAUDE.md)
- ホームディレクトリ直下に置く
- すべてのプロジェクトで読み込まれる
- 「自分の好み」や「すべてに共通する原則」を書く
- 例:「日本語で会話して」「コードに日本語コメントを入れて」「Plan を先に提示して」
2. プロジェクト CLAUDE.md(プロジェクトフォルダ直下)
- そのプロジェクト固有の情報を書く
- 6-3 で書いたもの
3. ローカル CLAUDE.md(サブフォルダ内)
- プロジェクトの中の特定のサブフォルダだけに適用される情報
- 例:「このサブフォルダは認証関連のコードだけ」「ここのコードは Stripe 連携用」
- 大規模プロジェクトで便利。小さなプロジェクトでは不要
読み込みの優先順位
Code は、これらを順に読み込みます。
グローバル → プロジェクト → ローカル
下の階層ほど優先されるので、たとえば「グローバルではタブインデント、プロジェクトでは半角スペース」と書いてあれば、プロジェクトの設定(半角スペース)が勝ちます。
プロジェクト間の知識引き継ぎ
僕が特に重宝しているのが、「過去のプロジェクトの CLAUDE.md を、新しいプロジェクトの参考にする」やり方。
3つのパターンがあります。
パターンA:そのまま使う
- 新しいプロジェクトでも前と同じ技術スタックなら、CLAUDE.md を丸ごとコピー
- 例:「Next.js + Supabase + Cloudflare Pages」の構成は同じだから流用
パターンB:必要部分だけ抜粋
- 前のプロジェクトの一部だけ流用
- 例:コーディングルールはそのまま、プロジェクト概要だけ書き直す
パターンC:Code に整理してもらう
- 過去の CLAUDE.md を Code に見せて「これを参考に、新しいプロジェクト用の CLAUDE.md を作って」と依頼
- 過去の知見を蓄積しながら、新しい用途に合わせて整える
僕は制作したアプリが増えるたびに、過去の CLAUDE.md を見直して「これも次から取り入れよう」というノウハウを抽出し、グローバル CLAUDE.md に格上げしています。
【ハンズオン手順】
▼ Code 側でやること(グローバル CLAUDE.md を作る)
- Code に次のように依頼
~/.claude/CLAUDE.md を作って、私の好み(日本語で会話、
コードに日本語コメント、Plan モードで進める など)を
書き込んでください。
- Code がファイルを作る
- 一度 Code を再起動して、新しいプロジェクトで「グローバル CLAUDE.md は反映されている?」と聞いて確認
▼ Code 側でやること(既存 CLAUDE.md を流用)
- 別のプロジェクトを開く
- Code に「このプロジェクトの CLAUDE.md を、過去プロジェクトの CLAUDE.md(パスを指定)を参考に作って」と依頼
- Code が過去のものをベースに新規作成
▼ スクショ伴走のチェックポイント
- グローバル CLAUDE.md の中身のスクショ
- 階層的に CLAUDE.md が配置されている状態のフォルダ構造
【つまずきポイント】
- 3階層を全部使う必要はない。最初はプロジェクト CLAUDE.md だけで充分
- 同じことを複数の階層に書かない。重複は混乱の元
- グローバル CLAUDE.md は「全プロジェクト共通」のことだけ。プロジェクト固有のことは書かない
【確認問題】
- グローバル CLAUDE.md はどこに置きますか?
- 「グローバル」「プロジェクト」の設定が衝突した時、どちらが優先されますか?
【次のレッスンへの橋渡し】
CLAUDE.md の応用が見えました。次は、僕が「全プロジェクトで習慣化している」2つのファイル、CHANGELOG.md と TODO.md について。
6-5. CHANGELOG.md と TODO.md を毎回作らせる — バージョン管理と積み残し管理の習慣化
【学習目標】
- CHANGELOG.md と TODO.md を毎プロジェクトで作る習慣を理解する
- これらを Code に自動更新させる依頼の仕方を覚える
【前提知識】
- 6-4 まで完了していること
【概念解説】
僕が3週間で複数のアプリを作る中で、ほぼすべてのプロジェクトに必ず作っている2つのファイルがあります。
1. CHANGELOG.md(変更履歴) 2. TODO.md(やること一覧)
この2つを「毎回作らせる」習慣を持つことが、僕の「Code が育っていく感覚」の正体です。
CHANGELOG.md とは
「いつ、何を、どう変えたか」を時系列で記録するファイル。
例(僕の訪看アプリの実際の CHANGELOG から抜粋):
# Changelog
## v2.5(2026-05-14)
- iPhone Safari でのプルダウンスクロール誤選択を修正
- 同時訪問を2件まで制限
## v2.4(2026-05-12)
- 新規登録時に管理者へメール通知追加
(Resend + Supabase Edge Functions + Database Webhook)
- ホスティングを Netlify から Cloudflare Pages へ移行
## v2.3(2026-05-10)
- GitHub + Netlify 自動デプロイ環境を構築
## v2.2(2026-05-10)
- メモ機能・編集ダイアログ追加
- 履歴ビューを月ごとのアコーディオン表示に変更
- 集計データの CSV 出力機能追加(GPS 情報含む)
これを見ると、僕が訪看アプリで「いつ何をやったか」が一目で分かりますよね。未来の自分が今の自分に感謝するファイル、と表現できます。
TODO.md とは
「これからやること」「積み残しになっていること」のリスト。
例:
# TODO
## 機能追加
- [ ] 訪問以外の業務記録タイプ追加(会議・外来同行・オンコール対応)
- [ ] 利用者情報の検索機能(対象エリア・住所による絞り込み)
## 不具合修正
- [ ] Safari でフォントが大きく表示される問題
- [x] iPhone でのスクロール誤動作(v2.5で修正済み)
## 検討事項
- [ ] 有料プラン化の検討
- [ ] 多言語対応
[ ] は未完了、[x] は完了。これで「次は何やる?」が明確になります。
Code に毎回更新させるコツ
僕は、CLAUDE.md に次のような一文を入れています:
重要な作業を完了した時は、CHANGELOG.md と TODO.md を更新してください。
- CHANGELOG.md:日付とバージョンとともに、変更内容を箇条書きで追記
- TODO.md:完了したタスクには [x] をつける、新しいタスクは追加
こう書いておくと、Code が自動的に CHANGELOG と TODO を更新してくれる。僕は「全プロジェクト共通のグローバル CLAUDE.md にこの一文を入れている」。
なぜこれが効くのか
3つ理由があります。
- 過去の作業内容を、未来の自分が思い出せる
- 「あれ、いつこの機能追加したっけ?」「なんでこの実装にしたっけ?」がなくなる
- 積み残しが視覚化される
- TODO.md を見れば「次やること」が明確
- Code との文脈が継承される
- 新しいセッションを開いた時、Code が CHANGELOG と TODO を読めば過去の経緯が分かる
【ハンズオン手順】
▼ Code 側でやること(CHANGELOG / TODO を作る)
- プロジェクトフォルダを開く
- Code に次のように依頼
このプロジェクトに CHANGELOG.md と TODO.md を作ってください。
- CHANGELOG.md:これまでに作った機能を v1.0 としてまとめる
- TODO.md:今後やりたいことを箇条書きで(思いつくままで構いません)
- Code が2つのファイルを作成
- 中身を確認
▼ Code 側でやること(自動更新の設定)
- CLAUDE.md に次の一文を追加
作業を完了したら、CHANGELOG.md と TODO.md を更新してください。
- これで、以降の作業で Code が自動的に更新してくれるようになります
▼ Code 側でやること(実際に作業して更新を確認)
- 何か小さな改善を依頼(例:「ヘッダーの色をブラウンに変更して」)
- Code が作業
- CHANGELOG.md と TODO.md を覗いてみる
- 自動的に追記されているはず
▼ スクショ伴走のチェックポイント
- CHANGELOG.md と TODO.md の初版のスクショ
- 1回作業した後の更新版のスクショ(差分が見えます)
【つまずきポイント】
- 自動更新が効かない時は、CLAUDE.md の記述を見直す。明確に書いていないと Code が忘れることがあります
- TODO.md は「綺麗に整理しよう」と気負わない。雑メモでOK。後で Code に「TODO を整理して」と頼めば綺麗にしてくれます
- CHANGELOG はバージョン番号にこだわらない。
v1.0v1.1でも2026-05-14でも、自分が分かれば何でも
【確認問題】
- CHANGELOG.md と TODO.md は、それぞれ何を記録するファイルですか?
- Code に自動更新させるには、どこに何を書いておけばいいですか?
【次のレッスンへの橋渡し】
CHANGELOG / TODO の習慣ができれば、プロジェクトの「履歴」と「未来」が常に見える状態になります。次は、CLAUDE.md を効率的に作るための、ブラウザを使った下書きのコツです。
6-6. CLAUDE.md をブラウザで書いて Code に渡す型
【学習目標】
- CLAUDE.md の下書きをブラウザで書く方が効率的な理由を理解する
- ブラウザ→ Code の引き継ぎパターンを身につける
【前提知識】
- 6-5 まで完了していること
【概念解説】
CLAUDE.md を「いきなり Code に書かせる」より、「まずブラウザで下書きしてから Code に渡す」方が、結果的に質の高い CLAUDE.md ができることが多いんですよ。
僕が体得したコツとして、知っておくと便利です。
なぜブラウザで下書きするのか
理由は3つ。
1. Code のコンテキストウィンドウを節約できる
CLAUDE.md の下書きを Code でやると、その下書きのやり取りが Code のコンテキストウィンドウを圧迫します。「下書きの会話」は、本作業には不要なので、本作業に入った時に邪魔になります。
ブラウザで下書きすれば、Code はクリーンな状態で本作業に入れる。
2. 推敲しやすい
ブラウザは会話だけのシンプルな環境なので、「ここの表現はこう変えて」「もうちょっと簡潔に」のような推敲がやりやすい。Code だと、つい次の作業依頼に進みたくなって、推敲が疎かになりがちです。
3. 過去の CLAUDE.md を参考にしやすい
ブラウザには過去の会話が残るので、「以前作った CLAUDE.md と同じスタイルで」と頼むのが楽。
実践フロー
1. ブラウザで「○○というプロジェクトの CLAUDE.md を作りたい」
2. ブラウザが下書きを返してくる
3. ブラウザと推敲を重ねる(「ここは削って」「これも追加して」)
4. 完成したら、ブラウザから CLAUDE.md の全文をコピー
5. Code でプロジェクトフォルダに CLAUDE.md として保存
6. Code を再起動して、CLAUDE.md が読み込まれているか確認
僕の実践例
僕は新しいプロジェクトを始める時、こんな順番でやっています。
- ブラウザでプロジェクトの構想を話す
- 「カフェ紹介サイトを作りたい。温かみのあるデザイン。HTML/CSS/JS だけで」
- ブラウザに CLAUDE.md の下書きを頼む
- 「これに合う CLAUDE.md を作って」
- ブラウザと推敲
- 「セクション分けをもう少しシンプルに」「コーディングルールも入れて」
- 完成版を Code に渡す
- Code で本作業開始
このやり方をすると、本作業に入った時に Code が最初から方向性をちゃんと理解している状態でスタートできる。
【ハンズオン手順】
▼ ブラウザ側でやること(下書き)
- ブラウザを開く
- 次のように打つ
新しいプロジェクトを始めるので、CLAUDE.md を作りたいです。
プロジェクト概要:シンプルな家計簿アプリ
技術スタック:HTML/CSS/JavaScript(フレームワーク不使用)
保存方法:ローカルストレージ
私の好み:日本語で会話、Plan モードで進める
これに合う CLAUDE.md の下書きを書いてください。
A4 1枚以内に収まる量で。
- ブラウザが下書きを返す
- 「ここをもう少しこう変えて」と推敲を重ねる
▼ Code 側でやること(CLAUDE.md として保存)
- Code でプロジェクトフォルダを開く
- 「先ほどブラウザで作った CLAUDE.md をこのプロジェクトに保存して」と依頼
- ブラウザからコピーした全文を貼り付け
- Code が CLAUDE.md として保存
▼ スクショ伴走のチェックポイント
- ブラウザでの下書きの推敲過程のスクショ
- Code に渡した時の Code の反応(「読み込みました」など)
【つまずきポイント】
- ブラウザの下書きをそのままコピペで Code に貼る。Code に「ブラウザで書いたのを参考に」と曖昧に伝えると、Code が再構成して微妙にズレることがあります
- 下書きをブラウザに任せきりにしない。最終確認は自分の目で
【確認問題】
- CLAUDE.md の下書きをブラウザでする3つのメリットは何ですか?
- 完成版を Code に渡す時、推奨される方法は何ですか?
【次のレッスンへの橋渡し】
CLAUDE.md を効率的に作る型ができました。第6章の最後は、長く作業した時に Code が「変になる」現象とその対処について。
6-7. コンテキスト肥大化と劣化 — セッション分割の戦略
【学習目標】
- 長時間セッションで Code のパフォーマンスが落ちる現象を理解する
- セッションを区切る判断ができる
【前提知識】
- 6-1 でコンテキストウィンドウを理解していること
【概念解説】
長く作業していると、Code が「だんだんおかしくなる」現象に遭遇します。
- さっきまでできていたことが、急にできなくなる
- 何度同じことを伝えても、忘れる
- 簡単な依頼で、複雑な解釈をして変な方向に進む
- 応答が遅くなる
これらは全部、コンテキストウィンドウが満杯に近づいているサインです。
何が起きているか
長い会話を続けると、
[起動時]
CLAUDE.md読み込み + 余裕あり
↓
[作業を進める]
会話・実行結果・ファイル内容が積み上がる
↓
[長時間後]
コンテキストウィンドウがほぼ満杯
↓
古い情報から消える → 一貫性が崩れる
↓
新しい情報を入れる余地が減る → 処理が劣化
これが「Code がおかしくなる」現象の正体です。
対処法:セッションを区切る
一番シンプルで効果的な対処法は、セッションを終わらせて、新しく開くこと。
新しいセッションでは、
- コンテキストウィンドウがクリアになる
- CLAUDE.md と Auto Memory は引き継がれる
- 最新の情報だけで再スタートできる
「区切るタイミング」の判断
僕が体得した判断基準:
- 1つのタスクが完了した時:自然な区切り。次のタスクは新セッションで
- Code が変な動きをし始めた時:すぐに区切る
- 2時間以上連続で作業した時:休憩がてら区切る
- 大きな依頼を出す前:クリーンな状態で挑む
セッションを区切る前にやること
ただし、いきなりセッションを終わらせると、今やっていた作業の文脈が失われます。なので、終わらせる前にやっておくと良い手順:
- CHANGELOG.md と TODO.md を更新する
- Code に「現状を CHANGELOG と TODO に書いて」と依頼
- 作業のまとめを書いてもらう
- 「今のセッションで何をやって、次に何をすべきかをまとめて」と依頼
- メモとして保存しておく
- セッションを閉じる
次のセッションで CHANGELOG.md・TODO.md・まとめメモを Code に読ませれば、文脈を引き継いで再開できます。
/clear /compact は第7章で
実は、セッションを閉じずに「現在のコンテキストをクリアする」コマンド(/clear)や「会話を圧縮する」コマンド(/compact)もあります。これらは第7章のスラッシュコマンドで詳しく扱います。
【ハンズオン手順】
▼ Code 側でやること(セッション分割の練習)
- 今やっているセッションで、何か作業を完了する
- Code に次のように依頼
現在のセッションの作業内容を CHANGELOG.md と TODO.md に
反映して、次のセッションで再開できるよう、まとめを書いてください。
- Code がまとめを作る
- セッションを閉じる
- 新しいセッションを開く(「New session」から同じプロジェクトを再選択)
- 新セッションで「CHANGELOG.md と TODO.md を読んで、次に何をすべきか教えて」と依頼
- Code が文脈を理解した状態で再開
▼ スクショ伴走のチェックポイント
- 旧セッションで作業のまとめを書いてもらった画面
- 新セッションで文脈を引き継いだ状態の画面
【つまずきポイント】
- 「セッションを閉じるのは、もったいない」と感じない。むしろ古いセッションを引きずる方がコストが高いです
- 「区切ったら何を引き継ぐべきか」を CLAUDE.md に書いておく。たとえば「CHANGELOG.md と TODO.md を必ず読むこと」など
- 新セッションで「前のセッションの続き」と言うだけでは伝わらない。必ず CHANGELOG や TODO を読ませる手順を踏みましょう
【確認問題】
- 長時間セッションで Code がおかしくなる原因は何ですか?
- セッションを区切る前にやっておくと良い手順は何ですか?
【次のレッスンへの橋渡し】
第6章はこれで完了です。CLAUDE.md、Auto Memory、Session Memory の3層が見えて、CHANGELOG / TODO の習慣がついて、セッション分割の判断ができれば、Code を「自分のプロジェクト専属の AI」として育てていけます。
次の第7章では、これまで「使わなくてもOK」と先送りしてきたスラッシュコマンドと、第4章で名前だけ紹介したPlan モードの深掘りに入ります。