コンテンツへスキップ

media AI活用の最前線

CLAUDE.md チーム運用ベストプラクティス完全ガイド

CLAUDE.md チーム運用ベストプラクティス完全ガイド

結論: CLAUDE.md をチームで運用するには「Progressive Disclosure(必要な時だけ読み込む)」と「Monorepo 対応(ディレクトリ階層に分散させる)」の 2 つの設計思想が核心です。

この記事の要点:

  • CLAUDE.md は 1 ファイルにまとめるより、Root + モジュール別に分散させると Claude の動作精度が上がる(Anthropic 公式推奨: 1 ファイル 200 行以下)
  • Progressive Disclosure で「今必要な知識だけ読み込む」設計にすることで、コンテキスト汚染を防ぎ、より高品質な出力が得られる
  • チームで使う CLAUDE.md は Git 管理が必須。「誰が何を変えたか」の履歴がプロンプトの品質改善につながる

対象読者: Claude Code を個人利用から卒業してチームに展開しようとしている開発リーダー・DX 推進担当者

読了後にできること: チーム用の CLAUDE.md ファイル構成を今日中に設計できる


「Claude Code を自分では使いこなせてきたんですが、チームに広めようとしたら CLAUDE.md が誰でも書けるわけじゃないし、メンテナンスが大変で…」

企業向け研修で、開発チームのリーダーからよく受ける相談です。個人の CLAUDE.md は「自分さえわかればいい」で済みますが、チームで管理する CLAUDE.md はまったく違う話になります。

先日支援したある Web 系企業(開発メンバー 12 名)では、CLAUDE.md を 1 ファイルにまとめていたため、ファイルが 800 行を超えて肥大化し、Claude が後半の指示を無視するようになっていました。「プロンプトが効かない」という問い合わせが続いていたのですが、根本原因は CLAUDE.md の設計にありました。

この記事では、チームで CLAUDE.md を運用するための設計思想と実践テクニックを、コピペ可能なテンプレートとともに全公開します。

CLAUDE.md の基本的な書き方についてはCLAUDE.md 書き方完全ガイドで詳しく解説しています。この記事はチーム運用の応用編として読んでください。

まず試したい「5 分でできる」チーム対応設定 3 選

即効設定 1:共通禁止事項を Root CLAUDE.md に固定する

チームで最初にやるべきことは、「全員が守るべきルール」を Root の CLAUDE.md(リポジトリ直下)に書き、個人がローカルで上書きできないようにすることです。

研修先でよく使っている雛形です:

# [プロジェクト名] CLAUDE.md - チーム共通設定

## 絶対ルール(個人設定で上書き禁止)

- ハードコードされた認証情報(APIキー、パスワード)は絶対に記述しない
- テスト環境のデータを本番環境に適用するコードを書かない
- package.json や requirements.txt を勝手に変更しない
- 未確認の依存関係を追加しない

## コード規約

- 言語: TypeScript / Python(プロジェクトに合わせて変更)
- フォーマッター: Prettier / Black(設定ファイルを参照)
- Lint: ESLint / Ruff(.eslintrc / ruff.toml を参照)

## テスト

- 新しい機能には必ずユニットテストを追加
- テストを削除・無効化する前にチームに確認
- カバレッジ 80% 以上を維持

## 詳細設定の読み込み方(Progressive Disclosure)

作業内容に応じて以下のファイルを @import してください:
- API 開発: @docs/rules/api-conventions.md
- フロントエンド: @docs/rules/frontend-conventions.md
- DB/マイグレーション: @docs/rules/db-conventions.md
- テスト作業: @docs/rules/testing-guide.md

このテンプレートのポイントは「絶対ルール」と「詳細設定の読み込み方」を明確に分けている点です。ルールが少ないほど Claude はちゃんと読みます。

即効設定 2:Gotchas(ハマりポイント)セクションを最初に追加する

チームの CLAUDE.md で最も ROI が高いのが「Gotchas(落とし穴)」セクションです。shanraisshan の Claude Code ベストプラクティスでも「Gotchas セクションに最も信号密度の高いコンテンツを入れよ」と推奨されています。

## Gotchas(必ず読むこと)

### 1. auth.ts は直接編集しない
認証ロジックは auth.ts ではなく auth-service.ts が正しいエントリポイント。
auth.ts を直接変えると認証テストが全滅する(2025年10月の事故を参照)。

### 2. API レスポンスの Date 型は ISO 8601 文字列
Date オブジェクトで返すと iOS クライアントで parse エラーになる。
必ず toISOString() で文字列変換して返すこと。

### 3. 環境変数の追加は .env.example にも必ず反映
.env.example を更新しないと CI が落ちる(他メンバーが気づかない)。

### 4. Prisma マイグレーションは単独で PR を出す
ビジネスロジックの変更と混在させると、ロールバック時に混乱する。

この「Gotchas」は定例ミーティングで「Claude がまたやらかした」という話が出るたびに追記していきます。実際に Claude が失敗したパターンを記録した CLAUDE.md は、チームの学習資産になります。

即効設定 3:作業コンテキストをプロンプトで渡す習慣をつける

CLAUDE.md に全情報を詰め込むより、作業開始時のプロンプトでコンテキストを渡す方が効果的です。

以下のコンテキストで作業します:

【今日のタスク】
[GitHub Issue URL または Jira チケット ID]
[タスクの概要を 2〜3 行で]

【関連ファイル】
- 変更対象: src/api/users/user.service.ts
- テスト: src/api/users/__tests__/user.service.test.ts
- 型定義: src/types/user.ts

【制約条件】
- 既存のテストを壊さない
- 認証処理は auth-service.ts を通じて行う
- エラーハンドリングは既存パターン(AppError クラス)に統一

作業前に、変更の影響範囲を確認してから着手してください。
不明点は最初に質問してください。

Progressive Disclosure の設計思想

「全部 CLAUDE.md に書く」は間違い

CLAUDE.md を書いていると、「もっと詳しく書いた方がいいのでは」という誘惑に駆られます。しかし Anthropic の公式ドキュメントは明確に言っています: 「各 CLAUDE.md は 200 行以下に収めること」

なぜか?Claude のコンテキストウィンドウには限りがあります。CLAUDE.md が長すぎると、後半の指示が実質的に無視されます。「念のため書いておこう」と追加した指示が、実は邪魔になっているケースが多いです。

実際、研修先の 12 名チームで起きた「CLAUDE.md が効かない」問題の原因は、800 行を超えた CLAUDE.md にありました。後半に書いたコード規約の指示が、Claude に読まれていなかったのです。

Progressive Disclosure の実装パターン

Progressive Disclosure とは「必要な時だけ必要な情報を読み込む」設計です。`@` 記法で外部ファイルを on-demand で取り込めます。

フォルダ構成例(推奨):

project-root/
├── CLAUDE.md                    ← Root: 基本ルールのみ(50〜100行)
├── .claude/
│   ├── rules/
│   │   ├── api-conventions.md   ← API開発時にimport
│   │   ├── frontend.md          ← フロントエンド作業時にimport
│   │   ├── db-migrations.md     ← DBマイグレーション時にimport
│   │   └── testing-guide.md     ← テスト作業時にimport
│   └── skills/
│       ├── code-review.md       ← コードレビュー自動化
│       └── docs-generator.md    ← ドキュメント生成
├── src/
│   ├── api/
│   │   └── CLAUDE.md            ← APIモジュール固有ルール(30行以下)
│   └── frontend/
│       └── CLAUDE.md            ← フロントエンド固有ルール(30行以下)
└── docs/
    └── CLAUDE.md                ← ドキュメント作業用ルール

Root CLAUDE.md でのimport例:

# Root CLAUDE.md(100行以下を目標)

## プロジェクト概要
[プロジェクト名]: [1行で何を作るか]

## チーム共通ルール
[共通禁止事項 + Gotchas]

## 詳細ルールの読み込み(作業に応じて)
API開発をする場合: @.claude/rules/api-conventions.md
フロントエンド開発: @.claude/rules/frontend.md
DB変更を伴う場合: @.claude/rules/db-migrations.md

この設計の最大のメリットは「Claude のコンテキストウィンドウを節約できる」点です。API 開発をしている時にフロントエンドのルールが読まれると、不要なコンテキストが増えて出力品質が下がります。

AI活用、何から始めればいい?

100社以上の研修実績をもとに、30分の無料相談で貴社の課題を整理します。

無料相談はこちら 資料ダウンロード(無料)

Monorepo での CLAUDE.md 設計

Monorepo の基本戦略

Monorepo(複数のパッケージを 1 リポジトリで管理)では、Claude Code の CLAUDE.md の階層読み込みを最大限活用できます。Claude は作業中のファイルがあるディレクトリから上位に向かって、全ての CLAUDE.md を読み込みます。

monorepo/
├── CLAUDE.md                    ← 全パッケージ共通ルール
├── packages/
│   ├── api/
│   │   ├── CLAUDE.md            ← APIパッケージ固有ルール
│   │   └── src/
│   ├── web/
│   │   ├── CLAUDE.md            ← Webフロント固有ルール
│   │   └── src/
│   ├── shared/
│   │   ├── CLAUDE.md            ← 共有ライブラリのルール
│   │   └── src/
│   └── mobile/
│       ├── CLAUDE.md            ← モバイル固有ルール
│       └── src/
└── docs/
    └── CLAUDE.md                ← ドキュメント作業用

各パッケージの CLAUDE.md を書く際のルール:

  • Root CLAUDE.md に書いてある内容を繰り返さない(重複は混乱を招く)
  • そのパッケージ固有の「Gotchas」だけを書く(30 行以下を目標)
  • 他パッケージとのインターフェイスを明記する(依存関係の明確化)

packages/api/CLAUDE.md 例:

# API パッケージ固有ルール
# (Root CLAUDE.md の内容は繰り返さない)

## Gotchas(API固有)
- auth middleware は全エンドポイントに適用済み。新しいルートに個別設定不要
- バリデーションは zod スキーマを使う(express-validator は廃止予定)
- エラーレスポンスは AppError クラスで統一(throw new AppError(400, "message"))

## パッケージ間の依存関係
- shared パッケージの型定義を import して使う: @packages/shared/types
- web パッケージから API を呼ぶ際は /api プレフィックスが必要

## 新しいエンドポイントを追加する時
1. src/routes/ にルートファイルを追加
2. src/controllers/ にコントローラーを追加
3. __tests__/integration/ にインテグレーションテストを追加
4. docs/api/ に OpenAPI 仕様を更新

「Virtual Monorepo」パターン(複数リポジトリへの応用)

複数のリポジトリに分散したマイクロサービスに対して、Monorepo と同様の CLAUDE.md 設計を適用することも可能です。Root CLAUDE.md に他リポジトリへの参照を記述します。

## 関連リポジトリとの依存関係
- 認証サービス: github.com/your-org/auth-service(API仕様: @docs/api-specs/auth.yaml)
- 通知サービス: github.com/your-org/notification-service
- フロントエンド: github.com/your-org/frontend-app

各リポジトリの最新 API 仕様は docs/api-specs/ フォルダを参照してください。
変更時は必ず関連サービスのエンジニアに確認を取ること。

チームで CLAUDE.md を育てる:Git 管理と継続改善

CLAUDE.md を Git で管理する

CLAUDE.md はリポジトリにコミットし、Pull Request でレビューするべきです。「誰が何のために追加したか」のコミットメッセージが、チームの学習資産になります。

コミットメッセージ規約:

# 良いコミットメッセージの例
claude: add gotcha for auth.ts direct edit prevention

理由: 10月の事故で auth.ts を直接編集して本番が落ちた。
以後の再発防止のため Gotchas に追記。

# 悪いコミットメッセージの例
Update CLAUDE.md

Pull Request テンプレートへの追加(.github/pull_request_template.md):

## CLAUDE.md への影響
- [ ] この変更に伴う CLAUDE.md の更新が必要か確認した
- [ ] 新しい Gotchas がある場合は CLAUDE.md に追記した
- [ ] API/DB 変更がある場合は関連する rules/ ファイルを更新した

月次レビューで CLAUDE.md を育てる

定例ミーティングに「CLAUDE.md レビュー」のアジェンダを 15 分追加することを強くお勧めします。実際に顧問先のチームで実施している月次レビューの議題です:

  1. 今月 Claude が「やらかした」パターン: Gotchas に追加すべき失敗を記録
  2. よく使ったプロンプトパターン: チームで共有できるテンプレートを skills/ に追加
  3. 不要になったルール: 削除候補を検討(CLAUDE.md は削除も大切)
  4. 新しいライブラリ・フレームワークの追加: 対応する rules/ ファイルが必要か確認

「Claude との仕事のやり方を記録するドキュメント」として CLAUDE.md を育てていくイメージです。

チーム内での役割分担

CLAUDE.md のメンテナンス担当を割り当てるプロンプト

以下の条件で、CLAUDE.md のメンテナンス体制を設計してください。

【チーム情報】
- チーム規模: [人数]名
- 職種構成: [例: バックエンド3名、フロントエンド4名、インフラ2名]
- 週の稼働状況: [フルタイム/パートタイム等]

【設計する体制】
1. Root CLAUDE.md のオーナー(全員のレビューが通る変更のみ実施)
2. パッケージ別 CLAUDE.md のオーナー(担当パッケージ内は自由に変更可)
3. 月次レビューのファシリテーター(持ち回り or 固定)
4. 新メンバー向けオンボーディング手順

各担当者の役割と責任範囲を明確にしてください。

Anthropic 公式推奨のベストプラクティス(2026 年版)

Anthropic の公式ドキュメント「Claude Code のベストプラクティス」から、チーム運用に関わる推奨事項を整理します。

推奨事項理由実装方法
1 ファイル 200 行以下後半の指示がコンテキスト不足で無視される大きくなったら rules/ に分割
明らかなことは書かない「デフォルト動作を押し出す指示だけ」が高効率「削除したら Claude が間違いを犯すか?」で判断
リポジトリにコミットチームで共有・履歴管理.gitignore に CLAUDE.md を入れない
@import で分散管理Progressive Disclosure でコンテキスト節約.claude/rules/ に詳細ファイルを分離
スクリプトを CLAUDE.md から参照「ビルド方法」はスクリプトに書き、パスを参照@scripts/setup.md のように参照する

部署・役割別 CLAUDE.md サンプル

バックエンド API チーム向け

# Backend API Team - CLAUDE.md

## Gotchas
- データベース接続は db-client.ts の singleton を使う(new PrismaClient() は直接使わない)
- 日付は全て UTC で保存・取得(表示変換はフロントエンド責務)
- ページネーションは cursor-based(offset は使わない)

## コーディング規約
- 非同期処理は async/await を使う(.then() チェーンは非推奨)
- エラーハンドリング: throw new AppError(status, message, code)
- 型: unknown を使い、as でキャストしない

## 詳細ルール
DB操作: @.claude/rules/db-conventions.md
認証関連: @.claude/rules/auth-guide.md
テスト: @.claude/rules/testing-guide.md

フロントエンド(React)チーム向け

# Frontend Team - CLAUDE.md

## Gotchas
- useEffect は最後の手段(状態の派生は useMemo/useCallback で)
- グローバル状態は Zustand を使う(Context は UI 状態のみ)
- API 呼び出しは api/client.ts を経由(直接 fetch しない)

## コンポーネント設計
- 1 コンポーネント 1 責務(150行を超えたら分割)
- props の型は明示的に定義(React.FC を使わない)
- スタイルは Tailwind CSS を使う(インラインスタイル禁止)

## 詳細ルール
コンポーネント命名: @.claude/rules/component-naming.md
アクセシビリティ: @.claude/rules/a11y-guide.md

インフラ・DevOps チーム向け

# DevOps Team - CLAUDE.md

## Gotchas
- Terraform の state ファイルは直接編集しない
- ECS タスク定義の変更は必ずステージングで 30 分動作確認
- セキュリティグループは最小権限原則(0.0.0.0/0 は絶対 NG)

## 作業手順
インフラ変更: @docs/infra/change-procedure.md
インシデント対応: @docs/infra/incident-runbook.md
コスト最適化チェック: @docs/infra/cost-review.md

【要注意】チーム CLAUDE.md でよくある失敗パターン

失敗 1:「とりあえず全部書いておこう」で肥大化

❌ よくある間違い: 「これも書いておこう」「あれも必要かも」と追加を繰り返し、CLAUDE.md が 500〜1000 行に肥大化する

⭕ 正しいアプローチ: 追加前に「これを削除すると Claude が間違いを犯すか?」を問う。YESなら追加、NOなら不要

なぜ重要か: CLAUDE.md が長くなるほど後半の指示は読まれなくなります。「念のため追加した指示」が「実は邪魔になっている」状態が最もよくあるパターンです。実際に先述の 12 名チームでは、CLAUDE.md を 800 行から 120 行(Root)+ 各 rules/ ファイルに分散させることで、Claude の出力品質が改善しました。

失敗 2:属人的な CLAUDE.md で共有できない

❌ よくある間違い: 個人の ~/.claude/CLAUDE.md に全設定を書いて、チームには「なんか自分の Claude は賢い」状態

⭕ 正しいアプローチ: リポジトリの CLAUDE.md に書き、チーム全員が同じ設定で使う

なぜ重要か: 「あの人の Claude は優秀なのに自分のは…」という状況はほぼ必ず CLAUDE.md の差です。チームの共有知識として管理することで、「Claude の使い方の上手い人」が抜けても品質が落ちなくなります。

失敗 3:ルールの競合を放置する

❌ よくある間違い: Root CLAUDE.md に「コメントは英語で」と書き、packages/frontend/CLAUDE.md に「コメントは日本語で」と書いてしまう

⭕ 正しいアプローチ: 子ディレクトリの CLAUDE.md は Root を継承し、追加・上書きのみ記述する。矛盾する指示は書かない

失敗 4:「最初から完璧を目指す」で続かない

❌ よくある間違い: CLAUDE.md の整備会議を何度も開いて「完璧なドキュメント」を作ろうとして、3ヶ月後には誰もメンテしなくなる

⭕ 正しいアプローチ: まず 50 行の minimal CLAUDE.md を作り、Claude が失敗するたびに Gotchas に追記する。育てる意識

失敗 5:CLAUDE.md をソースコードと分けて管理する

❌ よくある間違い: CLAUDE.md を .gitignore に入れて個人管理にする(あるいは別 Notion ページで管理)

⭕ 正しいアプローチ: ソースコードと同じリポジトリで Git 管理。PR レビューを通じてチームのレビューを受ける

なぜ重要か: CLAUDE.md は「チームと Claude の間の契約書」です。コードが変わったのに CLAUDE.md が古いまま、というのが最もよくある問題です。コードの変更と CLAUDE.md の更新を PR で一緒にレビューする習慣が大切です。

CLAUDE.md 品質チェックプロンプト

チームの CLAUDE.md を定期的に Claude 自身にレビューさせるプロンプトです。研修先での月次レビューでそのまま使えます。

あなたは Claude Code の設定エキスパートです。
以下の CLAUDE.md を分析して品質レビューを行ってください。

【CLAUDE.md の内容】
[ここにCLAUDE.mdの全文を貼り付け]

【レビュー観点】
1. 行数チェック(200行超えていないか)
2. 矛盾した指示がないか
3. 「当たり前のことを書いている」無駄な行はないか
4. Gotchas セクションの充実度
5. Progressive Disclosure が設計されているか(詳細は rules/ に分離されているか)
6. 削除して効果がなさそうな行(候補を列挙)
7. 追加が必要そうな項目(チームでよくある問題ベース)

【改善優先度】
各項目について「今すぐ修正すべき」「余裕があれば修正」「問題なし」で分類してください。

不明点は「要確認」と明記してください。

AI 導入戦略との連携

CLAUDE.md の整備は、企業全体の AI 導入戦略の一部として位置づけるべきです。開発チームの CLAUDE.md が整備されると、Claude Code の利用率・出力品質が上がり、ROI が改善されます。

AI 導入の全体像についてはAI 導入戦略完全ガイドも参照してください。Claude Code の法人導入から CLAUDE.md 整備まで、体系的に解説しています。

まとめ:今日から始める 3 つのアクション

  1. 今日やること: 現在の CLAUDE.md の行数を確認する。200 行を超えていたら、今日中に rules/ ファイルへの分割計画を立てる
  2. 今週中: チームで「最近 Claude がやらかしたパターン」を 3 つ集めて、Gotchas セクションに追記する。PR を通じて全員のレビューを受ける
  3. 今月中: 月次 CLAUDE.md レビューのアジェンダを定例ミーティングに追加する。「Claude の失敗 → Gotchas 追記」のフィードバックループを定常化する

次回予告: 次の記事では「Claude Code のサブエージェント設計」をテーマに、複数の専門家エージェントを CLAUDE.md で管理する方法をお届けします。


参考・出典


著者: 佐藤傑(さとう・すぐる)
株式会社 Uravation 代表取締役。早稲田大学法学部在学中に生成 AI の可能性に魅了され、X(旧 Twitter)で活用法を発信(@SuguruKun_ai、フォロワー約 10 万人)。100 社以上の企業向け AI 研修・導入支援を展開。著書『AI エージェント仕事術』(SB クリエイティブ)。SoftBank IT 連載 7 回執筆(NewsPicks 最大 1,125 ピックス)。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。

佐藤傑
この記事を書いた人 佐藤傑

株式会社Uravation代表取締役。早稲田大学法学部在学中に生成AIの可能性に魅了され、X(旧Twitter)で活用法を発信(@SuguruKun_ai、フォロワー10万人超)。100社以上の企業向けAI研修・導入支援を展開。著書累計3万部突破。SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。

この記事をシェア

Claude Codeを本格的に使いこなしたい方へ

週1回・1時間のマンツーマン指導で、3ヶ月後にはClaude Codeで自走できる実力が身につきます。
現役エンジニアが貴方の業務に合わせてカリキュラムをカスタマイズ。

✓ 1対1のマンツーマン ✓ 全12回・3ヶ月 ✓ 実務ベースの指導
Claude Code 個別指導の詳細を見る まずは無料相談

contact お問い合わせ

生成AI研修や開発のご依頼、お見積りなど、
お気軽にご相談ください。

Claude Code 個別指導(1対1・12セッション)をご希望の方はこちらから別途お申し込みください

Claude Code 個別指導 無料相談