一行要約
起動時点で何が context に入り、作業中に何が足され、compaction で何が生き残り何が失われるかを1本のタイムラインとして示した文書で、実務上の核心は「paths: 付き rule とネストした CLAUDE.md は compaction で消える」という一点。
要点
起動時にロードされるもの(代表値)
タイプする前に context に載っているもの。合計おおよそ 7,850 トークン(context window は 200,000 トークンの想定)。
| ロードされるもの | 代表トークン数 | 内容 |
|---|---|---|
| System prompt | 4,200 | 振る舞い・ツール使用・応答形式の中核指示。常に最初。ユーザーからは見えない |
Auto memory (MEMORY.md) | 680 | 過去セッションで Claude が自分に残したメモ。先頭 200行 または 25KB のうち先に達したほう |
| Environment info | 280 | 作業ディレクトリ、プラットフォーム、シェル、OS バージョン、git リポジトリか否か。git のブランチ・status・最近のコミットは system prompt の最後尾に別ブロックとして載る |
| MCP tools(遅延) | 120 | ツール名だけ。完全なスキーマは遅延され、必要時に tool search で読む |
| Skill descriptions | 450 | 使える skill の1行説明。本体は実際に使うときだけロード |
~/.claude/CLAUDE.md | 320 | 全プロジェクト共通の個人設定 |
| Project CLAUDE.md | 1,800 | プロジェクト規約、ビルドコマンド、アーキテクチャ |
Project CLAUDE.md: The most important file you can create. tip: Keep it under 200 lines. Move reference content to skills or path-scoped rules so it only loads when needed. プロジェクトの CLAUDE.md: 作れるファイルの中で最も重要なもの。ヒント: 200行未満に保て。参照用の内容は skill か path スコープの rule へ移し、必要なときだけロードされるようにせよ。
出力スタイルや --append-system-prompt のテキストも、同じく system prompt に入る。
MCP の挙動を変える環境変数:
| 設定 | 挙動 |
|---|---|
| (既定) | ツール名のみ。スキーマは tool search で必要時に取得 |
ENABLE_TOOL_SEARCH=auto | context window の 10% に収まるならスキーマを先読みする |
ENABLE_TOOL_SEARCH=false | 全部先読みする |
作業中に足されるもの
- ファイルを読むたびにその内容が加算される
- path-scoped rule は、マッチするファイルが読まれたタイミングで自動的にロードされる(例:
api-conventions.md380 トークン、testing.md290 トークン) - PostToolUse hook は編集のたびに発火し、その出力が context に入る(prettier の例で 100〜120 トークン)
subagent による節約(数字で見る)
タイムラインの subagent は session.ts(2,200)、timeouts.ts(800)、config/*.ts(3,100)を読む。
The subagent read 6,100 tokens of files. You got a 420-token result. That’s the context savings. subagent は 6,100 トークン分のファイルを読んだ。あなたが受け取ったのは 420 トークンの結果である。これが context の節約分だ。
メイン context に返るのは最終テキスト応答 420 トークンと、トークン数・所要時間の小さなメタデータだけ。
subagent が持つツールについての注記も重要:
It gets most of the parent’s tools, minus several that don’t apply in a nested context, including plan-mode controls, background-task tools, and by default the Agent tool itself to prevent recursion. subagent は親のツールの大半を受け継ぐ。ただし入れ子の文脈では意味をなさないいくつかは除かれる。plan モードの制御、バックグラウンドタスクのツール、そして再帰を防ぐため、既定では Agent ツール自体である。
compaction で何が生き残るか(最重要の表)
| 機構 | compaction 後 |
|---|---|
| system prompt と output style | 変わらない(メッセージ履歴の一部ではないため) |
プロジェクトルートの CLAUDE.md、paths なしの rule | ディスクから再注入される |
| auto memory | ディスクから再注入される |
paths: frontmatter を持つ rule | 失われる。該当ファイルが再度読まれるまで戻らない |
| サブディレクトリのネストした CLAUDE.md | 失われる。そのディレクトリのファイルが再度読まれるまで戻らない |
| 起動したことのある skill の本体 | 再注入されるが、skill あたり 5,000 トークン、合計 25,000 トークンで打ち切り。古いものから捨てられる |
| skill の description 一覧 | 再注入されない。実際に起動した skill だけが保持される |
| hooks | 該当なし(hook は context ではなくコードとして走る) |
ここから導かれる2つの実務ルール:
-
If a rule must persist across compaction, drop the
paths:frontmatter or move it to the project-root CLAUDE.md. -
Truncation keeps the start of the file, so put the most important instructions near the top of
SKILL.md.
なお v2.1.198 以降、要約リクエストはセッションの extended thinking 設定を継承する。thinking は要約の作られ方にだけ影響し、セッション設定は変わらない。
context が埋まったときの4つの手
自動 compaction は走るのでセッションが終わることはない。ただし自動任せにする前に打てる手がある。
| 手 | やり方 |
|---|---|
| 焦点を指定して compact する | /compact focus on the auth bug fix。自動パスが「重要そう」と推測するものではなく、自分が選んだものが残る |
| 早めに compact する | /autocompact 500k で、どこまで埋まったら自動パスが走るかを設定する |
| タスク間で clear する | 無関係な作業に移るとき /clear。古い会話は次に必要なファイルを押し出し、毎メッセージでトークンを食う |
| 大きな読み込みを委譲する | subagent に調査を投げ、ファイル内容をそちらの context に留める |
より大きな window が欲しい場合: Fable 5、Sonnet 5、Opus 4.6 以降、Sonnet 4.6 が 1M トークン context window に対応する。Sonnet 5 は [1m] バリアントを選ばずに 1M で動く。
auto-compact window の設定(3箇所、優先順位あり)
| 設定場所 | 挙動 |
|---|---|
/autocompact 500k | user settings の autoCompactWindow に保存し、現セッションにも適用。managed settings など上位スコープが設定していると、保存はされるがセッションはそちらの値を使う(コマンドがその旨を伝える)。/autocompact auto でモデル既定に戻す |
--autocompact フラグ | その起動のみ。保存値を変えずに上書きする。/autocompact と違い、上位スコープに横取りされない |
CLAUDE_CODE_AUTO_COMPACT_WINDOW | 最優先。設定されている間はコマンド・フラグ・設定すべてに優先する |
受け付ける値は 100K〜1M トークン。書式は 200000 / 500k / 1M / 200(100〜1000 の裸の数字は千単位)。環境変数は素のトークン数のみ。
何も設定しない場合はモデルの context 上限で compaction するが、次は早めに走る。
- cloud セッション — モデル上限に近づいた時点
- extended context なしの Sonnet 4.6 / Opus 4.6、および 200K context で動く Opus 4.8 / Opus 5(Amazon Bedrock、Google Cloud Agent Platform、Microsoft Foundry など) — 200K 境界
- Sonnet 5 — モデル既定の閾値
自分のセッションを確認する
The visualization uses representative numbers. この可視化には代表的な数値を使っている。
実際の消費は /context でカテゴリ別に見られる(最適化の提案付き、どの CLAUDE.md と auto memory がロードされたかも含む)。/memory でそれらのファイルを開いて編集できる。
その他タイムラインに出てくる操作
!git status—!接頭辞でシェルコマンドを実行すると、コマンドとその出力の両方が自分のメッセージの一部として context に入る。Claude に実行させずにコマンド出力で接地させたいときに有用disable-model-invocation: trueの skill — 起動時の skill index に description が載らないので、呼ぶ瞬間まで context コストがゼロ
Set
disable-model-invocation: trueon skills with side effects like committing, deploying, or sending messages. They stay out of context entirely until you need them. コミット、デプロイ、メッセージ送信のように副作用のある skill にはdisable-model-invocation: trueを設定せよ。必要になるまで、それらは context に一切入らない。
そのまま使える具体例
context を能動的に管理するコマンド:
/context 現在の消費をカテゴリ別に見る
/memory ロードされた memory ファイルを開く
/compact focus on the auth bug fix 焦点を指定して要約する
/autocompact 500k 自動 compaction の閾値を設定
/autocompact auto モデル既定に戻す
/clear 無関係な作業に移るとき
!git status シェル出力を context に入れる起動フラグと環境変数:
claude --autocompact 500k # この起動だけ。上位スコープに横取りされない
claude --autocompact auto # 保存値があってもモデル既定で走らせる
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=500000 # 最優先。素のトークン数のみ
export ENABLE_TOOL_SEARCH=auto # MCP スキーマを 10% 以内なら先読みcompaction を跨いで残したい rule は paths: を外す:
---
paths:
- "src/api/**/*.ts" # ← これがあると compaction で失われる
---副作用のある skill を context から隠す:
---
name: commit-push
description: Stages, commits, and pushes changes.
disable-model-invocation: true
---原典で言及されている関連文書
- memory — CLAUDE.md の階層と auto memory、path-specific rules
- how-claude-code-works — 「context が埋まったとき」に何が保持されるか
- features-overview — CLAUDE.md / skills / rules / hooks / MCP の使い分け
- claude-code-best-practices — context を主要な制約として扱う運用
- effective-context-engineering-for-ai-agents — compaction と note-taking の理論
未取得の派生リンク
- https://code.claude.com/docs/en/sub-agents — subagent
- https://code.claude.com/docs/en/skills — skill の本体
- https://code.claude.com/docs/en/prompt-caching — どの操作がキャッシュ前置を無効化するか
- https://code.claude.com/docs/en/costs#reduce-token-usage — トークン削減
- https://code.claude.com/docs/en/model-config#extended-context — 1M context の可用性
- https://code.claude.com/docs/en/output-styles — output style
- https://code.claude.com/docs/en/interactive-mode#bash-mode-with-prefix —
!プレフィックス