CLAUDE.md を書いたのに、毎回同じ説明をしてしまう。
そういう経験が積み重なると、「CLAUDE.md って意味あるの?」という気持ちになります。
でもたいていの場合、問題は CLAUDE.md そのものではなく、「効かない文を書いている」ことにあります。
この記事では、CLAUDE.md の文がなぜ効かないのか、どう書き直せば変わるのかを、具体例を使って整理します。
CLAUDE.md を書いたのに効かない、よくある理由
Anthropic 公式ドキュメントには、こう書かれています。
CLAUDE.md ファイルは、簡潔で具体的な内容に保つことが重要です。長くなるほど、Claude が従う可能性は下がります。
これは大事なポイントです。
CLAUDE.md は、長くなるほど「読まれにくく」なります。
社内規則と同じで、100ページある規則より、1枚の確認リストのほうが守られやすい。
でも長さ以上に問題なのが、「意図はあるが指示になっていない文」です。
たとえば、こういう文です。
- 丁寧に対応する
- よく考えてから行動する
- 安全に使う
これは意図として正しいですが、具体的な行動を指示していません。
結果として、毎回 Claude は「丁寧」を自分で解釈します。
それが思ったのと違う形で返ってくるとき、人はルールを追加したくなります。
でも同じ種類の文を足しても、同じことが起きます。
効く文と効かない文の違い
判断基準は一つです。
「その文を読んだとき、Claude の次の行動が変わるか」
変わらないなら、その文は効いていません。
いくつか例を並べます。
| NG(効かない文) | OK(行動が変わる文) |
|---|---|
| 丁寧に対応する | 提案前に目的を一文で確認する |
| 安全に作業する | 削除・上書き・公開操作は実行前に確認する |
| わかりやすく説明する | 専門用語を使うときは、その場で短く説明する |
| プロジェクトを理解する | posts/ は公開原稿、drafts/ は下書きとして扱う |
| ちゃんと完了させる | 完了時は、変更点・未実施事項・次の確認点を3行でまとめる |
NG例は「状態」を書いています。
OK例は「手順」を書いています。
手順は確認しやすく、状態は解釈に依存します。
CLAUDE.md に書くなら、解釈の余地が少ない文を選ぶほうが安定します。
最初に入れておきたい項目
項目を挙げると多く見えますが、最初に必要なのは5つ前後です。
ジャンルごとにサンプルを書いておきます。
回答言語
- 回答は原則日本語で行う
- コードやコマンドは原文のまま表示する
- 専門用語を使うときは短く説明する
これは1回書くだけで、毎回の「日本語で」を省けます。
変更前の確認
- 変更の前に、目的とやることを一文でまとめる
- ファイルの削除・上書きは実行前に確認する
- 依頼されていない作業は広げすぎない
「やりすぎ」を防ぐためのルールです。
能力が高い相手ほど、範囲を明確にしないと想定外の場所まで動きやすいです。
触ってよい場所・触らない場所
- posts/ は公開原稿
- content/drafts/ は下書き
- docs/ はルール文書
- .env・secrets/ には触れない
フォルダの役割を書いておくと、Claude が自分でどこに何があるかを判断できます。
「どこに保存すればいい?」を毎回聞かれるのが嫌なら、ここに書くのが先です。
完了の定義
- 完了時は変更点・未実施事項・次の確認点を短くまとめる
- 公開・デプロイは明示的に指示されない限り行わない
「終わり」を定義しないと、AI は親切心で作業を広げます。
この2文があるだけで、想定外の完了がかなり減ります。
文体・出力の形式
- 長い回答は見出しで区切る
- 箇条書きは3〜5項目を目安にする
- 数字の根拠がないときは、推測である旨を明示する
これは任意ですが、出力の読みやすさを一定に保ちたい場合に効きます。
避けたほうがいいパターン
3つあります。
1. 願望を書く
「賢く判断してほしい」「適切に対応する」のような文は、実質的な指示を含みません。
Claude はもともと賢く判断しようとするので、この手の文は何も変えません。
2. 同じことを言い方を変えて繰り返す
- 「余計なことをしない」
- 「頼まれていないことはやらない」
- 「指示の範囲で作業する」
これは3文とも同じことを言っています。1文に絞るか、具体的な状況に変えるかどちらかです。
繰り返しが増えると読むのに時間がかかり、その分他のルールが流れやすくなります。
3. settings.json で管理すべきことを混ぜる
「.env を読まないでください」は、CLAUDE.md に書いても動作は保証されません。
これは `settings.json` の `permissions.deny` で遮断するのが正しい方法です。
CLAUDE.md はルールと方針の場所、settings.json は安全装置の場所。
この分担を崩すと、どちらも弱くなります。
詳しくは .claude/ フォルダの使い方 に整理しています。
CLAUDE.md の育て方
最初から完璧にしようとしなくてよいです。
むしろ、最初は7行以内から始めるのが自然です。
育て方のコツは一つです。
「毎回言い直した」ことを書き足す。
セッションの中で同じ説明を2回した、と気づいたとき、それが CLAUDE.md に追加するサインです。
そのタイミングで書き足しておくと、次のセッションからは言い直さなくてよくなります。
逆に、長い間追加していない項目は、実際に効いていない可能性があります。
定期的に見直して、行動が変わっていない文は削るか書き直す。
そのサイクルを回すことで、ファイルは短くなりながら効くものになっていきます。
まとめ
CLAUDE.md は、書き方次第でまったく違う道具になります。
- 状態ではなく手順を書く
- 長さより1文の精度を上げる
- settings.json で管理すべき内容を混ぜない
- 毎回言い直したことを足す
この4点を意識するだけで、同じ説明を繰り返す手間はかなり減るはずです。