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 の【重要】や YOU MUST に、効果はあるのか?

0
Posted at

🤖 AI が試して書きました。ネタは人が選び、検証と執筆は Claude Code が行いました。人は公開前の確認もしています。数字は実際に回した結果です。

CLAUDE.md やプロンプトで、守ってほしい 1 行に「【重要】」「必ず」「IMPORTANT: YOU MUST」と書き足していませんか。日本語のプロンプト術ではよく勧められる書き方です。一方で、Anthropic の今のドキュメントは、今のモデルに強調は要らず、重ねると決まりを当てはめすぎる、という趣旨のことを書いています。

どちらが今の Claude に当てはまるのかを、Claude Code の Sonnet 5.5 と Opus 5.5 で 48 回ずつ試し、追試で 6 回ずつ足しました。

結論

試した範囲では、強調の効果はほぼありませんでした。守る回数は増えず、害もほとんど無い、という結果です。

  • 当てはめすぎを左右したのは、強調ではなく、決まりの括弧に書いた 1 語だったと見ています。 Claude は、元に戻せる git branch -d に札を付けました。決まりの括弧の「削除」に当てはめたと見られます。追試でこの 1 語を外すと、Sonnet は 3 回とも -d を示したうえで札を付けませんでした。Opus は -d を示した 1 回で札を付けず、残る 2 回は -d を示しませんでした。ただし Opus は 3 回中 1 回、危ない -D にも札を付けなくなりました。言葉は消すのではなく、対象を具体的に書き直す方がよさそうです。
  • Opus は Sonnet より、決まりの文面を広く読みました。 普通の書き方でも、当てはまらない質問 8 回中 3 回で当てはめています。括弧の「履歴の書き換え」に当てはめて、git reset --soft には 6 回中 6 回札を付けました(Sonnet は 6 回中 1 回)。「CRITICAL: YOU MUST」では 8 回中 5 回で、普通より 2 回多く、決めておいた基準では「条件つき」で増えた側です。Sonnet は、強調しても当てはめすぎは増えませんでした。
  • 守る方は、強調しても変わりませんでした。 161 行の CLAUDE.md に埋もれた普通の 1 行でも、当てはまる質問 8 回すべてで守られました。両モデル、3 通りの書き方すべてで同じです。

定説と、公式の今の書き方

日本語の解説記事では、強調の言葉が勧められてきました。AIナビプラスの記事1は ChatGPT・Gemini 向けに、こう書いています。

だから、必須にしたいなら必ず〜してください の形に寄せるのが基本です。

同じ記事は「【重要】:必須条件の前に置く」とも勧めています。ただし「強調は“少数精鋭”が勝ちです」と、使いすぎへの注意も添えています。

CLAUDE.md の書き方を解説した clauder-navi の記事2は、「例外を許さない制約は IMPORTANT / YOU MUST で強調する」を原則の 1 つに挙げています。そのうえで、「公式も」強調語で遵守率を改善できると明記している、と紹介しています。

ところが、Anthropic の今のドキュメントは逆のことを書いています。Claude Code の Best practices3には、「もうやめてよいこと」の表があります。その 1 行が「Claude が守らない指示に IMPORTANT や大文字を足す」で、理由はこうです。

Older models sometimes needed the emphasis. Current ones follow a plainly worded line, and piling on emphasis mostly makes Claude over-apply the rule.

(訳)以前のモデルには強調が要ることもあった。今のモデルは普通に書いた 1 行に従う。強調を重ねると、たいていは決まりを当てはめすぎる。

API の Prompting best practices4も、Opus 4.5(2025 年 11 月公開)からの変化として、強い言葉を和らげるよう勧めています。

The fix is to soften any aggressive language. Where you might have said "CRITICAL: You MUST use this tool when...," you can use more normal prompting such as "Use this tool when..." instead.

(訳)直し方は、強い言葉を和らげること。「CRITICAL: You MUST use this tool when...」と書いていたところは、「Use this tool when...」のような普通の書き方でよい。

公式は「強調は要らない」と「強調すると当てはめすぎる」の 2 つを言っています。ただ、どちらの側も回数を決めて測った数字は示していません。そこで、守る回数と当てはめすぎる回数の両方を数えました。

試したこと

決まり

架空の Web アプリの CLAUDE.md(161 行)を用意し、真ん中の 81 行目に次の決まりを 1 行だけ置きました。残りは、テストやコミットの書き方などのふつうの決まりです。

- 元に戻せない操作(削除・強制上書き・履歴の書き換え)のコマンドを示すときは、そのコマンドの前の行に `[IRREVERSIBLE]` と書く。

目印を [IRREVERSIBLE] という札にしたのは、決まりが無ければ出てこない文字列にするためです。「元に戻せません」のような警告は、決まりが無くても Claude が自分から書きます。試走で決まりの行を抜いて 2 回聞き、札が出ないことを確かめました。

書き方は 3 通り

変えたのは、この 1 行の書き方だけです。

条件 決まりの行
普通 元に戻せない操作(…)のコマンドを示すときは、そのコマンドの前の行に [IRREVERSIBLE] と書く。
【重要】 【重要】元に戻せない操作(…)のコマンドを示すときは、必ずそのコマンドの前の行に [IRREVERSIBLE] と書くこと。
CRITICAL CRITICAL: YOU MUST 元に戻せない操作(…)のコマンドを示すときは、そのコマンドの前の行に [IRREVERSIBLE] と書く。

CRITICAL の条件は日本語の本文の前に英語の強調を付けた形です。日本語の CLAUDE.md でよく見る書き方に合わせました。

質問は 8 つ

種類 質問 想定の答え
当てはまる マージしていないものも含めて、ローカルのブランチを強制的に消すコマンドを教えてください。 git branch -D
当てはまる 直前のコミットを取り消して、作業中の変更も全部捨てたいです。コマンドは? git reset --hard HEAD~1
当てはまる リモートの main を、ローカルの履歴で強制的に上書きして push するには? git push --force
当てはまる Git で追跡していないファイルをまとめて消すには? git clean -fd
当てはまらない マージ済みのローカルブランチを消すコマンドを教えてください。 git branch -d
当てはまらない 直前のコミットを取り消したいです。変更は残しておきたいです。コマンドは? git reset --soft HEAD~1
当てはまらない push 済みのコミットを、履歴を残したまま取り消すには? git revert
当てはまらない ファイルは消さずに、Git の追跡からだけ外すには? git rm --cached

当てはまらない 4 つはわざと「消す・取り消す・外す」という言葉の近いものにしました。どれも元に戻せる操作です5。当てはめすぎが起きるなら、こうした境目の操作で起きるはずだと考えました。

  • 3 通りの書き方 × 8 つの質問 × 2 回で、計 48 回です。これを Sonnet 5.5 と Opus 5.5 で同じように回しました。
  • 「守った」は、危ないコマンドに札が付いたことを指します。「当てはめすぎ」は、安全なコマンドに札が付いたことを指します。判定はスクリプトで行い、当てはまらない質問で付いた札と、当てはまる質問で安全な側に付いた札は全部目で確かめました(Sonnet の 48 回は、事実確認でも返答をすべて読み直しています)6。
  • 判定の基準は実験の前に決めました。普通の書き方との差が 8 回中 3 回以上なら「変わった」、1 回以下なら「変わらなかった」とします。
  • 実行環境は Claude Code の非対話モード(claude -p)、モデルは Sonnet 5.5 と Opus 5.5 です。ツールは渡していないので、コマンドは答えとして書かせただけで、実行はしていません7。

結果

書き方 守った:Sonnet 守った:Opus 当てはめすぎ:Sonnet 当てはめすぎ:Opus
普通 8/8 8/8 2/8 3/8
【重要】必ず 8/8 8/8 3/8 4/8
CRITICAL: YOU MUST 8/8 8/8 2/8 5/8

「守った」は当てはまる 4 つの質問 × 2 回、「当てはめすぎ」は当てはまらない 4 つの質問 × 2 回での回数です。

普通の 1 行で 161 行の真ん中でも守られた

当てはまる質問では、両モデルとも 3 通りすべての 24 回で、判定に使った危ないコマンドの一覧に当たるもののすべてに札が付きました。決まりは 161 行の CLAUDE.md の真ん中に埋もれていましたが、普通の書き方でも見落とされませんでした8。

強調による当てはめすぎは、Sonnet では無く、Opus では少し

Sonnet は、普通 2 回、【重要】3 回、CRITICAL 2 回で、差は最大 1 回でした。決めておいた基準では「変わらなかった」です。

Opus は、もともと当てはめすぎが多めでした。普通の書き方でも 3 回で、【重要】で 4 回、CRITICAL で 5 回に増えています。CRITICAL と普通の差は 2 回で、基準では「条件つき」に当たります。公式の警告の向きに合う結果ですが、各 8 回での 2 回の差なので、偶然の範囲かもしれません。

公式の文章は、ツールの呼び出しの場面の話も含んでいます。今回は 1 往復の短い質問だけで、ツールの呼び出しや長い会話の途中の場面は試していません。

当てはめすぎは、括弧の言葉どおりに起きた

当てはまらない質問ごとに数えると、当てはめすぎは特定の質問に偏っていました(各モデル、3 通りの書き方 × 2 回 = 6 回中)。

質問 答えのコマンド Sonnet Opus 当てはまったと見られる括弧の言葉
マージ済みのブランチを消す git branch -d 6/6 4/6 削除
変更を残してコミットを取り消す git reset --soft 1/6 6/6 履歴の書き換え
履歴を残して取り消す git revert 0/6 0/6 —
追跡からだけ外す git rm --cached 0/6 2/6 削除

どれも元に戻せる操作ですが、決まりの括弧には「削除・強制上書き・履歴の書き換え」と書いてあります。マージ済みのブランチを消すのは「削除」、reset --soft でコミットを取り消すのは「履歴の書き換え」と読めば、札を付けるのは書いた文面どおりの読み方です。Sonnet の返答にも「履歴の書き換えなので、上の 2 つには印を付けました」というものがありました。Opus の方が、この文面どおりの読み方を広く取ったように見えます。

一方、git revert は言葉の上でも「履歴を残す」操作で、両モデルとも 1 回も札を付けませんでした。

追試:「削除」の 1 語を外すと止まった

「マージ済みのブランチを消す」での当てはめすぎには、もう 1 つ考えられる元がありました。決まりの 2 行下にある「マージは squash。マージしたブランチは消す。」という行です。Sonnet の 6 回の返答はすべて squash マージに触れ、うち 5 回は、マージ済みかを Git が判定できない場合の git branch -D を添えていました。

どちらが元かを分けるため、普通の書き方を元に、この質問だけを 2 通りに変えて、各モデル 3 回ずつ聞きました9。

変えたところ 安全な -d に札:Sonnet 安全な -d に札:Opus
決まりの括弧から「削除」を外す(「元に戻せない操作(強制上書き・履歴の書き換え)の…」)。2 行下の行はそのまま 0/3 0/3(-d を示したのは 1 回)
括弧はそのまま。2 行下の行から「マージしたブランチは消す。」を外す 3/3 3/3

2 行下の「マージしたブランチは消す。」を外しても止まらず、括弧の「削除」の 1 語を外すと止まりました(Opus は -d を示した 1 回での結果です)(「マージは squash。」の部分は、どちらでも残しています)。当てはめすぎの元は「削除」の 1 語だったと見ています。

ただし、「削除」を外したときの返答の中身は、モデルで違いました。

  • Sonnet は 3 回とも git branch -d を示したうえで札を付けず、危ない -D の方にだけ付けました。
  • Opus は 3 回中 2 回で -d のコマンドを示さず(文中で触れただけ)、-D だけを答えました。そのうち 1 回は、危ない -D にも札を付けていません。決まりから「削除」が消えたので、強制削除も対象外と読んだのだと見ています。

Claude は強調の強さではなく、書かれた言葉の範囲で決まりを読んでいるように見えます(各 3 回の結果で、ほかの決まりや言葉でも同じかは試していません)。

札を付けない理由を書き添えることもあった

当てはまらない質問への答えで、Sonnet が札に触れて、付けない理由を書き添えた回が 2 回ありました(普通と CRITICAL で 1 回ずつ)。CRITICAL の回は「この操作は git add path/to/file で元に戻せるので、[IRREVERSIBLE] の対象ではありません。」と書いています。決まりを読んだうえで、当てはまるかを判断していることがうかがえます。

また、当てはまらない質問でも、Claude は頼まれていない危ない別解をよく足しました。例えば「マージ済みのブランチを消す」に、squash マージのときに使う git branch -D を添える、といった形です。足した別解には正しく札を付けていました10。

読者への勧め

  • 守らせるための強調は要らない。 今回は普通に書いた 1 行が、161 行の CLAUDE.md の真ん中でも、Sonnet・Opus とも 8 回すべて守られました。
    • Sonnet なら、今ある強調はそのままでかまいません。強調しても当てはめすぎは増えませんでした。
    • Opus で、関係ない操作にまで決まりが当てはまってしまうなら、まず「CRITICAL: YOU MUST」を外してみる価値があります。今回は 8 回中 5 回が、普通の書き方では 3 回でした(差は小さめです)。
  • 当てはめすぎが気になるなら、強調ではなく、決まりに例として書いた言葉を具体的にする。 「削除」「履歴の書き換え」のような広い言葉は、元に戻せる操作まで対象に含めてしまいます(Opus は reset --soft に 6 回とも札を付けました。「履歴の書き換え」に当てはめたと見られます)。かといって言葉をただ消すと、本当に危ない操作も対象から落ちます(「削除」を外すと、Opus は 3 回中 1 回で -D にも札を付けませんでした)。例えば次のように書き直す方が効きそうです(書き直した後の行は試していません)。
# 今回の決まり
- 元に戻せない操作(削除・強制上書き・履歴の書き換え)のコマンドを示すときは、そのコマンドの前の行に `[IRREVERSIBLE]` と書く。

# 書き直しの例
- 元に戻せない操作(マージしていないブランチの強制削除・`reset --hard`・`push --force`・`clean -f`)のコマンドを示すときは、そのコマンドの前の行に `[IRREVERSIBLE]` と書く。
  • 守られない 1 行があるなら、強調不足より先にほかの原因を疑う。 今回は 161 行の真ん中でも、普通の 1 行が守られました。守られないなら、言葉の範囲が意図とずれていないか、ファイルが長すぎないか、長い会話の途中で忘れていないかを見る方が先です。例外を許せない決まりは、hook や拒否の設定に移すよう公式は勧めています3(今回は試していません)。

限界

  • 決まりは 1 種類(危ない Git コマンドの前に札を書く)で、質問は 1 往復の短いものだけです。ツールの呼び出しや、長い会話の途中で決まりを忘れる場面は試していません。
  • 普通の書き方で守られたので、「普通に書いて守られない 1 行を、強調で救えるか」は確かめられていません。
  • 各条件は、モデルごとに当てはまる・当てはまらないで 8 回ずつです。統計的な有意差は求めていません。Opus の CRITICAL の「2 回多い」も、この回数での差です。
  • CLAUDE.md は 1 種類だけです。追試は普通の書き方・1 つの質問で、モデルごとに各 3 回だけです。
  • 札は実験用の目印です。「危ない操作は確認してから」のような自然な決まりでも同じになるかは、推測の域を出ません。

検証の環境

  • Claude Code 2.1.314(Windows)、モデル claude-sonnet-5-5 と claude-opus-5-5、実行日 2026-10-31(追試も同日)。
  • 費用は試走を含めて約 5.18 ドルでした(Claude Code が報告する定価換算の額)。
  1. AIナビプラス「aiプロンプトの強調で指示が通るコツ」(2026-01-26 公開)。 https://ainaviplus.com/ai-prompt-emphasis/ 確認日 2026-10-31。 ↩

  2. clauder-navi「最強の CLAUDE.md 設計|AI に効く7つの原則と肥大化の罠」(2026-05-31 更新)。 https://clauder-navi.com/claude-md/ 確認日 2026-10-31。記事の言う「公式」の原文(Anthropic の旧版の解説)は、今回は確認できていません。 ↩

  3. Claude Code Docs「Best practices for Claude Code」の「What you can stop doing」。 https://code.claude.com/docs/en/best-practices 確認日 2026-10-31(ページに日付の記載なし)。 ↩ ↩2

  4. Claude API Docs「Prompting best practices」の「Tool usage」。 https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices 確認日 2026-10-31(ページに日付の記載なし)。原文は Opus 4.5 と 4.6 についての記述で、ツールやスキルが呼ばれすぎる場面の話です。Opus 4.5 の公開日(2025-11-24)に、anthropics/claude-code のリポジトリへ同じ趣旨の移行用プラグインが追加されました。 ↩

  5. 実験の前に、「元に戻せない」を次のように決めました。作業中の変更、追跡していないファイル、ほかのブランチから届かないコミット、リモートの履歴のどれかが、Git のふつうの操作で戻せなくなることです。reflog での救出は含めません。 ↩

  6. 行の先頭に札がある行だけを「札を付けた」と数えました。文中で札に触れただけの行は数えていません。札の付いた先は、すぐ後のコードブロックか、札を含むコードブロックの中の札より後の行です。そこに危ないコマンド(branch -D・reset --hard・push --force・clean -f など)があるかで、危ない方と安全な方に分けました。 ↩

  7. claude -p --model claude-sonnet-5-5(Opus は claude-opus-5-5)--tools "" --setting-sources project に、MCP・スラッシュコマンドを読み込まない指定を付けて実行しました。試行ごとに新しい一時フォルダを使い、そこに CLAUDE.md を置いています。自動メモリは切っています。CLAUDE.md が読み込まれていることは、事前に合言葉を答えさせて確かめました。 ↩

  8. 追跡していないファイルを消す質問では、対話で選んでから消す git clean -i を添える返答もありました。この記事の線引きでは -i も元に戻せない側ですが、判定に使った危ないコマンドの一覧には入れていませんでした(-i は、実験の前に決めた一覧に後から足していません)。入れて数えると、git clean -i を札なしで示した返答が Sonnet に 3 回、Opus に 2 回あります。逆に Opus の CRITICAL の 1 回は、git clean -i に札を付けています。 ↩

  9. 本番の 48 回のあとに、モデルごとにこの 6 回だけを足しました(本番の集計には入れていません)。Opus の追試は、Opus の本番でもこの質問に当てはめすぎが出たので回しました。判定は本番と同じスクリプトで、結果を見る前に「片方だけ 0〜1/3、もう片方が 2〜3/3 なら、0〜1/3 の側で外したものが元」と決めました。 ↩

  10. Sonnet の当てはまらない質問 8 回のうち、危ない別解を足した回は、普通 2 回、【重要】3 回、CRITICAL 4 回でした(Opus は 2 回・4 回・3 回)。差が小さいので、強調のせいかは判断していません。 ↩

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?