Claude Code の各種 MDファイル完全活用ガイド|CLAUDE.md・MEMORY.md・rules・agents・skills の使い分け

Claude Code を使いこなすうえで、セッションをまたいだ記憶の仕組みや動作のカスタマイズは避けて通れないテーマです。その鍵を握るのが、プロジェクト内に配置する各種 Markdown ファイルです。本記事では CLAUDE.md・MEMORY.md(Auto Memory)・rules/*.md・agents/*.md・skills/*.md のそれぞれについて、役割・書き方・具体的な活用例を徹底解説します。
テックジム東京本校では、情報科目の受験対策指導やAI駆動開発コースもご用意しております。
目次
- 1 Claude Code のメモリ構造を理解する
- 2 1. CLAUDE.md ─ Claude へのシステムプロンプト
- 3 2. MEMORY.md(Auto Memory)─ Claude が自動で書くメモ
- 4 3. rules/*.md ─ パス・ファイルタイプ別のルール
- 5 4. agents/*.md ─ 専門サブエージェントの定義
- 6 5. skills/*.md ─ 再利用可能なワークフロー定義
- 7 全ファイルの役割まとめと選択フローチャート
- 8 実践:大規模 Next.js プロジェクトでの構成例
- 9 まとめ
- 10 参考リンク
- 11 ■ゼロから始めるClaudeCode講座のご案内
- 12 ■らくらくPython塾 – 読むだけでマスター
- 13 共通テスト「情報I」対策解説講座
- 14 実践で学ぶPython速習講座
- 15 ■テックジム東京本校
Claude Code のメモリ構造を理解する
Claude Code はセッションのたびにコンテキストウィンドウがリセットされます。プロジェクト固有の知識をセッションをまたいで保持するための仕組みが、以下の 2 系統です。
| 系統 | 代表ファイル | 誰が書くか | 主な用途 |
|---|---|---|---|
| 指示ファイル | CLAUDE.md / rules/*.md |
人間(開発者) | コーディング規約・アーキテクチャ方針・チームルール |
| 学習メモ | Auto Memory(MEMORY.md相当) |
Claude 自身 | 訂正内容・デバッグの知見・発見したコマンド |
この 2 系統を組み合わせることで、Claude は「チームのルールブック」と「自分が経験から学んだノート」の両方を参照しながら作業できるようになります。
1. CLAUDE.md ─ Claude へのシステムプロンプト
概要
CLAUDE.md は、Claude Code のセッション開始時に必ず読み込まれる永続指示ファイルです。プロジェクトのビルドコマンド・コーディング規約・アーキテクチャ方針など、「毎回 Claude に説明しなければならないこと」をまとめておく場所です。従業員ハンドブックのような位置づけといえます。
配置場所とスコープ
Claude Code は起動ディレクトリからディレクトリツリーを上方向にたどり、見つかった CLAUDE.md をすべて連結してコンテキストに読み込みます(上書きではなく追記)。
| スコープ | パス | 共有先 |
|---|---|---|
| 組織ポリシー(管理者管理) | /Library/Application Support/ClaudeCode/CLAUDE.md(macOS) |
組織の全ユーザー |
| 個人(全プロジェクト共通) | ~/.claude/CLAUDE.md |
自分だけ(全プロジェクト) |
| プロジェクト(チーム共有) | ./CLAUDE.md または ./.claude/CLAUDE.md |
バージョン管理経由でチーム全員 |
| 個人プロジェクト設定 | ./CLAUDE.local.md(.gitignore 推奨) |
自分だけ(当プロジェクト) |
効果的な書き方のポイント
- 200行以内を目標に:ファイルが大きくなるほどコンテキストを消費し、指示の遵守率が下がります。
- 具体的に書く:「コードを整形する」ではなく「インデントは 2 スペースを使う」のように検証可能な粒度で。
- 手順や条件付きルールは別ファイルへ:長い手順書は
rules/やskills/に切り出します(後述)。 /initコマンドで自動生成:プロジェクトルートで/initを実行すると、コードベースを分析した初期CLAUDE.mdを自動生成できます。
活用例:Next.js + TypeScript プロジェクト
# MyApp プロジェクト
## 技術スタック
- Next.js 15 / TypeScript / Tailwind CSS
- データベース: PostgreSQL(Prisma ORM)
- テスト: Vitest + Playwright
## よく使うコマンド
- 開発サーバー: `pnpm dev`
- テスト実行: `pnpm test`
- 型チェック: `pnpm typecheck`
## コーディング規約
- インデントは 2 スペース
- 関数は named export を優先
- API ハンドラは `src/api/handlers/` 以下に配置
## 重要な注意
- `src/billing/` への変更は必ず plan モードで実行すること
- マイグレーションは直接実行せず PR レビューを経ること
@ とパス記載の使い分け
CLAUDE.md 内では @パス 記法で外部ファイルをインポートできます。インポートされたファイルはセッション開始時にインライン展開され、CLAUDE.md 本体と同様にコンテキストへ読み込まれます。
@ インポートを使うべき場面
# CLAUDE.md(抜粋)
プロジェクト概要は @README.md を参照。
利用可能な npm コマンドは @package.json を参照。
# 追加指示
- git ワークフロー: @docs/git-workflow.md
- README や package.json など既存ドキュメントを再利用したい場合
- チーム共通の指示を別ファイルで一元管理して複数プロジェクトの
CLAUDE.mdから参照したい場合 AGENTS.md(Cursor など他のエージェント向けのファイル)を共有する場合:
# CLAUDE.md
@AGENTS.md
## Claude Code 固有の設定
src/billing/ 配下の変更には plan モードを使用すること。
パスを直接 CLAUDE.md 本文に書く場面
@ でインポートせず CLAUDE.md に直接パスを書くのは、「このパスを参照せよ」という指示として Claude に渡したい場合です。例えば「修正時は必ず src/types/index.ts を確認すること」といったルールはパスを文字列として記述します。
| 記法 | 動作 | 使い所 |
|---|---|---|
@path/to/file.md |
起動時にファイルをインライン展開 | ドキュメント参照・設定共有 |
src/path/to/file.ts(テキスト) |
Claude への参照指示(読み込みは実行時) | 「このファイルを常に確認して」という指示 |
注意:初めて外部インポートを含むプロジェクトで起動すると承認ダイアログが表示されます。拒否するとインポートは無効になります。
2. MEMORY.md(Auto Memory)─ Claude が自動で書くメモ
概要
Auto Memory は Claude Code がセッション中に学んだことを自動で書き込む学習ノートです。ユーザーが訂正した内容・デバッグ中に発見したコマンド・コードスタイルの好みなどが蓄積されます。最初の 200 行または 25 KB がセッション開始時に読み込まれます。
CLAUDE.md と MEMORY.md(Auto Memory)の使い分け
最も重要な違いは「誰が書くか」です。
| 項目 | CLAUDE.md | Auto Memory(MEMORY.md) |
|---|---|---|
| 書き手 | 開発者(人間) | Claude 自身 |
| 内容 | 意図的に定めたルール・指示 | 経験から発見した事実・パターン |
| 更新タイミング | 意識的に編集 | セッション中に自動追記 |
| 管理 | バージョン管理でチーム共有可 | リポジトリ単位、worktree 間で共有 |
| 向いているもの | 「常にこうしてほしい」という規約 | 「このプロジェクトでは○○が必要」という発見 |
実践的な使い分けの指針:
- 「テストは必ず
pnpm testで実行する」→ CLAUDE.md(意図的なルール) - 「
docker-compose upの前に.env.localのコピーが必要だと Claude が発見した」→ Auto Memory(経験からの学習) - 「コードレビューで毎回指摘される命名規則」→ CLAUDE.md(チームポリシー)
Auto Memory が蓄積されすぎた場合や内容が古くなった場合は、手動で編集・削除できます。/memory コマンドで現在読み込まれているファイルの一覧を確認できます。
3. rules/*.md ─ パス・ファイルタイプ別のルール
概要
.claude/rules/ 以下に配置する Markdown ファイルは、特定のファイルパスやファイルタイプに対してのみ適用されるスコープ限定ルールです。CLAUDE.md に書くと全セッションで読み込まれるルールを、関係するファイルを操作するときだけ読み込めるため、コンテキストを節約できます。
ファイル構成例
.claude/
└── rules/
├── api-rules.md # API 関連ファイル用ルール
├── testing-rules.md # テストファイル用ルール
└── frontend-rules.md # フロントエンド用ルール
活用例 1:APIルールをスコープ限定で管理
<!-- .claude/rules/api-rules.md -->
---
globs: src/api/**/*.ts
---
# API ハンドラのルール
- 必ず Zod でリクエストバリデーションを行うこと
- エラーレスポンスは `{ error: string, code: string }` 形式で返すこと
- 認証チェックは `src/middleware/auth.ts` の `requireAuth` を使うこと
- レート制限ヘッダーを必ず設定すること
活用例 2:テストルールの分離
<!-- .claude/rules/testing-rules.md -->
---
globs: "**/*.test.ts,**/*.spec.ts"
---
# テスト規約
- データベースのモックは使わず Integration Test を優先すること
- スナップショットテストは安定した成果物にのみ使用すること
- Playwright を使う E2E テストは `e2e/` ディレクトリに配置すること
CLAUDE.md からルールへの切り出し基準
| CLAUDE.md に残す | rules/*.md へ切り出す |
|---|---|
| プロジェクト全体に常時適用するルール | 特定ディレクトリ・ファイルタイプのみに適用するルール |
| ビルドコマンド・全体の方針 | フロントエンド・API・テストなど領域別の詳細規約 |
| 200行以内に収まる内容 | CLAUDE.md が肥大化した際の切り出し先 |
4. agents/*.md ─ 専門サブエージェントの定義
概要
.claude/agents/ 以下の Markdown ファイルは、特定タスクに特化したサブエージェントの設定ファイルです。サブエージェントはメインのコンテキストウィンドウとは独立した専用コンテキストで動作するため、探索や調査タスクで主セッションのコンテキストが汚染されることを防げます。
ファイル構成例
.claude/
└── agents/
├── code-reviewer.md # コードレビュー専門エージェント
├── security-auditor.md # セキュリティ監査エージェント
└── doc-writer.md # ドキュメント作成エージェント
サブエージェントの定義フォーマット
YAML フロントマターにエージェントの設定を書き、その下にシステムプロンプト(エージェントへの指示)を記述します。
---
name: code-reviewer
description: >
コードレビューの専門家。コード変更後にセキュリティ・スタイル・
保守性を確認する場合に使用。変更後は積極的に呼び出すこと。
tools: Read, Grep, Glob, Bash
model: inherit
---
あなたはシニアコードレビュアーです。呼び出された際は以下を実行してください。
1. `git diff` で変更ファイルを特定する
2. セキュリティ問題・パフォーマンス・テストカバレッジを確認する
3. 問題点を優先度順にリストアップする
4. 修正が必要な箇所には具体的な改善案を提示する
結果は `{ summary, issues, suggestions }` の JSON 形式で返すこと。
フロントマターの主要フィールド
| フィールド | 説明 | 例 |
|---|---|---|
name |
エージェントの識別子(必須) | code-reviewer |
description |
自動呼び出しのトリガー文(具体的に書くほど精度向上) | コードレビューが必要なとき。変更後に積極的に使用 |
tools |
利用可能なツールのホワイトリスト | Read, Grep, Glob(読み取り専用に制限) |
model |
使用モデル(inherit でメインセッションのモデルを継承) |
claude-haiku-4-5-20251001(高速・低コスト向け) |
活用例:用途別エージェント構成
セキュリティ監査エージェント(読み取り専用・低コストモデル)
---
name: security-auditor
description: セキュリティ監査の専門家。依存関係・認証・入力バリデーションの脆弱性を検査する場合に使用。
tools: Read, Grep, Glob
model: claude-haiku-4-5-20251001
---
OWASP Top 10 を基準に以下を確認してください:
- SQL インジェクション・XSS の可能性
- 認証・認可の実装
- シークレットのハードコード
- 依存パッケージの既知脆弱性
ドキュメント作成エージェント(Web 検索可能・書き込み権限あり)
---
name: doc-writer
description: API ドキュメント・README・コメントを作成する場合に使用。
tools: Read, Write, Edit, Glob, Grep, WebFetch, WebSearch
---
既存コードを解析し、JSDoc コメントおよび Markdown ドキュメントを生成してください。
コード例は実際に動作することを前提に書くこと。
サブエージェントのスコープと優先順位
| スコープ | パス | 優先度 |
|---|---|---|
| プロジェクト | .claude/agents/*.md |
最高(プロジェクト優先) |
| 個人(全プロジェクト) | ~/.claude/agents/*.md |
2 番目 |
| プラグイン | <plugin>/agents/*.md |
3 番目 |
同名エージェントが複数スコープに存在する場合、プロジェクトスコープが優先されます。
5. skills/*.md ─ 再利用可能なワークフロー定義
概要
skills/ 以下に配置する SKILL.md ファイルは、繰り返し使うワークフロー・手順書・専門知識を再利用可能なパッケージとして定義するものです。Claude が関連タスクを検知したときに自動で読み込むか、/skill-name コマンドで明示的に呼び出せます。
CLAUDE.md との最大の違いは読み込みタイミングです。CLAUDE.md は全セッションで常時読み込まれますが、Skills はその Skill が必要なときだけ読み込まれるため、コンテキストの無駄遣いを防げます。
ファイル構成例
.claude/
└── skills/
├── summarize-changes/
│ └── SKILL.md
├── code-review/
│ └── SKILL.md
└── deploy/
├── SKILL.md
└── scripts/
└── pre-deploy-check.sh
SKILL.md のフォーマット
---
name: summarize-changes
description: >
コミット前の変更をサマリーし、リスクをフラグする。
変更内容の確認・コミットメッセージ作成を依頼されたときに使用。
---
## 現在の変更
!`git diff HEAD`
## 手順
上記の差分を 2〜3 行で要約し、以下のリスクを確認してください:
- エラーハンドリングの欠如
- ハードコードされた値
- 更新が必要なテスト
差分が空の場合は「未コミットの変更はありません」と返答してください。
!`` コマンド`` 記法(Dynamic Context Injection)を使うと、Skill 実行時にコマンドを実行してその出力をプロンプトにインライン展開できます。
活用例 1:フロントエンド開発ワークフロー
---
name: frontend-design
description: React コンポーネント・UI の実装を依頼されたときに使用。Tailwind CSS のスタイルガイドと命名規則を含む。
---
# フロントエンド実装ガイドライン
## コンポーネント設計
- `src/components/ui/` には汎用コンポーネントのみ配置
- ページ固有のコンポーネントは `src/app/[route]/_components/` に配置
- Props の型定義は必ず別途 `interface` で定義すること
## スタイル規約
- カラー変数は `tailwind.config.ts` の `theme.extend.colors` を使用
- レスポンシブは mobile-first(sm: md: lg: の順)
- アニメーションは `transition-` クラスで統一
活用例 2:DB マイグレーション手順
---
name: db-migration
description: データベースのマイグレーション作成・実行を依頼されたときに使用。
---
# マイグレーション手順
1. `pnpm prisma migrate dev --name <migration-name>` で開発環境にマイグレーション作成
2. `src/prisma/migrations/` に生成されたファイルを確認
3. ロールバック手順を `docs/runbooks/` に記録
4. 本番適用前に DBA レビューを必ず依頼すること(`#db-review` チャンネル)
Skills の保存場所
| 場所 | パス | 適用範囲 |
|---|---|---|
| 個人(全プロジェクト共通) | ~/.claude/skills/<name>/SKILL.md |
全プロジェクト |
| プロジェクト | .claude/skills/<name>/SKILL.md |
当プロジェクトのみ |
| 組織(エンタープライズ) | マネージド設定参照 | 組織全員 |
同名 Skill が複数スコープに存在する場合、組織 > 個人 > プロジェクトの優先順です。
全ファイルの役割まとめと選択フローチャート
Claude に伝えたいことがある
│
├─ 毎回必ず伝えたい(全セッション共通)
│ └─ CLAUDE.md
│ ├─ 全体に適用するルール → CLAUDE.md 本文
│ └─ 特定ディレクトリ・ファイルタイプ限定 → .claude/rules/*.md
│
├─ 手順・ワークフロー(必要なときだけ)
│ └─ .claude/skills/*/SKILL.md
│
├─ 専門タスクを分離したい(コンテキスト汚染を防ぐ)
│ └─ .claude/agents/*.md(サブエージェント)
│
└─ Claude に自動で学習させたい
└─ Auto Memory(Claude が自動書き込み)
一覧比較表
| ファイル | 読み込みタイミング | 書き手 | 主な用途 |
|---|---|---|---|
CLAUDE.md |
毎セッション開始時(常時) | 人間 | プロジェクト規約・ビルドコマンド・方針 |
Auto Memory |
毎セッション開始時(200行まで) | Claude | 経験から学んだ事実・デバッグ知見 |
rules/*.md |
対象ファイル操作時のみ | 人間 | 領域別ルール(API・テスト・UIなど) |
agents/*.md |
委譲時(独立コンテキスト) | 人間 | 専門タスク用サブエージェント定義 |
skills/*.md |
関連タスク検知時 or 手動呼び出し | 人間 | 繰り返す手順・ワークフロー |
実践:大規模 Next.js プロジェクトでの構成例
my-app/
├── CLAUDE.md # プロジェクト全体の基本設定(200行以内)
├── CLAUDE.local.md # 個人環境設定(.gitignore 推奨)
└── .claude/
├── rules/
│ ├── api-rules.md # src/api/** 向けルール
│ ├── testing-rules.md # *.test.ts 向けルール
│ └── frontend-rules.md # src/components/** 向けルール
├── agents/
│ ├── code-reviewer.md # PR レビューエージェント
│ └── security-auditor.md # セキュリティ監査エージェント
└── skills/
├── summarize-changes/
│ └── SKILL.md # git diff サマリー
├── db-migration/
│ └── SKILL.md # マイグレーション手順
└── deploy/
├── SKILL.md # デプロイワークフロー
└── scripts/
└── pre-check.sh
CLAUDE.md には「常に全員が知っておくべき情報」だけを書き、手順や領域別ルールは rules/ や skills/ に切り出すことで、ファイルの肥大化を防ぎつつ管理のしやすさを維持できます。
まとめ
Claude Code の各種 MD ファイルを適切に設計することは、Claude を「汎用的なアシスタント」から「プロジェクトを深く理解した専任エンジニア」へと進化させる最も効果的な方法です。
CLAUDE.md:常時読み込まれる基本設定。チームの設計思想と規約を凝縮する@インポート:既存ドキュメントを再利用し、重複を排除するAuto Memory:Claude が自動で育てる学習ノート。人間が書く必要がないrules/*.md:領域別のルールを必要なときだけ読み込み、コンテキストを節約するagents/*.md:専門タスクを独立したコンテキストで実行し、メインセッションを守るskills/*.md:繰り返す手順を再利用可能なパッケージ化する
これらを組み合わせることで、チーム全体で一貫した高品質な AI ペアプログラミング体験を構築できます。
参考リンク
■ゼロから始めるClaudeCode講座のご案内
テックジム東京本校では「ClaudeCode」の体験講座を開催。
「その日のうちに動かす」 をゴールに、環境構築から実践まで。
毎週土曜日15時。参加は無料です。対面・ハンズオンだから初心者でも安心。
■らくらくPython塾 – 読むだけでマスター
共通テスト「情報I」対策解説講座
実践で学ぶPython速習講座
■テックジム東京本校
格安のプログラミングスクールといえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
対面型でより早くスキル獲得、月額2万円のプログラミングスクールです。
情報科目の受験対策指導やAI駆動開発コースもご用意しております。