Claude Codeの推奨ディレクトリ構成
Claude Codeは、プロジェクトのルートディレクトリにあるファイルを読み取ることで、開発コンテキストを理解します。基本的には既存のプロジェクト構造を維持しつつ、以下の設定ファイルを追加することで、AIの精度を劇的に向上させることができます。
project-root/
├── .claude/
│ └── mcp-config.json # プロジェクト固有のMCPサーバー設定
├── CLAUDE.md # AIへの命令・プロジェクト規約(最重要)
├── .claudignore # Claudeに読み込ませたくないファイルを指定
├── src/ # ソースコード
└── package.json # 依存関係定義
[Image: Claude Code configuration file hierarchy]
CLAUDE.md:ルールとスキル(指示)の集約
Claude Codeにおいて、プロジェクト固有の「スキル」や「ルール」を覚えさせる最も標準的な方法は、CLAUDE.mdへの記述です。これにより、Claudeはプロジェクトのビルド方法やコーディングスタイルを即座に理解します。
CLAUDE.mdの具体的な記載例
# Project Specifics
- テックスタック: React, TypeScript, Vite
- 命名規則: コンポーネント名は PascalCase、それ以外は camelCase
- インポート順序: 外部ライブラリ > 内部コンポーネント > スタイル
# Build & Test Commands
- Build: `npm run build`
- Test: `npm test`
- Lint: `npm run lint -- --fix`
# Workflows (Custom Skills as Instructions)
- 新規コンポーネント作成時: `src/components/` 配下にフォルダを作成し、index.tsxとstyle.module.cssを同梱すること。
- コミット前: 必ず `npm test` を実行し、パスしたことを確認してから git commit を提案すること。
解説: Claude Codeは起動時にこのファイルを読み込み、定義されたコマンドを /run なしで実行したり、規約に沿ったコード生成を行ったりします。
MCP (Model Context Protocol) の設定
外部ツール(GitHub, データベース, Slack等)と連携するためのMCP設定は、プロジェクト単位で .claude/mcp-config.json に記述できます。これにより、そのプロジェクトを開いている時だけ有効な外部ツールを定義できます。
mcp-config.json の記載例
以下は、GitHub連携とローカルのSQLiteデータベース接続を有効にする例です。
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_TOKEN_HERE"
}
},
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "./data/main.db"]
}
}
}
.claudignore の活用
.gitignore と同様に、Claudeがインデックスを作成したり、読み取ったりする必要のないファイル(巨大なログファイル、ビルド成果物、バイナリデータ等)を .claudignore に記述します。これにより、トークン消費を抑え、レスポンスを速めることができます。
# .claudignore
node_modules/
dist/
*.log
.DS_Store
large-dataset.json

