.claudeignoreの設定方法【不要ファイルをAIに読ませない】

Claude Code入門

claudeignore を設定せずに、node_modulesdist.env をそのまま読ませていませんか?不要ファイルを除外するだけで、コンテキスト消費と回答ノイズを同時に減らせます。実際の削減幅は構成次第ですが、サンプル検証では 20〜40% 程度の軽量化が狙えます。

この記事では、.claudeignore の書き方を起点に、プロジェクト別テンプレート、.gitignore との使い分け、よくある失敗までを一気に整理します。※本記事は 2026年3月3日(JST)時点で確認した情報をベースにしています。現行仕様は更新される可能性があるため、最終確認は公式ドキュメントを参照してください(Claude Code settings)。

.claudeignoreとは?なぜ必要なのか

.claudeignore は、AIに読み込ませる必要がないファイルを除外するための設定ファイルです。特に巨大な依存ディレクトリや生成物を除外すると、次の効果が出やすくなります。

  • 不要な文脈が減り、指示に対する回答の焦点が合いやすい
  • セッションのコンテキスト枠を本当に必要なコードへ使える
  • 機密情報を含むファイルを読み取り対象から外しやすい

なお、環境によっては .claudeignore ではなく、.claude/settings.jsonpermissions.deny が優先される運用もあります。後半で併用パターンを解説します。

.claudeignoreの基本的な書き方(.gitignore形式)

基本は .gitignore に近いパターン指定です。まずは次の最小セットから始めると安全です。

node_modules/
dist/
build/
coverage/
.env
*.log
.DS_Store

パターン指定のルール

  • node_modules/: ディレクトリ単位で除外
  • *.log: 拡張子で一括除外
  • .env: 機密情報を含む単一ファイルを除外

最初に入れるべき最小セット

最初から大量に除外すると必要ファイルまで読まれなくなるため、node_modules・生成物・ログ・機密ファイルの4系統から始めるのが実務では安定します。

除外すべきファイル・ディレクトリの具体例

対象代表パターン除外理由
依存ライブラリnode_modules/, .venv/容量が大きく、解析価値が低い
ビルド成果物dist/, build/, out/生成物は再現可能でノイズになりやすい
テスト生成物coverage/, *.lcov要約指示時に不要情報を増やす
ログ・キャッシュ*.log, .cache/時系列ノイズで回答精度を下げやすい
機密ファイル.env, *.pem漏えいリスク低減

除外方針を決めるときは、先に1-11「コンテキスト管理術」の「必要ファイルだけ読む」原則を合わせて確認しておくと、運用がぶれません。

プロジェクト種別ごとのテンプレート(React/Python/WordPress等)

ここではそのまま貼り付けて使えるテンプレートを示します。必要に応じて追加してください。

React / Next.js

node_modules/
.next/
out/
dist/
coverage/
*.log
.env*

Python

.venv/
__pycache__/
.pytest_cache/
.mypy_cache/
htmlcov/
*.pyc
.env*

WordPress(テーマ/プラグイン開発)

wp-content/cache/
wp-content/uploads/
node_modules/
dist/
vendor/
*.log
.env

プロジェクトルールを文書化するときは、2-1「CLAUDE.md書き方ガイド」で「何を読む/読まないか」を明示しておくと、チーム運用時の再現性が上がります。

.claudeignore設定前後のコンテキスト消費量を比較

削減率はリポジトリ構成で変わるため、次の3指標で比較するのが実務向きです。

  • 読み取り対象ファイル数
  • 読み取り対象の総サイズ
  • 同じ依頼文での応答の一貫性(主観評価で可)
指標設定前設定後差分
対象ファイル数5,4203,180-41.3%
対象サイズ1.8GB1.1GB-38.9%
回答の手戻り多い少ない改善

上記はサンプル構成での比較例です。実運用では、同一プロンプトで3回程度試し、差分を見てから除外ルールを固定してください。

claudeignore設定前後の比較フロー

.gitignoreとの違いと併用のコツ

.gitignore は Git 追跡対象を制御する設定、.claudeignore(または同等設定)は AI の読み取り対象を制御する設定です。目的が違うため、同じ内容に見えても分けて管理する方が安全です。

項目.gitignore.claudeignore / permissions.deny
主目的コミット対象の制御AI読み取り対象の制御
影響範囲Git運用AIセッション品質と安全性
設計のコツ差分管理を優先文脈最適化と機密保護を優先

現行環境で .claudeignore が効かない場合は、.claude/settings.json に移すと安定します。

{
  "permissions": {
    "deny": [
      "Read(node_modules/**)",
      "Read(dist/**)",
      "Read(.env)",
      "Read(coverage/**)"
    ]
  }
}

複数ブランチを同時に扱う場合は、除外設定の同期漏れが起こりやすくなります。実務では2-12「worktreeで並列開発」の手順と一緒に管理すると事故を減らせます。

よくある設定ミスとトラブルシューティング

除外したはずのファイルをまだ読む

  • パターンが浅い(例: node_modules/ だけでネストを取りこぼす)
  • 設定ファイルの場所が違う
  • セッション再開時に古い文脈が残っている

対処: パターンを見直し、設定保存後にセッションを切り替えて再評価します。

除外しすぎて必要ファイルまで読まれない

  • src/ など実コードまで除外してしまう
  • ワイルドカード指定が広すぎる

対処: まず機密・生成物だけを除外し、最小構成に戻してから段階的に追加します。

最後に、設定後は「同じ依頼文で回答の安定度が上がったか」を必ず確認してください。導入の次ステップとして、コンテキスト設計の全体像は1-11「コンテキスト管理術」、運用ルールの文書化は2-1「CLAUDE.md書き方ガイド」を続けて読むと定着しやすくなります。

とつ

某SIer企業勤務。
生成AI(ChatGPT、Claude、Gemini)に強い関心を抱き、業務に積極的に活用している。本アカウントでは、最新技術の実践例と活用法を発信する。
また、仕事以外では家事育児やヘルスケアにおいても、生成AIの可能性を模索し、日常生活での利活用に努める。

老け顔から「とっつあん」とあだ名で呼ばれ、それが「とつ」といつしか略されるようになったのがハンドルネームの由来。
「リベラルアーツ大学」をきっかけに、稼ぐ力を養いたいという思いからBlogサイトの運営を開始し、Blogの成長とともにAWSのスキルアップにも注力している。
家族は妻と7歳長男、3歳次男。

とつをフォローする
Claude Code入門
スポンサーリンク
シェアする
とつをフォローする

コメント

タイトルとURLをコピーしました