CLAUDE.mdが長くなり、守られない指示が出てきたときに決めるのは、どの指示をCLAUDE.mdに残し、どれをスキルやフックへ移すかです。CLAUDE.mdには毎回要る事実と規約だけを200行以内で残し、特定のファイルにだけ効く決まりはpaths付きの.claude/rules/、手順はスキル、途中経過の多い作業はサブエージェントへ移します。「絶対にしない」は指示では保証されないため、フックか権限の設定で止めます。
- CLAUDE.mdはすべての会話で読み込まれ、公式の目安は200行以内。長いほど遵守が減るため、手順や参照資料は外へ出す
- CLAUDE.md・ルール・スキルに書いたことは、Claudeが読んで従う「お願い」。止めたい操作は、Claudeの判断を通さずに動くフックと権限に置く
- @importで別ファイルに分けても読み込む量は減らない。軽くするなら、必要な時だけ読み込まれるpaths付きルールかスキルへ移す
目次
CLAUDE.mdには毎回要る事実だけを残し、残りは置き場所を分ける
CLAUDE.mdに残すのは、どの作業でも毎回要るプロジェクトの事実と規約です。特定のファイルの決まりはpaths付きのルール、手順はスキル、付随作業はサブエージェント、必ず走らせる処理と絶対にさせない操作はフックか権限へ移します。
根拠は公式ドキュメントの3つの記述です。1つ目は、CLAUDE.mdはすべての会話で読み込まれる永続的なコンテキストだということ。2つ目は、目安として200行以内に収め、長くなったら参照用の内容をスキルか.claude/rules/に分けるということ。3つ目は、長いファイルほどコンテキストを多く消費し、遵守が減るということです。守られない指示が出てきたのは、行が増えたこと自体が原因の一部になっている可能性があります。
公式がCLAUDE.mdに向くものとして挙げるのは、プロジェクトの規約と「常にXを行う」ルールです。「npmではなくpnpmを使う」のように、どの作業でも知っていてほしい事実がこれに当たります。デプロイの手順、レビューの観点の一覧、APIの書き方の細則は、毎回は要らないので外へ出す側です。CLAUDE.mdのほかにスキル・サブエージェント・フックで何ができるかの全体は、Claude Codeでできることの記事で見渡せます。
ここからの内容は、2026年11月時点の公式ドキュメントと公式ブログにもとづきます。公式ブログは英語の本文で、日本語は記事側の訳です。
置き場所ごとの、読み込まれる時と守られ方の判定表
置き場所の違いは、いつ読み込まれるかと、Claudeが読んで従うお願いか、Claudeの判断を通さずに動く強制か、の2点に出ます。下の表は、公式ドキュメントの記述を書く内容ごとに並べ直したもので、置き場所の列の当てはめは記事側の整理です。
| 書く内容 | 置き場所 | 読み込まれる時 | 守られ方 |
|---|---|---|---|
| ビルドコマンド・規約・構成 | リポジトリの./CLAUDE.md | すべての会話 | お願い(コンテキストとして扱われ、強制の設定ではない) |
| 全プロジェクト共通の個人の好み | ~/.claude/CLAUDE.md | すべての会話 | お願い |
| このリポジトリだけの個人の設定 | ./CLAUDE.local.md | すべての会話 | お願い |
| 会社全体の指示 | 管理ポリシーのCLAUDE.md(IT・DevOpsが管理) | すべての会話 | お願い。必ず守らせる設定は管理設定へ |
| 特定のファイルにだけ効く決まり | .claude/rules/(paths付き) | 一致するファイルが開かれたとき。pathsが無ければ起動時 | お願い |
| 手順・チェックリスト・参照資料 | スキル | 説明は各セッション、全内容は使う時 | お願い |
| ファイルを大量に読む付随作業 | サブエージェント | 任せた時に、独自のコンテキストで動く | お願い。ツールの使い方と権限は個別に持てる |
| 編集のたびに必ず走らせる処理 | フック | 一致するイベントのたび。追加のコンテキストを返さない限り読み込む量はゼロ | 強制(Claudeの判断なしに発火する) |
| 絶対にさせない操作 | 権限のdeny、またはフック | ルールに当たる操作のとき(deny→ask→allowの順で評価) | 強制(止める) |

表の使い方は、今のCLAUDE.mdの見出しか段落を1つずつ取り出し、1列目のどれに当たるかを付けていくことです。1行目に当たるものだけが残り、それ以外は2列目の置き場所が移す先になります。1行の中に事実と手順が混ざっていたら、事実の1文だけをCLAUDE.mdに残し、手順はスキルへ分けます。
.claude/rules/はpathsの有無で読み込みが変わる
ルールに移すときに外せないのが、pathsの指定です。pathsの無いルールは、.claude/CLAUDE.mdと同じ優先順位で起動時に読み込まれます。公式ブログも、範囲を指定しないルールはCLAUDE.mdに書くのと仕組みは同じだと説明しています。APIのハンドラーにだけ効く決まりのように、対象のファイルがはっきりしているものだけをpaths付きで移すと、そのファイルを開いた時にだけ読み込まれます。
止めたい操作は、なぜCLAUDE.mdではなくフックと権限に置くのか
CLAUDE.mdの指示は、Claudeがコンテキストとして扱うもので、強制の設定ではありません。公式は、CLAUDE.mdやスキルに書いた「.envは決して編集しない」のような指示は要望であって保証ではないとし、ガードレールはフックに置くと書いています。CLAUDE.mdに「絶対に.envを触らない」と書いたのに守られない場面があるのは、書き方の問題ではなく置き場所の問題です。
フックは、Claudeの判断を通さずに動く
フックは、Claudeの判断なしにイベントで発火します。公式のフックの説明には、ツールを使う前に走るPreToolUseフックで終了コード2を返すと、その呼び出し(例として、rmで始まるコマンド)がブロックされる仕組みが書かれています。編集のたびにlintを走らせる、特定のコマンドを止める、といった「毎回必ず」のものはここに置きます。
権限は、denyが先に評価される
権限のルールは、deny・ask・allowの順に評価されます。allowのルールでdenyの例外を作ることはできません。そのため、.envの編集のように止めたい操作はdenyに書いておけば、別の場所でallowを足しても通りません。公式ブログも、絶対に起きてはならないことの強制の手段はフックと権限だと整理しています。権限の設定をメンバーにどう渡すかは、Claude Codeを業務部門に渡す最初の1週間の記事で扱っています。
CLAUDE.mdを読み返すときは、「必ず」「絶対に」「決して」と書いた行に印を付けます。その行は、CLAUDE.mdで書き方を強めるより、フックか権限のdenyに移す候補です。CLAUDE.mdには「.envは権限で止めている」と事実だけを残しておくと、Claudeも人も理由が分かります。
同じ説明を繰り返したら、どの単位で切り出すか
同じ手順を何度もチャットに貼っているなら、貼るのが3回目になった時がスキルにまとめる時です。公式ドキュメントは、どの機能を足すかを見直すきっかけを次の5つで示しています。これを、チームの切り出しの基準としてそのまま使えます。
| 起きたこと | 移す先 |
|---|---|
| Claudeが規約やコマンドを2回間違えた | CLAUDE.mdに追加する |
| 同じ手順をチャットに貼るのが3回目になった | スキルにまとめる |
| 付随的な作業の、後で見ない出力で会話が埋まる | サブエージェントで実行する |
| 指示しなくても毎回実行させたい | フックを作る |
| 2つ目のリポジトリで同じセットアップが要る | プラグインにまとめる |
スキルの公式ページは、CLAUDE.mdの節が事実ではなく手順に育ったらスキルを作る、と書いています。デプロイの手順やレビューのチェックリストがCLAUDE.mdの中で長くなっているなら、この条件に当たります。スキルにすると、普段は説明だけが読み込まれ、全内容は使う時にだけ読み込まれます。
スキルにするか、サブエージェントにするか
迷ったら、途中経過を会話に残したいかで分けます。公式ブログは、手順をメインの会話の中で進めたいならスキル、途中経過を残したくない付随作業はサブエージェントと整理しています。サブエージェントは、独自のシステムプロンプト・ツールの使い方・独立した権限を持ち、自分のコンテキストで動きます。多数のファイルを読んで要点だけ返す調査はサブエージェント、レビューの観点を1つずつ確かめながら直していく作業はスキル、という分け方になります。
個人の好みや会社の方針は、どの階層に置くか
リポジトリのCLAUDE.mdは、チーム全員で共有する指示の置き場所です。個人の好みや会社全体の方針まで書き込むと、そのぶん全員の会話で毎回読み込まれます。公式のメモリのページは、CLAUDE.mdを置ける範囲を4つに分けています。組織全体の指示は、IT・DevOpsが管理する管理ポリシーのファイルに置きます。すべてのプロジェクトに効く個人の設定は、ホームディレクトリの~/.claude/CLAUDE.mdです。チームと共有する指示はリポジトリ直下のファイル、個人的でそのプロジェクトだけの設定は./CLAUDE.local.mdに置きます。
返答の口調や説明の細かさのように人によって違うものは、個人の2つの場所へ移します。会社全体で揃える方針は管理ポリシーに置きます。ただし、ここもCLAUDE.mdなのでお願いです。会社として必ず守らせたい設定は、管理者が配布する管理設定に置きます。公式ブログは、管理設定は利用者のローカル設定で上書きできないと説明しています。
@importで分けても、読み込む量は減らない
@importで読み込んだファイルは、元のCLAUDE.mdと一緒にロードされるため、コンテキストのコストは減りません。CLAUDE.mdを複数のファイルに分けて@importでつなぐのは、人が読みやすくする整理にはなりますが、Claudeが毎回読む量は同じです。@importの再帰は最大4ホップまでです。
読み込む量を本当に減らしたいなら、移す先は、一致するファイルを開いた時だけ読み込まれるpaths付きのルールか、使う時に全内容が読み込まれるスキルです。表の5行目と6行目に当たるものから移すと、CLAUDE.mdの行数が減りやすくなります。
人向けのメモはHTMLコメントに
CLAUDE.mdの中のブロック単位のHTMLコメントは、Claudeのコンテキストに入る前に削除されます。「この節は誰がいつ足したか」「なぜこの規約があるか」のように、人には残したいがClaudeには要らない説明は、HTMLコメントに入れれば行数の負担になりません。
分けた後に、誰が見直すか
公式ブログは、CLAUDE.mdを200行未満に保ち、担当者を決め、コードと同じように変更をレビューするよう勧めています。置き場所の決まりを作っても、誰でも足せる状態なら、CLAUDE.mdはまた伸びます。CLAUDE.mdへの追加は担当者のレビューを通す、追加の前に判定表のどの行かを書く、という2つをチームの決まりにしておくと、置き場所の判断が人によってぶれにくくなります。
関連: Claudeの法人契約は、代理店と直接で何が違うのか
この記事のまとめ
- 今のCLAUDE.mdの行数を数え、見出しごとに判定表の1列目のどれに当たるかを書き込んだ一覧を作る
- 「必ず」「絶対に」の行を抜き出し、権限のdenyかフックで止められるかをメンバーと確かめる
- CLAUDE.mdの担当者を1人決め、追加はレビューを通すことと、切り出しの基準5つをCLAUDE.mdの冒頭のHTMLコメントに残す
- 2つ目のリポジトリで同じ設定が要ると分かった時点で、プラグインにまとめるかを話し合う
公開日:2026年11月
読んで終わりにしないために
「自社の場合は、どうすれば?」
その答えを、最大45分で持ち帰る。
記事で分かるのは、一般論まで。AI導入を専門に見ている担当が、貴社の業務に当てはめて“次の一手”だけを一緒に整理します。
この相談で持ち帰れるもの
- 01
自社業務に当てはめたAI活用マップ
- 02
投資対効果(ROI)のシミュレーション
- 03
いまの悩み・疑問への、その場の個別回答


