< AIエージェント入門 第二章 >
繰り返し作業を一発で!AIエージェントのスキル機能を比べてみた Claude Code vs Cursor vs Google Antigravity
AIエージェントを使っていると「このレビュー手順、また最初から説明しなきゃいけないの?」と感じる場面がよくあります。そこで活躍するのがスキルの仕組みです。スキルは「エージェントへの得意技」みたいなもので、一度定義しておけば何度でも呼び出せます。Claude Code・Cursor・Antigravity の3ツールでどう違うのか、詳しく見ていきましょう。
まず前提:3つのツールが使うのは同じ「SKILL.md」
スキルを語る上で外せない話から始めます。Claude Code・Cursor・Antigravity の3ツールはどれも Agent Skills オープンスタンダード(agentskills.io)に準拠しています。スタンダードの中心は SKILL.md というファイルで、YAMLフロントマターに名前や説明を書いて、Markdownで指示を記述するという共通フォーマットです。
---
name: review-pr
description: Summarize changes in a pull request. Use when the user asks to review or summarize a PR.
---
この PR の変更を要約してください。観点:バグリスク・パフォーマンス・可読性
Claude Code・Cursor・Antigravity を含む多くのエージェントツールが採用しています。「Claude Code のスキルをそのまま Cursor で使い回せる」という互換性があるのが大きなポイントです。
ただし、共通の土台の上にそれぞれのツールが独自の機能を積み上げているので、細かい仕様を比べると結構違いがあります。以降のセクションで順番に見ていきます。
参考リンク
- スキルで Claude を拡張する — Claude Code Docs
- Agent Skills — Cursor Docs
- Authoring Google Antigravity Skills — Google Codelabs
スキルの定義方法——SKILL.mdの仕様を比べる
共通の SKILL.md フォーマットの上に、各ツールが独自の仕様を加えています。
Claude Code
スキルはディレクトリ単位で管理します。SKILL.md がエントリポイントで、同じディレクトリに追加ファイルを同梱できます。
my-skill/
├── SKILL.md ← メインの定義ファイル(必須)
├── template.md ← Claudeに埋めてもらうテンプレート
├── examples/
│ └── sample.md ← 出力例
└── scripts/
└── validate.sh ← 実行スクリプト
フロントマターで使えるフィールドは次の通りです。
| フィールド | 説明 |
|---|---|
name | スキルの表示名(省略するとディレクトリ名を使用) |
description | スキルの説明。Claudeがいつ使うかを判断する根拠にもなる |
argument-hint | オートコンプリート中に表示される引数ヒント |
disable-model-invocation | true にするとClaudeによる自動呼び出しを禁止 |
user-invocable | false にすると / サジェスト一覧から非表示 |
allowed-tools | このスキル有効中に許可を求めずに使えるツール |
model | このスキルで使用するモデル |
context | fork を指定するとサブエージェントとして独立実行 |
agent | context: fork 時に使うサブエージェントのタイプ ※1 |
hooks | このスキルのライフサイクルにスコープされたフック |
※1 agent: — サブエージェントのタイプ指定
システムプロンプト(振る舞いの定義)を切り替えるフィールドで、context: fork と組み合わせて、どのタイプのサブエージェントを使うかを指定できます。
| 値 | 振る舞い |
|---|---|
Explore | コードベース調査に特化 |
Plan | 実装前の設計・計画立案に特化 |
general-purpose | 汎用エージェント。省略時のデフォルト |
| カスタム名 | .claude/agents/ に定義した独自サブエージェント |
Cursor
Claude Code と同じディレクトリ構成を基本としつつ、サポートファイルのディレクトリ名が少し違います。
my-skill/
├── SKILL.md
├── scripts/ ← 実行スクリプト(共通)
├── references/ ← 技術ドキュメント等の参照資料(Cursor)
└── assets/ ← テンプレートファイル(Cursor)
フロントマターで使えるフィールドは次の通りです。
| フィールド | 必須 | 説明 |
|---|---|---|
name | ✅ | スキルの表示名 |
description | ✅ | スキルの説明。エージェントがいつ使うかを判断する根拠にもなる |
disable-model-invocation | — | true にするとエージェントによる自動実行を禁止 |
license | — | ライセンス情報(例:MIT、Apache-2.0) |
compatibility | — | スキルの動作条件(必要な言語バージョンやパッケージ) |
metadata | — | 任意のカスタムキー・バリューペア |
Claude Code との比較では name と description が必須フィールドとして明示されている点、そして license・compatibility・metadata の3フィールドが Cursor 独自の追加です。
license はスキルをチームや外部に公開するときの利用条件を明示するフィールドです。MIT や Apache-2.0 といった SPDX 識別子を記載します。OSS のスキルを GitHub からインポートして使う場面で、ライセンスを明示できます。
compatibility は動作環境の前提条件を宣言するフィールドです。チームで共有するときに「なんで動かないんだろう」という状況を防げます。
---
name: generate-migration
compatibility: python>=3.11, alembic>=1.12
license: MIT
---
Google Antigravity
Antigravity のスキルも SKILL.md 形式で定義します。保存場所はワークスペース固有とグローバルの2か所です。
# ワークスペース固有
<workspace-root>/.agent/skills/<skill-name>/SKILL.md
# グローバル(全ワークスペース共通)
~/.gemini/antigravity/skills/<skill-name>/SKILL.md
サポートファイルも同梱でき、scripts/(実行スクリプト)・examples/(参照実装・出力例)・resources/(テンプレートやアセット)を組み合わせることで、シンプルな指示ファイルから複雑なスキルまで段階的に構成できます。
my-skill/
├── SKILL.md ← メインの定義ファイル(必須)
├── scripts/ ← 実行スクリプト(任意)
├── examples/ ← 参照実装・出力例(任意)
└── resources/ ← テンプレートやアセット(任意)
公式の Codelabs では、単純な指示ファイルからスクリプト・テンプレート・サンプルを組み合わせた複雑なスキルまで、段階的に作れるように設計されています。
description フィールドがエージェントのスキル選択の根拠になるため、何をするスキルなのかを具体的に書くことが推奨されています。曖昧な説明は誤発火の原因になります。
サブエージェント分離実行・スキル単位のモデル指定・ツール権限の詳細については、公式ドキュメントから確認できていません。
参考リンク
- スキルを設定する — Claude Code Docs
- スキルで Cursor を拡張する — Cursor Docs
- Agent Skills フロントマター仕様 — Agent Skills Docs
- Cursor Changelog 2.4
- Cursor Changelog 2.5
- Skills — Google Antigravity Docs
- Authoring Google Antigravity Skills — Google Codelabs
呼び出し方と自動実行のコントロール
スキルをどう呼び出すか、エージェントによる自動実行をどこまで制御できるかを比べます。
Claude Code
/skillname コマンドで呼び出します。引数を渡すこともできて、SKILL.md 本文の中で次の変数が使えます。
| 変数 | 説明 |
|---|---|
$ARGUMENTS | 渡されたすべての引数 |
$ARGUMENTS[N] / $N | N番目の引数(0始まり) |
${CLAUDE_SESSION_ID} | 現在のセッション ID |
/fix-issue 123 → $ARGUMENTS = "123"
/migrate SearchBar React Vue → $0=SearchBar, $1=React, $2=Vue
自動呼び出しの制御は disable-model-invocation: true でオフにできます。「デプロイスクリプトが雑談の流れで実行されると困る」みたいな場面で便利です。メニューから非表示にしたければ user-invocable: false を使います。内部的な補助スキルをユーザーに見せたくないときに活躍します。
組織全体へのスキル配布は Enterprise プランの管理設定で対応しています。
Cursor
呼び出し方と自動呼び出し制御は Claude Code と同様で、/skillname コマンドと disable-model-invocation: true に対応しています。
引数の渡し方($ARGUMENTS・$N など)については Cursor 公式ドキュメントに明示的な記載はありませんが、Agent Skills オープンスタンダード準拠のため同じ変数が使えると推測されます。
Google Antigravity
エージェントがユーザーのプロンプト送信時に description とマッチングして自動的にスキルを選ぶ設計です。「SQL を確認して」と書いたら DB 確認スキルが動く、という具合です。
そのぶん description の精度がスキルの使われ方を大きく左右します。自動呼び出し制御やメニュー表示制御の詳細は公式ドキュメントから確認できていません。
参考リンク
- スキルに引数を渡す — Claude Code Docs
- Agent Skills — Cursor Docs
- Authoring Google Antigravity Skills — Google Codelabs
スコープ管理——スキルをどこに置くか
「誰に使わせるか」によってスキルの置き場所が変わります。
Claude Code
4段階のスコープ管理になっています。
| スコープ | 保存場所 | 適用範囲 |
|---|---|---|
| Enterprise | 管理設定経由 | 組織内のすべてのユーザー |
| Personal | ~/.claude/skills/ | 自分のすべてのプロジェクト |
| Project | .claude/skills/ | このプロジェクトのみ |
| Plugin | <plugin>/skills/ | プラグインが有効な場所 |
Cursor
2段階のスコープ管理になっています。
| スコープ | 保存場所 | 適用範囲 |
|---|---|---|
| Personal | ~/.cursor/skills/ | 自分のすべてのプロジェクト |
| Project | .agents/skills/ または .cursor/skills/ | このプロジェクトのみ |
Google Antigravity
2段階のスコープ管理になっています。
| スコープ | 保存場所 | 適用範囲 |
|---|---|---|
| グローバル | ~/.gemini/antigravity/skills/ | 自分のすべてのワークスペース |
| ワークスペース | .agent/skills/ | このワークスペースのみ |
Enterprise 向けの組織全体への強制配布については、公式ドキュメントから詳細を確認できていません。
参考リンク
- スキルが存在する場所 — Claude Code Docs
- Agent Skills — Cursor Docs
- Authoring Google Antigravity Skills — Google Codelabs
エコシステム——組み込みスキル・共有・各ツール独自の機能
スキルをチームで共有したり、組織に展開したりする仕組みはツールによってかなり違います。
Claude Code
組み込みスキル
インストール直後から使える組み込みスキルが5種類あります。
| スキル | 内容 |
|---|---|
/simplify | 最近変更されたファイルのコード品質を3つのレビューエージェントが並列チェック・修正 |
/batch | コードベース全体への大規模変更を git worktree で並列実行 |
/debug | セッションデバッグログを読み込んで現在のセッションをトラブルシューティング |
/loop | プロンプトやスキルを指定間隔で繰り返し実行 |
/claude-api | Claude API・Anthropic SDK を使ったアプリ開発を支援 |
共有・展開方法
3つの展開方法に対応しています。
- VCS:
.claude/skills/をバージョン管理にコミットしてチームで共有 - プラグイン:プラグインの
skills/ディレクトリにスキルを含めて配布 - 管理設定:Enterprise の管理画面から組織全体にスキルを一括配布
Cursor
組み込みスキル:/migrate-to-skills
Cursor 2.4 でリリースされた移行ツールです。以前の設定形式(動的ルールやスラッシュコマンド)を自動でスキル形式に変換してくれます。既存の Cursor ユーザーがスキルを使い始めるときの敷居をぐっと下げる機能です。
GitHub リモートインポート
Cursor 独自の機能として、GitHub 上でホストされているスキルをプロジェクトに取り込む仕組みがあります。チームで管理しているスキルセットを共有したい場合に便利です。
共有・展開方法
VCS へのコミットに加えて、GitHub リモートインポートに対応しています。
Google Antigravity
共有・展開方法
スキルはファイルとして保存されるため、.agent/skills/ ディレクトリを VCS 管理下に置くことでチーム共有が可能です。組織全体への展開方法については公式ドキュメントから確認できていません。
参考リンク
- バンドルされたスキル — Claude Code Docs
- スキルで Cursor を拡張する — Cursor Docs
- Cursor Changelog 2.4
- Extend Cursor with plugins — Cursor Blog
- Authoring Google Antigravity Skills — Google Codelabs
まとめ
3ツールはどれも Agent Skills オープンスタンダードに準拠していて、SKILL.md 形式で書いたスキルは互換性があります。ただし、その上に積み上げた機能はかなり違います。
Claude Code はスキル機能がいちばん充実しています。context: fork でサブエージェントとして独立実行できたり、agent: でサブエージェントのタイプを切り替えたり、model: でスキルごとにモデルを指定できたり、allowed-tools: でツール権限をスキル単位で絞り込めたり。実行の制御という観点では3ツールの中で頭一つ抜けています。スコープも4段階あって、個人・プロジェクト・プラグイン・Enterprise と使い分けられます。
Cursor は「チームで使いまわす」ことを意識した設計が特徴的です。compatibility フィールドで動作条件を明示できるのはチーム展開時に地味に助かりますし、GitHub リモートインポートでチームのスキルセットをまとめて取り込める点は他のツールにない機能です。/migrate-to-skills という移行ツールが用意されていて、既存の設定をスキル形式に変換できるのも乗り換えの敷居を下げています。
Google Antigravity は現時点では公式ドキュメントから確認できる情報が限られていて、実行モードやスコープ管理の細かい仕様は未確認の部分が多いです。基本的な SKILL.md 定義とグローバル/ワークスペースの2段階スコープは確認できています。今後ドキュメントが整備されるにつれて全貌が見えてくると思います。
スキル機能をがっつり使い倒したいなら今のところ Claude Code が最も選択肢が多く、チームでの運用・共有を重視するなら Cursor の GitHub インポートが光ります。