AIノウハウ

CLAUDE.mdの書き方【2026年】精度を上げる構成と/init活用のコツ

くらべてナビ

Claude CodeのプロジェクトメモリCLAUDE.mdの書き方を、非エンジニア目線で解説。/initでの生成、ユーザー/プロジェクトの階層、書くべき内容、200行未満に保つ分割術まで。指示の再現性を高めて出力精度を底上げするコツをまとめました。

結論

CLAUDE.mdは「毎回のセッション冒頭で読み込まれる、Claude Codeへの常設の指示書」。/initで雛形を作り、守ってほしいルール・前提・NGを簡潔に書くほど、出力の再現性と精度が安定します。コツは、盛り込みすぎず1ファイル200行未満に保ち、範囲ごとに置き場所を分けることです。

Claude Codeは毎回まっさらな状態でセッションが始まります。前回の会話は覚えていないので、「うちのプロジェクトはこういう方針」「この書き方はやめて」といった前提を毎度説明するのは大変です。それを一度書いておけば毎回自動で読んでくれる仕組みがCLAUDE.md(プロジェクトメモリ)です。

実体験メモ

非エンジニアの私がClaude CodeでWebサイトを作っていて、いちばん出力が安定したのはCLAUDE.mdを整えたときでした。最初は毎回「日本語で」「このフォルダは触らないで」と言い直していたのが、書いておくだけで済むように。逆に欲張って長文を詰め込んだら反応がぼやけたので、「短く・具体的に・守ってほしいことだけ」に削ったら、また素直に効くようになりました。

そもそもCLAUDE.mdとは

Claude Codeが知識をセッションを跨いで持ち越す仕組みは2つあります。

どちらも毎セッションの冒頭で読み込まれます。auto memoryは既定でオンになっていて、/memory で閲覧・編集やオン/オフができます。この記事で扱う「書き方」は、人が主導する前者のCLAUDE.mdが中心です。

💡 イメージは「新しく来た優秀な助っ人に、毎朝最初に渡す作業マニュアル」。毎回同じ説明をしなくて済むように、要点だけ紙に書いておく感覚です。

ひとつ、公式ドキュメントが明言している大事な前提があります。「CLAUDE.mdはコンテキスト(文脈)であって、強制ではない」ということです。Claudeは読んで従おうとしますが、100%の遵守が保証される仕組みではありません。「勝手にコミットしない」のように確実に止めたい操作は、PreToolUseフック(ツール実行前に処理を差し込む仕組み)で機械的にブロックするのが公式の案内です。

auto memory(Claudeの学習ノート)も知っておく

CLAUDE.mdの相棒として、auto memoryの仕組みも押さえておくと運用がしやすくなります。

使い分けはシンプルで、ルールや前提は人がCLAUDE.mdに書き、Claudeが学んだことはauto memoryに溜まる、という分担です。「pnpmを使って、と毎回直している」ような修正は、Claudeに「覚えておいて」と頼むとauto memory側に保存されます。

まずは/initで雛形を作る

ゼロから書く必要はありません。プロジェクトのフォルダで起動し、スラッシュコマンドを打つだけです。

cd /path/to/your/project
claude
/init

/init はコードベースを解析して、技術スタックやよく使うコマンドなどを含む雛形を自動生成してくれます。既にCLAUDE.mdがある場合は上書きせず、改善提案の形になります。まずはこの下書きを土台に、自分の運用ルールを足していくのが早道です。

CLAUDE.mdに書くべき内容

正解は一つではありませんが、「毎回説明したくなること」を書くのが基本です。よく効くのは次のような項目です。

種類書く内容の例
プロジェクト概要何のプロジェクトか、使っている技術・言語
よく使うコマンドビルド・テスト・起動などの実行コマンド
コーディング規約命名・フォーマット・使ってほしい/避けたい書き方
守ってほしいルール「このフォルダは触らない」「勝手にコミットしない」など
前提・制約日本語で応答、対象読者、NG表現

書き方のコツはシンプルです。

やってはいけないことは「効くだろう」と全部盛りにすること。守ってほしいことだけに絞るほど、指示は素直に効きます。

階層(置き場所)を使い分ける

CLAUDE.mdは置く場所によって適用範囲が変わります。読み込みは広い範囲から狭い範囲の順で、作業ディレクトリに近いものほど後に(=優先的に効くように)読まれます。

階層置き場所適用範囲
ユーザー~/.claude/CLAUDE.md全プロジェクト共通(自分の好み)
プロジェクト./CLAUDE.md または ./.claude/CLAUDE.mdそのプロジェクト(チーム共有)
ローカル./CLAUDE.local.md個人メモ(gitignore推奨)

使い分けの目安は、「常に日本語で」「口調はこう」のような自分の好みはユーザーへ、「このリポジトリのルール」はチームで共有するプロジェクトへ、というふうに分けることです。組織全体に配る管理ポリシー用の置き場所も別途あり、読み込み順は管理ポリシー → ユーザー → プロジェクト → ローカルの順です(詳細は公式を参照)。

このほか、上位ディレクトリのファイルは起動時に読み込まれ、サブフォルダ用のCLAUDE.mdはそのフォルダのファイルを触るときに遅延読み込みされます。モノレポなど大きな構成でも、範囲ごとにルールを分けられます。

肥大化させないコツ(200行未満)

内容が増えるほど良いわけではありません。むしろ長すぎると読み込みの負荷が増え、焦点がぼやけて精度が落ちます。目安は1ファイル200行未満。超えそうなら分割します。

「共通の短いルールはCLAUDE.md本体、細かい規約は別ファイル」と分けると、見通しよく保てます。書き換えたら次のセッションから反映されるので、運用しながら少しずつ育てていくのがおすすめです。/memory からCLAUDE.mdやauto memoryを直接編集することもできます。

.claude/rules/ でトピック別に分割する

プロジェクトの .claude/rules/ ディレクトリにMarkdownファイルを置くと、ルールをトピックごとの複数ファイルに分けて管理できます。testing.md(テストの決まり)、code-style.md(書き方の規約)のように、1ファイル1トピックで置くイメージです。

さらに便利なのが、ファイル冒頭のfrontmatterに paths を書く条件付きルールです。

---
paths:
  - "src/api/**/*.ts"
---

# APIのルール
- エンドポイントには必ず入力チェックを入れる

こう書くと、このルールは該当パターンのファイルをClaudeが触るときだけ読み込まれます。常時読み込むCLAUDE.md本体を短く保ちつつ、細かい規約は必要な場面でだけ効かせられるので、コンテキストの節約にもなります。paths を書かないルールは、.claude/CLAUDE.md と同じ扱いで毎回読み込まれます。個人用に全プロジェクトへ効かせたいルールは ~/.claude/rules/ にも置けます。

精度を上げる運用のコツ

料金体系や利用条件、コマンドの最新仕様は変わることがあります。最新は必ず公式ドキュメントで確認してください(公式ドキュメントは code.claude.com に移転しています)。使うモデル(最新のClaudeモデル)の切り替えは /model で行えます。

まとめ

関連記事:Claude Codeの全体像は Claude Codeとは?、他のコマンドは スラッシュコマンドの使い方、外部連携は MCPの設定と使い方、作業の自動化は サブエージェントで自動化する もどうぞ。カテゴリ一覧は AI活用・ノウハウ へ。

よくある質問(FAQ)

CLAUDE.mdは自分で一から書く必要がありますか?

いいえ。プロジェクトのフォルダで /init を実行すると、コードベースを解析して雛形を自動生成してくれます。まずはそれを土台に、守ってほしいルールや前提を追記していくのが現実的です。既存のCLAUDE.mdがある場合は上書きせず改善提案の形になります。

CLAUDE.mdとauto memoryは何が違いますか?

CLAUDE.mdは人が書く指示、auto memoryはClaudeが自動で書き足す学習の記録です。どちらも毎セッションの冒頭で読み込まれます。ルールや前提は自分でCLAUDE.mdに書き、auto memoryは /memory で閲覧・編集できます。

CLAUDE.mdはどこに置けばいいですか?

全プロジェクト共通の好みは ~/.claude/CLAUDE.md(ユーザー)、チームで共有したいルールはリポジトリ直下の ./CLAUDE.md(プロジェクト)に置きます。個人的なメモは ./CLAUDE.local.md に分け、gitignore推奨です。読み込みは広い範囲から狭い範囲の順です。

内容が増えてきたらどう管理すればいいですか?

1ファイル200行未満を目安にし、長くなったら @path で別ファイルをインポートするか、.claude/rules/ にパス限定のルールを切り出して分割します。詰め込みすぎると読み込みの負荷が増え、かえって精度が落ちるので簡潔さを優先しましょう。

CLAUDE.mdに書いたルールをClaudeが守らないことがあります。どうすれば?

公式ドキュメントは「CLAUDE.mdはコンテキストであって強制ではない」と明言しています。まず /memory で読み込まれているか確認し、曖昧な表現や矛盾する指示を削って具体化しましょう。それでも確実に止めたい操作(勝手なコミットの禁止など)は、PreToolUseフックで機械的にブロックするのが公式の案内です。