Qiita で「重要な指示は最初か最後か?」という記事を読みました。資料の文中に埋めた指示は、Claude ではほとんど守られなかったそうです。
では、指示書そのものである CLAUDE.md の中では、先頭・中ほど・末尾のどこに書くと守られるのか。144回測りました。
CLAUDE.md に3つのルールを書き、先頭・中ほど・末尾に1つずつ置いた(各位置12回)
書き方A: 近くの節の箇条書きに1行足す
先頭 中ほど 末尾
20行 100% 100% 100%
204行 100% 0% / 25% 25% / 100%
999行 100% 25% / 25% 58% / 58%
(中ほど・末尾は Sonnet 5.5 / Haiku 5.5)
書き方B: 「## 共通ルール」という節に入れる
29〜1,008行 先頭・中ほど・末尾とも、両モデルで 100%(72回すべて)
検証環境: Windows 10 / Claude Code 2.1.307 を隔離導入 /
claude -p/ Sonnet 5.5・Haiku 5.5 / 測定は 2026-10-22
測り方
架空のプロジェクトの CLAUDE.md を作りました。コマンド・コーディング規約のあとに、「## モジュール: orders」のような節(役割・依存・テスト・注意)を並べて、20行・204行・999行にしています。
そこに、守ったかどうかが出力で分かるルールを3つ入れました。
- 新しく追加する関数の名前は、必ず `jq_` で始める。
- 関数を追加したら、その関数の直前の行に `# added-by: claude` というコメントを1行入れる。
- 作業が終わったら、返事の最後の行を必ず「以上、確認お願いします。」にする。
頼んだのは「utils.py に、重複を除いた新しいリストを返す関数を追加して」だけです。
ルールによって守られやすさが違うので、どのルールをどの位置に置くかを3通りに入れ替え、各4回ずつ回しました。
書き方A: 中ほどと末尾で外れた
20行ではどこに置いても守られました。204行と999行では、先頭は12回とも守られ、中ほどと末尾で外れました(Haiku 5.5 の204行の末尾だけは12回とも守られています)。
ただ、長さで単純に下がったわけではありません。Sonnet 5.5 の末尾は、204行で25%、999行で58%でした。
外れた位置のルールは、こう入っていました(204行の末尾)。
## モジュール: currency
- 役割: 入出力の検証と保存。
(中略)
- 担当: 受注チーム
- 作業が終わったら、返事の最後の行を必ず「以上、確認お願いします。」にする。
末尾に1行足すと、最後の節(ここでは currency モジュール)の箇条書きの続きになります。 中ほども、どこかのモジュールの節の中でした。先頭は「## よく使うコマンド」の節で、20行の版は3つとも全体向けの節です。
Claude は読んだうえで外していた
外れた58回のうち36回は、返事の中でそのルールに触れていました。
関数名を
jq_で始める決まりはcurrencyモジュールだけのものなので、ここには適用していません。
(Sonnet 5.5)
# added-by: claudeのコメントは付けていません。この規則は warehouses モジュールの項目にあり、utils.pyは対象のモジュールとして明記されていないためです。対象に含めるべきなら教えてください。
(Haiku 5.5)
この36回は、見落としたのではなく「そのモジュールのルール」と読んでいました。 残りの22回は、触れずに外していました。
書き方B: 見出しを分けたら、全部守られた
同じ3つのルールを、それぞれ「## 共通ルール」という節に入れて、先頭・中ほど・末尾に置きました。
- 担当: 受注チーム
## 共通ルール
- 作業が終わったら、返事の最後の行を必ず「以上、確認お願いします。」にする。
72回すべてで、3つとも守られました。 1,008行の版の真ん中(500行目)に置いた節のルールも、両モデルで12回とも守られています。
この測り方では、効いていたのは位置ではなく、ルールがどの見出しの下にあるかでした。
長い CLAUDE.md は、費用が増える
守られるかとは別に、長さは費用に出ます。この短い作業1回の費用(中央)は、Sonnet 5.5 で20行 $0.055、999行 $0.118 でした。約2.1倍です。
公式ドキュメント(memory)も、1ファイル200行未満を目安にしています。
Size: target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence.
言えないこと
- 作業は「関数を1つ足す」だけ、
claude -pで、各位置12回です - 長い CLAUDE.md は、モジュールの説明を機械的に並べて作りました。実際の CLAUDE.md とは違います
- 3つのルールは、どのファイルにも当てはまると読める書き方です。もともと範囲の決まったルールでは、話が変わります
- 費用は試運転を含めて約 $6.2 でした
まとめ
- 「## 共通ルール」の節に書いたルールは、1,000行の CLAUDE.md の中ほどでも末尾でも、72回すべてで守られた
- 外れたのは、モジュールの節の箇条書きに続けて書いたとき。 外れた58回のうち36回は、返事で「そのモジュールのルール」と説明していた
- CLAUDE.md の最後に1行足すと、最後の節のルールとして読まれることがある
全体に効かせたいルールを足すときは、位置より先に、その上にある見出しを見るのが、今回の結果から言えることです。
関連記事
- CLAUDE.md は21セクションか、8行か — 公式ドキュメントで決着をつけた — CLAUDE.md の長さの回
- 新しく作ったファイルに、そのフォルダの CLAUDE.md は効いていなかった。直った今も指示は書いた後に届く — CLAUDE.md が読まれる範囲を測った回
JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
エンジニア採用も行っています。もしご興味あれば覗いてみてください。
▶ 採用サイト