ANTIGRAVITY LABEN
記事一覧/Editor View
Editor View/2026-05-09中級

Antigravity の Multi-root Workspace で複数リポジトリの AI コンテキストを切り分ける

複数リポジトリを 1 つの Antigravity ウィンドウで開いていると、AI が別プロジェクトの規約を引いてきて誤ったコードを提案することがあります。Multi-root Workspace でフォルダ単位の AI コンテキストを切り分ける方法を、4 サイト横断開発の実例とともにまとめました。

antigravity435multi-root-workspaceai-contexteditor28workflow37

私は普段、Dolice Labs という 4 つの AI 技術ブログを横断して保守しています。Claude Lab、Gemini Lab、Antigravity Lab、Rork Lab — どれも Next.js 16 + Cloudflare Workers の似た構成ですが、tsconfig.json のパスエイリアス、pricing.ts の Stripe Price ID、generate-content.mjs の挙動は微妙に違います。

最初は 4 つのウィンドウを並べて作業していました。ただ、Antigravity の Manager Surface に「Claude Lab の記事生成タスクと同じものを Gemini Lab に移植して」と頼みたい場面がよくあり、ウィンドウを跨ぐと AI が文脈を見失ってしまうのが地味に痛かったのです。

そこで Multi-root Workspace に統合したところ、別の落とし穴に出会いました。今度は AI が別サイトの pricing.ts を引いてきて、Claude Lab に Gemini Lab の Price ID を貼ってしまうのです。ここでは私が実際に 4 サイト構成で詰まった事例と、.antigravity/rules をフォルダ単位に切り分けて解決した方法をまとめます。

Multi-root Workspace は「フォルダの集合」であって「単一プロジェクト」ではない

VS Code 由来の Multi-root Workspace は、.code-workspace ファイル(Antigravity では .antigravity-workspace)に複数のフォルダパスを書くだけのシンプルな仕組みです。

// dolice-labs.antigravity-workspace
{
  "folders": [
    { "path": "claudelab.net", "name": "Claude Lab" },
    { "path": "gemilab.net", "name": "Gemini Lab" },
    { "path": "antigravitylab.net", "name": "Antigravity Lab" },
    { "path": "rorklab.net", "name": "Rork Lab" }
  ],
  "settings": {
    "files.exclude": {
      "**/.next": true,
      "**/node_modules": true
    }
  }
}

ここで重要なのは、Antigravity の AI 機能は workspace 全体をひとつのコンテキストとして扱うということです。Editor View で Cmd+I を叩いた瞬間、AI は開いているファイルだけでなく、4 サイト全体のコードを参照する候補として持っています。

つまり、何も対策をしなければ、Claude Lab のファイルを編集中に「Gemini Lab で動いた書き方」が混入する可能性があるわけです。これが私が最初に踏んだ落とし穴でした。

AI コンテキストが実際に混線するケース

実例を 1 つ挙げます。Claude Lab の src/config/pricing.ts を編集していたとき、Cmd+K で「Premium プランの Price ID を新しい Stripe ダッシュボードの値に置き換えて」と頼んだところ、AI は price_1QabcXY...(実際は Gemini Lab の値)を提案してきました。

なぜそうなったか、Manager Surface の Reasoning Trace を辿ると分かりやすいです。

  • 直前に Gemini Lab の pricing.ts を眺めていた(タブが開いていた)
  • 4 サイトの pricing.ts はファイル名・型定義が同一
  • AI は「最も最近編集された pricing.ts」を参考にしてしまう

ファイル名が完全一致していると、AI は「どちらのリポジトリ由来か」を強く区別しません。Manager Surface のシステムプロンプトには workspace 全体のディレクトリツリーが含まれているため、pricing.ts という名前を見ると 4 つの候補すべてが等価になってしまうのです。

これは公式ドキュメントには書かれていない挙動ですが、Multi-root で複数の似た構成のリポジトリを開くなら、かなり高い確率で起きます。

解決策その 1: フォルダ単位に .antigravity/rules を置く

最もシンプルで効果が大きかったのは、各フォルダのルートに .antigravity/rules.md を置くことでした。

<!-- claudelab.net/.antigravity/rules.md -->
# Claude Lab 固有のコンテキスト
 
このフォルダは claudelab.net のリポジトリです。
 
- Stripe Price ID は `src/config/pricing.ts` にあります
- 他サイト(gemilab, antigravitylab, rorklab)の Price ID を**絶対に**ここに混入させないでください
- カテゴリ ID は claude-ai / claude-code / cowork / api-sdk のみ
- 記事のフロントマター `category` は上記 4 つ以外を絶対に使わないでください

Antigravity は、現在編集中のファイルが含まれるフォルダの .antigravity/rules.md を、AI のシステムプロンプトに自動で追加します。@-references を手で貼らなくても効きます。

私はこれを 4 サイトすべてに置き、それぞれの「絶対に混ぜてはいけないこと」を 5〜10 行で書いています。Cmd+K の精度は体感で 30〜40% 向上しました。誤った Price ID の混入は、置いてから 1 度も起きていません。

解決策その 2: Manager Surface で @folder 参照を明示する

長めの作業を Manager に頼むときは、@folder:claudelab.net のように明示参照を最初に書きます。

@folder:claudelab.net
 
claudelab.net 配下で、_skills/claudelab/SKILL.md の Step 7 を、
gemilab.net の同名ファイルと差分を取り、claudelab 側を最新に揃えてください。
他サイトのファイルは絶対に編集しないでください。

@folder: を最初に書くと、Manager は最初のアクションを必ずそのフォルダ内で開始します。これは私が試行錯誤の末に見つけた書き方ですが、@folder: を書かないと Manager が「全 workspace でファイル探索」から始めてしまい、無関係な編集が混じる確率が上がるのです。

副次的な効果として、Manager の actions ログを後から見返したときに、どのフォルダの作業だったかが明確になります。複数フォルダを跨ぐタスクが当たり前になるほど、こうした「最初の宣言」の価値が大きくなります。

解決策その 3: files.watcherExclude を workspace で絞る

これは AI コンテキストではなくパフォーマンスの話ですが、Multi-root では同じくらい大事でした。

// dolice-labs.antigravity-workspace
{
  "settings": {
    "files.watcherExclude": {
      "**/.next/**": true,
      "**/node_modules/**": true,
      "**/.wrangler/**": true,
      "**/_cache/**": true,
      "**/_backup/**": true
    },
    "search.exclude": {
      "**/_cache": true,
      "**/_backup": true,
      "**/public/content": true
    }
  }
}

Antigravity の semantic code search は workspace 全体をインデックス化するため、4 サイトの node_modules を含めると初回起動で 30 GB 近く読み込みに行きます。search.exclude を絞ると初回スキャンが 5〜8 分から 40 秒程度に短縮されました。files.watcherExclude の方は CPU 使用率と直結します。

ここでハマりやすいのは、フォルダ個別の .vscode/settings.json ではなく、.antigravity-workspacesettings に書く必要があることです。フォルダ個別設定は AI の semantic search には反映されません。

4 サイト横断で気づいた運用ルール

3 ヶ月ほど Multi-root で運用してみて、自分なりに固まったルールが 2 つあります。

1 つは、「同じ役割のファイルは同じ名前で揃えるが、.antigravity/rules.md で区別を強制する」 ということ。pricing.tspricing-claude.ts のように分けたくなる衝動はあるのですが、それをやると共通改善の伝播コストが跳ね上がります。ファイル名は揃えたまま、AI に「混ぜてはいけない」を教える方が長期では楽でした。

もう 1 つは、「マルチサイト共通の作業は workspace ルートに .antigravity/rules-global.md を置く」 ということ。たとえば「pricing.ts を変更したら 4 サイト全てに同期する」というルールはここに書いておきます。Antigravity は workspace のルート直下も .antigravity フォルダを読み込みます。

このあたりは Antigravity の Custom Rules でプロジェクト設定を最適化する方法 と組み合わせると、さらに効きます。@-reference の仕組みは @ リファレンスでコンテキスト精度を上げる方法 に詳しく書きました。

次のアクション

もしすでに Multi-root Workspace を使っているなら、今日のうちに各フォルダのルートに .antigravity/rules.md を 5 行だけ書いてみてください。「このフォルダは何のリポジトリで、何を絶対に混ぜてはいけないか」を書くだけで、Cmd+K と Manager の精度が体感で変わります。

私自身、Multi-root の使い方は今も少しずつ更新しています。同じように複数リポジトリを跨いで開発している方の参考になれば嬉しいです。お読みいただきありがとうございました。

シェア

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

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

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

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Editor View2026-06-15
Antigravity 2.0 デスクトップで複数エージェントを同時監督するときの画面と割り込みの設計
Antigravity 2.0 が『エージェント管制塔』へ再定義された今、デスクトップで複数エージェントを同時に走らせるときの画面構成・割り込み判断・状態の見える化を、実作業の手順とともに整理しました。
Editor View2026-05-03
Gemini CLI と Antigravity を本気で使い分ける — 2026年5月、現場で出した結論
Gemini CLI と Antigravity を半年並行運用してきた個人開発の現場から、ターミナル派とIDE派それぞれの本領を、実例コード・コスト比較・判断フレームワークで具体的に整理します。
Editor View2026-04-30
Antigravity にスクリーンショットを貼って UI バグを直す — マルチモーダル入力で精度を上げる実践ガイド
CSS のレイアウトずれを言葉で説明するより、スクリーンショットを1枚貼る方が圧倒的に速い。Antigravity に画像を渡して UI バグを最短で直す実践ワークフローをご紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →