1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】CLAUDE.mdを活用してClaude Codeをプロジェクトに最適化する方法

1
Posted at

はじめに

Claude Codeを使っていて、こんな経験ありませんか?

  • 「毎回同じルールを説明するのが面倒」
  • 「プロジェクトのコーディング規約を守ってくれない」
  • 「チームメンバーによってClaude Codeの出力がバラバラ」

これらの問題を解決するのが CLAUDE.md です。

CLAUDE.mdは、プロジェクトのルールや方針をClaude Codeに記憶させるファイル です。一度書けば、毎回のセッションで自動的に読み込まれます。

CLAUDE.mdとは

項目 内容
何か Claude Code専用の設定・指示ファイル
形式 Markdownファイル
役割 プロジェクトのルール・方針をClaude Codeに伝える
読み込み セッション開始時に自動で読み込まれる

人間でいう「プロジェクトのオンボーディング資料」のようなものです。新しく参加したメンバーに渡すドキュメントをClaude Code向けに書くイメージです。

CLAUDE.mdの種類と配置場所

CLAUDE.mdは複数の場所に配置でき、それぞれスコープが異なります。

配置場所 スコープ 用途
~/.claude/CLAUDE.md グローバル 全プロジェクト共通のルール
プロジェクトルート/CLAUDE.md プロジェクト チーム共有のプロジェクトルール
サブディレクトリ/CLAUDE.md ディレクトリ 特定ディレクトリ固有のルール

読み込み優先順位: グローバル → プロジェクトルート → サブディレクトリ(全て合算されます)

CLAUDE.mdの作成方法

方法1:スラッシュコマンド

/init

対話的にCLAUDE.mdを生成してくれます。Claude Codeがプロジェクトを分析し、適切な初期内容を提案します。

方法2:手動作成

プロジェクトルートに CLAUDE.md を作成します。

方法3:メモリコマンド

/memory

既存のCLAUDE.mdを編集できます。

CLAUDE.mdの書き方:基本テンプレート

# プロジェクト概要

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

## 技術スタック

- フロントエンド: React + TypeScript + Tailwind CSS
- バックエンド: Node.js + Express
- データベース: PostgreSQL + Prisma
- テスト: Jest + React Testing Library
- パッケージマネージャ: pnpm

## ディレクトリ構成

- src/components/ - Reactコンポーネント
- src/pages/ - ページコンポーネント
- src/api/ - APIクライアント
- src/hooks/ - カスタムフック
- src/utils/ - ユーティリティ関数
- server/ - バックエンドコード
- prisma/ - データベーススキーマ

## コーディング規約

- 関数コンポーネントを使用する(classコンポーネント不可)
- 状態管理にはReact hooksを使用する
- CSSはTailwind CSSのクラスを使用する(インラインCSS不可)
- 変数名・関数名はcamelCase
- コンポーネント名はPascalCase
- ファイル名はkebab-case

## コミットメッセージ

Conventional Commits形式を使用する。
- feat: 新機能
- fix: バグ修正
- refactor: リファクタリング
- test: テスト
- docs: ドキュメント

## テスト

- 新しい機能には必ずテストを書く
- テストフレームワーク: Jest
- コンポーネントテスト: React Testing Library
- テスト実行コマンド: pnpm test

## 重要な注意事項

- .envファイルは絶対にコミットしない
- APIキーはハードコードしない(環境変数を使用)
- 日本語でコメントを書く

実践:プロジェクト別のCLAUDE.md例

Reactプロジェクト

# React Webアプリ

## 技術スタック
- React 19 + TypeScript 5
- Vite
- Tailwind CSS v4
- React Router v7
- Zustand(状態管理)
- Vitest + Testing Library

## コンポーネント設計
- コンポーネントは1ファイル1コンポーネント
- propsにはinterface定義をつける
- デフォルトエクスポートは使わない(named exportのみ)
- カスタムフックは use プレフィックスをつける

## スタイリング
- Tailwind CSSのクラスを使用
- カスタムCSSが必要な場合は CSS Modules を使用
- レスポンシブは mobile-first で設計

## 開発コマンド
- 開発サーバー: pnpm dev
- ビルド: pnpm build
- テスト: pnpm test
- lint: pnpm lint

Pythonプロジェクト

# Python APIサーバー

## 技術スタック
- Python 3.12
- FastAPI
- SQLAlchemy + Alembic
- pytest
- uv(パッケージマネージャ)

## コーディング規約
- PEP 8に準拠
- 型ヒントを必ずつける
- docstringはGoogle Style
- f-stringを使用する(format()不可)

## ディレクトリ構成
- app/routers/ - APIエンドポイント
- app/models/ - SQLAlchemyモデル
- app/schemas/ - Pydanticスキーマ
- app/services/ - ビジネスロジック
- tests/ - テストコード

## コマンド
- サーバー起動: uv run uvicorn app.main:app --reload
- テスト: uv run pytest
- マイグレーション: uv run alembic upgrade head

フルスタックプロジェクト

# フルスタックWebアプリ

## アーキテクチャ
モノレポ構成(Turborepo)
- apps/web/ - Next.js フロントエンド
- apps/api/ - Express バックエンド
- packages/shared/ - 共有型定義・ユーティリティ
- packages/ui/ - 共通UIコンポーネント

## 重要ルール
- 共通の型定義は packages/shared/ に置く
- APIのレスポンス型は shared/types/ で定義する
- UIコンポーネントは packages/ui/ に作成し、apps/web/ からインポート
- 直接 apps/web/ にコンポーネントを作らない(共通化前提)

## 環境変数
- .env.local - ローカル開発用
- .env.staging - ステージング用
- .env.production - 本番用(設定しない。CI/CDから注入)

## デプロイ
- フロント: Vercel
- API: Railway
- DB: Supabase

CLAUDE.mdの活用テクニック

1. NGパターンを明示する

やってほしくないことも書いておくと効果的です。

## やらないこと(禁止事項)

- any型を使わない
- console.logを残さない(デバッグ後は必ず削除)
- インラインスタイルを使わない
- default exportを使わない
- var宣言を使わない
- 日本語の変数名を使わない

2. よく使うプロンプトを書いておく

## よくあるタスク

### 新しいAPIエンドポイントを追加する場合
1. server/routes/ にルートファイルを作成
2. server/services/ にビジネスロジックを作成
3. server/routes/index.ts にルートを登録
4. テストを追加

### 新しいページを追加する場合
1. src/pages/ にページコンポーネントを作成
2. src/router.tsx にルートを追加
3. 必要に応じてナビゲーションメニューを更新

3. 環境固有の情報

## ローカル開発

- DBのURL: postgresql://localhost:5432/myapp_dev
- APIのポート: 3001
- フロントのポート: 3000
- Redisはdocker-compose upで起動

4. チームの合意事項

## チームルール

- PRは必ず1人以上のレビューを通す
- mainブランチへの直接pushは禁止
- 新機能はfeature/xxxブランチで開発
- ホットフィックスはhotfix/xxxブランチで開発

グローバルCLAUDE.md

全プロジェクト共通のルールは ~/.claude/CLAUDE.md に書きます。

# グローバル設定

## 基本方針
- コードのコメントは日本語で書く
- コミットメッセージは日本語で書く
- エラーメッセージは日本語で書く

## コーディングスタイル
- インデントはスペース2つ
- セミコロンなし(JavaScript/TypeScript)
- シングルクォートを使用

## 私の環境
- macOS
- VS Code
- ターミナル: iTerm2
- シェル: zsh
- パッケージマネージャ: pnpm を優先

CLAUDE.mdの管理

gitで管理する

CLAUDE.md はリポジトリにコミットしてチームで共有しましょう。

git add CLAUDE.md
git commit -m "docs: CLAUDE.mdを追加"

定期的に更新する

プロジェクトの方針が変わったら、CLAUDE.mdも更新しましょう。

> CLAUDE.mdの内容を今のプロジェクトの状態に合わせて更新して

Claude Codeにプロジェクトを分析させて、CLAUDE.mdを自動更新してもらうこともできます。

サブディレクトリのCLAUDE.md

特定のディレクトリに固有のルールがある場合、サブディレクトリにも配置できます。

project/
├── CLAUDE.md              # プロジェクト全体のルール
├── src/
│   └── components/
│       └── CLAUDE.md      # コンポーネント固有のルール
└── server/
    └── CLAUDE.md          # サーバー固有のルール
# server/CLAUDE.md

## このディレクトリのルール
- エンドポイントには必ず入力バリデーションをつける
- レスポンスは必ず統一フォーマット { success, data, error } を使う
- SQLは直接書かない。Prismaを通す

/init で自動生成

CLAUDE.mdをゼロから書くのが大変なら、/init コマンドを使いましょう。

/init

Claude Codeが以下を自動で行います:

  1. プロジェクトのファイル構成を分析
  2. package.json / requirements.txt などから技術スタックを特定
  3. 既存のコーディングパターンを分析
  4. 適切なCLAUDE.mdを生成

生成後に自分で調整すれば、効率的にCLAUDE.mdを作成できます。

まとめ

ポイント 内容
CLAUDE.mdとは Claude Codeへのプロジェクト指示書
作成方法 /init or 手動作成 or /memory
配置場所 グローバル / プロジェクトルート / サブディレクトリ
書くべき内容 技術スタック、規約、ディレクトリ構成、禁止事項
管理方法 gitにコミットしてチーム共有

CLAUDE.mdは一度書けばずっと効果が続く、コスパ最強の設定です。まだ作っていない方は、今すぐ /init を実行しましょう。

次回予告

次の記事は最終回!Claude Code活用のベストプラクティス をまとめます。

ここまで学んだ知識を活かして、AI駆動開発を最大限に活用しましょう!


シリーズ一覧

  1. Claude Codeとは?概要・できること
  2. Claude Codeのインストールと初期設定
  3. 基本的な使い方・コマンド一覧
  4. Claude Codeでコード生成してみよう
  5. Claude Codeでバグ修正・デバッグ
  6. Claude Codeでリファクタリング
  7. Claude Codeでテストコード作成
  8. Claude Codeでgit操作を効率化
  9. 👉 CLAUDE.mdを活用したプロジェクト設定(本記事)
  10. Claude Code活用のベストプラクティス

著者: @kotaro_ai_lab
AI駆動開発やテック情報を毎日発信しています。フォローお気軽にどうぞ!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?