「CLAUDE.mdって、結局どこまで書けばいいんでしょうか」。指示ファイルを書きはじめた方から、いちばん多く受ける質問です。
書けば書くほど守ってもらえる気がして、気づくと長くなる。ところが長くなるほど、いちばん守ってほしかった一行が埋もれていく。そういう手応えのなさを抱えたまま、この記事にたどり着いた方が多いのではないかと思います。
この記事は、CLAUDE.mdの書き方を章立て・禁止事項・分割の3点にしぼって整理します。根拠は公式ドキュメントと、運営元WEBMARKSがいま実際に運用しているルートCLAUDE.mdの実測です。進行役は3人。若葉さん(Web担当2年目)が用語のそもそもを聞き、高梨課長(マーケ課長)が自分の手で動かす側の疑問を出し、鈴木さん(本誌監修)が答えます。
本記事の検証環境:claude-opus-5 / Claude Code v2.1.x / macOS 15 / 2026-07-28検証。
こんなふうに調べていませんか
- CLAUDE.mdに何を書けばいいのか、章立ての段階で手が止まっている
- ルールを書いたのに、そのとおりに動いてくれない
この記事を読み終えたときに手に入るもの
- 章立てを7つの型から選んで埋められるようになります
- 書いても止まらない指示を、止まる仕組みへ切り分けられるようになります
- 長くなったファイルの分け先を、目的から選べるようになります
結論30秒でわかる、この記事の結論
- CLAUDE.mdに書くのは、コードを読んでも分からないことだけです
- 禁止事項の文章そのものに強制力はありません。越えてほしくない操作は仕組み側へ移します
- 分けても読み込む量が変わらない手段があります。整理と軽量化は別ものです
01CLAUDE.mdの書き方は、AIエージェントに任せる範囲とどうつながるんですか?
若葉さんCLAUDE.mdって、細かく書くほど守ってもらえるものなんでしょうか。
鈴木さんそこは逆のことが起きやすいところです。行が増えるほど、一行あたりの重みは下がっていきます。書く量ではなく、どこで効かせるかを決めると整理しやすくなりますよ。
結論は3つです。
1つめ。CLAUDE.mdは、セッションを始めるたびにまるごと読み込まれます。だからこそ、コードを読めば分かることは書きません。
2つめ。公式ドキュメントは、1ファイル200行を目安にすることを勧めています(出典: Claude Code公式/Best practices)。
3つめ。書いた禁止事項そのものに強制力はありません。本当に止めたい操作は、PreToolUseフックやpermissions.denyへ切り出します。
この3点を外すと、行数だけが増えて誰も読まないファイルが残ります。
任せる範囲との関係で見ると、位置づけがはっきりします。どこまで任せるかを決めるのが先にあって、CLAUDE.mdはその範囲の内側で迷ったときの判断基準を置く場所です。範囲の外側、つまり越えてほしくない操作は、文章ではなく仕組みで囲います。
この章のまとめ
書く量ではなく、効かせ方で分けます。判断基準は文章に、止めたい操作は仕組みに置きます。
02そもそもCLAUDE.mdは、エージェントが起動のたびに読む指示書なんですか?
CLAUDE.mdは、プロジェクトやユーザーの単位で置く指示ファイルです。一度書けば残り、Claude Codeはセッションを始めるたびにこれを読み込みます(出典: Claude Code公式/Memory)。
紛らわしいのが、Claudeが自分で書き足すauto memory(MEMORY.md)との関係です。名前も置き場所も近いのですが、役割は違います。人が決めて書くのがCLAUDE.md、AIが学習した気づきを書き足していくのがauto memoryです。
役割を取り違えると、チームに配るつもりだった規約を、AIの覚え書き側へ書いてしまうことがあります。いま書いているのは全員に届けたい決めごとなのか、自分の環境の覚え書きなのか。手を動かす前に、そこだけ選んでおきます。
03AI導入をチームに広げるとき、CLAUDE.mdはどこに置けばいいんですか?
置き場所は1つではありません。公式は4段階のスコープを定義しています。
| スコープ | 置き場所(例:macOS) | 誰と共有するか |
|---|---|---|
| 管理者ポリシー | /Library/Application Support/ClaudeCode/CLAUDE.md | 組織の全ユーザー(個別設定で除外不可) |
| ユーザー | ~/.claude/CLAUDE.md | 自分だけ(全プロジェクト共通) |
| プロジェクト | ./CLAUDE.md または ./.claude/CLAUDE.md | チーム全員(バージョン管理で共有) |
| ローカル | ./CLAUDE.local.md | 自分だけ(このプロジェクトのみ・.gitignore推奨) |
4段階は上書きではなく連結です。Claude Codeは作業ディレクトリから上位へたどっていき、途中で見つけたCLAUDE.mdとCLAUDE.local.mdを全部読み込みます。並ぶ順番も決まっています。ルートに近いものが先に、作業ディレクトリに近いものほど後に置かれます(出典: Claude Code公式/Memory)。
高梨課長チームで同じ規約を使いたいんですが、個人用の設定と混ざりませんか。
鈴木さん混ざる前提で、置き場所のほうを分けます。共有したい規約はプロジェクト側、自分だけの追記はローカル側です。連結されるので、同じ内容を二度書かずに済みますよ。
高梨課長上に置いたものが下で消える、みたいなことは起きないんですね。
鈴木さんそこがsettings.jsonとの大きな違いです。
管理者ポリシーだけは性質が異なり、個別の設定で除外できません。組織として越えさせたくない一線があるなら、この段に置くかどうかが分かれ目になります。
この章のまとめ
置き場所は共有範囲で決めます。上書きされないので、上位に置いた規約は下位でも生きています。
04AIエージェントに渡すCLAUDE.mdの書き方は、どんな章立てにすればいいんですか?
何を書くかで迷ったら、公式が挙げる採用基準がそのまま骨格になります。含めるのは「Claudeがコードを読んでも分からないこと」。外すのは「Claudeがコードから推測できること」です(出典: Claude Code公式/Best practices)。この基準を章へ落とし込むと、次の表になります。
| # | 章 | 書く内容 | 判定材料(出典: 公式ドキュメント) |
|---|---|---|---|
| 1 | 目的 | このプロジェクトが何をする場所か、1〜2文 | 新しいセッションが最初に戸惑わない範囲 |
| 2 | 読む順序 | 他のルールファイルへの入口と、読む順番 | 大きい指示は分割して案内する設計 |
| 3 | ディレクトリ構成・置き場所 | 成果物やコードをどこに置くか | 「ファイルごとの説明」は書かない |
| 4 | 実行コマンド | ビルド・テスト・Lintなど、推測できないコマンド | Claudeが推測できないBashコマンド |
| 5 | 規約・慣習 | デフォルトと違うコーディング規約、命名規則 | 標準的な言語の慣習は書かない |
| 6 | 禁止事項・人間ゲート | 超えない一線と、人の承認が要る操作 | 次章で単独に扱う |
| 7 | 記録の残し方 | 引き継ぎ・ログ・完了の記録方法 | セッションをまたぐ運用ルール |
7つの章は、埋めていく順番でもあります。上から書いていくと、途中で「これはコードを読めば分かることでは」と気づく行が出てきます。そこで削れることが、この型のいちばんの効きどころです。
この章のまとめ
迷ったら採用基準に戻ります。コードから推測できることは書かない。それだけで、章の中身は絞れます。
05章が増えたCLAUDE.mdでも、AIエージェントが迷わないのはどんな構成ですか?
7章の型は最小構成です。プロジェクトが1つなら7章で足ります。組織全体のルールを1本にまとめると、章は増えていきます。運営元WEBMARKSの実際のルートCLAUDE.mdはwc -lで288行、見出しは15章です(章番号0〜14、末尾に更新履歴1本・2026-07-28実測)。
7章より多いのは、「読む順序」の章を厚くし、詳細を個別ファイルへ渡しているためです。同じCLAUDE.md本体をgrepすると、00-rules/配下の個別ルールファイルへの参照が10件見つかります(2026-07-28実測)。本体は索引に寄せて、条文そのものは分割先へ置いている構成です。
章数そのものは問題ではありません。読み手が迷わないのは、本体が条文ではなく案内で埋まっているからです。逆に条文を本体へ足し続けると、行数の割に何が書いてあるか分からないファイルになります。
06CLAUDE.mdに禁止事項を書けば、AIエージェントは止まってくれるんですか?
先に答えを書きます。文章だけでは、止まるとは限りません。
禁止事項が効くのは、後から検証できる形で書けたときだけです。公式ドキュメントも、「フォーマットを整えて」より「2スペースインデントを使う」の粒度を勧めています(出典: Claude Code公式/Best practices)。抽象的な一線は、そのままでは伝わりません。
| 書き方 | 曖昧な例 | 検証可能な例 |
|---|---|---|
| 操作の範囲 | 危険な操作はしない | 本番データベースへの直接書き込みを禁止し、マイグレーションファイル経由に限定する |
| 承認の要否 | 大事な変更は確認する | 課金・削除・外部送信は、実行前に一度立ち止まって理由を1行提示する |
| 例外の扱い | 例外的な場合は柔軟に対応 | 例外を認める条件を1つだけ書き、それ以外は例外として扱わない |
ここで押さえたいのは、禁止事項の文章そのものには強制力がない、という点です。公式ドキュメントは、CLAUDE.mdの内容は文脈として渡されるだけで、判断はClaudeに委ねられると明記しています。行動そのものを止めたいならPreToolUseフックを使う、とも書かれています(出典: Claude Code公式/Memory)。
フック側のドキュメントも、同じ役割分担を示しています。変わらない静的な規約は、スクリプトを起動せずに読み込まれるCLAUDE.md側へ書くほうがよい、という位置づけです(出典: Claude Code公式/Hooks)。対立ではなく、静的な規約と動的な強制の分担だと考えると腑に落ちます。
矛盾した禁止事項が複数のCLAUDE.mdに散らばっているときの挙動も、公式に記載があります。2つのファイルが同じ行動について違う指示を出すと、Claudeはどちらか一方を任意に選びます(出典: Claude Code公式/Memory)。だから禁止事項の章は、1つのファイルに集めるか、上位ファイルと重ならないように書きます。
高梨課長書いた禁止事項が守られなかったとき、実際どこから手をつければいいんでしょう。
鈴木さん順番があります。まず読み込まれているかを見て、次に言葉を検証できる粒度へ直す。それでも越えてほしくない操作は、文章のままにせずフックへ移します。
高梨課長文章を直すより先に、読み込みを見るんですね。
鈴木さんそこが逆になっている例をよく見ます。
07200行を超えたCLAUDE.mdは、エージェントが読む量をどう減らすんですか?
200行を超えたら、内容ごとに向いた分割先が変わります。公式ドキュメントに載っている分割の手段を、効果と一緒に整理します。
| 手段 | 何をする機能か | 起動時の負荷 | 向いている内容 |
|---|---|---|---|
.claude/rules/のパス限定ルール | ファイルパターンに一致したときだけ読み込む | 該当ファイルを開いたときのみ | 特定の拡張子・ディレクトリだけに関係する規約 |
@pathインポート | 別ファイルの中身を展開して取り込む | 起動時に全文展開される(軽くならない) | 内容の整理・再利用(サイズ削減が目的ではない) |
CLAUDE.local.md | 個人だけの追記をバージョン管理から外す | 通常のCLAUDE.mdと同じ | サンドボックスURLなど、自分専用の設定 |
skills(.claude/skills/) | 呼ばれたとき・関連すると判断されたときだけ読み込む | 常時は0、発火時のみ | 常に使うわけではない手順・ドメイン知識 |
4つとも、口では同じ「分ける」と呼ばれています。ただし分けた先で起きることは同じではありません。そこが次の章の話になります。
08CLAUDE.mdを分けたのに軽くならないのは、AIエージェントが何を読んでいるからですか?
仕様の細部も公式に書かれています。@pathインポートは相対指定・フルパス指定のどちらも使え、再帰的な取り込みは最大4段階までに制限されています(出典: Claude Code公式/Memory)。auto memoryの索引ファイルMEMORY.mdは、先頭200行か25KBのどちらか早い方までしか読み込まれません(出典: 同ドキュメント)。
この上限はMEMORY.mdだけの制約です。一方でCLAUDE.md本体は、行数に関わらず全文が読み込まれます。ただし公式は、短いファイルほど指示への追従率が上がるとも述べています(出典: 同ドキュメント)。
分割の手段のうち、起動時に読む量を減らせるのはパス限定ルールとskillsの2つだけです。@pathインポートは整理に向きますが、読み込む量そのものは減りません。ここを混同すると、分けたつもりのまま文脈量が変わらない状態になります。
この章のまとめ
分けた本数ではなく、起動時に開かれる本数を見ます。そこが減っていなければ、整理が済んだだけです。
09書いたCLAUDE.mdを、AIエージェントが本当に読んだかはどこで確かめるんですか?
書き方が合っているかどうかは、書いた本人の手応えでは決まりません。実際に読み込まれたかどうかで確かめます。見る場所は2つです。
/contextを実行する:出力の「Memory files」欄に、自分が編集したCLAUDE.mdのパスが並んでいるかを見ます。並んでいなければ、内容ではなく置き場所(前章の4段階のいずれか)がずれています。/memoryを実行する:CLAUDE.md・CLAUDE.local.md・auto memoryの一覧が開きます。存在しないファイルを選ぶとその場で新規作成されるので、置き場所をこれから作るときにも使えます。
動作確認をしても指示が反映されないときは、内容ではなく置き場所を先に疑います。公式ドキュメントも、機能しないときの最初の切り分けとして/contextでの存在確認を挙げています(出典: Claude Code公式/Memory)。読み込まれているのに従われない。そのときにはじめて、指示を検証可能な粒度へ書き直します。
10AI活用が進むほどはまる、CLAUDE.mdの3つの思い込みはどこが違うんですか?
思い込み1:settings.jsonと同じ「上書き」だと思い込む。 settings.jsonは同じキーが複数スコープにあるとき、より優先度の高いスコープが上書きします(出典: Claude Code公式/Settings)。一方CLAUDE.mdは上書きではなく連結です。矛盾した指示を上位・下位に分けて書いても、両方とも文脈に残ります。
思い込み2:禁止事項を書けば行動が止まると思い込む。 前述のとおりCLAUDE.mdは文脈であって強制ではありません。止めたい操作ほど、CLAUDE.mdの文章とセットでPreToolUseフックかpermissions.denyを用意します。
思い込み3:@pathインポートで軽くなると思い込む。 インポートは起動時に展開されて読み込まれるため、行数を1つのファイルにまとめるか複数ファイルに分けるかの整理でしかありません。読ませる量そのものを減らすのは、パス限定ルールとskillsだけです。
3つに共通するのは、「階層」「指示」「分割」という同じ言葉が、settings.json・フック・skillsではそれぞれ違う仕組みで動いている点です。CLAUDE.mdの書き方を学ぶときは、隣接する仕組みの動作もセットで確認します。
若葉さん名前の似た仕組みが多くて、どれがどれだか分からなくなります。
鈴木さん同じ言葉でも動きが違う、とだけ覚えておけば十分です。その「階層」は連結なのか上書きなのか。そこを毎回たしかめると、混ざらなくなりますよ。
この章のまとめ
似た言葉に引きずられないことです。連結か上書きか、助言か強制か、整理か軽量化か。この3組の違いを押さえます。
11AIエージェントに渡す前に、CLAUDE.mdの書き方はどこを見返すんですか?
書き上げた直後は、どうしても書いた側の目線で読んでしまいます。渡す前に、次の項目を上から確認してください。「いいえ」が残る項目があれば、そこがそのまま直す場所です。
- CLAUDE.mdの内容は、コードを読めば分かることになっていないか
- 目的・読む順序・ディレクトリ構成・実行コマンド・規約・禁止事項・記録の残し方の7章が揃っているか
- 各行について「これを消すとClaudeが間違えるか」を自問したか
- 禁止事項は「危険な操作をしない」のような曖昧な一文になっていないか
- 本当に止めたい操作は、フックや
permissions.denyとセットで設計したか - 複数のCLAUDE.mdに矛盾する指示が散らばっていないか
- 200行を超えたら、パス限定ルールとskillsのどちらに分けるかを決めたか
/contextを実行し、編集したCLAUDE.mdが読み込まれているのを確認したか- 個人だけの設定を
CLAUDE.local.mdに逃がし、.gitignoreに入れたか - 人が書く規約と、AIが書き足すauto memoryを混同していないか
チェックが全部埋まっても、運用のなかで章は動きます。増えたら「読む順序」へ寄せる、という戻り先だけ決めておけば、次に開いたときに崩れません。
12よくある質問
CLAUDE.mdはどこに置けばいいですか
チーム全員に共有したい規約は./CLAUDE.mdに置きます。自分だけの設定は./CLAUDE.local.md、全プロジェクト共通の個人設定は~/.claude/CLAUDE.mdです。組織全体で守らせたい内容だけ、管理者ポリシーの置き場所を使います。4段階は上書きではなく連結されるので、共有したい規約を上位に置いたまま、個人の追記を下位で足す形にできます。どこに置いたか分からなくなったら、/contextの「Memory files」欄で読み込まれているパスを確かめてください。
CLAUDE.mdの行数に上限はありますか
行数そのものに上限はありません。ただし公式ドキュメントは、1ファイルあたり200行を目安に勧めています。超えたら、本記事で挙げた分割の手段から、内容に合うものを選びます。ここで注意したいのは、分ければ軽くなるとは限らない点です。読み込む量そのものを減らせるのはパス限定ルールとskillsで、@pathインポートは整理のための手段です。行数を減らしたいのか、見通しをよくしたいのかを先に決めると、選び間違えません。
CLAUDE.mdとAGENTS.mdは両方書く必要がありますか
Claude Codeが読むのはCLAUDE.mdだけです。AGENTS.mdを他エージェント向けに使っているなら、CLAUDE.mdから@AGENTS.mdとインポートします。これで二重管理を避けられます(出典: Claude Code公式/Memory)。ただしインポートは起動時に展開されるため、読み込む量は減りません。両方を保守する手間を減らす手段であって、文脈を軽くする手段ではない、と分けて考えてください。
CLAUDE.mdに書いた禁止事項が守られないときはどうすればいいですか
まず/contextで読み込みを確認し、次に指示を検証可能な粒度に書き直します。「危険な操作をしない」ではなく「本番データベースへの直接書き込みを禁止する」のように、後から見て判定できる言葉にします。それでも越えてほしくない操作は、CLAUDE.mdの文章だけに頼らずPreToolUseフックへ切り出します。文章は助言、フックと権限は強制。この線引きを先にしておくと、直す場所で迷わなくなります。
CLAUDE.mdは毎回全部読み込まれますか
作業ディレクトリの階層にあるCLAUDE.mdとCLAUDE.local.mdは、セッション開始時に全文読み込まれます。サブディレクトリのCLAUDE.mdは、その中のファイルを読んだときに追加で読み込まれます(出典: Claude Code公式/Memory)。全文が入るからこそ、長さがそのまま文脈の重さになります。公式が短いファイルを勧めているのも、この読み込まれ方があるからだと考えています。
13まとめ|今日やる3つのこと
分かれ目は、文章で伝えるものと仕組みで止めるものを分けられているか、でした。章立てから入り、禁止事項の置き場所を決め、長くなった分を切り出す。この順で手をつけると戻り作業が減ります。
今日はこの順で手を動かします
いま使っているCLAUDE.mdを7章の型に並べ替える
足りない章と、いらない章が同時に見えます
禁止事項を「後から判定できる言葉」に書き直す
曖昧なままではフックへ移すこともできません
/contextを開いて、読み込まれているパスを数える直す前に、届いているかどうかが先です
AI検索では、こう聞かれています
CLAUDE.mdには何を書けばいいんですか?
「AIエージェントに渡すCLAUDE.mdの書き方は…章立てに」の章で7章の型を出しています
CLAUDE.mdに書いた禁止事項は、そのとおり守られるんですか?
「CLAUDE.mdに禁止事項を書けば…止まってくれるんですか?」の章で扱っています
CLAUDE.mdが長くなったら、どこに分ければいいんですか?
「200行を超えたCLAUDE.mdは…読む量をどう減らすんですか?」の章に分け先を並べています
書いたCLAUDE.mdが読み込まれているか、確かめられますか?
「書いたCLAUDE.mdを…どこで確かめるんですか?」の章で説明しています
次に読むなら、この記事です