原典: Explore the context window / 日本語版
一行要約
起動時点で何が 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・最近のコミットは別ブロックとして載る |
| 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 は編集のたびに発火し、
hookSpecificOutput.additionalContextで返したものが context に入る(prettier の例で 100〜120 トークン。exit 0 の素の stdout は入らない)。1万字を超える出力はファイルに保存され、Claude にはプレビューとファイルのパスが渡る
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 | ディスクから再注入される |
| Git の状態のスナップショット | リポジトリから新しく読み直される |
| plan モードで Claude が書いた plan | ディスクから再注入される |
paths: frontmatter を持つ rule | 一旦要約に飲まれる。マッチするファイルを Claude が読んだ時点で再ロードされる |
| サブディレクトリのネストした CLAUDE.md | 同上。そのディレクトリのファイルが読まれた時点で再ロードされる |
| Claude が読んだ・編集したファイル | 最大5本を再読する。更新が新しいものから |
| 起動したことのある skill の本体 | 再注入されるが、skill あたり 5,000 トークン、合計 25,000 トークンで打ち切り。古いものから捨てられる |
| skill の description 一覧 | 再注入されない。実際に起動した skill だけが保持される |
| バックグラウンドのコマンドと subagent | 走り続ける。重複して起動しないよう、まだ走っているものを Claude Code が Claude に知らせる |
| hook が以前に足した context | 会話の残りと一緒に要約される |
compact ソースにマッチする SessionStart hook | 実行され、その出力が compaction 後の context に足される |
再読の細かい挙動が1つある。
A file over 5,000 tokens comes back as a path reference without its content, shown as
Referenced fileinstead ofRead.5,000 トークンを超えるファイルは、内容なしのパス参照として戻る。表示は
ReadではなくReferenced fileになる。
ここから導かれる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 が埋まったときの5つの手
自動 compaction は走るのでセッションが終わることはない。自動パスは、タイムライン中の
/compact と同じやり方で動く。ただし自動任せにする前に打てる手がある。
| 手 | やり方 |
|---|---|
| 焦点を指定して compact する | /compact focus on the auth bug fix。自動パスが「重要そう」と推測するものではなく、自分が選んだものが残る |
| 会話の一部だけ compact する | /rewind でメッセージを選び、Summarize from here か Summarize up to here を選ぶ |
| 早めに 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 で動く。compaction は大きい上限でも同じように働く。
自動 compaction が走る位置はモデルと設定で変わる。 この原典はモデル別の境界と、
/autocompact の値や上書きの規則を settings ではなく model-config に委ねている。
ここで数字を推測しないこと。
自分のセッションを確認する
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 | 焦点を指定して要約する |
/rewind | Summarize from here / up to here を選ぶ |
/autocompact 500k | 自動 compaction の閾値を設定 |
/clear | 無関係な作業に移るとき |
!git status | シェル出力を context に入れる |
環境変数:
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 の理論
- sub-agents — subagent
- skills — skill の本体
- costs — トークン削減(原典の reduce-token-usage)
- model-config — 1M context の可用性、
/autocompactの値と上書き規則、モデル別の自動 compaction 境界