Claude Codeを大きなリポジトリで使う設定|モノレポ対応

この記事の要点
- 大きなリポジトリでは「どこから起動するか」で、読めるファイルと最初に読む指示書が変わる
- 指示書はフォルダごとに分け、関係ない指示書や生成されたファイルは読ませない設定にする
- 作業場(worktree)は必要なフォルダだけ取り出せる。別のフォルダは --add-dir で足せる
小さなプロジェクトでは気にならなくても、フォルダが何十・何百とある大きなリポジトリ では、AI が関係のないファイルまで読んでしまい、時間も利用量もかさみます。指示書が1つに詰めこまれていると、ほかのチーム向けのルールまで毎回読み込まれます。
この記事では、Claude Code の公式ドキュメント(2026年10月30日確認)にもとづいて、モノレポや大きなリポジトリで Claude Code を迷わせない設定 をまとめます。
結論:「起動する場所」「読ませる指示書」「読ませないもの」の3つを決める
大きなリポジトリでの設定は、次の3つを決めればほとんど片付きます。
- どこから起動するか:リポジトリの一番上か、担当のフォルダか
- どの指示書を読ませるか:フォルダごとの CLAUDE.md、関係ない指示書の除外
- 何を読ませないか:自動で作られたファイルや、外から持ってきたコード
1. 起動する場所を選ぶ
| 起動する場所 | 読めるファイル | 最初に読む指示書 | 向いている場面 |
|---|---|---|---|
| リポジトリの一番上 | すべて | 一番上の CLAUDE.md だけ(下のフォルダの分は必要なときに読む) | 複数のパッケージにまたがる作業 |
| 担当のフォルダ | そのフォルダの中だけ(あとで足せる) | そのフォルダと、上にある全部の CLAUDE.md | 1つのパッケージで完結する作業 |
1つのパッケージしか触らないなら、そのフォルダで起動する のがいちばん簡単な節約になります。
2. 指示書をフォルダごとに分ける
- 一番上の CLAUDE.md:全体に共通するルール(書き方、コミットの決まりなど)
- 各フォルダの CLAUDE.md:そのフォルダ専用のルール(使っている技術の決まりなど)
ルールを1か所にまとめたい場合は、.claude/rules/ にファイルを置き、paths: で効く範囲を指定する方法もあります。持ち主がフォルダごとに違うならフォルダごとの CLAUDE.md、1か所で管理したいならルールのファイル、という使い分けです。CLAUDE.md の基本は CLAUDE.mdの記事 を見てください。
公式は、指示書の運用について次のこともすすめています。
- 指示書の変更も、ふつうの文書と同じようにレビューする
- 新しいモデルが出たら見直す(古いモデル向けの回り道の指示が、かえって邪魔になることがある)
触らないフォルダの指示書を外す
ほかのチームのパッケージなど、自分が使わない指示書は claudeMdExcludes で読ませないようにできます。
{
"claudeMdExcludes": [
"**/packages/web/**"
]
}
自分だけに効かせたいなら .claude/settings.local.json に書きます。これは「いつも外すもの」の一覧で、日によって切り替えるものではありません。今日はこのパッケージ、明日は別、というときは起動する場所を変えます。
3. 読ませないものを決める
.gitignore に書いてあるもの(node_modules/ など)は、もともと検索の対象から外れます。問題は、リポジトリに入っている自動生成のファイルや、外から持ってきたコード です。これは権限の設定で、読むことを禁止します。
{
"permissions": {
"deny": ["Read(./**/vendor/**/*)"]
}
}
| 置き場所 | 効く範囲 |
|---|---|
.claude/settings.json(共有) | そのリポジトリで作業する全員 |
.claude/settings.local.json | 自分だけ |
| 管理用の設定 | 全員に強制(ほかの設定では上書きできない) |
./ で始まる書き方は、起動したフォルダが基準 になる点に注意します。権限の書き方は 権限設定の記事 にまとめています。
4. 作業場とフォルダの範囲を絞る
必要なフォルダだけの作業場
--worktree で別の作業場を作ると、既定ではリポジトリ全体が取り出されます。大きなリポジトリでは、worktree.sparsePaths で 必要なフォルダだけ を取り出せます。
{
"worktree": {
"sparsePaths": ["packages/api", "packages/shared"]
}
}
作業場の基本は worktreeの記事 で解説しています。
別のフォルダを足す
担当のフォルダで起動したあと、となりのパッケージや別のリポジトリも触りたいときは、--add-dir(会話中なら /add-dir)で足します。設定の additionalDirectories でも足せますが、こちらはファイルを読めるようになるだけで、そのフォルダの指示書やスキルは読み込まれません。
複数のパッケージにまたがる変更のコツ
- 1つの会話でまとめて頼む:共通部分の修正と、それを使っている所の修正を一緒に渡すと、判断がそろう
- 先に計画を立てる:プランモード で計画をファイルに書かせておくと、長い作業で会話が圧縮されても計画は読み直される
まとめ
- 1つのパッケージだけなら、そのフォルダで起動 する
- 指示書はフォルダごとに分け、使わないものは
claudeMdExcludesで外す - 生成ファイルなどは
permissions.denyで読ませず、作業場はsparsePathsで絞る
出典
この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。


