特定のファイルをgitignoreしたいけどAIには読んでほしいときは
多くのAIエージェントは .gitignore したファイルはAIエージェントとしても読み込まないような仕組みになっている。(少なくとも Gemini CLIはそう)
例えば Unity のプロジェクトにおいて uLoop を使っているとき、プロジェクト内のHierarchy情報や、画面のキャプチャはプロジェクトルートの .uloop に出力される。コレをバージョン管理から外すときは .gitignore には以下のように書く。
code:.gitignore
.uloop
一方で uLoop を十分に活用するには AI エージェントはこのディレクトリ配下のファイルを読める必要がある。(read_fileなど別のToolsを使ってなんとか回避しようとするがTokenを無駄に消費することになる)
なので AIエージェント向けの除外設定を追加し、除外から除外する ことで対応する。
Gemini CLIの場合
.gitignoreと同じく除外設定の定義が .geminiignore で行える。
除外から除外するには ! で否定すれば良い
code:.geminiignore
!.uloop
Claude Code の場合
Claude Codeの場合は設定から gitignore に指定のあるファイルを無視するようなっているのでこれを解除すれば良い^1
一方で秘密の情報にもエージェントがアクセスできるようになってしまうので permission で読めるファイルを制限する必要などがありそうだが諸説あり
code:.claude/setting.json
{
"respectGitignore": false,
"permissions": {
"deny": [
"Read(.env)"
]
}
}
Codex の場合
Codex の場合は特定のファイルを除外する仕組みは記載時点ではなく、.gitignoreを尊重して読まないような機能も同じくなさそう
https://github.com/openai/codex/issues/2847