◉ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
⬡ 連携・プラグイン/2026-06-18中級

エージェントのコミットを pre-commit で止める — 壊れた変更を本番リポジトリに入れない仕組み

Antigravity のエージェントが書いたコードを、コミットの瞬間に lint・型チェック・高速テスト・秘密情報スキャンで自動検査する pre-commit ゲートの組み方を、実測の所感とともにまとめました。

Antigravity377pre-commitGit10品質ゲート7エージェント72

✦ プレミアム記事

エージェントに「このバグを直して」と頼んだ翌朝、コミット履歴を見たら緑のテストが赤く変わっていたことがあります。個人開発で運用しているアプリのリポジトリでした。

直した箇所は確かに直っていました。ただ、その過程で別のファイルの import を一つ消していて、関係のないモジュールが起動時に落ちるようになっていたのです。

エージェントは悪くありません。私自身が、生成された変更を「読まずに」コミットできる状態を放置していたことが原因でした。

人間のレビューを毎回挟めれば理想ですが、1 日に何度もエージェントへ作業を投げる運用では、その都度全 diff を精読するのは続きません。そこで私が頼っているのが pre-commit です。コミットという一点に検査を集約すれば、エージェントの出力でも人間の手作業でも、同じ網に必ずかかります。

なぜ「コミットの瞬間」が最適な検問所なのか

エージェントの作業はファイルを次々に書き換えていきます。途中の状態は壊れていて当然で、そこを検査しても意味がありません。

検査すべきは「これで一区切り」とエージェントが判断し、変更を確定しようとする瞬間です。それがまさに git commit のタイミングです。

CI で検査する手もありますが、CI はプッシュの後に回ります。壊れたコミットはすでにローカル履歴に残り、エージェントは次の作業へ進んでしまっています。pre-commit なら、壊れた変更はコミットとして成立すらしません。エージェントの作業ループの内側で完結するのが利点です。

私はブログ運営でも同じ考え方を使っています。4 つの技術ブログを自動更新するパイプラインでは、記事を push する直前に Python 製の品質ゲートを必ず通し、違反が出たら記事そのものを捨てて書き直す運用にしています。検査を「最終地点の手前」に置くという発想は、コードでも文章でも変わりません。

最小構成から始める

最初から重いフックを並べると、エージェントの待ち時間が伸びて運用が嫌になります。まずは速くて効果の大きいものだけを置きます。

.pre-commit-config.yaml をリポジトリ直下に作ります。

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-merge-conflict
      - id: check-added-large-files
        args: ["--maxkb=500"]
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.12.1
    hooks:
      - id: ruff
        args: ["--fix"]
      - id: ruff-format

導入は 2 コマンドです。

pip install pre-commit
pre-commit install

pre-commit install を一度実行すると、.git/hooks/pre-commit が差し替わり、以降の git commit すべてに検査が挟まります。エージェントが内部で git commit を呼んでも、この網は同じように作動します。エージェント側に特別な設定は要りません。

ここまでで、構文エラーを含むコミットやマージ衝突マーカーの残骸、巨大ファイルの混入はコミット段階で止まります。実測では、この最小構成のフック群はステージ済みファイルが数個なら 1 秒未満で終わります。待ち時間として体感されない範囲です。

✦

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

この記事の続きを読む

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

この記事で得られること
✦エージェントが直したつもりで壊した変更を、コミット前に 1 〜 3 秒で弾く .pre-commit-config.yaml の実例
✦フックが落ちたときにエージェント自身へ失敗ログを返し、人間を介さず自己修正させる回し方
✦秘密情報スキャン・型チェック・高速テストの 3 段を、待ち時間を増やさず並べる順序の設計
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 連携・プラグイン2026-09-20
10月5日に止まる antigravity-preview-05-2026、差し替えで済む構成と済まない構成
antigravity-preview-05-2026 の停止日が10月5日に決まりました。公式が示すのは日付と後継名だけです。output_text だけを読む構成なら差し替えで終わり、steps を読む構成なら改修が要ります。その分かれ目を切り替え前に確かめる手順です。
⬡ 連携・プラグイン2026-09-18
MCP が欠けたまま始まったセッションを、どこで止めるか
MCP サーバーの初期化に失敗したまま始まったセッションで、エージェントは黙って別の手段に落ちます。ツールが本当に見えているかを手元で確かめる小さなスクリプトと、欠けていたときに取る三つの分岐をあらかじめ決めておく話です。
⬡ 連携・プラグイン2026-08-03
サーバーごとに秒数を書く前に測ったこと — MCP の接続と呼び出しは 486 倍違っていました
2.4.3 で MCP サーバーごとにタイムアウトの秒数を指定できるようになりました。何秒が妥当かを決めるために stdio サーバーを自作して境界別に実測し、単一の値では覆えない理由と、いま設定に書いている値の決め方をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます