Antigravity カスタマイザー (ag-customizer)
このスキルを使用して、ワークスペースおよびグローバルスコープでGoogle Antigravityのカスタマイズを自律的に設計、スキャフォールディング、構成、移行、検証します。
クイックナビゲーション 決定マトリックス
問題を解決するのに最適なカスタマイズメカニズムを判断します。
| 必要性 | メカニズム | ファイルの場所 | 参考ガイド |
|---|---|---|---|
| マルチステップの手順書、手順、スラッシュコマンドをエージェントに教える | スキル | .agents/skills/<name>/SKILL.md または ~/.gemini/antigravity/skills/<name>/SKILL.md | skills-guide.md |
| 永続的な制約、コーディング標準、スタイルルールを強制する | ルール | .agents/rules/<name>.md、AGENTS.md、または ~/.gemini/GEMINI.md | rules-guide.md |
| 外部サービス、ローカルデータベース、またはカスタムツールに接続する | MCPサーバー | .agents/mcp_config.json または ~/.gemini/config/mcp_config.json | mcp-guide.md |
| ライフサイクルイベントをインターセプトする(コマンドをゲート、プロンプトを注入、ウォッチドッグを停止) | ライフサイクルフック | .agents/hooks.json または ~/.gemini/config/hooks.json | hooks-guide.md |
| スキル、ルール、フック、MCPを共有可能なパッケージにバンドルする | プラグイン | .agents/plugins/<name>/ または ~/.gemini/config/plugins/<name>/ | plugins-and-configs.md |
| 非標準パスを登録したり、VCSを介してカスタマイズを共有する | JSON設定 | .agents/skills.json または .agents/plugins.json | plugins-and-configs.md |
| 非推奨のワークフローを最新のスラッシュコマンドスキルにアップグレードする | ワークフロー移行 | .agents/workflows/*.md -> .agents/skills/<name>/SKILL.md | workflows-migration.md |
操作ワークフロー
1. 新しいスキルの追加
- スコープを決定する:
- ワークスペース:
.agents/skills/<name>/(チームで使用するためにリポジトリにチェックイン) - グローバル:
~/.gemini/antigravity/skills/<name>/(すべてのプロジェクトで利用可能)
- ワークスペース:
- ディレクトリを構成する:
<customization_root>/skills/<skill-name>/ ├── SKILL.md # 必須: YAMLフロントマター付きエントリポイント ├── scripts/ # オプション: ヘルパースクリプト(--helpパターンで実行) ├── references/ # オプション: 公開マニュアルや重いドキュメント └── examples/ # オプション: サンプルコードや出力参照 - フロントマターを作成する:
name: 小文字、ハイフン区切り(例:nextjs-otel、docker-deploy)。これはスラッシュコマンド(/<name>)としても登録されます。description: 三人称で1〜3文。何をするスキルか、エージェントがそれをアクティブにすべき特定のトリガーフレーズ/シナリオを明示的に記述します。
- プログレッシブディスクロージャーを適用する:
- メインの
SKILL.mdは、操作手順と完了条件の順序に厳密に焦点を当てて簡潔に保ちます。 - 詳細な参考資料は
references/<topic>.mdファイルに開示し、相対リンクで参照します。 - 構造テンプレートについては skills-guide.md を参照してください。
- メインの
- Obsidianミラーリングの確認:
- このワークスペースでスキルを更新または作成する場合、リポジトリガイドラインに従ってスキルフォルダを
d:/Scripts/Obsidian/skills/<name>/にミラーリングします。
- このワークスペースでスキルを更新または作成する場合、リポジトリガイドラインに従ってスキルフォルダを
2. ルールの作成
- スコープと形式を決定する:
- ワークスペースルール:
.agents/rules/<rule-name>.mdまたはプロジェクトルートのAGENTS.md - グローバルルール:
~/.gemini/GEMINI.md
- ワークスペースルール:
- アクティベーションモードを選択する(
.agents/rules/*.mdの場合):always_on: 毎ターン無条件に注入されます。コンテキストを節約するために控えめに使用します。model_decision: エージェントが説明に基づいて関連性を判断した場合に開示されます。glob: 一致するファイルに触れたり開いたりするたびに自動的にアクティブになります(例:*.tsx、src/api/**/*.ts)。manual: チャットで@mention(例:@my-rule.md)により明示的に呼び出された場合にのみロードされます。
- コンテンツを作成する:
- ファイルごとに 12,000文字の予算 内に収めます。
- 否定的な禁止ではなく、肯定的に目標の動作を記述します(「Xを行う」「常にYのように構造化する」)。
- 必要に応じて
@filenameを使用してコンパニオンコンテキストファイルにリンクします。 - 完全な構文とアクティベーションフロントマターについては rules-guide.md を参照してください。
3. MCPサーバーの構成
- ファイルの場所を決定する:
- ワークスペース:
<workspace>/.agents/mcp_config.json - グローバル:
~/.gemini/config/mcp_config.json
- ワークスペース:
- トランスポートを選択する:
- stdio(ローカル実行可能ファイル):
{ "mcpServers": { "my-server": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sqlite", "app.db"], "env": { "SQLITE_READONLY": "true" } } } } - リモート(SSE / Streamable HTTP):
[!IMPORTANT] 常にキー
serverUrlを使用してください。レガシーキーのurlまたはhttpUrlはサポートされていません。{ "mcpServers": { "my-remote": { "serverUrl": "https://api.example.com/mcp/", "headers": { "Authorization": "Bearer YOUR_TOKEN" } } } }
- stdio(ローカル実行可能ファイル):
- 認証:
- Google Application Default Credentials:
"authProviderType": "google_credentials"(gcloud auth application-default loginが必要)。 - OAuth:
"oauth": { "clientId": "...", "clientSecret": "..." }、リダイレクトURIはhttps://antigravity.google/oauth-callback。
- Google Application Default Credentials:
- ツールフィルタリング:
- サーバーを削除せずにツールを一時的に無効化:
"disabledTools": ["destructive_command"] - 構築済み構成については mcp-guide.md を参照してください。
- サーバーを削除せずにツールを一時的に無効化:
4. ライフサイクルフックの設定
- 対象ファイル:
.agents/hooks.json(または~/.gemini/config/hooks.json)。 - サポートされるイベント:
PreToolUse: ツール名(run_command、write_to_file、*)に一致させて実行をゲート(allow、deny、ask、force_ask)したり、引数を浅く上書きしたりします。PostToolUse: ツール完了後に出力を監査、リンターを実行、またはコードをフォーマットします。PreInvocation: モデルがターンを処理する前にコンテキストやシステム指示を注入します(injectStepsとephemeralMessage)。PostInvocation: 強制的に継続(terminationBehavior: "force_continue")または停止します。Stop: タスクの完了を検査し(terminationReason、fullyIdle)、decision: "continue"とreasonを返して早期終了をブロックします。
- 契約ルール:
- 実行は stdin を介してコンテキストを渡し、stdout を介して応答を受け取ります。
- すべてのJSONペイロードキーは camelCase を使用します(
conversationId、stepIdx、toolCallなど)。 - コマンドは同期的に実行され、タイムアウト(デフォルト30秒)までエージェントループをブロックします。
- Python、PowerShell、Bashのテンプレートについては hooks-guide.md を参照してください。
5. プラグインまたはVCS共有設定のパッケージ化
- プラグインパッケージ:
- 関連するスキル、ルール、フック、MCPサーバーを
.agents/plugins/<plugin-name>/にグループ化します。 plugin.jsonマニフェスト({"name": "my-plugin"})を追加します。config.jsonの"plugins": { "<plugin-name>": { "enabled": true } }でアクティベーション状態を管理します。
- 関連するスキル、ルール、フック、MCPサーバーを
- JSON設定(
skills.json/plugins.json):- 外部ディレクトリや共有チームリポジトリを登録します。
include_onlyおよびexclude正規表現フィルターを使用したentries(パス)とinherits(他の設定)をサポートします。- 完全なマニフェスト例については plugins-and-configs.md を参照してください。
6. レガシーワークフローの最新化
- 非推奨の
.agents/workflows/*.mdまたは~/.gemini/config/workflows/*.mdを検査します。 - 操作手順を抽出し、適切なYAMLフロントマターを持つ同等の
SKILL.mdを生成します。 - 元のファイルを
<name>.md.bakとしてアーカイブします(安全な保存)。 - 自動移行手順書については workflows-migration.md を参照してください。
検証と確認チェックリスト
カスタマイズが完了したと見なす前に、以下を確認してください:
- JSON構文: すべての
.jsonファイルが構文エラーやコメントなしで正常にパースできることを確認します。 - フロントマターチェック:
SKILL.mdにnameと説明的なdescriptionを含む有効なYAMLフロントマターが含まれていることを確認します。 - 文字数予算: ルールのMarkdownファイルが12,000文字制限内であることを確認します。
- MCP接続: コマンドバイナリまたはリモートURLが存在し、認証できることを確認します。
- フック契約: フックスクリプトがstdinでcamelCase JSONを受け入れ、stdoutで有効なJSONを返すことを確認します。
- Obsidianミラーリング: このワークスペース内のスキルについて、作成したスキルフォルダを
d:/Scripts/Obsidian/skills/<name>/に同期します。