ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-07-10上級

エージェントが書いたファイルが .gitignore に飲まれる — commit 前に気づくための検出ゲート

エージェントが生成したファイルが .gitignore に一致していると、差分レビューでは正常に見えるのに commit には含まれません。ignored な生成物を push 前に検出するゲートスクリプトと、その運用調整をまとめました。

Antigravity317エージェント54Git5CI4品質ゲート3

プレミアム記事

エージェントに「生成した HTML を public/content 配下へ書き出してください」と頼み、アーティファクト・ビューアで差分を確認し、満足して commit しました。ところが本番には何も反映されていません。ログを追い直すと、git status にそのファイルは最初から一度も現れていませんでした。.gitignorepublic/content/ が入っていたからです。

原因が分かるまで半日近く費やしました。エージェントは確かに書き込んでおり、ファイルはディスク上に存在し、差分 UI もそれを表示します。ただ Git だけが黙って無視していました。この「三者のうち一者だけが黙る」構造が、デバッグを難しくします。

エージェントの差分と Git の差分は別物です

Antigravity のアーティファクトは、エージェントが実際に触れたファイルの一覧と内容を提示します。これはファイルシステム上の事実です。一方 git status が示すのは、追跡対象かつ ignore 規則に一致しない変更だけです。

観点アーティファクト・ビューアgit status(既定)
対象エージェントが書いたファイル全て追跡中 + 未追跡かつ非 ignored
.gitignore 一致そのまま表示完全に沈黙
失敗の見え方成功に見える差分ゼロ = 何もしていないように見える

つまり「エージェントの作業は成功、Git は何も検出しない」という状態が、正常系と見分けがつきません。ビルド生成物を ignore しているリポジトリでは、生成物をあえて commit したい局面(静的アセットの事前生成、コンテンツ HTML の同梱など)で必ず踏みます。

ignored なファイルだけを列挙する

Git には ignored なパスを明示的に見せるオプションがあります。既定の --ignored はディレクトリ単位で丸めてしまうため、ファイル単位で欲しいときは matching を指定します。

# ignored なパスをファイル単位で列挙する(!! が ignored を示す)
git status --porcelain --ignored=matching | grep '^!!' | cut -c4-
 
# 特定のパスがどの規則で ignore されているかを逆引きする
git check-ignore -v public/content/articles/ja/agents/foo.html
# → .gitignore:12:public/content/	public/content/articles/ja/agents/foo.html

git check-ignore -v は「どのファイルの何行目の規則に当たったか」まで返します。私自身、.gitignore ではなく .git/info/exclude 側に古い除外が残っていたケースを、この出力で初めて特定できました。ファイル名まで表示されるので、原因の候補を一つずつ潰す必要がなくなります。

複数パスをまとめて確認するなら標準入力を使います。

# エージェントが触れたファイル一覧を渡して、ignored なものだけを抜き出す
printf '%s\n' "${TOUCHED[@]}" | git check-ignore --stdin --verbose

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
git status --porcelain --ignored=matching でエージェントの生成物のうち追跡されないものだけを列挙する手順
commit 前に ignored な生成物を検出して exit 1 する60行のゲートスクリプト(allowlist 付き)
4サイト運用で誤検知を10%前後に抑えるための .gitignore 見直しの順序
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

連携・プラグイン2026-06-18
エージェントのコミットを pre-commit で止める — 壊れた変更を本番リポジトリに入れない仕組み
Antigravity のエージェントが書いたコードを、コミットの瞬間に lint・型チェック・高速テスト・秘密情報スキャンで自動検査する pre-commit ゲートの組み方を、実測の所感とともにまとめました。
Agents & Manager2026-07-01
Guide スキルとコードの乖離を検出して直す仕組み
組み込み Guide スキルに手順を固定すると、後からコードが変わったとき手順だけが取り残されます。参照先の実体を機械照合して乖離を早めに見つけ、Guide を薄く保つ運用設計をまとめます。
Agents & Manager2026-07-01
モデルがフォールバックしても命名と書式をぶらさない — エージェント出力の一貫性を保つ契約
エージェントの実行中にモデルがフォールバックすると、コードの命名規約や書式が静かにぶれます。モデルに依存しないスタイル契約と正規化パスで、出力の一貫性を保つ実装をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →