見出し画像

【コピペで使える】CLAUDE.md設定テンプレート5選

Claude Codeに「このプロジェクトはTypeScriptで書いてね」と伝える。
次のチャットでまた「TypeScriptで」と伝える。
3回目にはさすがに面倒になる。

「インデントはスペース2つ」「コンポーネントはこのフォルダに」「テストはVitestで」。
覚えていてほしいことが増えるほど、説明の時間も増えていきます。

この問題、CLAUDE.mdで解決できます。

CLAUDE.mdは、プロジェクトのルートに置く設定ファイルです。
ここに書いた内容を、Claude Codeが毎回自動で読み込みます。
一度書けば、次から何も言わなくてもプロジェクトのルールを守ってくれる。

ただ、何を書けばいいのかがわかりにくい。
公式ドキュメントを見ても、具体的なサンプルが少ない。

そこで、プロジェクト別のCLAUDE.mdテンプレートを5つ用意しました。
コピペして、自分のプロジェクトに合わせて編集するだけで使えます。


CLAUDE.mdの基本

テンプレートの前に、CLAUDE.mdの基本を確認しておきます。

配置場所

プロジェクトのルートディレクトリに置きます。

your-project/
├── CLAUDE.md  ← ここ
├── src/
├── package.json
└── ...

書くべきこと

公式が推奨しているのは以下の内容です。

  • よく使うコマンド(ビルド、テスト、デプロイ)

  • コードスタイルのルール(インデント、命名規則)

  • プロジェクト固有のアーキテクチャ

  • 開発環境の注意点(必要な環境変数など)

  • よくある落とし穴

書かなくていいこと

  • コードを読めばわかること

  • 標準的な言語の規約(Claudeは既に知っている)

  • 頻繁に変わる情報

  • 「クリーンなコードを書く」のような当たり前のこと

長さの目安

300行以内が推奨です。
長すぎると、Claudeが読み込む情報が多くなりすぎて、肝心な指示を見落とすことがあります。

重要な情報を簡潔に。
詳細は別ファイルに分けて、必要なときだけ参照させるのがコツです。


テンプレート一覧

今回用意したのは5種類です。

  • Webフロントエンド(React/Next.js) → SPAやSSRプロジェクト向け

  • バックエンドAPI(Python/FastAPI) → REST API開発向け

  • フルスタック(TypeScript統一) → フロント・バック両方をTypeScriptで書くプロジェクト向け

  • データ分析(Python/Jupyter) → 分析・機械学習プロジェクト向け

  • 個人開発(シンプル版) → 小規模プロジェクト向け

それぞれ、実際のプロジェクトで使える形にしています。


使い方

  1. 自分のプロジェクトに近いテンプレートを選ぶ

  2. プロジェクトルートにCLAUDE.mdを作成

  3. テンプレートをコピペ

  4. 自分のプロジェクトに合わせて編集

  5. 使いながら育てていく

最初から完璧にする必要はありません。
使っていくうちに「これも書いておけばよかった」と気づいたら、追記していけばOKです。


ここからは、テンプレート本体とカスタマイズのポイントです。


テンプレート1: Webフロントエンド(React/Next.js)

React/Next.jsを使ったフロントエンド開発向けのテンプレートです。

# プロジェクト概要

{プロジェクト名}のフロントエンドリポジトリ。
Next.js 14 (App Router) + TypeScript + Tailwind CSS。

## 開発コマンド

- `npm run dev` → 開発サーバー起動(http://localhost:3000)
- `npm run build` → 本番ビルド
- `npm run lint` → ESLint実行
- `npm run test` → Vitest実行

## コードスタイル

- インデント: 2スペース
- セミコロン: なし
- クォート: シングルクォート
- コンポーネント: 関数コンポーネント + アロー関数
- 命名: コンポーネントはPascalCase、それ以外はcamelCase

## ディレクトリ構成

- `src/app/` → App Routerのページ
- `src/components/` → 共通コンポーネント
- `src/components/ui/` → 基礎UIコンポーネント(Button, Input等)
- `src/hooks/` → カスタムフック
- `src/lib/` → ユーティリティ関数
- `src/types/` → 型定義

## 重要なルール

- 新しいページを作るときは `src/app/` 配下にディレクトリを作成
- コンポーネントは1ファイル1コンポーネント
- スタイルはTailwind CSSのみ使用(CSS Modulesは使わない)
- APIコールは `src/lib/api.ts` に集約
- 状態管理はReact Server Components + useStateで対応(Redux等は不使用)

## 注意点

- `use client` ディレクティブを忘れずに(クライアントコンポーネントの場合)
- 画像は `next/image` を使用
- リンクは `next/link` を使用
- 環境変数は `.env.local` に定義(NEXT_PUBLIC_ プレフィックス必須)

カスタマイズのポイント

プロジェクト名を入れる
冒頭の `{プロジェクト名}` を実際の名前に置き換えてください。

使用ライブラリを追加
状態管理にZustandを使っているなら、その旨を追記。
UIライブラリにshadcn/uiを使っているなら、そのディレクトリ構成も追記。

独自ルールを追加
チーム固有のルール(PRの規約、ブランチ命名など)があれば追記。


テンプレート2: バックエンドAPI(Python/FastAPI)

Python + FastAPIでREST APIを開発するプロジェクト向けです。

# プロジェクト概要

{プロジェクト名}のバックエンドAPI。
Python 3.11 + FastAPI + SQLAlchemy + PostgreSQL。

## 開発コマンド

- `uvicorn app.main:app --reload` → 開発サーバー起動
- `pytest` → テスト実行
- `pytest -v` → テスト実行(詳細表示)
- `ruff check .` → Linter実行
- `ruff format .` → フォーマット実行

## 環境構築

```bash
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

ディレクトリ構成

  • `app/` → アプリケーション本体

  • `app/main.py` → FastAPIアプリのエントリーポイント

  • `app/routers/` → APIエンドポイント定義

  • `app/models/` → SQLAlchemyモデル

  • `app/schemas/` → Pydanticスキーマ

  • `app/services/` → ビジネスロジック

  • `app/db/` → データベース接続設定

  • `tests/` → テストコード

コードスタイル

  • フォーマッター: ruff

  • 型ヒント: 必須

  • docstring: Google形式

  • 命名: snake_case(クラスのみPascalCase)

APIの書き方

  • エンドポイントは `app/routers/` に機能ごとに分割

  • レスポンスは必ずPydanticスキーマを使用

  • エラーは `HTTPException` で返す

  • 認証が必要なエンドポイントは `Depends(get_current_user)` を使用

注意点

  • 環境変数は `.env` に定義し、`python-dotenv` で読み込む

  • DBマイグレーションは `alembic` を使用

  • テストはpytestで書く(`tests/` ディレクトリ)

  • 本番環境ではuvicornをgunicornと組み合わせて使用


### カスタマイズのポイント

**DBの種類を変更**
MySQLやSQLiteを使う場合は、接続設定の部分を変更。

**認証方式を追記**
JWT認証、OAuth2など、使用している認証方式があれば追記。

**外部サービス連携**
S3、Redis、外部APIなど、連携しているサービスがあれば追記。

---

## テンプレート3: フルスタック(TypeScript統一)

フロントエンドもバックエンドもTypeScriptで書くプロジェクト向けです。monorepo構成を想定しています。

```markdown
# プロジェクト概要

{プロジェクト名}のフルスタックリポジトリ。
TypeScript統一、monorepo構成(pnpm workspace)。

## 構成

- `apps/web/` → Next.js フロントエンド
- `apps/api/` → Hono バックエンドAPI
- `packages/shared/` → 共通の型定義・ユーティリティ

## 開発コマンド

- `pnpm dev` → 全サービス起動
- `pnpm dev:web` → フロントエンドのみ起動
- `pnpm dev:api` → APIのみ起動
- `pnpm build` → 全サービスビルド
- `pnpm test` → 全テスト実行
- `pnpm lint` → 全Lint実行

## コードスタイル

- インデント: 2スペース
- セミコロン: なし
- 型定義: 厳格モード(strict: true)
- 共通の型は `packages/shared/src/types/` に定義

## 重要なルール

- フロントとバックで共通の型は `packages/shared` に置く
- APIのレスポンス型は `packages/shared/src/types/api.ts` で定義
- 環境変数は各アプリの `.env.local` に定義
- 新しいパッケージを追加したら `pnpm install` を実行

## ディレクトリ間の依存

apps/web → packages/shared
apps/api → packages/shared


web と api は直接依存しない。共通のものは shared を経由する。

## 注意点

- パッケージ追加は `pnpm add -w` または各ワークスペースで実行
- 型エラーは放置しない(CIで落ちる)
- `packages/shared` を変更したら、依存先のビルドも確認

カスタマイズのポイント

ツールチェーンを変更
Turborepo、Nx、Lernaなど、使用しているツールに合わせて変更。

パッケージを追加
UIコンポーネント、設定ファイルなど、共通化しているものがあれば追記。


テンプレート4: データ分析(Python/Jupyter)

データ分析や機械学習プロジェクト向けです。

# プロジェクト概要

{プロジェクト名}のデータ分析リポジトリ。
Python 3.11 + pandas + scikit-learn。

## 環境構築

```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
jupyter lab

ディレクトリ構成

  • `notebooks/` → Jupyter Notebook(探索・分析用)

  • `src/` → 再利用可能なPythonモジュール

  • `data/raw/` → 生データ(gitignore対象)

  • `data/processed/` → 加工済みデータ

  • `models/` → 学習済みモデル(gitignore対象)

  • `outputs/` → 分析結果・図表

命名規則

  • Notebook: `01_データ探索.ipynb` のように連番+内容

  • モジュール: snake_case

  • 変数: snake_case(DataFrameは `df_` プレフィックス推奨)

コードスタイル

  • フォーマッター: black

  • Linter: ruff

  • 型ヒント: 推奨(必須ではない)

重要なルール

  • 生データは `data/raw/` に置き、直接編集しない

  • 加工処理は再現可能な形でNotebookまたはスクリプトに残す

  • 最終的な分析コードは `src/` にモジュール化

  • 大きなファイルはgitignoreに追加

注意点

  • データファイルはGitにコミットしない

  • Notebookのセル出力は適宜クリアしてからコミット

  • 機密データを扱う場合は `.env` で管理

  • 再現性のためにランダムシードを固定する(`random_state=42`)


### カスタマイズのポイント

**使用ライブラリを追記**
PyTorch、TensorFlow、LightGBMなど、使用しているライブラリを追記。

**データソースを追記**
S3、BigQuery、社内DBなど、データの取得元を追記。

---

## テンプレート5: 個人開発(シンプル版)

小規模な個人開発向けのシンプルなテンプレートです。

```markdown
# プロジェクト概要

{プロジェクトの1行説明}

## 技術スタック

- 言語: {使用言語}
- フレームワーク: {使用フレームワーク}
- データベース: {使用DB、なければ削除}

## 開発コマンド

- `{開発サーバー起動コマンド}`
- `{テストコマンド}`
- `{ビルドコマンド}`

## ディレクトリ構成

- `src/` → ソースコード
- `tests/` → テスト

## 注意点

- {プロジェクト固有の注意点があれば記載}

カスタマイズのポイント

このテンプレートは最小限の構成です。
必要に応じて以下を追加してください。

  • コードスタイルのルール

  • デプロイ方法

  • 環境変数の説明


テンプレートを育てる

テンプレートをコピペした後は、使いながら育てていくのがおすすめです。

追記するタイミング

  • 「毎回同じ説明をしている」と気づいたとき

  • Claudeが間違った提案をしてきたとき

  • 新しいライブラリやツールを導入したとき

削除するタイミング

  • 書いてある情報が古くなったとき

  • 使わなくなったルールがあるとき

CLAUDE.mdは「生きたドキュメント」です。
プロジェクトと一緒に進化させていってください。


まとめ

CLAUDE.mdを設定しておくと、「毎回同じ説明をする」時間がなくなります。

  • まずはテンプレートをコピペして始める

  • 自分のプロジェクトに合わせてカスタマイズ

  • 使いながら育てていく

最初から完璧にしなくていいので、まずは入れてみてください。「あ、これ言わなくても伝わってる」と感じる瞬間が来ます。

CLAUDE.mdの設定ができたら、次はClaude Codeのskills機能を使ってみるのがおすすめです。
CLAUDE.mdがプロジェクトの「記憶」なら、skillsは「できること」を増やす機能。
議事録の要約やコードレビューなど、定型業務をコマンド一つで実行できるようになります。

いいなと思ったら応援しよう!