Claude Codeをインストールしてしばらく使っていると、プロジェクトのルートに .claude というフォルダが生成されているのに気づくはずです。「これは何のフォルダ?」「触っていいの?」と疑問に思ったことはないでしょうか。
実は、.claudeフォルダこそClaude Codeの「設定の心臓部」です。ここにあるファイルを正しく理解して設定すれば、Claudeが毎回同じ説明を必要とせず、チームルールを自動で守り、危険なコマンドの実行を事前にブロックするようになります。逆に理解しないまま使い続けると、Claude Codeの能力の半分以上を活かせていない状態になります。
この記事では、.claudeフォルダ内の全ファイル・ディレクトリを網羅的に解説します。「どのファイルが何をするのか」「どの順番で設定を始めればよいか」を、エンジニア初心者にもわかるように図解を交えながら説明します。
この記事でわかること
- .claudeフォルダが「2か所」存在する理由と違い
- CLAUDE.md・settings.json・hooks・agentsなど全ファイルの役割
- 設定の優先順位(どのファイルが上書きされるか)
- 初心者が今日から始める段階的セットアップ手順
.claudeフォルダとは?「2つの場所」を理解しよう

まず最初に理解すべき重要な事実があります。.claudeフォルダは1か所ではなく、2か所に存在します。この違いを混同すると設定が意図通りに動かないため、最初に整理しておきましょう。
プロジェクトレベル:.claude/(リポジトリ直下)
あなたのプロジェクトフォルダの直下にある .claude/ です。このフォルダはgitでバージョン管理でき、チームメンバー全員が同じ設定を使えるように共有します。「このプロジェクト専用のClaude設定」だと考えるとわかりやすいです。
プロジェクトレベル .claude/ に置くもの
- CLAUDE.md(プロジェクト固有のルールやアーキテクチャの説明)
- settings.json(チーム共通の権限設定)
- agents/・commands/・skills/(チームで共有するワークフロー)
グローバル:~/.claude/(ホームディレクトリ)
あなたのPC全体に適用される個人設定フォルダです。場所は C:\Users\あなたのユーザー名\.claude\(Windows)または ~/.claude/(Mac/Linux)です。ここに置いた設定はすべてのプロジェクトで使われますが、gitには含まれないため、あなた個人の設定として管理します。
| 比較項目 | プロジェクト .claude/ | グローバル ~/.claude/ |
|---|---|---|
| 場所 | リポジトリのルート直下 | ホームディレクトリ直下 |
| 適用範囲 | そのプロジェクトのみ | すべてのプロジェクト |
| git管理 | コミット可能(推奨) | コミットしない(個人専用) |
| 用途 | チーム共有のルール・設定 | 個人の好みや全体設定 |
.claudeフォルダは「チーム用(プロジェクト直下)」と「個人用(ホームディレクトリ)」の2か所に存在し、用途が明確に異なります。
全ファイル・ディレクトリ完全マップ

.claudeフォルダには複数のファイルとサブディレクトリが含まれます。以下がその全体像です。
.claude/
├── CLAUDE.md # プロジェクトの記憶(最重要)
├── settings.json # チーム共有の権限設定
├── settings.local.json # 個人用ローカル設定(gitignore対象)
├── rules/ # モジュール化した条件付きルール
│ ├── coding-standards.md
│ └── api-design.md
├── agents/ # カスタムサブエージェント定義
│ └── code-reviewer.md
├── commands/ # カスタムスラッシュコマンド
│ └── review.md
├── skills/ # 再利用可能なワークフロー
│ └── security-review/
│ └── SKILL.md
├── hooks/ # 自動実行スクリプト
│ └── block-secrets.sh
└── plugins/ # インストール済みプラグイン
CLAUDE.md(最重要:プロジェクトの「記憶」)
Claude Codeが毎回のセッション開始時に自動で読み込むプロジェクトの長期記憶ファイルです。「このプロジェクトについてClaudeが知っておくべきこと」をすべて書いておく場所です。毎回説明しなくて済むようになるため、最初に整備する価値が最も高いファイルです。
CLAUDE.mdに書くべき内容の例:
# プロジェクト概要
このリポジトリはECサイトのバックエンドAPIです。
Node.js + TypeScript + PostgreSQLで構築しています。
# 開発環境
- Node.js 22.x
- npm run dev で開発サーバー起動
- npm test でテスト実行
# コーディング規約
- 関数名はcamelCase
- コメントは日本語で記載
- 環境変数は.envファイルに記載(絶対にコミットしない)
# 触ってはいけないファイル
- .env(環境変数)
- dist/(ビルド成果物)
注意:CLAUDE.mdは200行以内に収めることを推奨します。長すぎるとすべてのセッションに含まれるコストが増えます。内容が増えてきたら rules/ に分割しましょう。
settings.json / settings.local.json(権限管理)
Claudeが実行できるコマンドや操作を制御するファイルです。settings.json はgitにコミットしてチームで共有し、settings.local.json は個人用の設定でgitignoreに追加します。
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(git status)",
"Bash(git diff *)",
"Read",
"Edit"
],
"deny": [
"Bash(rm -rf *)",
"Read(./.env)"
]
}
}
allowに書いたコマンドはClaudeが確認なしに実行でき、denyに書いたコマンドは完全にブロックされます。記載がないコマンドは実行のたびにユーザーに確認を求めます。
設定の優先順位(上が高い):
- 管理者ポリシー(企業向け)
- コマンドライン引数
- .claude/settings.local.json(個人用ローカル設定)
- .claude/settings.json(チーム共有設定)
- ~/.claude/settings.json(グローバル個人設定)
rules/(モジュール化した条件付きルール)
CLAUDE.mdが長くなった場合に、関心ごとごとに分割して管理するフォルダです。YAMLフロントマターで「どのファイルを編集するときだけ適用するか」を指定できます。
---
description: TypeScriptファイルのコーディング規約
globs: ["**/*.ts", "**/*.tsx"]
---
# TypeScript規約
- anyの使用禁止
- 戻り値の型は必ず明示する
agents/ ・ commands/ ・ skills/(高度な機能)
この3つのディレクトリは、Claude Codeをより強力にカスタマイズするための機能です。
| ディレクトリ | 役割 | 使いどころ |
|---|---|---|
| agents/ | 独立したコンテキストで動くサブエージェントを定義 | コードレビュー専門・セキュリティ監査専門など役割を分けたい時 |
| commands/ | カスタムスラッシュコマンドを作成 | よく使うプロンプトをコマンド化したい時(後方互換のため残存) |
| skills/ | 再利用可能なワークフローを定義(commandsの後継) | 複数ステップのワークフローを /コマンド として再利用したい時 |
CLAUDE.mdとsettings.jsonが基本の2大ファイル。rules/・skills/・agents/は必要に応じて段階的に追加します。
hooks/で自動化を実現する

hooksは、Claudeがツールを実行する前後に自動でスクリプトを走らせる仕組みです。「機密情報が書き込まれそうになったらブロックする」「ファイル編集後に自動でリントを実行する」といった処理を、Claudeに逐一指示しなくても自動化できます。
PreToolUse と PostToolUse の違い
フックには現在18種類以上のイベントがありますが、初心者が最初に知るべきは2種類です。
| フック種別 | タイミング | 代表的な用途 |
|---|---|---|
| PreToolUse | Claudeがツールを実行する直前 | APIキーや秘密情報のスキャン・危険なコマンドのブロック |
| PostToolUse | Claudeがツールを実行した直後 | ファイル編集後のリント実行・テスト自動実行 |
| Stop | Claudeの応答が終了した時 | 通知の送信・ログの記録 |
| SessionStart | セッション開始時 | 初期化処理・環境チェック |
初心者向けのフック設定例
フックはsettings.jsonの hooks セクションで定義します。以下は「.envファイルへの書き込みを防ぐ」という最も基本的なセキュリティフックの例です。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "bash -c 'if echo \"$CLAUDE_TOOL_INPUT\" | grep -q \"\\.env\"; then echo \"Error: .envファイルへの書き込みはブロックされています\" >&2; exit 1; fi'"
}
]
}
]
}
}
補足:フックの設定が複雑に感じる場合は、Claude Codeのターミナルで /hooks コマンドを実行するとインタラクティブなメニューから設定できます。JSONを直接編集しなくても設定可能です。
hooksはClaudeの行動に「ガードレール」を設けるための仕組みです。最初は /hooks コマンドでGUI設定を試すのがおすすめです。
初心者が今日から始める段階的セットアップ
「全部一気に設定しよう」とすると挫折します。実際の不便さを感じながら、必要なものだけを段階的に追加するのが最も効果的なアプローチです。
第1段階(初日):CLAUDE.mdだけで始める
最初は CLAUDE.md ファイル1つだけ作ればOKです。プロジェクトルートに .claude/CLAUDE.md を作成し、30〜50行程度でプロジェクトの概要・使用技術・コマンドを記載します。これだけでClaude Codeの応答精度が大きく向上します。
- プロジェクトルートで
mkdir -p .claudeを実行 - .claude/CLAUDE.md を作成してプロジェクト情報を記載
- gitにコミットしてチームと共有
第2段階(1〜2週間後):settings.jsonで権限設定
よく使うコマンドを allow に追加して確認ダイアログを省略し、危険な操作を deny でブロックします。「毎回許可を押すのが面倒だ」と感じたら追加するのがベストなタイミングです。
第3段階(1〜2か月後):rules/ ・ skills/ ・ hooks/ を追加
CLAUDE.mdが200行を超えてきたら rules/ に分割します。同じプロンプトを繰り返し使っていることに気づいたら skills/ にまとめます。セキュリティや自動化の必要性を感じたら hooks/ を設定します。
| 状況 | 追加するファイル | タイミング |
|---|---|---|
| Claude Code始めたばかり | CLAUDE.md | 初日 |
| 確認ダイアログが多い | settings.json | 1〜2週間後 |
| CLAUDE.mdが200行超 | rules/ | 1か月後目安 |
| 同じプロンプトを繰り返す | skills/ | 1〜2か月後 |
| セキュリティを自動化したい | hooks/ | 必要と感じた時 |
| 専門エージェントを分けたい | agents/ | 3か月以上後 |
焦らず段階的に。「今困っていること」を解決するファイルだけを追加するのが、.claude設定を長続きさせるコツです。
まとめ
まとめ:.claudeフォルダはClaude Codeの設定を集約する場所です。まずCLAUDE.mdとsettings.jsonの2つから始めて、必要に応じてrules/・skills/・hooks/・agents/を段階的に追加していくのが最も効率的なアプローチです。
| ファイル/ディレクトリ | 役割 | 優先度 |
|---|---|---|
| CLAUDE.md | プロジェクトの記憶・指示 | ★★★ 最優先 |
| settings.json | 権限・許可・ブロック設定 | ★★★ 最優先 |
| settings.local.json | 個人用ローカル設定 | ★★ 任意 |
| rules/ | モジュール化した条件付きルール | ★★ 任意 |
| skills/ | 再利用可能なワークフロー | ★★ 任意 |
| hooks/ | ツール実行前後の自動処理 | ★ 上級者向け |
| agents/ | 専門サブエージェント定義 | ★ 上級者向け |
よくある質問
Q. .claudeフォルダはgitにコミットすべきですか?
プロジェクト直下の .claude/ はコミット推奨です。CLAUDE.md・settings.json・agents/・skills/などはチームで共有する価値があります。ただし settings.local.json は個人設定なので .gitignore に追加してください。グローバルの ~/.claude/ はコミット不要です。
Q. CLAUDE.mdはどこに置けばよいですか?
プロジェクトルートの .claude/CLAUDE.md が基本です。さらにサブフォルダにも CLAUDE.md を置くことができ、そのフォルダ内の作業をする際に追加で読み込まれます。例えば frontend/CLAUDE.md にフロントエンド固有のルールを書くといった使い方ができます。
Q. commands/とskills/の違いは何ですか?
機能的にはほぼ同じ(どちらもスラッシュコマンドとして呼び出せる)ですが、skills/ が新しい仕組みです。skills/はサポートファイルを同じフォルダにまとめられるなど拡張性が高く、新しく作るワークフローはskills/を使うことが推奨されています。commands/は後方互換のために残っています。
Q. hooksの設定が難しいです。簡単な方法はありますか?
Claude Codeのターミナルで /hooks コマンドを実行すると、インタラクティブなメニューからフックを設定できます。JSONを直接書かなくても、選択肢から選ぶだけで基本的なフックを設定可能です。まずはこちらから試してみてください。
Q. .claudeフォルダがない場合はどうすればよいですか?
手動で作成してOKです。プロジェクトルートで mkdir -p .claude を実行するか、Windowsなら New-Item -ItemType Directory .claude で作成できます。または Claude Codeのターミナルで /init コマンドを実行すると、自動でCLAUDE.mdと.claudeフォルダを初期化してくれます。
Claude Codeの.claudeフォルダについてもっと詳しく知りたい方は、公式ドキュメントも合わせてご確認ください。最新のファイル構造や設定方法が日々アップデートされています。
