Antigravity にハマっています。この前の Google AI Pro の学生1年間無料キャンペーンのおかげもあり、(今だけかもしれませんが)高性能モデルがほぼ使い放題なので助かります。
コミットメッセージが自動生成できなくなった
ところで、いつも GUI で Git の操作を行っているのですが、突然コミットメッセージの自動生成ができなくなってしまいました。VSCode では割と前からある機能で、カスタム指示も設定できたりするはずですが、Antigravity ではまだベータ版の機能ということなので仕方ないですね。
エラーの感じは一時的なものな気もしますが、この機会に Git の操作を自動化できないか考えてみました。
Agent Workflows
Antigravity の Agent 機能では、Cline など他のコーディングエージェントと同じように逐一指示を出して処理を任せるのが基本ですが、これに加えて Workflows というサブ機能もあります。
Workflows は Agent のカスタマイズの一つとされているようですが、イメージとしては よく任せる一連の処理をすぐに指示できるコマンド を定義できるものです。空コンポーネントの作成などコーディングエージェントの強みを活かした処理はもちろん、デプロイ操作や簡易コードレビューなど、CLI で実行しようとすると複数のコマンドを繋げる必要があったり、出力が見づらくなったりする処理にも効果的な機能です。
今回はこの Workflows 機能を活用して、ステージング → コミットメッセージ生成 → コミット の一連の流れを簡単に行えることを目指します。さらに、変更内容を分析できるという強みを活かして、与えた条件に該当する変更だけをコミット したり、変更の種類ごとにコミットを分割 したりできるようにしていきます。
ワークフローの追加
とはいえ、実際には自然言語でワークフローの内容を記述するだけなので何も難しいことはありません。
Agent パネル上部の Additional options(横3点ボタン、ミートボールメニュー)から Customizations > Workflows に移動し、ワークフローを追加します。Global で追加するとワークスペース間で共有できるので、今回のようにどのワークスペースでも利用したいワークフローは Global にすると良さそうです。
まずは、単純に現在の変更済みファイルを全てコミットするワークフローを作成してみます。
追加ボタンを押すとワークフローの名前を入力するところから始まります。ここで入力したものを Agent の指示入力ボックスにそのまま入力することになります。
名前を入力したら、ワークフローの説明と内容を記述していきます。ワークフローの設定ファイルの実態は Markdown ですが、Antigravity 上ではテキストボックスに入力していく形になっています。
今回はこのようなプロンプトにしてみました。コミットメッセージの生成指示は任意ですが、フォーマットを与えたり絵文字を使わせたりと柔軟に指示できるのが魅力的です。
ちなみに、Agent は頭がいいので、「Git の diff などを参考に生成してください」などと言わなくても勝手に変更内容を分析してコミットメッセージを生成してくれます。
実行してみる
ワークフローを保存して Agent 画面に戻り、指示入力ボックスに /{ワークフロー名} と入力します。ただし、スラッシュを入力すると利用可能なワークフローが表示されるので、手動で入力する必要はありません。
実行すると、Agent が先ほど入力したワークフローの内容をもとに処理を始めます。変更内容の分析、コミットメッセージの生成と少し手間がかかるのである程度時間を要しますが、放っておくだけでコミットが完了します。
条件に該当するものだけをコミットする
先ほどのワークフローを少し変えて、与えた条件に該当するファイルのみをコミットするようにしてみます。リファクタリングや依存関係の追加など、変更の種類が独立している場合に使えます。
わざわざ載せる必要もないと思いますが、プロンプトはこちらです。「与えた条件」と、条件がどのような形式で与えられるかは明記していませんが、Agent はよしなにやってくれます。
実行してみます。今回は依存関係に関するファイルのみをコミットしてもらうべく、条件として単に "deps" とだけ指定してみました。
結果として、きちんと条件を理解しコミットすべきファイルを選択してくれました。さすがです。
変更の種類ごとにコミットを分割する
最後に、現在の変更にいくつかの種類の変更が混ざっていて、全て一気にコミットするのは相応しくないという状況を考えます。あるいは、種類ごとに一つ一つコミットするのが面倒だったり、そもそもどんな種類の変更が混ざっているのか把握することすら困難な場合です。そんな状況になる前にこまめにコミットすればいいのでは?
Agent は頭がいいので(2回目)、いい感じに指示すれば、現在のワークツリーの状況を分析して、変更の種類ごとに複数のコミットに分けてくれます。
プロンプトはこんな感じです。「細かく分けすぎず、〜」という部分は、何も指示しないとかなり細かく分けられてしまったので入れておきました。
実行してみると、変更内容を細かめに分析して変更の種類を把握し、コミットを分割しようとしてくれます。
今回のは結果的に分割しなくて良いと判断されてしまったのであまり良い例ではないですが、きちんと指示通りに処理を行ってくれています。
追記
コミットメッセージの形式の指定は、Agent の Rules に盛り込んでおけば、多分ワークフローの内容に含めなくても良いと思います。





