Claude Codeディレクトリ構成を完全図解|.claudeフォルダの中身と役割を徹底解説

Claudecodeディレクト構成アイキャッチ画像 AIノウハウ
タク
タク

Claude Codeを使い始めたら、いつの間にか.claudeっていうフォルダができてたんですけど…中身がよく分からなくて

Ren
Ren

あるある!僕も最初は何のファイルか分からずに放置してたよ。でも実はこの構成を理解すると、Claude Codeの使いこなしレベルが一段上がるんだ

こんにちは!Renです!

Claude Codeを使い始めると、プロジェクトフォルダにCLAUDE.md.claude/といったファイル・フォルダが出現しますよね。

「これ何?触っていいの?」と思いつつ、よく分からないまま使っている人、多いんじゃないでしょうか。

.claudeフォルダの中身がよく分からない
CLAUDE.mdってどこに置くのが正解?
Skills、Commands、settingsの関係が整理できていない
プロジェクト用とグローバル用の使い分けが曖昧

今回は、Claude Codeに関わるディレクトリ構成の全体像を1記事で完全整理します。

この記事を読めば、「どのファイルをどこに置けばいいか」で迷うことはなくなるはずです。

Claude Codeのディレクトリ構成【全体マップ】

まずは全体像を見てみましょう。

Claude Codeに関連するファイル・フォルダは、大きく「プロジェクト配下」「ホームディレクトリ(グローバル)」の2つの場所に分かれます。

my-project/                      ← プロジェクトルート
├── CLAUDE.md                   ← プロジェクト設定ファイル
├── CLAUDE.local.md             ← 個人用設定(.gitignore推奨)
├── .claude/
│   ├── settings.json           ← 権限・フック設定
│   ├── settings.local.json     ← 個人用権限設定
│   ├── skills/                 ← プロジェクトスキル
│   │   └── review/
│   │       └── SKILL.md
│   ├── rules/                  ← ルール分割ファイル
│   │   ├── code-style.md
│   │   └── testing.md
│   ├── agents/                 ← サブエージェント定義
│   │   └── researcher.md
│   └── commands/               ← カスタムコマンド(※レガシー)
│       └── deploy.md
└── src/
    └── ...

~/.claude/                       ← グローバル設定(全プロジェクト共通)
├── CLAUDE.md                   ← グローバルCLAUDE.md
├── settings.json               ← グローバル権限設定
├── skills/                     ← 個人スキル
│   └── explain-code/
│       └── SKILL.md
├── agents/                     ← 個人サブエージェント
└── commands/                   ← 個人コマンド
ポイント

この全体像を頭に入れておくだけで、「このファイルどこに置くんだっけ?」という迷いがなくなります。以降のセクションで、各ファイル・フォルダの役割を1つずつ解説していきます。

CLAUDE.md ― Claude Codeの「社員ハンドブック」

CLAUDE.mdとは?

CLAUDE.mdは、Claude Codeが毎セッション自動で読み込む設定ファイルです。

プロジェクトの概要、コーディング規約、よく使うコマンド、ディレクトリ構成の説明などを書いておくと、Claude Codeがその情報を前提に動いてくれます。

Ren
Ren

CLAUDE.mdはClaude Codeにとっての「社員ハンドブック」。新入社員に渡すマニュアルみたいなもので、「このプロジェクトではこうやって仕事してね」を伝えるファイルだよ

まだCLAUDE.mdを作っていない場合は、Claude Codeの対話モードで/initコマンドを実行すれば自動生成できます。Claude Codeがプロジェクトのコードを読み取って、概要・技術スタック・ディレクトリ構成などをまとめてくれます。

配置場所と読み込み順序

CLAUDE.mdは実は複数の場所に配置可能で、すべてが読み込まれます。

配置場所 スコープ Git管理 用途
~/.claude/CLAUDE.md 全プロジェクト共通 × 個人のコーディングスタイル
プロジェクトルート/CLAUDE.md プロジェクト チーム共有の規約・構成
CLAUDE.local.md プロジェクト × 個人の追加設定
サブディレクトリ/CLAUDE.md そのディレクトリ以下 モノレポの個別設定
タク
タク

サブディレクトリにも置けるんですね。いつ読み込まれるんですか?

Ren
Ren

サブディレクトリのCLAUDE.mdは遅延読み込み。Claude Codeがそのディレクトリ内のファイルを読むタイミングで初めて読み込まれるんだ。だからコンテキストを圧迫しないのがメリットだね

注意

CLAUDE.local.mdは必ず.gitignoreに追加しましょう。個人用の設定ファイルなので、チームメンバーに共有されてしまうと混乱の原因になります。

CLAUDE.mdの具体的な書き方・セクション構成については、CLAUDE.mdの書き方完全ガイド|Claude Codeの出力品質が変わるプロジェクト設定ファイル入門で詳しく解説しているので、あわせてチェックしてみてください。

.claude/フォルダの中身を完全解説

ここからがメインです。

.claude/フォルダの中には、Claude Codeの動作をカスタマイズするための5つの主要な要素が入ります。

settings.json ― 権限とフックの設定ファイル

settings.jsonは、Claude Codeの権限設定Hooks(フック)を定義するファイルです。

タク
タク

Claude Codeって毎回「このコマンド実行していいですか?」って聞いてきますよね。あれ正直面倒で…

Ren
Ren

settings.jsonで許可設定を書いておけば、毎回聞かれなくなるよ。ただしセキュリティとのトレードオフだから、許可する範囲は慎重にね

権限設定では、Claude Codeがどのツール・コマンドを自動実行してよいか(allow/deny)を定義します。

もう一つの役割がHooks(フック)です。フックとは、Claude Codeが特定のアクション(ファイル編集、コマンド実行など)を行う前後に、自動で別の処理を実行する仕組みです。たとえば「ファイルを保存したら自動でフォーマットをかける」といったことができます。

ポイント

settings.jsonもCLAUDE.mdと同様にsettings.local.json(個人用)を別途作れます。チーム共有の権限設定はsettings.jsonに、個人だけの設定はsettings.local.jsonに分けましょう。

skills/ ― 専門知識を教えるフォルダ

skills/は、Claude Codeに特定タスクの「やり方」を教えるフォルダです。

各スキルはフォルダ単位で管理します。フォルダの中にSKILL.mdを配置し、YAMLフロントマター(name, description)とMarkdown本文でスキルの内容を定義します。

.claude/skills/
├── review/
│   ├── SKILL.md           ← スキル定義本体
│   └── checklist.md       ← 補助ファイル(任意)
└── test-gen/
    ├── SKILL.md
    └── generate.py        ← スクリプトも同梱可能

スキルの大きな特徴は、Claude Codeが自動で判断して必要なスキルを読み込んでくれること。SKILL.mdのdescription(説明文)をもとに、「今のタスクにはこのスキルが必要だ」と判断して自動適用します。

もちろん、/スキル名で手動で呼び出すこともできます。

Ren
Ren

スキルのポイントは「知識を渡す」こと。CLAUDE.mdが社員ハンドブックなら、スキルは「専門書」。コードレビューの専門書、テスト生成の専門書…みたいなイメージだよ

スキルの作り方を詳しく知りたい方は、Claude Skillsの作り方|初心者でも10分で自分専用AIアシスタントが作れるをチェックしてみてください。

rules/ ― ルールを分割管理するフォルダ

rules/は、CLAUDE.mdに書ききれないルールをファイル単位で分割管理するフォルダです。

タク
タク

CLAUDE.mdに全部書くんじゃダメなんですか?

Ren
Ren

CLAUDE.mdに全部詰め込むと肥大化するんだ。公式でも500行以内が推奨されてる。ルールが増えてきたらrules/に分割するのが正解

.claude/rules/
├── code-style.md       ← コーディングスタイルのルール
├── testing.md           ← テスト規約
└── security.md          ← セキュリティ要件

rules/配下のファイルには、YAMLフロントマターで適用条件(glob/pathパターン)を指定できます。

たとえば「テスト関連のファイルを触るときだけtesting.mdを読み込む」「src/components/配下のファイルではcode-style.mdを適用する」といった、きめ細かい制御が可能です。

rules/が効くケース

・CLAUDE.mdが肥大化してきたとき
・ファイルの種類ごとに異なるルールを適用したいとき
・チームでルールファイルを共有・再利用したいとき(シンボリックリンク対応)

agents/ ― サブエージェント定義フォルダ

agents/は、専門分野に特化したAIサブエージェントを定義するフォルダです。

サブエージェントとは、メインのClaude Codeとは別のコンテキストウィンドウで動く、専門家のようなAIです。たとえば「コードレビュー専門」「リサーチ専門」「データベース専門」といったサブエージェントを作れます。

.claude/agents/
└── researcher.md       ← リサーチ専門のサブエージェント

エージェントファイルはMarkdown形式で、YAMLフロントマターにモデル名やツール権限、カスタムプロンプトを定義します。

タク
タク

スキルとサブエージェントって何が違うんですか?

Ren
Ren

スキルは「メインのClaude Codeに知識を追加する」もの。サブエージェントは「別のClaude Codeを起動して任せる」もの。大きな違いは、サブエージェントは独自のコンテキストウィンドウを持つから、メインの会話を圧迫しないんだ

解説

サブエージェントは比較的新しい機能で、複雑なタスクを並列処理したい場合に威力を発揮します。まずはスキルから使い始めて、必要に応じてサブエージェントを検討する流れがおすすめです。

commands/ ― カスタムコマンド(Skillsへの移行推奨)

commands/は、カスタムスラッシュコマンドを定義するフォルダです。

ただし、v2.1.3以降、SkillsとCommandsが統合されています。既存のcommands/ファイルはそのまま動作しますが、新しく作る場合はskills/形式が推奨されています。

注意

commands/とskills/で同じ名前のものがある場合、skills/が優先されます。混乱を避けるために、新規作成はskills/で統一しましょう。

Ren
Ren

僕も最初はcommands/で作ってたけど、今は全部skills/に移行したよ。スクリプトも一緒に置けるし、自動で読み込んでくれるし、できることが増えてるんだ

カスタムコマンドの詳しい使い方は、Claude Codeカスタムコマンド完全ガイド|定型タスクをワンコマンド化する手順と使い方で解説しています。

プロジェクト用 vs グローバル用の使い分け

ここまで見てきたファイル・フォルダは、プロジェクト配下(.claude/)ホームディレクトリ(~/.claude/)の両方に置けます。

では、どう使い分ければいいのか。

項目 プロジェクト(.claude/) グローバル(~/.claude/)
Git管理 ○(チーム共有) ×(個人のみ)
適用範囲 そのプロジェクトだけ 全プロジェクト
主な用途 コーディング規約、固有スキル 個人の好み、汎用スキル
具体例 コードレビュー、デプロイ手順 日本語回答設定、コード説明スキル
タク
タク

全プロジェクトで使いたいスキルと、特定のプロジェクトだけで使いたいスキルがあるんですね

Ren
Ren

そう!僕の場合だと、「日本語で回答して」みたいな共通設定はグローバルのCLAUDE.mdに、ブログ記事生成のスキルはプロジェクト配下に置いてる。迷ったら「他のプロジェクトでも使う?」で判断するといいよ

ポイント

同名のスキルが複数の場所に存在する場合の優先順位は、enterprise > personal(グローバル) > project(プロジェクト)です。グローバルに置いたスキルの方がプロジェクトより優先されるので注意しましょう。

各要素の役割を比較【一覧表】

ここまで解説した各要素の違いを、1つの表で整理しておきます。

要素 比喩 役割 読み込みタイミング
CLAUDE.md 社員ハンドブック プロジェクト概要・規約・コマンド 毎セッション自動
rules/ 部門別マニュアル ルールの分割管理 条件マッチ時に自動
skills/ 専門書 タスク別の知識・手順 関連タスク時に自動 or 手動
agents/ 外部の専門家 独立したサブエージェント 明示的に呼び出し
commands/ レシピカード ワンコマンドで実行(※レガシー) /コマンド名で手動
settings.json セキュリティポリシー 権限・フック設定 毎セッション自動
タク
タク

こうして並べると、それぞれの違いがはっきり分かりますね!

実際のプロジェクトで見るディレクトリ構成例

例1: 個人開発(Webアプリ)

シンプルなWebアプリの個人開発プロジェクトなら、こんな構成が使いやすいです。

my-web-app/
├── CLAUDE.md              ← プロジェクト概要・技術スタック・コマンド
├── .claude/
│   ├── settings.json      ← npm run test の自動許可 など
│   └── skills/
│       └── review/
│           └── SKILL.md   ← コードレビューのチェックリスト
├── src/
├── tests/
└── package.json

個人開発なら最初はCLAUDE.md + settings.json + 1〜2個のスキルで十分です。プロジェクトが大きくなったら、rules/やagents/を追加していきましょう。

例2: チーム開発(モノレポ)

フロントエンドとバックエンドが同一リポジトリにあるモノレポ構成なら、CLAUDE.mdの階層分けが効いてきます。

monorepo/
├── CLAUDE.md              ← 全体方針・共通規約
├── .claude/
│   ├── settings.json
│   ├── rules/
│   │   ├── code-style.md  ← 共通コーディング規約
│   │   └── security.md    ← セキュリティルール
│   └── skills/
│       └── pr-create/
│           └── SKILL.md   ← PR作成手順
├── frontend/
│   ├── CLAUDE.md          ← React固有の規約・コンポーネント設計
│   └── src/
└── backend/
    ├── CLAUDE.md          ← API設計・DB規約
    └── src/
ポイント

モノレポでは、ルートのCLAUDE.mdに全体共通ルールを書き、frontend/やbackend/のCLAUDE.mdには各領域固有のルールだけを書きます。サブディレクトリのCLAUDE.mdは遅延読み込みなので、フロントエンド作業中にバックエンドのルールがコンテキストを圧迫することはありません。

よくある失敗と対策

最後に、ディレクトリ構成に関するよくある失敗を3つ紹介します。

僕自身がハマったものもあるので、先に知っておくと時間を節約できるはずです。

よくある失敗①

CLAUDE.mdに情報を詰め込みすぎる
公式では500行以内が推奨されています。情報が増えてきたらrules/やskills/に分割し、CLAUDE.mdからは参照リンクだけ記載するのがベストです。

よくある失敗②

CLAUDE.local.mdを.gitignoreに入れ忘れる
個人用の設定ファイルがチーム全体にpushされてしまいます。settings.local.jsonも同様に.gitignoreに追加しましょう。

よくある失敗③

起動ディレクトリを意識していない
Claude Codeはclaudeコマンドを実行したディレクトリを基準に.claude/配下の設定を読み込みます。サブディレクトリで起動すると、プロジェクトルートの.claude/設定が読み込まれないことがあります。基本はプロジェクトルートで起動しましょう。

Ren
Ren

僕もCLAUDE.mdに全部書こうとして、かえってClaude Codeの出力がブレた経験があるよ。情報は「必要なときに、必要なぶんだけ」渡すのがコツだね

Claude Codeを使うときの構造的な注意点については、非エンジニアがClaude Codeを使うとなぜブラックボックス化するのかの記事も参考になるので、あわせてチェックしてみてください。

まとめ ― ディレクトリ構成は「Claude Codeとの共通言語」

ディレクトリ構成を理解することは、Claude Codeとのコミュニケーションを整理することです。

「何を」「どこに」置くかが整理されていれば、Claude Codeは的確に情報を読み取り、質の高いアウトプットを返してくれます。

CLAUDE.mdをプロジェクトルートに配置した
.claudeフォルダの各要素の役割を理解した
プロジェクト用とグローバル用の使い分けを決めた
CLAUDE.local.mdとsettings.local.jsonを.gitignoreに追加した
タク
タク

全体像が見えたので、次はCLAUDE.mdの書き方を詳しく学びたいです!

Ren
Ren

いいね!Claude Codeはまだまだ奥が深いから、一つずつマスターしていこう

Claude Codeの基本的な使い方から知りたい方は、Claude Codeの使い方をゼロから解説|動かしながら覚える最短ルートから始めるのがおすすめです。

ではまた!

コメント

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