Claude Code 記憶(メモリ)機能|CLAUDE.mdの設定と活用方法

32分で読めます

Claude Codeには「記憶(メモリ)」機能があり、プロジェクトの情報やコーディングルールをセッションを超えて記憶させることができます。この記事では、メモリ機能の仕組みと活用方法を解説します。

メモリ機能とは

基本的な仕組み

Claude Codeのメモリ機能は、CLAUDE.md ファイルを通じて実現されます。このファイルに書かれた情報は、毎回のセッションで自動的に読み込まれ、Claudeがプロジェクトの文脈を理解した状態で作業を開始できます。

メモリの種類

種類

ファイル場所

適用範囲

グローバルメモリ

~/.claude/CLAUDE.md

すべてのプロジェクト

プロジェクトメモリ

./CLAUDE.md

現在のプロジェクトのみ

ディレクトリメモリ

./subdir/CLAUDE.md

サブディレクトリ

CLAUDE.mdの作成

プロジェクトメモリの作成

# プロジェクトルートで
touch CLAUDE.md

または Claude Code 内で:

/memory

基本的な構造

# プロジェクト情報

このプロジェクトは〇〇するためのWebアプリケーションです。

## 技術スタック

- フロントエンド: Next.js 14, TypeScript
- スタイリング: Tailwind CSS
- バックエンド: Node.js, Express
- データベース: PostgreSQL
- ORM: Prisma

## プロジェクト構造

src/
├── components/  # UIコンポーネント
├── pages/       # ページコンポーネント
├── lib/         # ユーティリティ
├── hooks/       # カスタムフック
└── api/         # APIルート

## コーディング規約

- コンポーネントは関数コンポーネントで作成
- 型定義は必須
- コメントは日本語で記述
- テストはJestで作成

## 重要な注意事項

- APIキーは.envファイルで管理
- mainブランチへの直接プッシュ禁止

グローバルメモリの設定

グローバルCLAUDE.mdの作成

# グローバル設定ディレクトリに作成
mkdir -p ~/.claude
nano ~/.claude/CLAUDE.md

グローバルメモリの例

# 個人設定

## 基本情報

- 名前: 〇〇
- 主な使用言語: TypeScript, Python
- 好みのエディタ: VSCode

## コーディングスタイル

- インデント: スペース2つ
- 文字列: シングルクォート優先
- セミコロン: なし(TypeScript)
- コメント: 日本語

## よく使う技術

- フロントエンド: React, Next.js
- バックエンド: Node.js, FastAPI
- インフラ: Vercel, AWS

## デフォルトの振る舞い

- コードには適切なコメントを付ける
- エラーハンドリングを必ず実装
- TypeScriptでは厳密な型定義

メモリの追加と更新

/memoryコマンドで追加

Claude Code 内で:

/memory add "このプロジェクトではPrettierでフォーマットする"

直接ファイルを編集

# エディタで編集
nano CLAUDE.md
# または
code CLAUDE.md

Claude Codeに編集を依頼

CLAUDE.mdに以下を追加してください:
- テストカバレッジは80%以上を維持
- PRにはレビュワーを2人以上設定

メモリの優先順位

複数のCLAUDE.mdがある場合の優先順位:

  1. サブディレクトリの CLAUDE.md(最優先)
  2. プロジェクトルートの CLAUDE.md
  3. グローバル CLAUDE.md(~/.claude/CLAUDE.md)

優先順位の例

~/.claude/CLAUDE.md           → "インデント: スペース2つ"
./CLAUDE.md                   → "インデント: スペース4つ"
./src/CLAUDE.md              → 設定なし

結果: src/配下ではスペース4つ(プロジェクト設定が適用)

効果的なメモリの書き方

1. 具体的に書く

❌ 悪い例:
良いコードを書いてください。

✅ 良い例:
- 関数は単一責任の原則に従う
- 変数名は英語で、camelCaseで記述
- 1関数あたり30行以内を目安

2. 構造化する

## データベース操作

### 命名規則
- テーブル名: snake_case, 複数形(例: users, orders)
- カラム名: snake_case(例: created_at, user_id)

### 注意点
- 外部キーには必ずインデックスを設定
- 論理削除を使用(deleted_atカラム)

3. 禁止事項を明記

## 禁止事項

- `any`型の使用禁止
- console.logをコミットしない
- ハードコードされた秘密情報
- 無限ループの可能性があるコード

実践的な活用例

例1: Webアプリプロジェクト

# ECサイトプロジェクト

## 概要
Next.jsベースのECサイト。商品の閲覧、カート、決済機能を提供。

## 技術スタック
- Next.js 14 (App Router)
- TypeScript
- Prisma + PostgreSQL
- Stripe(決済)
- Tailwind CSS

## ディレクトリ構造
app/
├── (shop)/          # 顧客向けページ
├── (admin)/         # 管理画面
├── api/             # APIルート
└── components/      # 共通コンポーネント

## API設計
- RESTful API
- 認証: JWT(access token + refresh token)
- エラーレスポンス: { error: string, code: string }

## 注意事項
- 決済処理はStripe Webhookで処理
- 在庫チェックはトランザクション内で実行

例2: ライブラリ開発

# npmパッケージ開発

## 概要
日付操作のユーティリティライブラリ

## ビルド
- TypeScript → ESM + CJS 両対応
- バンドラー: tsup
- テスト: Vitest

## 公開前チェックリスト
- [ ] テストがすべてパス
- [ ] 型定義が正しくエクスポート
- [ ] CHANGELOGを更新
- [ ] バージョンをセマンティックに更新

## コーディング規約
- 依存関係は最小限に
- IE11非対応(ES2020以上を想定)
- Tree-shaking対応

例3: チーム開発

# チーム開発ガイドライン

## ブランチ戦略
- main: 本番環境
- develop: 開発環境
- feature/*: 機能開発
- fix/*: バグ修正

## コミットメッセージ
フォーマット: <type>: <description>

types:
- feat: 新機能
- fix: バグ修正
- docs: ドキュメント
- refactor: リファクタリング
- test: テスト
- chore: その他

## レビュー基準
- テストが書かれている
- 型エラーがない
- lint/formatが通っている
- 機能要件を満たしている

メモリのデバッグ

現在のメモリを確認

/memory show

メモリが読み込まれているか確認

現在認識しているプロジェクトの技術スタックを教えてください

メモリのリセット

/memory clear

よくある質問

Q: CLAUDE.mdはGitにコミットすべき?

A: プロジェクト固有の情報(技術スタック、コーディング規約など)はコミットすることをお勧めします。チームで共有することで、全員が同じ文脈で作業できます。ただし、個人的な設定はグローバルCLAUDE.mdに書きましょう。

Q: メモリの容量制限はありますか?

A: 明確な制限はありませんが、あまりに長いと処理に時間がかかる場合があります。必要な情報を簡潔にまとめることをお勧めします。

Q: 複数のプロジェクトで同じ設定を使いたい

A: グローバルCLAUDE.md~/.claude/CLAUDE.md)に共通設定を書くことで、すべてのプロジェクトに適用されます。

Q: メモリとシステムプロンプトの違いは?

A: メモリ(CLAUDE.md)はプロジェクト固有の情報を保存するもので、システムプロンプトはClaude自体の振る舞いを定義するものです。通常の開発ではCLAUDE.mdを使用します。

Q: 機密情報を書いても大丈夫?

A: CLAUDE.mdはローカルファイルなので基本的には安全ですが、Gitにコミットする場合は機密情報(APIキー、パスワードなど)を含めないでください。

まとめ

Claude Codeのメモリ機能:

項目

内容

ファイル名

CLAUDE.md

グローバル

~/.claude/CLAUDE.md

プロジェクト

./CLAUDE.md

追加コマンド

/memory add "内容"

確認コマンド

/memory show

効果的な使い方:

  1. 技術スタックを明記: 使用言語、フレームワーク
  2. コーディング規約: 命名規則、スタイル
  3. プロジェクト構造: ディレクトリの役割
  4. 禁止事項: 避けるべきパターン

CLAUDE.mdを適切に設定することで、Claude Codeがプロジェクトの文脈を理解し、より適切なコード生成やアドバイスができるようになります。

参考リンク

関連記事