はじめに
CLAUDE.mdに決まりを書いたのに、こんなことになっていないでしょうか。
- 「見積書の金額は税込で書く」と書いたのに、税抜で出してくる
- 同僚のパソコンでは守るのに、自分のパソコンでは守らない
- 会話の始めは守っていたのに、途中から守らなくなった
- 「このフォルダの中は書き換えない」と書いたが、本当に守るか不安で任せられない
CLAUDE.mdは、Claude Codeを起動したフォルダから見える場所にあるときだけ会話の始めに読まれ、Claudeが読んで従おうとする指示の文章です。設定のように強制はされません。守られない原因は、ファイルが読まれていない、読まれているが書き方や長さに問題がある、会話の中で言っただけでファイルに書いていない、強制が必要なことを指示で済ませている、のどれかです。
確かめる順番
上から順に確かめます。1で読まれていなければ、2から先を直しても効きません。
読まれているかを確かめる
Claude Codeの入力欄に /context と打つと、会話の始めに読まれたファイルが「Memory Files」の一覧に出ます。守られない決まりを書いたファイルがこの一覧になければ、Claudeはそのファイルを見ていません。
起動したフォルダ
次の図は、~/work/mitsumori にCLAUDE.mdを置き、起動するフォルダを変えて /context を打った結果です。表示は短くしています。
Claude Codeが会話の始めに読むのは、起動したフォルダと、それより上のフォルダにあるCLAUDE.mdです。1つ上の work で起動すると、下にある mitsumori/CLAUDE.md は始めには読まれず、Claudeが mitsumori の中のファイルを開いたときに初めて読まれます。同僚のパソコンでは守るのに自分では守らない、というときは、まず起動したフォルダが同じかを確かめます。
AGENTS.mdが読まれない
CodexなどほかのAIツールと一緒に使うために、プロジェクトにAGENTS.mdを置いている場合は、組み合わせに注意します。
Claude Codeは、起動したフォルダか、それより上のフォルダにCLAUDE.mdもCLAUDE.local.mdもないときだけ、AGENTS.mdを読みます。自分用のメモのつもりでCLAUDE.local.mdを1つ足しただけで、AGENTS.mdが読まれなくなります。
両方を読ませたいときは、CLAUDE.mdの1行目に @AGENTS.md と書いて読み込ませます。
@AGENTS.md
## Claude Code用の決まり
- 見積書の金額は税込で書く
/config の「Project instructions」を claude-md-and-agents-md にしても、両方が読まれます。AGENTS.mdを直接読む機能はClaude Code v2.1.277から入ったもので、それより前の版ではCLAUDE.mdからの読み込みが必要です。
読み込みが止められている
Instruction file not loaded という通知が出たときは、ファイルはあるのに、権限の設定で読み込みが止められています。通知の括弧の中に理由が出るので、a Read deny rule covers it なら、設定の permissions.deny にそのファイルを読ませないルールがないか探します。
書き方を見直す
読まれているのに守られないときは、書き方を見直します。公式ドキュメントでは、確かめられるくらい具体的に書くように勧めています。
| あいまいな書き方 | 具体的な書き方 |
|---|---|
| 見積書はきちんと作る | 見積書の金額は税込で書き、合計欄に「税込」と書く |
| 丁寧な言葉づかいで | 社外向けの文書は「です・ます」で書き、社名は正式名称にする |
| 資料はちゃんと整理する | 作った資料は 出力/ フォルダに日付つきの名前で保存する |
食い違う指示にも気をつけます。~/.claude/CLAUDE.md に「返信は短く」、プロジェクトのCLAUDE.mdに「返信は詳しく」と書いてあると、Claudeはどちらかを選び、どちらになるかは決まっていません。読まれる順番と食い違いの扱いは、CLAUDE.mdとメモリの違いの記事で説明しています。
自分で探すのが大変なら、/doctor prompt-audit と打つと、Claudeが指示のファイルを読んで、食い違いや、もうないファイルへの言及を探してくれます。直す案が出るだけで、頼むまでファイルは書き換えられません(Claude Code v2.1.283以降)。
長さを見直す
公式ドキュメントでは、CLAUDE.md 1ファイルあたり200行以下を目安にしています。長いほど読む量が増え、守られにくくなります。目安を超えると、起動したときと /status を打ったときに警告が出ます。
長くなったときは、一部の作業でしか使わない決まりを、プロジェクトの .claude/rules/ に分けます。ファイルの先頭に paths を書くと、そのファイルを扱うときだけ読まれます。
---
paths:
- "見積書/**"
---
- 見積書の金額は税込で書く
- 合計欄に「税込」と書く
@ で別のファイルを読み込む方法は、整理には使えますが、読み込んだファイルも一緒に会話の始めに読まれるので、読む量は減りません。
会話の中で言っただけの指示
会話が長くなると、Claude Codeはそれまでのやりとりを要約して短くします(compact)。プロジェクトのCLAUDE.mdは要約のあとに読み直されますが、会話の中で「これからは税込で」と言っただけの指示は、要約で消えることがあります。
途中から守らなくなったときは、その指示がCLAUDE.mdに書いてあるかを確かめます。会話で言っただけなら、Claudeに「いまの決まりをCLAUDE.mdに追加して」と頼んで、ファイルに残します。
必ず守らせたいこと
CLAUDE.mdをどれだけ整えても、Claudeが従おうとする指示であることは変わりません。「確定済みの見積書は書き換えない」のように、破られると困ることは、設定で止めます。
プロジェクトの .claude/settings.json に次のように書くと、Claudeが 確定済み フォルダの中のファイルを編集しようとしたときに、Claude Codeが止めます。
{
"permissions": {
"deny": ["Edit(./確定済み/**)"]
}
}
公式ドキュメントによると、このルールが止めるのはClaudeがふだん使う編集のやり方で、別の書き方のコマンドまですべて防ぐものではありません。もっと細かく、たとえば特定の操作の前に自分で用意した確認を必ず走らせたいときは、hooksを使います。
まとめ
- まず
/contextで、決まりを書いたファイルが「Memory Files」に出ているかを確かめる - 会話の始めに読まれるのは、起動したフォルダとそれより上のCLAUDE.md。下のフォルダのCLAUDE.mdは、そこのファイルを開いたときに読まれる
- CLAUDE.mdかCLAUDE.local.mdがあると、AGENTS.mdは読まれない。両方使うなら
@AGENTS.mdで読み込む - 指示は確かめられるくらい具体的に書き、1ファイル200行を目安にする。一部の作業の決まりは
.claude/rules/に分ける - 会話で言っただけの指示はCLAUDE.mdに書き足す。必ず守らせたいことは設定で止める

