Google Codelabs のチュートリアルに基づくこの手順は、エージェントが書いたコードのレビュアーとして Antigravity を使う 2 つの方法を構築する。1 つは Antigravity CLI によるフィーチャーブランチの対話的なレビュー、もう 1 つは Antigravity SDK で構築し CI で実行するエージェントによる、すべてのプルリクエストの自動レビューである。このチュートリアルの前提は、バイブコーディング では開発者がコードを書くのではなく承認するため、動作するコードが十分なセキュリティレビューを経ずにマージされうる、というものである。しかも、すべての行を読むことにすれば、そもそもバイブコーディングを行う動機であったスピードを手放すことになる。
前提条件
- Google Cloud アカウントと GitHub アカウント。ターミナル、バージョン管理、CI/CD についての基本的な知識。
- レビュー対象のリポジトリ。チュートリアルでは、デモ用の CRM アプリのフォークを使う。このアプリには、意図的に脆弱性を含む 2 つのフィーチャーブランチがある。脆弱性とは、文字列連結で組み立てられた SQL、入力検証の欠如、ハードコードされた管理者の認証情報、認証のない管理用エンドポイント、そしてパストラバーサルのリスクである。
- インストールと認証を済ませた Antigravity CLI(
agy)。チュートリアルでは、プリインストールされている Cloud Shell を使う。 - SDK エージェント用の Gemini API キー。
手順
CLI による対話的なレビュー
- レビュー対象のフィーチャーブランチをチェックアウトする。
npx skills add addyosmani/agent-skills --skill code-review-and-quality -yで、コードレビュー用のエージェントスキル(Agent Skills を参照)をワークスペースにインストールする。スキルは.agents/skills/に配置されるため、リポジトリと一緒にコミットし、CI を含め、そのリポジトリで作業する全員で共有できる。- CLI を起動し、
/skillsでスキルが一覧に表示されることを確認する。チュートリアルは時間を節約するために--dangerously-skip-permissionsを付けて起動しているが、このフラグはあらゆる操作を許可してしまうと警告している。 mainと現在のブランチとの差分をレビューし、指摘事項と修正計画をcode_review.mdに書き出すよう、ただしまだ修正は適用しないようエージェントに依頼する。エージェントは該当するスキルを自ら選び出して使う。- 指摘事項と計画を読み、提案された修正を適用するようエージェントに依頼する。
- アプリを実行して引き続き動作することを確認し、動作しなければエージェントと反復してから、コミットする。
SDK による自動レビュー
- レビュー対象のブランチをチェックアウトし、
uvでレビューエージェント用の Python プロジェクトを作成して、google-antigravityパッケージを追加する。 - 同じレビュー用スキルをインストールし、エージェントのプロジェクトにコピーする。これにより、SDK が
skills_paths設定を通じてスキルを読み込めるようになる。 - レビューエージェントを書く。チュートリアルのエージェントは、デフォルトですべてのツールを拒否し、ファイル読み取り用のツール、
run_command、finishだけを許可する。さらに、ツール呼び出し前のフックがgitで始まらないコマンドをすべてブロックし、ツール呼び出し後のフックが監査のために各ツールの結果をログに記録する。システム指示ではファイルを決して変更しないと定め、レスポンススキーマによって構造化された指摘事項(ファイル、行、重大度、カテゴリ、説明、修正案)を返させる。エージェントはそれを Markdown としてcode_review.mdに書き出す。 - API キーを環境変数に設定した状態で、ブランチに対してエージェントをローカルで実行し、出力を確認する。
- プルリクエストが作成または更新されたときに実行される GitHub Actions のワークフローを追加する。このワークフローは、エージェントが
git diff main...HEADを実行できるよう全履歴をチェックアウトし、エージェントを実行して、code_review.mdをプルリクエストのコメントとして投稿する。 - API キーを
GEMINI_API_KEYという名前のリポジトリシークレットとして保存し、ブランチをプッシュして、自分のフォークに対してプルリクエストを作成する。ワークフローがレビューをコメントとして投稿する。
補足
- チュートリアルは、エージェントスキルを、インストールするとスラッシュコマンドになる宣言的な Markdown ファイルであり、エージェント間で移植でき、Git を通じて共有できるものと説明している。Antigravity CLI のワークスペーススキルは
.agents/skills/に、グローバルスキルは~/.gemini/config/skills/に置かれる。チュートリアルでインストールするスキルは、正しさ、可読性、アーキテクチャ、セキュリティ、パフォーマンスの 5 つの軸でレビューを行い、指摘事項に重大度のラベルを付ける。チュートリアルはこれを一例として挙げており、唯一の選択肢とはしていない。 - そもそもスキルを使う理由として挙げられているのは再現性である。スキルがなくても CLI はレビューを行えるが、その場合は一般的な学習知識に頼ることになり、セッションごとに一貫しない基準を適用するおそれがある。
- SDK エージェントにおける強制は 2 つの層にある。フレームワークレベルのポリシーと、2 つ目のチェックとしてのフックである。また、チュートリアルはレビューの範囲をコードベース全体ではなくブランチの差分に限定している。
- ワークフローのトリガーは、たとえば特定のパスに絞り込むことも、オンデマンドでレビューするために
/reviewのようなコメントコマンドに切り替えることもできる。 - 後片付けの際、2 つ目のフィーチャーブランチのプルリクエストは、修正されていない脆弱なコードがまだ含まれているため、マージしないようチュートリアルは警告している。