`~/.claude/rules/*.md` は CLAUDE.md に `@import` を書かなくても、Claude Code が
「user's private global instructions」として**毎ターン全文をシステムプロンプトに注入**する。
サブディレクトリ(`trends-archive/` 等)も対象。**置いてあるだけで毎回課金される場所**。
## 実測(shadow・2026-07-28)
最小プロンプト `claude -p "reply with OK only"` の入力が **160,464 トークン**に膨張していた。
各ディレクトリを一時 `mv` して切り分けた内訳:
| 要素 | トークン | 実体 |
|---|---|---|
| rules | 13,137 | 41本 336KB |
| skills の description | 7,118 | 137個 33,476字 |
| agents の description | 5,344 | 57個 |
| CLAUDE.md + RTK.md | 3,638 | 8.8KB |
| MCP(13サーバ) | 1,257 | 遅延ロード済み |
| Claude Code 本体+組込ツール | 約27,200 | **削れない床** |
整理後 **39,462 トークン(-75%)**。
## 誤解しやすい点
- **hook は犯人ではない**: memory_inject/route_layer_hint は各18B、session_context_inject は2.6KB
- **MCP も犯人ではない**: 13サーバでも1,257トークン。遅延ロードが効いている。
`--strict-mcp-config --mcp-config <空JSON>` で切り分けられる
- **`permissions.additionalDirectories` は注入設定ではない**(触ってよいディレクトリの許可リスト)
- **agents は「呼び出し時のみ読まれる」は誤り**。description が毎ターン載る。
「常時コンテキストを消費しないから削除の実益は薄い」という判断は間違い
- **CLAUDE.md は作業フォルダとその親を辿って読まれる**ので、遠いフォルダの CLAUDE.md を
何個消してもトークンは1も減らない(実例: 147個→16個にして削減0)
## 対処
`rules/` には「常時適用の行動規範」だけを置き、参照ドキュメントは `reference/` へ `mv` する
(reference/ は注入されない)。日本語は1文字≒1トークンなのでバイト数以上に重い。
instinct: ~/.claude/rules/ は import 不要で毎ターン全文注入される