Claude Code を使い続けていると、ひとつの会話は次第に長くなっていく。長い会話には独特の問題があり、それと付き合う術を知っておくと、毎日の作業の質が安定する。
コンテキストウィンドウという制約
Claude Code は会話全体をコンテキストウィンドウと呼ばれる枠の中に保持している。ここに入るのは、
- これまでのメッセージ (こちら側と Claude 双方の発言)
- Claude が読み込んだファイルの内容
- 実行したコマンドの出力
である。会話を続ければ、ファイルを読めば、コマンドを走らせれば、その分だけ枠が埋まっていく。
枠は決まった大きさを持っていて、無限ではない。/context コマンドで現在の使用量を可視化できるので、「そろそろ整理したほうがいいか」を目で見て判断する材料に使える。
長くなると何が起きるか
LLM の性質上、コンテキストが満杯に近づくと判断の質が落ちる。具体的にはこんな挙動が増える。
- 序盤に伝えたはずの指示を「忘れる」
- 関係のない過去のやり取りに引きずられて、見当違いの提案をする
- 同じ説明を何度もしてしまう
- 単純な変更でも間違いが増える
これは Claude Code に限った話ではなく、LLM 一般の特性である。コンテキストウィンドウは管理する対象であることを念頭に置いておきたい。
なお、限界に近づくと Claude Code は自動で会話を圧縮 (auto-compaction) する。重要なコードや決定は保持しつつ空きを作る挙動が組み込まれている。完全に放っておいても止まりはしないが、自動圧縮に頼り切るより自分で意図的に区切った方が、結果として品質は安定する。
二本柱 ─ /clear と /compact
前章で触れた /clear と /compact は、長さに対する基本的な対処手段である。改めて使い分けを整理しておく。
/clear | /compact | |
|---|---|---|
| やること | 会話を全部捨てて新しく始める | これまでの会話を要約して圧縮する |
| 続きを話せるか | 話せない (リセット) | 話せる (要約に置き換わるだけ) |
| 向く場面 | 別のタスクに切り替える時 | 同じタスクを続けたいが空きが必要な時 |
判断の問い ─ 今やっているタスクと次にやるタスクは別物か。別物なら /clear、続きなら /compact。
/compact には引数で「何を残してほしいか」を指示できる。
/compact 認証フロー周りの決定事項を優先して残して
要約で何が削られて何が残るかを、こちらから主導できる。重要な情報を Claude 任せにせず指定できる、という意味で有用である。
集中を散らさない工夫
会話を圧縮する手段以外にも、コンテキストを膨らませない側の工夫がある。
軽い質問は /btw で (ターミナル)
ターミナルから Claude Code を使っている場合、/btw というコマンドが用意されている。「この npm パッケージの役割って何?」のような本筋とは別の質問を /btw を頭に付けて尋ねると、回答は表示されるが会話履歴には残らない。本流の作業を汚さずに脇道の確認ができる。
/btw このリポジトリで使われている vitest と jest の違いを簡単に教えて
ただし /btw はターミナルのインタラクティブモード向けに提供されている機能で、VSCode 拡張など環境によっては候補に現れない。その場合は別ウィンドウで Claude Code を起動して脇道用に切り分ける、もしくは /clear でいったん仕切り直すといった代替で対応する。
大きな調査はサブエージェントに任せる
「コードベース全体から認証周りを洗い出して」のような大きな読み込みを伴うタスクは、メインの会話で実行するとファイル内容でコンテキストが一気に埋まる。サブエージェントという仕組みを使うと、別のコンテキストウィンドウで調査を走らせ、結果のサマリーだけがメイン側に戻ってくる。詳しくは応用の章で扱う。
陥りがちなパターン
長く続けたセッションは、こんな状態に陥りやすい。
キッチンシンクセッション
最初は A のタスクをやっていて、途中で B の質問をして、C を試して、また A に戻る。一つの会話に脈絡のないやり取りが詰め込まれた状態を「キッチンシンク (台所の流し)」と呼ぶ。Claude は無関係な情報も「関係あるかも」と扱おうとするため、判断のノイズが増える。
タスクの切り替わり目で /clear を打つ習慣で、これは大幅に防げる。
修正ループ
Claude が出した変更が間違っていたので修正を頼んだ ─ それもまだ間違っている、もう一度修正 ─ それも… というループ。失敗した方向の文脈が重なり、Claude はそれに引きずられて、本来の正解にたどり着きにくくなる。
二度修正しても直らない時は、いったん /clear で仕切り直す。学んだことを踏まえて、より具体的なプロンプトで再出発する方が、しがみつくより早い。蓄積した修正履歴より、整ったプロンプトの方が強い。
タスクを区切る習慣
長い会話と上手に付き合う一番の鍵は、タスクの自然な切れ目で意識的に区切ることである。
- 機能 A の実装が終わって、機能 B に入る →
/clear - 同じ機能 A を続けるが、ここまでのコンテキストが大きい →
/compact - 二度試して直らない時 →
/clearでやり直し - 本筋から外れた小さな疑問 →
/btw(ターミナル)、もしくは別ウィンドウで切り分ける
「セッションは長く続けるほど積み上がる」は Claude Code には当てはまらない。短く切って何度も始める方が、結果として速く・正確に進む。
基礎の終わりに
ここまで七章にわたって、日々の使いこなしの土台を見てきた。プロンプト、文脈、CLAUDE.md、権限、変更レビュー、コマンド、そして会話の長さ。一通り押さえれば、Claude Code は協働できる相棒として動き出す。
次の実践の章では、より大きなタスクをどう任せるか、レビューをどう深めるか、失敗からどう戻すかという、一段上の作法に踏み込んでいく。
参考情報
- Claude Code ベストプラクティス: セッションを管理する —
/clear/compactの使い分けと失敗パターン - Claude Code コマンドリファレンス —
/btw/rewind/contextなどの詳細