ハブネコのAIラボ

Claude Code

CLAUDE.mdの書き方|Claude Codeの精度を上げるメモリ設定

公開: / 更新: 読了目安9分

#CLAUDE.md #設定

CLAUDE.mdの書き方|Claude Codeの精度を上げるメモリ設定

先に結論: CLAUDE.mdは組織・ユーザー・プロジェクト・ローカルの4階層で読み込まれるMarkdownファイルで、/initで自動生成した上で毎回説明し直している情報を200行程度の目安で追記するのが基本の書き方です。

Claude Codeの精度を上げる一番手っ取り早い方法は、CLAUDE.md にプロジェクトの前提知識を書いておくことです。ビルドコマンドや規約を毎回説明する必要がなくなり、Claudeが一貫した挙動でコードを書いてくれるようになります。

この記事では、CLAUDE.mdの配置場所と優先順位、/init による自動生成、書くべき内容と実例、書かない方がいい内容を整理します。

この記事の要点

  • CLAUDE.mdはセッション開始時に読み込まれるプレーンテキストのMarkdownファイルで、動作を制御するsettings.jsonとは役割が異なります。
  • 配置場所は組織全体・ユーザー(~/.claude/CLAUDE.md)・プロジェクト(./CLAUDE.md)・ローカル(./CLAUDE.local.md)の4階層で、範囲が広いものから順に読み込まれます。
  • @path/to/file記法で他ファイルを読み込め、再帰的なimportは最大4階層まで可能です。
  • /initコマンドでコードベースを解析し自動生成できますが、チーム独自の暗黙のルールは生成後に手動で追記する必要があります。
  • 1ファイルあたり200行程度を目安にし、絶対に守らせたいルールはCLAUDE.mdではなくHook機能で強制するのが推奨されます。

CLAUDE.mdとは何か

CLAUDE.mdは、Claude Codeセッション開始時に読み込む、プレーンテキストのMarkdownファイルです。

毎回チャットで説明し直すのが面倒な情報を書いておく場所だと考えるとわかりやすいです。

Claude Codeにはこのほかに、Claude自身が学習内容を書き込む「自動メモリ(Auto memory)」もあります。CLAUDE.mdは人間が書く指示、自動メモリはClaudeが自分で書く学習内容という役割分担です。

この記事ではCLAUDE.mdの書き方に絞って解説します。

CLAUDE.mdはあくまでClaude Codeの数ある設定のひとつです。権限やhook、環境変数など動作そのものを制御する設定はsettings.jsonが担当します。

詳しくは「Claude Code settings.json解説」を、設定ファイル全体を体系的に押さえたい方は「Claude Code設定完全ガイド」をあわせてご覧ください。

CLAUDE.mdは複数の場所に置くことができ、それぞれスコープ(適用範囲)が異なります。公式ドキュメントによると、読み込み順は範囲が広いものから狭いものへと次のようになっています。

CLAUDE.mdの読み込み範囲を広い順から示す図。組織全体(各OS管理者用ディレクトリ)、ユーザー(~/.claude/CLAUDE.md)、プロジェクト(./CLAUDE.md、チーム共有)、ローカル(./CLAUDE.local.md、個人用)の4階層が、範囲の広いものから順に読み込まれ連結されることを示す。

スコープ配置場所用途
組織全体各OSの管理者用ディレクトリ(Windowsは C:\Program Files\ClaudeCode\CLAUDE.md)会社全体の規約・ポリシー
ユーザー~/.claude/CLAUDE.md全プロジェクト共通の個人的な好み
プロジェクト./CLAUDE.md または ./.claude/CLAUDE.mdチームで共有するプロジェクトの規約
ローカル./CLAUDE.local.md個人用の固有設定(.gitignore推奨)

作業ディレクトリより上の階層のCLAUDE.mdは起動時にすべて読み込まれ、サブディレクトリのCLAUDE.mdはClaudeがそのディレクトリのファイルを読んだタイミングで追加読み込みされます。

複数ファイルは上書きではなく連結され、階層の浅い指示が先、作業ディレクトリに近い指示が後に配置されます。

CLAUDE.md内では @path/to/file という記法で他ファイルを読み込めます(import構文)。相対パスはimport元からの相対位置で解決され、再帰的なimportは最大4階層まで可能です(2026年8月時点)。

既存の AGENTS.md を流用したい場合は、先頭で @AGENTS.md と書くだけで取り込めます。

仕様は変わる可能性があるため、正確な挙動は公式ドキュメントのMemoryページで確認してください。

/init での自動生成

CLAUDE.mdは手書きしなくても、セッション内でスラッシュコマンド/init を実行すれば自動生成できます。生成の流れは次の3ステップです。

/initコマンドがコードベース解析からCLAUDE.md生成、チーム独自ルールの手動追記まで3ステップで進むことを示す図

/init

/init を実行すると、Claudeがコードベースを解析し、ビルドコマンドやテスト方法、発見したプロジェクトの慣習をまとめたCLAUDE.mdを作成してくれます。すでに存在する場合は上書きではなく改善案を提案します。

既存のCursorルールなど他ツールの指示ファイルがあれば取り込んでくれます。

ただし生成内容はコードベースから読み取れる範囲にとどまります。チーム独自の暗黙のルールはカバーしきれないため、生成後に手を入れる前提で使うのがおすすめです。

作成済みのCLAUDE.mdを一覧・編集したいときは /memory コマンドを使います。ファイルを選択すると自動でエディタが開き、存在しないファイルを選ぶとその場で新規作成されます。

会話中に「これをCLAUDE.mdに追加して」と頼む方法や、# から始めるメッセージで手早くメモリに追記できる場合もありますが、挙動はバージョンや設定によって変わるため、最新の仕様は公式ドキュメントで確認してください。

書くべき内容と実例

CLAUDE.mdに書くべきなのは、「Claudeが同じ間違いを2回目もしてしまったこと」「コードレビューで毎回指摘されること」「新しいメンバーに毎回説明していること」です。

具体的にはビルド・テスト・Lintの実行コマンド、ディレクトリ構成のルール、コーディング規約、やってはいけない操作などが向いています。

以下は、Node.jsのWebアプリを想定したサンプルCLAUDE.mdの全文です。

# プロジェクト概要

社内向けタスク管理SaaSのバックエンドAPIです。Node.js + TypeScript + Expressで構築しています。

## セットアップ・ビルドコマンド

- 依存関係のインストール: `npm install`
- テスト実行: `npm test`
- 型チェック: `npm run typecheck`

## コーディング規約

- インデントは2スペース、async/awaitを使用(.then()チェーンは不可)
- APIレスポンスは必ず `{ data, error }` の形式で返す

## 禁止事項

- `src/models/schema.prisma` は直接編集しない(マイグレーションコマンド経由で変更する)
- `main` ブランチへの直接pushは禁止。必ずPR経由にする

## 参考ファイル

@docs/api-conventions.md

コマンド・規約・禁止事項をセクションごとに分けると、Claudeが構造を把握しやすくなります。詳細な資料は本文に埋め込まず、importで参照すると見通しがよくなります。

文体の調整にもCLAUDE.mdは活用できます。

FableやOpusなど新しめのモデルの日本語出力が「AI調」で読みにくいと感じる場合、その文章をClaude自身に見せて「AIっぽさの原因と改善案を挙げて」と分析させ、出てきた方針(語尾の癖・接続詞の多用・体温のなさなど)をCLAUDE.mdの文体ルールとして登録する、という工夫がX日本語圏の利用者の間で共有されています(2026年8月時点)。

効果を保証するものではありませんが、リライトの手間を減らす工夫として紹介されています。

同じミスの繰り返し対策として、「ミスをしたらMISTAKES.mdに記録すること」という1行をCLAUDE.mdに加える運用も海外コミュニティで反響を集めています(Reddit r/ClaudeCode、2026年8月投稿)。

失敗のたびに記録が蓄積され、繰り返されたミスだけをCLAUDE.md本体のルールへ昇格させることで、ルールの肥大化を防ぎつつ効くルールだけを残せるという考え方です。前述の「200行程度」の目安を守るうえでも相性のよい整理法です。

逆に「やりすぎ」を抑える指示も有効です。

2026年8月時点の海外コミュニティでは、頼んでいないのにClaudeが「ゲート」「保護機構」と称する防御的なチェック処理やフォールバックを大量に生成してしまう、という報告が話題になりました(Reddit r/ClaudeCode、2026年8月投稿)。

対策として「依頼していない防御的コード・フォールバック・検証層を勝手に追加しない。必要と判断した場合は実装前に提案して確認を取る」といった抑制ルールをCLAUDE.mdに明記する方法が共有されています。

禁止事項のセクションに1〜2行加えるだけで済むため、生成コードが不必要に複雑になりがちだと感じたら試してみてください。

書かない方がいいこと

CLAUDE.mdはセッションのたびにコンテキストウィンドウへ読み込まれるため、長くなるほどトークンを消費し、指示への追従精度も下がる傾向があります。以下のアンチパターンは避けましょう。

つまずきポイント

バグイヌバグイヌ

/compactしたら、サブフォルダのCLAUDE.mdに書いたルールだけ、ぼくには効かなくなった気がします…。

ハブネコハブネコ

プロジェクトルート直下は再読み込みされますが、サブディレクトリのCLAUDE.mdは、そのディレクトリのファイルを読んだタイミングまで再読み込みされないのです。

よくある質問

CLAUDE.mdとCLAUDE.local.mdはどう使い分ければよいですか?

チームで共有したい規約は CLAUDE.md に、自分だけのローカル設定(サンドボックスURLやテストデータなど)は CLAUDE.local.md に書き、.gitignore に追加するのが基本です。

/init を実行したあと、内容は手動で編集してもよいですか?

問題ありません。むしろ推奨されています。

生成内容はコードベースから読み取れる範囲にとどまるため、チーム独自のルールは自分で追記してください。編集は /memory コマンドから対象ファイルを選ぶと開けます。

CLAUDE.mdに書いた指示にClaudeが従ってくれないことがあります

CLAUDE.mdは強制設定ではなく文脈として扱われるため、曖昧な指示や矛盾した指示があると従わないことがあります。まず /context でファイルが読み込まれているか確認し、より具体的な表現に書き換えてみてください。

確実に守らせたい処理はHook機能での実装を検討しましょう。

ハブネコ

ハブネコのひとこと

CLAUDE.mdはあくまで文脈であり、書いただけでは強制力を持たないという点は意外と見落とされがちです。確実に守らせたい処理はHookの検討をおすすめします。

まとめ

CLAUDE.mdは、組織・ユーザー・プロジェクト・ローカルという階層構造で読み込まれ、/init コマンドで自動生成もできる、Claude Codeの精度を左右する設定ファイルです。

書くべき内容は「毎回説明し直している情報」に絞り、200行程度を目安に具体的で検証可能な表現でまとめるのがコツです。

UIデザインの好みを書き留めてClaude Codeに学習させる応用例は「Claude Codeが作るUIが金太郎飴になる問題」で解説しています。

Claude Code自体の概要は「Claude Codeとは?できること・料金・始め方」、/init/memory を含むコマンド一覧は「Claude Codeのスラッシュコマンド一覧と使い方を解説」もあわせてご覧ください。