CLAUDE.mdとメモリ機能でClaude Codeを賢く育てる|設定・階層・自動メモリ徹底解説

CLAUDE.mdとメモリ機能でClaude Codeを賢く育てる|設定・階層・自動メモリ徹底解説 生成 AI

Claude Codeは毎回まっさらな状態でセッションを始めます。「毎回同じ説明をしている」「同じ指摘を繰り返している」なら、それはCLAUDE.md自動メモリ(auto memory)の出番です。この記事では、Claude Codeにプロジェクトの知識を記憶させる2つの仕組みを、置き場所・読み込み順・書き方のコツまで実践的に解説します。

記憶を引き継ぐ2つの仕組み

セッションをまたいで知識を運ぶ方法は2つあり、どちらもセッション開始時に読み込まれます。

CLAUDE.md 自動メモリ(auto memory)
誰が書く あなた Claude自身
内容 指示・ルール 学習・パターン
使いどころ コーディング規約、ワークフロー、アーキテクチャ あなたの好み、修正指示、コードから読み取れない文脈

CLAUDE.mdは「あなたがClaudeを導きたいとき」、自動メモリは「修正を手間なく学ばせたいとき」に使います。 どちらも強制設定ではなく「文脈」として扱われる点に注意してください。絶対に守らせたい制約はフック(PreToolUseフック)で実装します。

CLAUDE.mdの置き場所と読み込み順

CLAUDE.mdは複数の場所に置け、それぞれスコープが異なります。読み込みは「広いスコープ→狭いスコープ」の順で、後に読まれたものほど優先されます。

スコープ 置き場所 用途
組織ポリシー 管理者が配布(/etc/claude-code/CLAUDE.mdなど) 会社全体の規約・コンプライアンス
ユーザー ~/.claude/CLAUDE.md 全プロジェクト共通の個人設定
プロジェクト ./CLAUDE.md または ./.claude/CLAUDE.md チーム共有のプロジェクト指示
ローカル ./CLAUDE.local.md 個人的なプロジェクト設定(.gitignore推奨)

作業ディレクトリとその上位すべてのCLAUDE.mdが起動時に読み込まれ、連結されます。サブディレクトリのCLAUDE.mdは、そのディレクトリのファイルをClaudeが読んだときに随時読み込まれます。

現在のセッションでどのファイルが読み込まれたかは/contextコマンドの「Memory files」で確認できます。

/initで自動生成する

ゼロから書く必要はありません。/initを実行すると、Claudeがコードベースを解析し、ビルドコマンド・テスト方法・命名規約などを含んだCLAUDE.mdのたたき台を自動生成してくれます。既にファイルがある場合は、上書きではなく改善提案をしてくれます。

効果的な書き方3原則

CLAUDE.mdは毎セッションの文脈トークンを消費するため、書き方が守られやすさを左右します。

  • サイズ:1ファイル200行以内が目安。長いほど文脈を圧迫し、遵守率が下がる
  • 構造:Markdownの見出しと箇条書きで整理する。密な文章より読み取りやすい
  • 具体性:検証できるレベルで書く

具体性の例:

  • ×「コードを整形する」 → ○「インデントはスペース2つを使う」
  • ×「テストする」 → ○「コミット前にnpm testを実行する」
  • ×「ファイルを整理する」 → ○「APIハンドラはsrc/api/handlers/に置く」

@importで分割する

CLAUDE.mdは@path/to/file構文で他ファイルを読み込めます。

プロジェクト概要は @README を、npmコマンドは @package.json を参照。

# 追加指示
- gitワークフロー @docs/git-instructions.md

相対パスは「そのファイルからの相対」で解決されます。なお、importしても内容は起動時に文脈へ展開されるため、トークン削減目的には向きません。整理のための機能と捉えてください。パスを文字として書きたいだけなら` @README `のようにバッククォートで囲みます。

自動メモリ(auto memory)

自動メモリは、あなたが何も書かなくてもClaudeが学びを蓄積する仕組みです。既定でオンになっており、4種類のメモを保存します。

  • user:あなたの役割・専門・作業の好み
  • feedback:あなたが与えた修正、承認したアプローチ
  • project:進行中の作業・締切・コードから読み取れない決定事項
  • reference:課題管理ツールやダッシュボードなど外部情報のありか

コードから読み取れること(アーキテクチャ、ファイルパスなど)や、CLAUDE.mdに既に書かれていることは保存しません。「pnpmを使って、npmは使わないで」のように頼めば、自動メモリに記録されます。

保存先はリポジトリごとの~/.claude/projects/<project>/memory/で、MEMORY.mdという索引と、トピックごとのファイルで構成されます。索引の先頭200行(または25KB)が毎セッション読み込まれます。中身はただのMarkdownなので、/memoryコマンドから閲覧・編集・削除できます。

オフにしたいときは/memoryのトグル、または設定で"autoMemoryEnabled": falseを指定します。

うまく従ってくれないときは

CLAUDE.mdはシステムプロンプトそのものではなく、その後のユーザーメッセージとして渡されるため、厳密な遵守は保証されません。次を確認してください。

  • /contextで対象のCLAUDE.mdが読み込まれているか確認する
  • 指示をより具体的にする(「2スペース」など)
  • 複数ファイル間で矛盾した指示がないか見直す
  • 「コミット前に必ず実行」のような確実性が必要なものは、CLAUDE.mdではなくフックで実装する

まとめ

CLAUDE.mdと自動メモリは、Claude Codeを「使うたびに賢くなる相棒」に育てる仕組みです。まずは/initでたたき台を作り、200行以内・具体的・構造化を意識して整えましょう。同じ指摘を2回した内容はCLAUDE.mdへ、細かな好みは自動メモリへ。この分担を意識するだけで、Claude Codeの作業品質が目に見えて安定します。

Views: 0

タイトルとURLをコピーしました