メインコンテンツへスキップ
見出し画像

【コピペで使える】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は「できること」を増やす機能。
    議事録の要約やコードレビューなど、定型業務をコマンド一つで実行できるようになります。

     
     
     
    AI を毎日使う人向けに、実践Tipsと業界トレンドを書いています! 週次のAI動向まとめと、効率化やAI活用のコツの紹介が中心です。 実際に触ってわかったこと、日々の運用で気づいた小さなコツを発信!

    あなたへのおすすめ