0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CLAUDE.md の指示は先頭に書くべきか。144回測ったら、効いていたのは位置ではなく見出しだった

0
Last updated at Posted at 2026-10-22

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行足すと、最後の節のルールとして読まれることがある

全体に効かせたいルールを足すときは、位置より先に、その上にある見出しを見るのが、今回の結果から言えることです。


関連記事


JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。

▶ コーポレートサイト

エンジニア採用も行っています。もしご興味あれば覗いてみてください。

▶ 採用サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?