「CLAUDE.md が200行を超えると Claude Code が指示を無視し始める」——そういう話を note.com で読んだ。ソースは単一記事で、数値の根拠は書かれていなかった。
信じるか無視するか迷ったが、どちらも腑に落ちない。ならば自分のリポジトリで確かめる方が早い。
結論
行数そのものが問題ではなかった。効いているのは「構造・密度・位置」の3軸だった。
ただし「200行で必ず壊れる」という断定は自分の観察では確認できなかった。現時点の masatoman.net CLAUDE.md は114行で動いており、問題のある指示すり抜けは行数でなく書き方に起因していた。
前提(自分の環境)
| リポジトリ | CLAUDE.md 行数 | 用途 |
|---|---|---|
| masatoman.net | 114行 | 最複雑。戦略・記事ルール・禁止パターン混在 |
| sns-automation | 58行 | SNS 自動化。コマンド・環境変数が主 |
| Qiita | 11行 | 投稿管理のみ。最小構成 |
| zenn | 13行 | 投稿管理のみ。最小構成 |
「200行実験」と書いたが、正確には「現行ファイルで何が起きているかを観察し、行数と指示効果の関係を推論した」が正しい。数値化した遵守率は計測していない。
実際に起きたこと
masatoman.net CLAUDE.md 114行での傾向
通りやすかった指示:
- ファイル冒頭に書いたコマンド一覧(
npm run dev等) - 「禁止」と明示してある短いルール(「絵文字を使わない」「既存ファイルを優先」)
- 構造がリスト形式になっている箇条書き
通りにくかった指示:
- 「書く前の自問(5つ全部 Yes でないと書かない)」のような複合条件
- 2段落以上の説明文の中に埋めた禁止事項
- ファイル後半(80行以降)にある「〜する場合は〜せよ」型の条件分岐ルール
sns-automation の CLAUDE.md(58行)は逆に問題が少ない。ほぼコマンドと環境変数の列挙であり、Claude が迷う余地がない書き方になっている。
「消える」のは行数の問題ではなかった
行数を減らせば解決すると思っていたが、試しに後半のルールをいくつか前に移動させると通りやすくなった。行数に変化はない。
位置(ファイル内のどこにあるか)と形式(リスト vs. 説明文)の方が行数より影響が大きい。
原因分析
Claude Code が CLAUDE.md を読むとき、ファイル全体を均等に重み付けしているわけではないと推測できる。冒頭に近い・箇条書きになっている・明示的な命令形で書かれているルールほど、セッション中に参照されやすい。
「200行で壊れる」説がなぜ出てきたかを推測すると:
- 200行になるタイミングで、ファイルが複雑化(複合条件・長い説明文が増える)しやすい
- 行数と複雑度が相関しているため「行数が原因」と見えた可能性がある
- 単一ソースが広まったが、一次検証がないまま定説化した
判断基準: CLAUDE.md を評価する3軸
① 密度(1ルールあたりの行数)
- ルール1件が3行以内に収まっているか
- 説明文が長いなら、「なぜ」を消して「何をするか」だけにできないか
② 構造(リスト vs. 説明文の比率)
- 重要なルールほど箇条書きにされているか
- 物語調の長い段落は Claude がスキャンして終わりやすい
③ 位置(ファイル内の優先度配置)
- 最も守らせたいルールがファイル冒頭にあるか
- コマンド一覧・禁止パターンは前半、背景説明は後半でいい
この3軸が整っていれば、100行でも200行でも「指示が消える」現象は減らせると考えている。
今日やること
-
wc -l CLAUDE.mdで行数と構造を確認する - 後半に埋まっている禁止事項を前半のリストに移動する
- 複合条件ルールを箇条書きに分解する
AI ツールを業務に組み込む設計の実験ログを書いています。 https://masatoman.net