◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-05-01中級

Claude Code の /clear と /compact を使い分ける — 長時間作業を止めない切り替え術

Claude Code の /clear と /compact、どちらを使うべきか迷ったときの判断基準を、長時間セッションの実体験から整理しました。会話の汚染を抜く時と、文脈を残しながら余白を作る時の見分け方が分かります。

claude-code132session5context6workflow26productivity11

Claude Code を半日続けて使っていると、ある瞬間にこう感じることはないでしょうか。「このセッション、もう一度仕切り直した方がいい気がするけれど、ここまでの文脈は捨てたくない」。そういうときに頭をよぎるのが /clear と /compact という2つのコマンドです。

私自身、この2つの使い分けで何度か失敗しました。/compact で大事なファイルパスの記憶が消えて作業が振り出しに戻ったり、逆に /clear で全部リセットすればよかったのに /compact で曖昧な情報を残し続けて、判断が鈍ったセッションを延命させてしまったり。今回はその経験から見えてきた使い分けの判断軸を、できるだけ具体的に書き残しておきます。

/clear と /compact が混乱しやすい理由

両者の説明だけ並べると似たように見えるのが、混乱の入り口です。

  • /clear: 会話履歴を完全に消去します。次のターンからは「初対面」の状態に戻ります。CLAUDE.md は再度読み込まれるので、プロジェクトのコンテキストはゼロから再構築されます。
  • /compact: 会話履歴を要約して保持します。長くなった履歴を1〜2ページの要約に圧縮し、その続きとして対話を続けます。

ここで誤解しやすいのは、「/compact なら情報が残るんだから常に /compact の方が安全」という思い込みです。実際には /compact で残るのは「Claude が要約した情報」であって、原文ではありません。元のコードスニペットや具体的な数値は、要約の精度次第で消えてしまいます。

つまりこの2つは「情報量を絞る」という方向性は同じでも、残し方の質が違います。残し方の質を読者が選ばないと、思わぬところで作業の足を引っ張られます。

/clear が向くシーン — 文脈の汚染をリセットしたい時

私が /clear を選ぶのは、こういう状況です。

  • 試行錯誤で間違った方向に行ってしまったとき: 例えばライブラリの選定を 5 往復ぐらい議論した結果、結局採用しないと決めた選択肢が会話履歴に残り続けると、Claude がそれを引きずって妙な提案をしてくることがあります。
  • タスクが完全に切り替わったとき: 朝はバックエンドのリファクタリングをしていて、午後から UI の調整に入る。このように対象が変わるときは、過去の文脈が残っていてもむしろノイズになります。
  • エラーメッセージのデバッグループから抜けたいとき: 同じエラーで 3 回以上往復したら、Claude の頭は「このエラーは難しい」という前提で固まっています。/clear で別の角度から見直してもらう方が早く解けることが多いです。

/clear を選ぶときの安心材料は CLAUDE.md です。プロジェクト固有の前提(使用言語・ディレクトリ構造・コーディング規約)は CLAUDE.md に書いておけば、リセット後も自動的に読み直されます。CLAUDE.md の設計については CLAUDE.md 設計と生産性 — プロジェクトの DNA を伝える書き方 でまとめています。

/compact が向くシーン — 連続性を保ったまま余白を作りたい時

逆に /compact を選ぶのは、こういう状況です。

  • 長い設計議論の途中でトークンが逼迫したとき: アーキテクチャの方向性を 30 ターンかけて詰めてきた直後に「あと 5 ファイル分の実装を頼みたい」というシーン。ここで /clear をすると議論の結論まで消えてしまいます。
  • 複数ファイルにまたがる修正の中盤: ファイル A・B・C を順に編集していて、まだ D・E が残っているとき。「これまで何を変更したか」のコンテキストは Claude にも残しておきたい情報です。
  • テスト駆動で「赤→緑→リファクタ」を回しているとき: テストの意図と実装の進捗状況がセットで保たれていないと、リファクタフェーズで意図が読めなくなります。

/compact の良い点は、要約後も Claude 自身がその要約を読み返してから次の応答を返してくれる点です。つまり、要約の質が悪ければ Claude もそれを認識します。要約直後に「この要約に抜けている重要な点はありますか?」と聞いてみるのは、私の習慣です。

/compact の落とし穴 — 圧縮で失われる情報の見極め方

/compact を使うときに私が痛い目を見たのは次のようなケースでした。

  • 具体的なファイルパスや関数名が抽象化される: src/lib/auth/sessionStore.ts の validateRefreshToken 関数を直していたのに、要約では「認証関連のリフレッシュトークン処理」とだけ残ることがあります。続きの作業で「あのファイル直してください」と頼むと、別のファイルを開かれて時間を溶かします。
  • 数値・閾値が丸まる: 「タイムアウトは 8000 ms に設定する」と話していたのに、要約では「適切なタイムアウト」になることがあります。
  • 議論の中で却下した案が再浮上する: 「A 案は性能上の理由で却下、B 案で進める」と決めたとき、要約には結論しか残らず、却下した理由が消えると Claude が再び A 案を提案してきます。

これに対する私の対策は、/compact する前に重要な決定事項を箇条書きで明示してから走らせることです。

このあと /compact します。要約に必ず含めてください:
- 採用したアーキテクチャ: イベントソーシング + CQRS
- 却下した案: 単純な REST + DB 直書き(理由: 監査ログ要件を満たせない)
- 編集中のファイル: src/domain/order/aggregate.ts
- 残作業: events.ts のテスト、infra/eventStore.ts の実装

このひと手間で、要約品質は明らかに変わります。

私の使い分け基準 — 3つの判断軸

迷ったときに私が自問する判断軸は、次の3つです。

  1. 議論の前提は今後も活きるか: 活きるなら /compact、活きないなら /clear。
  2. CLAUDE.md にプロジェクト前提が十分書かれているか: 書かれているなら /clear のリスクが下がります。書かれていないなら /compact の方が安全です。
  3. 同じ話題で 3 回以上ループしていないか: ループしているときは /clear の方が効きます。

3つ目の「ループ判定」は、自分のセッションを客観的に見るための問いです。私は最近、ループに入ったと感じたら一度離席して、戻ってきてから判断するようにしています。離席せずに延命すると、たいてい同じ場所をもう一周します。

トークン管理の観点から /compact の発火タイミングを最適化したい方は Claude Code のトークン使用量を可視化する — 利用上限の管理術 も合わせて読むと、/compact の出番がよりはっきり見えてきます。

CLAUDE.md と組み合わせる「自動再構築」テクニック

/clear を気軽に使えるようになるには、CLAUDE.md の質が決定的に重要です。私が実戦で効いていると感じている工夫はこの3つです。

  • 「現在進行中のタスク」セクションを CLAUDE.md に持たせる: 例えば ## 現在の作業ブランチ: feat/payment-v2 のように、その日の文脈を明示しておきます。/clear してもこの情報は失われません。
  • コーディング規約を「これは絶対」「これは推奨」で分ける: 絶対のルールが先頭にあると、Claude は /clear 直後でも迷わず守ります。
  • 過去の意思決定の記録を別ファイルに分けて参照させる: 例えば _decisions.md に重要な設計判断を残し、CLAUDE.md からリンクします。Claude は必要なときだけそれを開きます。

CLAUDE.md と長時間セッションの整合性については Claude Code の長時間セッションでコンテキストを健全に保つ方法 でも実例を交えて掘り下げています。


/clear と /compact は、どちらが正解ということはありません。今日の自分のセッションが「ノイズが溜まりすぎているか」「価値のある文脈が積み上がっているか」を見極めるだけです。次のセッションで迷ったら、この記事の3つの判断軸を一度だけ自問してみてください。判断にかかる時間が、ぐっと短くなるはずです。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⟐ Claude Code2026-05-02
Claude Code の Edit ツールで「old_string is not unique」エラーを止める実践的な書き換え戦略
Claude Code の Edit ツールで「old_string is not unique」が頻発するのは、編集ターゲットの一意性をプロンプト側で保証していないことが根本原因です。再発を防ぐ書き換え戦略を解説します。
⟐ Claude Code2026-05-02
Claude Code のステータスラインを自分好みに作り変える — モデル名・残コンテキスト・Git 状態を1行で見せる設定例
現在のモデル・残コンテキスト・Gitブランチを1行で確認できるClaude Codeのステータスライン設定例を紹介します。シェルスクリプトとNode.jsの両方の実装、エラーを握りつぶして会話を壊さない工夫、アスキーで描く残コンテキストバー、プロジェクトごとの表示切り替えまで扱います。
◉ Claude.ai2026-09-17
Claude の上限に当たる前にやめること — 5時間の区切りに合わせて一日を組み直す
Claude の使用量は5時間の区切りごとに回復しますが、その区切りは時計ではなく自分が送った最初の一通から始まります。上限に当たってから慌てないために、一日の順番をどう入れ替えたかを書き残します。