創刊準備号 · 2026年秋English · RSS
AgentKoji

CLAUDE.mdは削るほど効く

199行のCLAUDE.mdを114行に、120行を52行に削った。モデルが替わるたびに、足場は負債になる。何を残し、何を消したかを書く。

編集部の CLAUDE.md は、全体用が199行、あるプロジェクト用が120行ありました。新しい世代のモデルに替えたのをきっかけに、それぞれ114行と52行に削りました。この記事では、削った基準と、削ったあとに足した仕組みを書きます。

公式の目安は200行以下

Claude Code の公式ドキュメントは、CLAUDE.md を1ファイル200行以下にするよう勧めています。長いファイルは文脈を多く使い、指示に従う度合いを下げる、という理由です(出典:https://code.claude.com/docs/en/memory 、2026-10-16確認)。

この200行は CLAUDE.md の目安です。auto memory の索引 MEMORY.md には、先頭200行か25KBまでしか読まれないという別の上限があります。こちらの設計は「エージェントのメモリ設計」にまとめました。

もう1つ、見落としやすい点があります。@path で別ファイルを読み込んでも、読み込んだファイルは起動時にすべて読まれます。整理はできますが、文脈の量は減りません(同出典)。

手元の行数は、こうして数えます。

wc -l ~/.claude/CLAUDE.md ./CLAUDE.md ./.claude/rules/*.md 2>/dev/null

消したもの

モデルの世代が上がると、昔の弱点を補うために書いた指示が、逆に邪魔になります。編集部が消したのは、次の3種類です。

公式ドキュメントでも、/doctor の点検は、構成図や依存の一覧のようにコードから分かる内容を削る提案をする、とされています(同出典)。

新しく書く指示には、ゴールと制約だけを書くことにしました。モデル名や effort の値は焼き込みません。次の世代で、また負債になるからです。

残したもの

加えて、「提案しないこと」を書いた行を残しています。過去に却下した案を、新しいセッションが何度も持ち出すのを防ぐためです。

守らせたいことは hook に移す

公式ドキュメントは、CLAUDE.md を「強制される設定ではなく文脈」と説明しています。必ず止めたい操作は PreToolUse hook で止めるように案内しています(同出典)。

編集部では、Git の破壊的な操作は確認を求め、コミットの形式違反は拒否する hook を入れました。CLAUDE.md の該当部分は、「機構を参照」の1行になりました。

ただし、hook も測らないと穴があきます。メモリへの書き込みを見張る hook が、Write と Edit だけを対象にしていました。30日分を数えたら、77件が素通りしていました。auto mode では、操作の約85%が Bash 経由だったからです。matcher は、想像ではなく実際の呼び出しの記録から決めます。

hook の書き方と、素通りを測った結果は「Claude Code hooks実践」にまとめました。

常時読まれる説明文も削る

CLAUDE.md の外にも、毎回読み込まれる文章があります。skill の description です。

使われていない skill は、手動で呼んだときだけ読まれる設定に落とします。何が使われていないかは、感覚ではなく、直近の呼び出しの記録を数えて決めます。

公式ドキュメントも、特定の作業にしか使わない手順は CLAUDE.md から skill に移すよう勧めています。skill は必要なときだけ読み込まれるからです(出典:https://code.claude.com/docs/en/costs 、2026-10-16確認)。

MCP サーバーが文脈に与える負担は「MCPサーバー入門と設計の5原則」で扱っています。

点検はコマンドで

公式ドキュメントによると、/doctor prompt-audit は、古いモデル向けの指示、存在しないファイルへの参照、ファイル同士の矛盾を探して、修正案を出します。ファイルは、頼むまで書き換えません。v2.1.283 以降が必要です(出典:https://code.claude.com/docs/en/memory 、2026-10-16確認)。編集部の検証環境に入れた版は 2.1.301 でした(claude --version、2026-10-16)。

失敗のあとに何を書き足すか(撤退条件・再開条件の残し方)は、「同じ修正を3回させない」にまとめました。

まとめ