claude-code-context-management-memo-2026-05
公開日: 2026.05.22  | 更新日: 2026.05.22

Claude Codeのコンテキスト管理について(2026年5月)

今回は、Claude Codeのコンテキスト管理を2026年5月時点の仕様についての備忘録です。なお、初っ端から免責で恐縮ですが、この記事の情報が正しいかどうか、最新かどうかはご自身で判断をお願いします。

基本的に、AIに直接聞けばこの手の最新情報はすぐに取得できるのと、この工程をSKILLSに組み込んで自律的に最適化する方法で更新される場合がありますが、このブログではその変化も含めて筆者の趣味でスクラップしているものになりますので、その点ご了承ください。

4月時点で同じテーマの記事を書きましたが、この1~2ヶ月でOpus 4.7のリリース、自動メモリ機能の標準化、スキルとサブエージェントの役割整理、プロンプトキャッシュのTTL変更など、運用に関わる変更がいくつか入りました。

前回記事と内容が一部重複しますが、現時点での品質基準と判断ルールを体系立ててまとめ直したものです。あくまで筆者の環境(macOS 26.3.x)での運用に基づく内容のため、お使いの環境やバージョンによって異なる場合があります。

この記事のターゲット

  • 4月時点の記事を読んだうえで使い方のヒントを得たい方

  • Claude Codeの応答品質を安定させる運用基準を整理したい方

  • 自動メモリ・スキル・サブエージェントなど機能の使い分けを知りたい方


コンテキストウィンドウの新しい運用基準

Claude Codeのコンテキストウィンドウにはメッセージだけでなく、Claudeが読み込んだファイルの中身、コマンドの出力、システムプロンプト、CLAUDE.md、MCPツールの定義、これらすべてが入ります。

コンテキストが埋まるほど応答品質は下がります。 現時点では、2026年4月16日にGAとなったOpus 4.7が1Mトークンのコンテキストウィンドウに対応しています(最大出力は128Kトークン)。長尺コンテキストでも追加プレミアム料金は発生しません。1M対応のSonnet 4.6と並んで、長期的な作業を1セッション内で扱える幅が広がりました。

自動圧縮(auto-compaction)の発動閾値は、Anthropic公式のクックブックに記載のあるとおり、使用率83.5%です。200Kウィンドウなら約167Kトークン、残り約33Kがバッファとして確保される計算になります。ここまで放置すると圧縮の質が下がるため、能動的に動くほうが結果が安定します。実運用での目安は次のとおりです。

使用率

推奨アクション

0〜50%

通常作業

50〜70%

区切りのよいタイミングで /compact を検討

70〜83%

カスタム指示付きで /compact を実行

83%以上

自動圧縮の前に進捗を .md に書き出して /clear

/compact

/compact には残してほしい情報を指定できます。たとえば /compact 認証モジュールと現在のテスト失敗に集中 のように書くと、関係ない情報を省いて要約してくれます。

4月版では「85〜95%で /compact」と書きましたが、自動圧縮の発動が83.5%だと分かった以上、その前に手動で動くほうが情報の取捨を自分でコントロールできる、というのが体感としての改善点です。

/context

/context は今どのくらい使っているかの内訳を表示します。システムプロンプト、システムツール、カスタムエージェント、メモリーファイル、スキル、メッセージ、空き、自動圧縮バッファ、それぞれが何トークン使っているかを確認できるので、削れる部分の見極めに役立ちます。

自動メモリ(auto memory)が標準化した

Claude Codeは現在、永続的なメモリを ~/.claude/projects/<project>/memory/ に保存します。

会話をまたいで参照されるため、ユーザーの好みやプロジェクト固有の決定を覚えてもらえます。 公式に明文化されている仕様として、MEMORY.md がインデックスファイルになっており、会話開始時に最初の200行または25KBまで(先に達した方)が自動で読み込まれます。

この制約があるため、MEMORY.md 自体は簡潔なインデックスに留め、詳細はトピックごとの個別ファイル(debugging.mdapi-conventions.md のような)に分散させるのが基本です。 実装上、メモリは用途別に何種類かに分類して運用されます。Anthropicが提供する自動メモリの実装では、次のような分類が使われています。

  • user

    • ユーザーの役割・好み・知識レベルなど

  • feedback

    • 過去の指摘から学んだルール(やってほしくないこと、やってほしいこと)

  • project

    • プロジェクト固有の決定・締め切り・関係者など、コードからは読み取れない文脈

  • reference

    • 外部システム(LinearやSlackなど)へのポインタ

逆に、メモリに保存すべきでない情報もあります。例えば、コードを読めば分かること、git loggit blame で取れること、CLAUDE.mdに書いてあること、その会話だけの一時的な状態などはメモリから除外します。

永続メモリの肥大化は、起動時のコンテキスト消費に直結するためです。 ポイントとして、相対日付は絶対日付に変換して保存します。「昨日決めた」ではなく「2026-05-05に決定」と書いておくと、時間が経った後でも判断材料として残ります。

CLAUDE.mdの階層構造とDynamic Context Priming

CLAUDE.mdは複数のスコープで階層的に読み込まれます。現時点での構成は次のとおりです。

スコープ

場所

用途

組織管理ポリシー

/Library/Application Support/ClaudeCode/CLAUDE.md(macOS)

全ユーザー共通

プロジェクト共有

./CLAUDE.md または./.claude/CLAUDE.md

チームで共有するルール

ユーザー全体

~/.claude/CLAUDE.md

個人の全プロジェクト共通

ローカル個人

./CLAUDE.local.md.gitignore 推奨)

個人かつこのプロジェクト限定

CLAUDE.md内で @path/to/file と書くと、そのファイルの内容を展開できます。共通の文体ルールやコーディング規約を別ファイルに切り出して再利用する運用に向きます。

ネストされたCLAUDE.md(サブディレクトリ配下のもの)は、関連ファイルが参照されたタイミングでオンデマンドに読み込まれます。常に全部読まれるわけではないため、コンテキストを節約しながらモジュール固有のルールを当てられます。サブディレクトリにCLAUDE.mdを置いておくと、そのディレクトリ内のファイルを @ 参照しただけで関連ルールが自動的に適用される、というのがDynamic Context Primingの基本です。

@ でファイル参照する際の操作は3月時点と同じです。Tabキーで補完、@file.ts:15-30 のように行範囲を指定可能、Shiftを押しながらドラッグ&ドロップでも追加できます。Claudeに自力で探させるよりトークン効率がよい、という基本方針も変わりません。

スキル、サブエージェント、コマンドの使い分け

.claude/commands/ は後方互換のために残っていますが、新規はスキル(.claude/skills/)で実装するのが推奨されています。両者が同じコマンド名を作成した場合はスキル側が優先されます。

スキルとサブエージェント(Taskツール)の使い分け基準は次のように整理できます。

スキル

サブエージェント

コンテキスト

メイン会話に注入

独立した別コンテキスト

仕事量

小規模・定型ワークフロー

大規模・探索的

結果の可視性

会話に残る

要約レポートのみ受け取る

並列実行

不可

可能(複数同時に起動可)

トリガー

descriptionで自動 or /slash

親から明示的に委譲

調査や広範囲の探索のように、メインの会話を汚したくない仕事はサブエージェントに委任します。組み込みのサブエージェントタイプには Explore(読み取り専用の探索、Haikuで実行)、Plan(コンテキスト解析後に戦略を提示)、general-purpose(探索と修正の両方に対応)があり、用途で選びます。広範な検索が3クエリ以上必要なら Explore を選ぶ、というのが実運用の目安です。

複数セッションを協調させるAgent Teamsも実験的に使えるようになりました。共有タスクリストとピアツーピアメッセージングで複数のClaudeを並列に動かす形ですが、まだ試験段階のため、デフォルト構成で必要になることは少ないと思います。

スキル(SKILL.md)の記述ルールと制約

スキルを自作するときに把握しておくべき具体的な制約をまとめます。これは公式ドキュメントの「Skill authoring best practices」に準拠した内容です。

サイズ・命名の上限

  • SKILL.md本体

    • 500行以下が推奨。これを超える場合は references/scripts/ に分割する

  • description フィールド

    • 上限1,024文字

  • description + when_to_use の合算

    • 1,536文字以内に収める

  • name フィールド

    • 64文字以下、小文字・ハイフン・数字のみ

    • anthropic claude などの予約語は使用不可

これらの上限は、複数スキルの description が起動時に常時ロードされる仕様に由来します。description の合算がコンテキストの約1%(デフォルト8,000文字)に収まるよう設計されているため、1スキルあたりの制限が定められている、という背景です。

コンテキストへの読み込み(Progressive Disclosure)

スキルは段階的にコンテキストに読み込まれます。

  1. 起動時:全スキルの descriptionwhen_to_use のみが事前ロード

  2. 呼び出し時:SKILL.md本体が1回だけ注入され、以降そのまま会話に残る

  3. 参照ファイル読み込み時:SKILL.md内のリンク([ref.md](ref.md))をClaudeが読みに行ったときだけロード

  4. スクリプト実行:スクリプト本体はロードされず、実行結果のみがコンテキストに入る

つまり、参照ファイルやスクリプトは使われた分だけコンテキストを消費します。読み込まれない参照ファイルは0トークン、スクリプトの中身は何行あっても0トークン、という設計です。詳細な手順書や辞書は外部ファイルに切り出しておくのが効率的です。

frontmatterで使える主なフィールド

フィールド

用途

name

スキル名(必須相当、省略時はディレクトリ名)

description

自動トリガーの判定信号(必須)

when_to_use

descriptionの補足。「いつ呼ぶか」を具体的に

disable-model-invocation

true/slash 手動呼び出しのみに限定

allowed-tools

スキル内で使えるツールを限定(例: Bash(git *) Read

context: fork

サブエージェントとして独立コンテキストで実行

agent

context: fork 時の subagent タイプ

model

このスキルの実行時だけ別モデルを使う

effort

推論量を low / medium / high / xhigh などで指定

paths

パターンマッチで自動トリガー条件を限定

破壊的な操作(デプロイ、外部API呼び出しなど)を含むスキルは disable-model-invocation: true を必ず付けて、明示的な /slash 呼び出しでしか起動しないようにします。これは公式が推奨している運用です。

descriptionの書き方

descriptionは「自動トリガーの唯一の信号」と公式ドキュメントに明記されています。書き方の基本は次のとおりです。

  • 三人称で書く

    • 「Processes Excel files...」のような書き方

    • 「I help you...」「You can use...」は避ける

  • キーワード優先

    • 最初の句に「何ができるか」「いつ使うか」を両立させる

  • 具体例を入れる

    • 「PDF」「フォーム」「マージ」のような呼び出されたいキーワードを盛り込む

    • 例として公式ドキュメントには次のような記述があります。

      • 「Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.」

Plan ModeとAdaptive Thinking

Plan Modeは、編集を伴わない計画立案モードです。複数ファイルにまたがる変更や、設計が固まっていない作業の前に使うと、いきなりコードを書き始める失敗を防げます。逆に、単一ファイルの修正やバグの一行修正にはPlan Modeは過剰です。

Opus 4.7はAdaptive Thinkingのみが有効で、Opus 4.6以前にあったextended thinking budgets(事前に思考予算を割り当てる方式)は削除されています。Adaptive Thinkingは問題の難しさに応じて思考量を自動調整する方式で、API側で thinking: {"type": "adaptive"} を指定して有効化します。

Claude Code内でも明示的に深い思考を求めたいときは、引き続き ultrathink が利用可能です。2026年3月に再導入されて以降、現時点でも有効なキーワードとして残っています。 難しい設計判断のときには ultrathink を、軽い修正なら何も指定せず標準動作に任せる、という使い分けは現在も通用します。

Document & Clearパターンと大規模タスクの分解

会話に収まりきらない大きな作業の進め方は、3月版から方向性は変わりません。途中で進捗を .md ファイルに書き出し、/clear でリセットしてから新しいセッションでそのファイルを @ 参照する。このDocument & Clearパターンは5月時点でも有効です。 公式に推奨されている4フェーズの流れもおさらいしておきます。

  1. Explore:ファイルを読ませる。「コードはまだ書かなくていい」と伝える

  2. Plan:実装の計画を立てさせる

  3. Code:計画のうち1〜2項目ずつ実装

  4. Commit:コミットしてドキュメントを更新し、/clear でリセット

1回のセッションで使うコンテキストは50%以内に収まるように分割する、という目安も維持しています。/resume でのセッション再開は4月のアップデートで高速化されたため、長期作業で意図的にセッションを切る運用がやりやすくなりました。

ファイル除外とセキュリティの再整理

3月版では「.claudeignore は公式にサポートされていない」と書きました。5月時点では、対応自体は一部入ったものの、実運用では信頼できない状態です。.claudeignore で除外したはずのファイルが読み込まれた、という報告が2026年1月以降に複数あります。 機密ファイルへのアクセスを確実に遮断したい場合は、settings.jsonpermissions.deny で明示的にブロックします。3月版で紹介した記述に加え、絶対パス指定を推奨する流れになっています。

絶対パス指定の場合は // から始めるのがポイントです。permissions.deny に書いた設定は他の許可設定で上書きできないため、確実な防御策になります。シリーズ記事1で説明している settings.json の5スコープと同じ仕組みです。 機密ファイルが多いリポジトリでは、サンドボックス機能(sandbox.enabled: true)でOSレベルの隔離を併用する選択肢もあります。

自動化機能:/loopと/schedule

3月版にはなかった項目として、定期実行・スケジュール実行の機能があります。

  • /loop コマンド: 同じプロンプトを定期的に繰り返し実行。間隔は秒(s)・分(m)・時間(h)・日(d)で指定でき、再帰的タスクは作成から7日後に自動的に期限切れになる

  • /schedule コマンド: クラウドで動くRoutines(GitHubトリガーや定期実行など)を登録。セッション内の一回限りリマインダーは自然言語で「3時に〜してほしい」と指示する形でも登録できる

/loop 5m のように間隔を指定すると、その間隔でプロンプトが再実行されます。デプロイの監視、定期監査、長時間ビルドの完了通知などに使えます。

注意点として、AnthropicのプロンプトキャッシュのデフォルトTTLは5分です。これは2026年3月の仕様変更で1時間から5分に短縮された値で、現状もデフォルトのままです。1時間TTLの拡張キャッシュは追加料金(書き込みは2倍、読み込みは0.1倍)で利用できます。

/loop の間隔を5分前後にすると、毎回キャッシュミスでフルコンテキストを読み直すことになりやすいので、短時間で確認したいなら4分以内、長めに待つなら20〜30分以上、というのが実用的な目安です。

まとめ

3月時点と比べて、コンテキスト管理の運用基準そのものが少しずつ変わってきています。今回の整理で押さえておきたいポイントは次の4つです。

  • 自動圧縮の発動閾値(83.5%)を意識し、その前に手動で /compact または /clear を入れる習慣をつける

  • 自動メモリが標準化し、MEMORY.md の200行・25KB制限を踏まえたインデックス運用が前提になった

  • スキル機能には descriptionの1,024文字、SKILL.md本体500行といった具体的な上限があり、参照ファイルやスクリプトに分割する設計が前提

  • .claudeignore への過信は禁物で、permissions.deny// 始まりの絶対パス指定による明示的な遮断が現実的

コンテキスト管理は依然として、Claude Codeの運用で最も効果の出やすい改善ポイントです。/clear/compact を習慣にし、メモリーとCLAUDE.mdを階層的に整理する運用が、応答品質の安定に効いてきます。本記事の内容も、ぜひ日々の運用に取り入れてみてください。

参考


これまでの記事

claude-code-context-management-memo-2026-04

Claude Codeのコンテキスト管理について(2026年4月)

今回は、Claude Codeを使う中で個人的に整理した情報の渡し方などのコンテキスト管理についての備忘録です。 ... 続きを読む

vscode-claude-code-settings-memo-2026-03

VS CodeとClaude Codeの設定メモ(2026年3月)

Claude CodeをVSCodeで使うときに出てくる設定方法と、設定ファイルの使い分けについての備忘録です。 ... 続きを読む

claude-code-harness-engineering-memo-2026-04

Claude Codeのハーネスエンジニアリングに関する備忘録(2026年4月)

今回は、最近よく話題に上がるハーネスエンジニアリング(Harness Engineering)の考え方と、Claude Codeの設定を見直す際の観点を整理して備忘録として残したものです。 ... 続きを読む

claude-code-hooks-settings-memo-2026-04

Claude CodeのHooksの使い方メモ(2026年4月)

今回は、Mac(macOS 26.3.1)でのClaude Codeで使えるHooks(フック)の設定方法と使い方を整理します。 ... 続きを読む

梅雨入りが見えてくると、在宅ワークの環境を見直したくなる季節がやってきます。当サイトのオーナーが、ここ数年の在宅運用で「夏を爽やかに乗り切るために実際に効いた」と感じる定番アイテムと、今年新しく加えて手応えのあったアイテムをまとめておきます。

最新の記事を見る
広告
この記事を書いた人
うえんつ
B2B領域のSaaS・アプリケーション開発などを組織で取り組むことが得意なプロダクトデザイナーで、このブログのオーナーです。
今の関心事
Figma・UIデザイン・UXリサーチ・QOL・旅行
梅雨入りが見えてくると、在宅ワークの環境を見直したくなる季節がやってきます。当サイトのオーナーが、ここ数年の在宅運用で「夏を爽やかに乗り切るために実際に効いた」と感じる定番アイテムと、今年新しく加えて手応えのあったアイテムをまとめておきます。
広告