やってみた

コンテキスト、管理してる?Claude Codeの使い方が全部変わった話。

まだ「続ける」だけで使ってる?

Claude Codeを使い始めてすぐ、気づいたことがある。

Claude Codeのやり取りが長くなってくると、なぜか回答の質が落ちる。前に話した内容を忘れる。同じミスを繰り返す。

原因は「コンテキストの汚れ」だった。

管理の方法を変えたら、出力品質が明らかに上がった。知らないのは損。全部書く。

コンテキストウィンドウ=AIの「今見えている黒板」

AIには人間みたいな記憶がない。

代わりに「今この瞬間に見えている情報の量」が決まっている。それがコンテキストウィンドウ。Claude Codeの黒板サイズは **100万トークン**。文庫本で約750冊分。

黒板に書かれているものは全部「見えている」。あなたの指示、AIの返答、読み込んだファイル、ツールの出力。全部。

黒板がいっぱいになってきたとき、AIは古い情報と新しい情報を同時に見ながら考える。当然、集中力が落ちる。

コンテキスト腐敗。300〜400kトークンで劣化が始まる。

「コンテキスト腐敗(Context Rot)」という概念がある。

コンテキストが増えるほど、モデルの注意力が分散する。古くて関係ない情報が邪魔をする。Claude Codeの場合、**300〜400kトークン付近から劣化が始まる** とされている。

100万トークンあっても、使い方が悪ければ意味がない。

むしろ長く使えるぶん、「汚れに気づかないまま使い続ける」リスクが上がる。

会話が終わるたびに、5つの選択肢がある

Claude Codeがひとつの作業を終えたとき、次に何を送るかの前に選択肢がある。

「続ける」だけじゃない。

選択肢何が起きるか使うタイミング
続けるそのまま会話を続ける同じ作業の延長
/rewind 最強指定のメッセージに戻り、以降を削除失敗した。やり直したい。
/clear黒板を全消し。新しいセッションで開始新しいタスクを始めるとき
compact会話をAIが要約して黒板を軽くする長い会話を続けたいとき
サブエージェント別のClaudeに作業を切り出す中間出力が大量に出るとき

rewindが最強な理由。失敗を「なかったこと」にする。

一番変わったのはrewindの使い方を覚えてからだ。

Claude Codeで `esc` を2回押すか `/rewind` を使うと、過去のメッセージに戻って、それ以降を削除できる。

**よくある失敗パターン:**

Claudeが5つのファイルを読み込んで、あるアプローチで作業した。うまくいかなかった。

❌ 「うまくいかなかった。別の方法で試して」と続けて送る。
✅ rewindでファイル読み込み直後まで戻り、「方法Aはダメだった。最初から方法Bで」と再指示する。

失敗の記録を黒板に残すな、という話。失敗したやり取りは汚れになる。

「やり直した」記録ではなく、「最初から正しい方向で進んだ」記録を作る。それだけで出力精度が上がる。

compactとclearは「誰が整理するか」が違う。

長い会話を整理したいとき、2つの選択肢がある。

**compact:** ClaudeがAIが会話を要約する。
自分では何もしない。ただし、何を残すかはClaude任せ。 `/compact focus on the auth refactor` のように指示を渡せば方向は絞れる。

**clear:** 自分で「大事な情報」を書き出してから新セッションを始める。
手間はかかる。でも黒板に何が載るかを自分でコントロールできる。

非効率が嫌いだから基本はcompactを使う。ただし重要なタスクのときはclearで自分がまとめたものを渡す。判断基準は「AIに任せていいタスクか」だけ。

bad compactが起きるとき。コンパクトのタイミングを間違えるな。

compactがうまくいかないパターンがある。

たとえば長いデバッグセッションのあと、自動でcompactが走った。要約が完了。次のメッセージで「そういえばさっき見てたbar.tsの警告も直して」と送ったとする。

そのデバッグに集中していた要約から、bar.tsの警告は落ちている。

原因は「compactのタイミングが悪い」こと。コンテキストがいっぱいになってから自動compact、ではなく、**余裕のあるうちに自分からcompactを走らせる。** しかも次に何をするかの指示を一緒に渡す。

1Mトークンのメリットは、余裕があるうちに動けること。ギリギリまで使って詰まるのは非効率だ。

サブエージェント=「中間出力を汚染させない」技術。

Claude Codeはサブエージェントを自動で使うことがある。でも自分から明示的に指示する方が効果的だと気づいた。

サブエージェントは「別の新しいClaude」に作業を切り出す機能。そのClaudeが大量の中間作業を終えたあと、**まとめた結論だけ** が自分のセッションに戻ってくる。

判断基準はひとつ。「途中の出力が後でまた必要か、結論だけでいいか。」

結論だけでいいなら、サブエージェントに出す。

**実際に使っている指示の例:**
– 「サブエージェントを立ち上げてこの作業の結果を別のspec.mdで検証して、問題なければ報告だけ返して」
– 「別コードベースの認証実装をサブエージェントに調べさせて、同じやり方でここに実装して」
– 「git diffをもとにドキュメントをサブエージェントに書かせて」

自分のコンテキストを汚さずに成果だけ受け取る。それだけで黒板がきれいに保たれる。

非効率は罪。コンテキスト管理を怠るのも同じだ。

Claude Codeは「続けるだけ」でも動く。でも黒板が汚れたまま使い続けると、AIの出力品質が静かに落ちていく。

気づかないから怖い。

今日から変えるのはシンプルな習慣だ。

・新しいタスクに入るとき `/clear` で黒板をリセット
・失敗したら続けず `/rewind` で戻る
・compactは余裕のあるうちに先手で走らせる
・中間出力が大量に出る作業はサブエージェントに切り出す

道具の性能を最大限使い切れているか。それを問い続けることが、AIを使いこなすということだ。

で、あなたは今日、何を変える?