Claude Codeで会話を圧縮した後、以前伝えた制約を守らなくなったように見える場合は、その指示をどこへ置いたかと、圧縮後に何が読み込まれたかを確認します。指示ファイルが存在することだけで、すべての内容が今の会話へ入っているとは判断しません。
この記事は、Claude Codeの対話セッションで、CLAUDE.mdやパスごとのルールを使う場合の確認手順です。公式資料に基づく整理で、実際のClaude Code起動や圧縮は検証していません。ファイル配置と指示文は説明用の架空例です。SDKや各種連携の設定へ同じ手順を無条件に適用しません。
目次
指示の置き場所を、三つに分ける
まず、失われたように見える指示の原文と、置いた場所を確認します。会話で一度伝えただけか、プロジェクト全体の指示ファイルか、特定ディレクトリやファイルに適用する指示かを分けます。
表は横にスクロールできます
| 置き場所 | 確認すること | 早合点しないこと |
|---|---|---|
| 会話内だけ | 元の指示と、圧縮後の要約 | 重要な条件が同じ強さで残る |
| プロジェクトルートのCLAUDE.md | 起動場所、実ファイル、読込状況 | ファイルがあれば必ず厳密に守る |
| 下位CLAUDE.mdやパス付きルール | 対象ファイルと読込のきっかけ | 全ルールが起動時から常駐する |
公式のContext window資料は、圧縮後にプロジェクトルートのCLAUDE.mdとパス指定のないルールを再投入し、下位ディレクトリのCLAUDE.mdやpaths指定のルールは必要時に再読込すると説明しています。会話履歴を要約することと、すべての指示ファイルを一度に読み直すことは別です。Claude Code:Context window(新しいタブで開く)
起動時の一覧と、必要時の読込を区別する
起動場所を確認し、期待するルートの指示が起動時に読み込まれたかを見ます。現行の公式資料は、起動時に読み込んだCLAUDE.mdやルールを確認するには/contextを使い、ファイルの場所を探して開くには/memoryを使うと案内しています。
ただし、/memoryにはまだ存在しないファイルの候補も表示されます。その項目を選ぶと先にファイルが作られるため、診断では候補の一覧と実在・読込済みを混同しません。変更する意図がない段階で、候補を開いて新規ファイルを作る必要はありません。Claude Code:Memory — View and edit(新しいタブで開く)
下位のCLAUDE.mdは起動時一覧に出ない場合があります。公式は、そのディレクトリ内の別ファイルを読み書きした際に読み込む仕組みと、読込時のLoaded表示を説明しています。したがって、起動時一覧にないことだけで、その下位ファイルが永久に無視されるとは判断しません。
架空の配置で、圧縮後に確認するものを決める
次の構成で、リポジトリルートから開始したと想定します。
project/
CLAUDE.md
packages/
api/
CLAUDE.md
handler.ts
web/
page.ts
ルートのCLAUDE.mdには「生成済みファイルを直接編集しない」、apiのCLAUDE.mdには「APIの公開レスポンス形式を維持する」と書いたとします。これは実在のリポジトリの設定ではありません。
圧縮後にapiの作業へ戻るなら、ルート指示だけでなく、対象のhandler.tsに関係する下位指示が再び読み込まれたかを確認します。webのpage.tsを読んだことだけでは、api側の下位指示の適用を確認したことになりません。
依頼は、例えば次のように具体化できます。
まだファイルを変更しないでください。
対象はpackages/api/handler.tsです。
起動場所、今回参照した指示ファイルとその適用範囲を示してください。
生成済みファイルを編集しないこと、公開レスポンス形式を維持することが、
どの指示に書かれているか確認してください。
指示同士に矛盾や不足があれば、実装へ進む前に示してください。
回答にパスが出たら、実際のファイルと内容を照合します。Claudeが指示を説明できたことだけで、その後の編集結果まで適合したとは判断しません。差分で、変更禁止のファイルや公開形式を変えていないかを別に確認します。
共通指示と、局所の指示を整理する
毎回の作業で必要な共通制約が会話にしかないなら、チームの運用に沿って、プロジェクトの指示へ残すことを検討します。一方、特定パッケージの細則をすべてルートへ複製すると、別の作業にも不要な条件が入り、更新時に食い違う原因になります。
公式の大規模コードベース向けガイドは、全体のルールをルート、各領域の規則を下位のCLAUDE.mdへ分ける構成を紹介しています。Claude Code:Large codebases(新しいタブで開く)
今回の架空例なら、生成済みファイルへの共通制約はルート、APIレスポンスの詳細はapi側で管理する案です。実プロジェクトでは既存の管理方法を先に確認し、指示の所有者や変更権限が不明なまま共有ファイルを書き換えません。
指示を移す場合も、古い文を残したまま別の場所へ違う条件を書き足さないようにします。「常に整える」より「既存のレスポンスのキーと型を維持する」のように、差分で確認できる表現へ直します。読み込まれたのに守られない場合は、未読だけでなく、曖昧さや矛盾も調べます。
読込と、実行結果の適合を別々に記録する
診断の結果には、利用版、起動場所、圧縮の前後、対象ファイル、期待する指示、実際の読込状況を残します。再現していない推測は、原因確定と書かず候補として扱ってください。
表は横にスクロールできます
| 確認段階 | 残す証拠 |
|---|---|
| 指示の所在 | 実ファイルの場所と該当文 |
| 起動時の読込 | /contextで確認した対象 |
| 必要時の読込 | 対象ファイルとの関係、読込表示 |
| 内容の整合 | 共通指示と局所指示の矛盾の有無 |
| 編集結果 | 対象差分と必要な検証結果 |
Claude Codeの公式資料は、CLAUDE.mdを強制設定ではなく文脈として扱い、厳密な遵守を保証しないと説明しています。重要な制約は指示文だけで守れたと見なさず、既存の権限設定、CI、レビューなど、プロジェクトの制御と検証で確かめます。この記事は、それらの設定を変更する手順ではありません。
「圧縮で全部忘れた」と一括りにする前に、会話だけの情報、再投入される共通指示、対象作業で再読込される局所指示を分けます。どの境界で情報が欠けたかを確認してから、必要な場所だけを直すと、ルールの重複や無関係な設定変更を増やさずに済みます。
参考資料
- Claude Code:How Claude remembers your project(新しいタブで開く)
- Claude Code:Explore the context window(新しいタブで開く)
- Claude Code:Set up Claude Code in a monorepo or large codebase(新しいタブで開く)
公式資料の確認日:2026年10月23日。利用版や実行環境による差は、対象セッションの表示と現行資料で確認してください。
