Antigravity のクオータ制限を模索・トークン節約|Gemini CLI 連携で品質を底上げする「エビで鯛を釣る」試み 後編
📝 後編:前編(brief054)に続き、パターン9–16のテスト・結果と実運用の目安。内容は公式情報でご確認ください。
貧乏でくたびれたおっさんが「エビで鯛」を狙ったらドツボにハマった、という後編です。文章ばかりで疲れますが、結果だけ言えばエビで鯛は釣れまくった話でもあります。ドツボのせいで説明が長くなり、すみません。読んでいただけたら幸いです。
後編 ZIP(SKILLS 同梱)
⬇ antigravity-gemini-cli_with_SKILLS.zip をダウンロード- 使い方:Antigravity で ZIP を展開し、そのフォルダをワークスペースとして開く。各テストの
input-note.mdをチャットに貼り付ける。 - 前提:Gemini CLI Companion がセットアップ済みであること。
- 移植:ZIP 内の
SKILLSやAGENTS.mdなどを、ほかのプロジェクトにコピーすれば同様の運用ができる。
前編同様 Flash のみ+Plan モードで連携。後編は難問 8 パターン(バリデーション・サイレントバグ・ログ解析・セキュリティ監査・外部調査・並列・コードレビュー・WebGL 整理など)と実運用の目安をまとめる。
Core Insights(後編)
① 前編の前提・スキルを踏襲 → ② パターン9–16は難問・鬼門中心 → ③ 実運用の目安を後編でまとめる
-
1 前編を参照
前提は前編と同じ
Skill(gemini-cli-control)・OAuth・Git Bash・Plan モードの流れは brief054(前編) を参照。後編ではパターン9–16に集中する。
-
2 難問・鬼門
後編の 8 パターン
バリデーション・サイレントバグ調査・ログ解析・セキュリティ監査・外部調査・並列オーケストレーション・コードレビュー・WebGL 整理・改良など、やや重いタスクを扱う。
-
3 実運用の目安
後編で得た知見
依頼の切り出し方・Plan 精査のタイミング・CLI との往復回数の目安を、test-09~15 の結果からまとめる。
1. スキル gemini-cli-control の具体的な実装
後編では、前編の「概念」ではなく、スキルに実際どう書いてあるかを先に押さえる。入口は SKILL.md、細かい手順は
resources/*.md に分かれている。図で全体像を把握してから、代表的な中身を見ていこう。
豆知識:Gemini CLI Companion って何?
公式では「Gemini CLI Companion」拡張が、Antigravity / VS Code などの統合ターミナルで動く Gemini CLI と IDE をつなぎます(IDE integration(公式))。
拡張側がローカルで MCP over HTTP を待ち受け、CLI は discovery file(os.tmpdir()/gemini/ide/)でポートと認証情報を見つけて接続します。仕様の契約は IDE Companion Extension Spec(公式) にまとまっています。
- 文脈:
ide/contextUpdateで直近の開いているファイル・カーソル・選択(CLI 側で最大 10 ファイル・選択は 16KB まで、公式記載) - 差分:
openDiff/closeDiffと、採否のide/diffAccepted/ide/diffRejected - 運用:CLI から
/ide install・/ide enable・/ide status(公式)
詳細な整理は同梱の vscode-bridge/README.md からどうぞ。
入口と全体ルール"] agentBehavior["agent-behavior.md
司令塔の判断基準"] manualAgent["manual-for-agent.md
実行手順とコマンド"] promptTemplates["prompt-templates.md
質問・仮planの雛形"] referenceGuide["reference.md
オプションと終了コード"] supportDocs["other resources
trusted-folder / troubleshooting / conversation-patterns"] skillEntry --> agentBehavior skillEntry --> manualAgent skillEntry --> promptTemplates skillEntry --> referenceGuide skillEntry --> supportDocs
| ファイル | 何が書いてあるか |
|---|---|
SKILL.md |
入口。司令塔の基本思想、最小読込ルール、追加 resources を読む条件、最短の 1 回の流れ、短い往復運用ルール、参照表。 |
resources/agent-behavior.md |
Plan を鵜呑みにしないこと、役割分担、ユーザー確認を挟む条件、安全境界、CLI 出力を必ず取得すること、結果別の次の一手。 |
resources/manual-for-agent.md |
基本コマンド、Git Bash / CMD / PowerShell での実行手順、プロンプト設計 3 要素、トークン節約、会話往復型の運用手順。 |
resources/prompt-templates.md |
単一ファイル編集、複数ファイル編集、要約、検索、JSON 出力、短い往復向けの質問・仮 plan・次の一手の雛形。 |
resources/reference.md |
コマンド早見表、--approval-mode=plan / yolo の違い、終了コード、オプション、trusted
folder や公式ドキュメントへのリンク。 |
運用の流れは次の図のとおり。精査→了承後にだけ実装、がポイント。
入口の
SKILL.md
「何を先に読むか」「Plan 返答時は実装しない」など、運用ルールがそのまま書いてある。
---
name: gemini-cli-control
description: Controls Gemini CLI from an editor agent (e.g. Antigravity Flash). Delegates file edits and heavy tasks to CLI via headless commands, formulates prompts with explicit path and scope, interprets CLI output, and reports to the user. Use when the user works with Antigravity plus Gemini CLI, when delegating code edits or analysis to CLI, or when the user asks how to drive Gemini CLI from the agent.
---
# Gemini CLI 制御(エージェント用)
エージェント(Antigravity)が**司令塔**となり、Gemini CLI をヘッドレスで呼び出して「編集・解析・複数ステップ」を完遂させるための入口。
## 司令塔(Antigravity)の基本思想
1. **意思決定はエージェントが行う**: Gemini CLI は「実行役」であり、その出力(Planや解析結果)をそのまま鵜呑みにせず、Antigravity が精査・判断して次の一手を決める。
2. **複数ターンのキャッチボール**: 1回のコマンドで全てを終わらせようとせず、Plan作成 → 精査 → 修正 → 合意 → 実装 というステップを Antigravity が制御する。
3. **ファイル操作・重い処理の委譲**: 実際のコード編集、大規模検索、ビルド等は Gemini CLI に任せ、Antigravity はその結果を解釈してユーザーに報告する。
## 万能型としての運用原則
- **まずユーザーが明示した対象と目的だけで処理する**。最初から勝手に対象ファイル・周辺資料・追加文脈を広げない。
- **追加ファイル・追加 resources は必要条件がそろったときだけ読む**。曖昧さの解消、設計上の判断、実装上の必要、エラー切り分けがある場合のみ広げる。
- **質問整理・不足情報確認・短い往復では通常の `gemini -p` を優先する**。`--approval-mode=plan` は設計や仮 plan が明示的に必要な場合のみ使う。
- **`--output-format json` は機械処理が必要な場合のみ使う**。短い自然文の返答で足りるときは使わない。
- **迷ったら、まず最小スコープ・通常モード・短い返答を選ぶ**。必要が生じた時点でだけ広げる。
## 最小読込ルール(トークン節約)
- **このスキルが発動したら、作業開始前に必ず 2 つだけ読む**: [manual-for-agent.md](resources/manual-for-agent.md) と [agent-behavior.md](resources/agent-behavior.md)。
- **この 2 つを読まずに、CLI 実行・Plan 判断・実装判断を始めない**。
- **その他の resources は必要時のみ読む**。まとめて読まず、必要になったタイミングで読みに行く。
- **必要時の追加読取は自己判断で飛ばさない**。下の「状況別の追加読込フロー」に当てはまるときは、該当 resources を Read してから次に進む。
## 最短の 1 回の流れ
1. まず [manual-for-agent.md](resources/manual-for-agent.md) と [agent-behavior.md](resources/agent-behavior.md) を Read する。
2. タスクを **1 回の `gemini -p` で 1 タスク**に分解する。
3. **条件が未確定**のときは、[conversation-patterns.md](resources/conversation-patterns.md) と [prompt-templates.md](resources/prompt-templates.md) を Read してから、質問返しか仮 plan に進む。**実装はしない**。
4. 実装・調査・設計を含む依頼では、まず **Plan / 分析 / 調査のターン**を先に作る(いきなり実装しない)。
5. プロンプトに **作業場所・対象(パス・範囲)・指示** を明示する。編集時は `--approval-mode=yolo` を付ける。
6. **`cd` と `gemini` は別送**。Git Bash では `/c/...` 形式の絶対パス、CMD / PowerShell では Windows の絶対パスで移動する。
7. **ターミナル出力(stdout / stderr・終了コード)を Antigravity 側で必ず取得**し、解釈してから次を決める。
8. Plan 返答時は **実装に進まず**、Antigravity が Plan を精査し、必要なら修正依頼を繰り返す。実装は最終 Plan 了承後のみ。
9. エラー・権限問題・期待外れの出力が出たら、自己判断で流さず resources を読んでから再試行する。
agent-behavior.md(判断ルール)
Plan を鵜呑みにしない・出力を必ず取得してから次を決める、が明文化されている。
## 司令塔(Antigravity)の基本姿勢
1. **盲信しない**: Gemini CLI が出した Plan や修正案は「提案」として受け取り、Antigravity が必ず自分のロジックで精査する。
2. **責任は Antigravity が持つ**: 最終的な実装内容、安全確認、ユーザーへの報告は Antigravity の責務である。
3. **複数ターンで完成させる**: 1 回の依頼で全てをやらせようとせず、小分けにして進捗と品質を確認しながら進める。
## Plan の精査と意思決定(最重要)
1. **出力の取得と読み込み**: ターミナル出力を全文読み込み、Plan の中身を理解する。
2. **品質の精査**:
- 依頼内容を漏れなくカバーしているか?
- プロジェクトの既存パターン、安全境界、制約に違反していないか?
- 曖昧な箇所、不確実なファイルパスが含まれていないか?
3. **修正依頼(必要なら)**: 問題があれば、「○○を修正して」「このパスが正しいか確認して」と再依頼する。
4. **実装への移行判断**: 「よし、この Plan でいける」と確信した場合のみ、実装(`--approval-mode=yolo`)へ進む。
## 4.1. ターミナル出力の取得と CLI 結果の解釈(必須)
- **出力の取得**: Gemini CLI をターミナルで実行したあと、**Antigravity 側でそのターミナルの出力を必ず取得する**。
- **判断の順序**: (1) CLI の出力を解釈する → (2) 仕様どおりか・不足・エラーがないかを判断する → (3) 次の一手を決める。
- **Plan 返答時は停止する**: CLI が Plan を返した時点では、**まだ実装に進めない**。
manual-for-agent.md(実行手順)
Git Bash 標準・cd と gemini は別送・plan / yolo の使い分け、が書いてある。
## 1. 基本コマンド形(クイックリファレンス)
| 目的 | コマンド |
|------|----------|
| **Plan 作成・調査** | `gemini -p "プロンプト" --approval-mode=plan` |
| **ファイル編集・作成** | `gemini -p "プロンプト" --approval-mode=yolo` |
| **読み取り・解析のみ** | `gemini -p "プロンプト"` |
| **JSON 出力取得** | `gemini -p "プロンプト" --output-format json` |
- **コマンドは複数一度に送らない**: `cd ... && gemini ...` のように `&&` でつなげず、**まず `cd` だけ送り、その実行が済んでから** `gemini -p "..."` を送る。
## 2. Windows 環境での最適解
Antigravity + Windows 環境では **Git Bash** での実行を標準とする。
1. **Git Bash を開く**: `cd /c/Users/.../project` のように **Unix 形式(`/c/` 始まり)** で移動する。
2. **CMD / PowerShell の代替**: `cd /d "C:\path\to\project"` または `Set-Location "C:\path\to\project"`。
3. **chcp について**: **`chcp 65001` は CMD 用**。Git Bash では不要。
## 2.1. シェル別の短い定型手順
### Git Bash の場合
1. ターミナルを開き、少し待つ。
2. `cd /c/.../project` のように **`/c/` 形式の絶対パス**でプロジェクトルートへ移動する。
3. `cd` の完了を確認してから、別送で `gemini -p "..."` を実行する。
4. 実行後は**同じターミナルの最新出力**を取得し、`stdout / stderr / exit code` を確認する。
prompt-templates.md(雛形)
不足情報の質問・仮 plan・次の一手など、短い往復用のテンプレが揃っている。
## 単一ファイル編集
- **雛形**: 「カレントディレクトリの `〈パス〉` において、〈具体的な変更内容を 1 文で〉。他ファイルは変更しない。」
## 読み取り・要約(編集なし)
- **雛形**: 「カレントディレクトリの `〈パス〉` を読んで、〈要約の指示〉。ファイルは編集しない。」
## 短い往復向け定型
### 不足情報だけ聞く
- **雛形**: 「`〈対象〉` について、実装はしない。不足している情報だけを 3 つ、短い質問で返して。」
### 仮 plan だけ返す
- **雛形**: 「前提: 〈前提の要約〉。`〈対象〉` について、実装はしない。仮 plan を 3 点だけ返して。」
### 次の一手だけ返す
- **雛形**: 「`〈状況の要約〉`。次にやるべきことを 1 つだけ返して。説明は最小限にして。」
スキル=読む順・判断・コマンド・質問の仕方まで固定した運用ルール集。実験 9–16 はこのルール前提で、難問でもどこまで回るかを見る。
2. このやり方とトークン消費
この連携の狙いは、Flash モデル(Antigravity)を司令塔にして CLI へ委譲し、単体では届きにくい成果を出すことと、Antigravity
側のトークン消費・会話コンテキストの膨張を抑えることの両立にある。後者の典型が test-16 で、webgl.js は約 28KB
と大きく、Antigravity が何度も全文読むと履歴がすぐ膨らむ。クオータや AI クレジットそのものの整理は brief050、この発想の出発点は brief052 を見てください。
| 観点 | Gemini CLI あり | Gemini CLI なし |
|---|---|---|
| Antigravity 側の読込 | スキル、必要箇所の確認、短いプロンプト、CLI 出力の要約が中心。 | webgl.js や index.html
の全文、修正後の再読まで履歴に積み上がる。 |
| 合計トークン | CLI 側でも消費するので、合計では増えやすい。 | 単発なら少なく見えることもあるが、重いファイルではすぐ増える。 |
| 実用上の強み | 長い会話、大きなファイル、複数ファイル編集に強い。 | コンテキスト圧迫が起きやすく、長期戦に不利。 |
要するに、Antigravity 単体のトークン節約には CLI が有効で、特に test-16 のような大きなファイルでは差が出やすい。一方で、CLI 側も別に消費するため、システム全体の総量が必ず減るわけではない点は注意が必要だ。
3. 前編の振り返りと後編の位置づけ
前編(brief054)はパターン 1–8。後編はパターン 9–16(バリデーション・サイレントバグ調査・ログ解析・セキュリティ監査・外部調査・並列オーケストレーション・コードレビュー・WebGL 整理・改良)で、難易度を上げつつ実運用の目安をまとめる。
前提・ZIP の使い方は前編と同じ。後編用一式(記事冒頭のダウンロードと同じ)は antigravity-gemini-cli_with_SKILLS.zip
を取得して展開し、test-09~16 の該当フォルダを開く。そのフォルダの
input-note.md をそのまま会話にコピペする(依頼文はフォルダごとに中身は違うが、手順は共通)。
4. パターン 9–16:何をテストするか
| テスト | 何をテストするか |
|---|---|
| test-09 | フォームとバリデーション。メール・パスワード・再入力一致のチェックを実装し、エラーをオブジェクトで返す。テストケース追加。 |
| test-10 | サイレントバグのデバッグ。例外は出ないが結果が誤る論理バグを、再現条件とコード読解から特定・修正。3 ケース以上で確認。 |
| test-11 | ログ解析と根本原因追跡。logs と src
を読んで障害の根本原因を追跡。原因箇所・再現条件・修正方針を incident-report.md にまとめる。 |
| test-12 |
セキュリティ監査と修正。SQLi・XSS・秘密情報・安全でない保存を優先度付きで列挙し、修正後 security-report.md にまとめる。
|
| test-13 | 外部調査オーケストレーション。Web 検索・ブラウザ・MCP
を組み合わせ、採用候補・見送り・未確認を research-report.md に整理。コード変更はしない。 |
| test-14 | 複数ターミナル並列。task-a と task-b
を別ターミナルで並列に進め、summary.md に何を同時進行したかまとめる。並列時は -m flash 推奨。 |
| test-15 | コードレビューと不足テスト追加。src と checkout テストをレビューし、問題点列挙のあと境界条件テストを追加。修正したら要約する。 |
| test-16 | WebGL 3D 表示の整理・改良・移行。index.html の不要要素削除、webgl.js の局所修正、3D 表現改善、ライブラリ更新、可能なら WebGPU 移行。 |
ZIP に test-09~16 がなければ前編を確認するか、自前で同じ構成を用意。
5. テスト結果(パターン 9–16)
全 8 パターンを実施。下表の「結果」は依頼どおりに成果物が得られたか、「内容」は何をしたか・何が分かったかの要約。
| テスト | 結果 | 成果物 | 内容 |
|---|---|---|---|
| test-09 | 成功 | validator.js, validator.test.js | メール・パスワード(8文字以上・英数字と記号)・再入力一致の 3 項目をバリデーション実装。エラーはオブジェクトで返却。単体テストで正常系・異常系を検証。 |
| test-10 | 成功 | 修正済み discount_engine.js, 確認用スクリプト | 原因:price が文字列のまま加算され 10%
割引が効いていなかった。Number() で数値化して修正。再現・検証用スクリプトも追加。 |
| test-11 | 成功 | incident-report.md | 2 件の根本原因を特定・記載。(1) 月末 31 日ハードコードで 2 月に RangeError。(2)
user 未チェックで user.id 参照時に TypeError。再現条件と修正方針も記載。 |
| test-12 | 成功 | 修正コード, security-report.md | SQL インジェクション・XSS・ハードコード秘密・トークン保存の 4 種を検出し修正(パラメータ化・textContent・環境変数・sessionStorage)。レポートに優先度と修正内容を記録。 |
| test-13 | 成功 | research-report.md | オフライン・同期メモアプリの技術調査。SQLite WASM + OPFS を推奨。採用候補・見送り・未確認事項を区分して整理。コード変更は行わず。 |
| test-14 | 成功 | task-a/b の成果物, summary.md | task-a で障害要約、task-b でユーザー向け README を並列で作成。Pro だと 429
が出たため -m flash に切り替えて完了。summary に経緯を記載。 |
| test-15 | 成功 | review.txt, fix.txt, 修正済み src, 追加テスト | レビューで価格・クーポン・バリデーション・テスト不足を指摘。pricing/checkout/logic を修正し、送料境界・クーポン・空配列のテストを追加。node:test に統一し 15 テストがパス。 |
| test-16 | おおむね成功 | 簡略化 index.html, 修正 webgl.js, session_log.txt | index を 3D 表示のみの構成に整理。webgl.js で scene/controls
の二重初期化を修正し、クリスタル発光・球体増量・preserveDrawingBuffer を追加。Three.js 0.175.0 に更新。WebGPU
は移行理由と制約を説明のみ。
指示後、AI連携で既存プロジェクトを修正し、WEB立ち上げまで到達した様子(test-16)。 |
6. 実運用の目安
- 依頼の粒度:1 依頼=1 ゴール。大規模なら「Plan/ドキュメントだけ」→ 了承後に実装。
- Plan と実行の分離:難しめは
--approval-mode=planで計画だけ出させ、精査してから実装。やり直しが減る。 - 読取量が大きいとき:要約+抜粋に絞るか、対象ファイルを明示。トークンと品質のバランスがよい。
- 複数ファイル編集:変更範囲を小さく。共通化・リネームは Plan → 了承 → 実装の順がおすすめ。
総括:後編 8 パターンも、前編と同じく Antigravity(Flash)が司令塔で CLI に委譲する構成で期待どおり。難問は依頼の切り出しと Plan 精査のタイミングが効く。スキルと依頼の工夫で、クオータを気にしつつ実用レベルで使えた。前提の Git Bash 環境づくりは brief053 が補助線になります。
前編はこちら:Antigravity のクオータ制限を模索・トークン節約|Gemini CLI 連携で品質を底上げする「エビで鯛を釣る」試み 前編(brief054)
Artist's Perspective
後編の要点は、Antigravity と Gemini CLI を連携して動かすための「SKILLS」整備です。トークンや待ち時間を抑えつつ成果を安定させる一方で、コストを気にしないなら Antigravity 単体(Thinking)で進めた方が性能は出やすい、というトレードオフがあります。まずは前編(brief054)から試してください。
Antigravity で Gemini CLI を使うことと Google ポリシー
利用規約では第三者ツールの OAuth 流用は禁止。本記事のやり方(公式 Antigravity のターミナルで同一アカウントの Gemini CLI を実行)は本人が公式クライアントを併用する形。解釈は Google に委ねるため、不安な方は公式規約を確認してください。
Gemini CLI: License, Terms of Service, and Privacy Notices(公式)
データソース・参考リンク
以下を参考にしています。正確性は公式ソースでご確認ください。
- 🔗 Quotas and limits|Gemini Code Assist(公式)
- 🔗 Gemini CLI Authentication Setup(公式)
- 🔗 Plan Mode|Gemini CLI(公式ドキュメント)
- 🔗 Plan mode is now available in Gemini CLI(Google Developers Blog)
- 🔗 Build with Google Antigravity(Google Developers Blog)
- 🔗 Gemini CLI: License, Terms of Service, and Privacy Notices(公式)
- 🔗 brief052:Antigravity と Gemini CLI|エビで鯛を釣る——制限の軽減を試した実験とターミナルでの利用メモ
- 🔗 brief054:Antigravity のクオータ制限を模索・トークン節約|Gemini CLI 連携で品質を底上げする「エビで鯛を釣る」試み 前編
- 🔗 brief053:Git Bash とは?Antigravity でターミナルで使ってみる・カスタム設定 .bashrc