コンテンツにスキップ

GitHub Copilot Agent Skills ガイド【2026年最新】SKILL.mdの書き方から実践活用まで

GitHub Copilot 完全ガイド

対象 / ポイント

対象: エージェントに手順知識を渡して自律実行させたい開発チーム

ポイント:

  • SKILL.mdに手順・スクリプト・テンプレートを書くと、Copilot / Claude Code / Codex / Cursor等の複数ツールで再利用しやすいスキルパッケージになる
  • Progressive Disclosureにより、必要なスキルだけをオンデマンドで読み込む設計になる
  • Custom Instructions(常時適用)との使い分けが明確になり、コンテキスト効率が上がる
⚡ 5分で始めるクイックスタート
# 1. スキルディレクトリを作成
mkdir -p .github/skills/webapp-testing

# 2. SKILL.mdを作成
cat << 'EOF' > .github/skills/webapp-testing/SKILL.md
---
name: webapp-testing
description: >-
  Webアプリのテスト自動化を支援する。
  テスト、test、E2E、単体テストの話題で使用する。
---
## Procedure
1. テスト対象を分析
2. AAAパターンでテスト作成
3. 実行して結果を検証
EOF

# 3. settings.jsonでスキルパスを設定
# .vscode/settings.json に追加:
# { "chat.agentSkillsLocations": { ".github/skills/**": true } }

# 4. コミット
git add .github/skills/
git commit -m "Add webapp-testing skill"

検証: VS Code Copilot Chatで /skills と入力 → webapp-testing が一覧に表示されれば成功

📖 Agent Skills とは

Agent Skillsは、AIコーディングエージェントに専門的な手順知識を与えるための仕組みです。GitHub Copilotのエコシステムでは、SKILL.mdファイルに記述された手順・スクリプト・テンプレートを、エージェントが必要に応じて参照し、タスクの精度を向上させます。

オープン標準としてのAgent Skills

Agent Skillsはagentskills.ioでAnthropicが策定したオープンフォーマットです。GitHub Copilotでは、Copilot cloud agent、GitHub Copilot CLI、VS Code の agent mode が Agent Skills に対応しています。GitHub Docsでは、プロジェクトスキルの配置先として .github/skills.claude/skills.agents/skills が案内されています。仕様の全体像は Agent Skills 完全ガイド(初級編) を参照してください。

Copilotにおけるスキルの位置づけ

Copilotのコンテキストシステムは以下の3層で構成されています。

Copilotコンテキスト3層構造とProgressive Disclosure▼ コンテキスト3層構造copilot-instructions.md常時適用プロジェクト全体の基本ルール.instructions.md(applyTo)パターンマッチ時パス別のコーディング規約SKILL.md(Agent Skills)オンデマンド専門ワークフロー+資産一式▼ Progressive Disclosure(段階的ローディング)L1: 発見name + description のみコンテキスト消費: ごくわずか全スキルのメタデータをスキャンL2: 指示読み込みSKILL.md 本文全体コンテキスト消費: 中程度手順・ルール・出力例を展開L3: リソース展開スクリプト・テンプレートコンテキスト消費: 必要最小限参照ファイルを追加読み込み少 ← コンテキスト消費量 → 多従来のアプローチ全ルール常時投入 → コンテキスト枯渇リスクスキル数に実質上限ありAgent Skills必要なものだけオンデマンド → 省コンテキスト必要なスキルだけを選択

スキルは手順の標準パッケージ

スキルは「再利用可能な手順知識パッケージ」と捉えるのが最も分かりやすいでしょう。単なるテキスト指示ではなく、スクリプト・テンプレート・参照ドキュメントなどの資産を含む一式のフォルダです。

⚙️ VS Codeでの有効化と配置

settings.json での設定

VS Codeでスキルを有効にするには、settings.jsonに読み込みパスを設定します。

{
  "chat.agentSkillsLocations": {
    ".github/skills/**": true,
    ".agents/skills/**": true
  }
}

設定の確認方法

VS Code のチャットパネルで /skills と入力すると、Configure Skills メニューが開きます。ここから現在読み込まれているスキルの一覧確認、有効化/無効化の切り替えが可能です。

スキルファイルの配置場所

プロジェクトスキル(リポジトリ内)

project-root/
├── .github/
│   └── skills/
│       ├── webapp-testing/
│       │   └── SKILL.md          # テスト自動化スキル
│       ├── doc-generator/
│       │   └── SKILL.md          # ドキュメント生成スキル
│       └── release-workflow/
│           ├── SKILL.md          # リリース手順スキル
│           └── checklist.md      # 参照リソース
├── .claude/skills/               # Claude Code互換
└── .agents/skills/               # 汎用エージェント互換

推奨配置: .github/skills/

GitHub Copilotを主に使用する場合は .github/skills/ への配置を推奨します。GitHub Docsでは、プロジェクトスキルとして .github/skills.claude/skills.agents/skills がサポート対象です。他のエージェントツールとの互換性を重視する場合は .agents/skills/ も検討してください。

パーソナルスキル(ユーザーローカル)

個人の作業環境にのみ適用するスキルは、ホームディレクトリに配置します。

~/.copilot/skills/         # Copilot専用
~/.agents/skills/          # 汎用エージェント互換

パーソナルスキルはリポジトリにコミットされないため、個人の好みや環境固有の手順を定義するのに適しています。

Organization / Enterprise レベルのスキル

組織・エンタープライズレベルでのスキル共有機能は Coming Soon として発表されています。現時点ではリポジトリ内配置またはパーソナルスキルで運用してください。

🏗️ SKILL.md のフォーマット

SKILL.mdはYAMLフロントマター + Markdown本文の構成です。

フロントマター(メタデータ)

---
# ── agentskills.io 標準フィールド ──
name: webapp-testing              # 必須: 小文字+ハイフン、最大64文字
description: >-                   # 必須: 最大1024文字
  Webアプリのテスト戦略と自動テスト作成を支援する。
  テスト、test、E2Eの話題で使用する。
license: MIT                      # 任意: ライセンス名またはファイル参照
metadata:                         # 任意: 任意のkey-valueマッピング
  author: dev-team
  version: "1.0"
compatibility: >-                 # 任意: 環境要件(最大500文字)
  Requires Node.js 18+, network access for npm install
# allowed-tools: Bash Edit ...   # Experimental: スキルが使えるツールを制限

# ── Copilot 固有の拡張フィールド ──
argument-hint: "テスト対象のファイルパスまたはモジュール名"  # VS Code向け引数ヒント
user-invokable: true              # ユーザーが手動起動可能か(デフォルト: true)
disable-model-invocation: false   # モデルの自動起動を無効化(デフォルト: false)
---

各フィールドの詳細

SKILL.mdの構造とエコシステム対応状況SKILL.md ファイルYAML フロントマターname(必須)description(必須)license / metadata / compatibilityargument-hint(Copilot固有)↑ 必須フィールドで発動精度が決まるMarkdown 本文Goal / Procedureタスクのゴールと手順ステップOutput format / ルール出力の形式と遵守すべき制約References(相対パス参照)テンプレート・スクリプト等の外部資産最重要: description 設計発火キーワードを明示的に列挙→ 発動精度の8割を左右するagentskills.io オープン標準Copilot / Claude Code / Codexツール間でスキルを共有可能配置パス.github/skills/**← Copilot推奨.claude/skills/**← Claude Code.agents/skills/**← 汎用~/.copilot/skills/← パーソナルエコシステム対応状況(2026年2月)Coding AgentGAVS Code AgentGA(Stable)Copilot CLIパブリックプレビューGitHub.comComing Soon1スキル = 1専門領域 / プロジェクトに10〜30登録 / 実際に展開されるのは1〜3つ
フィールド必須出典説明
nameYes標準スキルの一意識別子。小文字・ハイフン区切り、最大64文字
descriptionYes標準スキルの説明。最大1024文字。発動条件のキーワードを含めることが重要
licenseNo標準スキルのライセンス名(MIT, Apache-2.0等)またはファイル参照
metadataNo標準任意のkey-valueマッピング。author, version等の補足情報
compatibilityNo標準環境要件の記述(最大500文字)。必要なランタイムやネットワークアクセス等
allowed-toolsNo標準スキルが使用できるツールを制限(Experimental
argument-hintNoCopilot固有ユーザーがスキルを呼び出す際の引数ヒント(VS Code向け)
user-invokableNoCopilot固有true(デフォルト)でユーザーが手動起動可能
disable-model-invocationNoCopilot固有trueにするとモデルの自動判断による起動を無効化

標準 vs Copilot固有

「標準」は agentskills.io/specification で定義されたフィールドで、Claude Code・Codex等でも共通で利用できます。「Copilot固有」はVS Code / GitHub Copilotのみで解釈される拡張フィールドです。

発火キーワードが品質の8割

descriptionの書き方が発動精度を左右する

description にはスキルが対応する話題やキーワードを明示的に含めてください。Copilotは description を読んでスキルの発動判断を行うため、曖昧な説明では適切に発動しません。具体的なキーワード設計のガイドは description設計ガイド を参照してください。

本文(Markdown)

フロントマター以降は通常のMarkdownで、手順・ルール・出力例などを記述します。

## Goal
テストカバレッジを向上させ、品質を標準化する。

## Procedure
1. 対象コードを分析し、テスト戦略を決定
2. テストファイルを作成
3. テストを実行して結果を検証

## References
- [テストテンプレート](./test-template.js)
- [命名規則ドキュメント](./naming-conventions.md)

ファイル参照は相対パスで

SKILL.md内から他のファイルを参照する場合は、SKILL.mdからの相対パスで記述します。Copilotはこれらのファイルをリソースとして読み込み、コンテキストに含めます。

🔄 Progressive Disclosure(段階的ローディング)

Agent Skillsの最大の特長はProgressive Disclosure(段階的ローディング)です。この仕組みにより、多数のスキルをインストールしてもコンテキストウィンドウを圧迫しません。

3段階のローディングプロセス

上部ダイアグラムの「Progressive Disclosure」セクションで、L1(発見)→ L2(指示読み込み)→ L3(リソース展開)の3段階を図示しています。

なぜ重要か

上部ダイアグラムの「従来のアプローチ vs Agent Skills」比較を参照してください。

スキル数の目安

1プロジェクトに10〜30のスキルを登録しても、実際にコンテキストに展開されるのは1〜3つ程度です。スキルを細かく分割して、専門性の高い手順パッケージとして管理するのが効果的です。

📊 Copilot エコシステムでの対応状況

2026年2月時点でのAgent Skills対応状況は、上部の「SKILL.md構造」ダイアグラム下段で図示しています。

Copilot Coding Agent でのスキル活用

Copilot Coding Agentは、Issueからの自律実行時に .github/skills/ 配下のスキルを自動的に参照します。たとえば「テストを追加して」というIssueに対して、webapp-testing スキルの手順に従ってテストコードを生成し、PRを作成します。

Before / After: Skills有/無のエージェント出力比較

プロンプト: 「テストを追加して」
→ エージェントが汎用的なテストを生成
→ 命名規則バラバラ、AAAパターン不統一
→ 手動で修正が必要
プロンプト: 「テストを追加して」
→ webapp-testing スキルが自動発動
→ AAA パターン、命名規則統一、カバレッジ方針準拠
→ そのままPRに出せる品質

🎯 Custom Instructions との使い分け

Agent SkillsとCustom Instructions(カスタムインストラクション)は目的が異なります。適切に使い分けることで、コンテキストの効率化と指示の精度を両立できます。

観点Agent SkillsCustom Instructions(.instructions.md)copilot-instructions.md
目的専門的なワークフロー・手順パス別のコーディング規約プロジェクト全体の基本ルール
読み込みオンデマンド(必要時のみ)パターンマッチ(applyTo)常時適用
内容手順+スクリプト+例+参照インストラクションのみインストラクションのみ
可搬性オープン標準(全ツール共通)VS Code固有GitHub固有
標準agentskills.ioVS Code specificGitHub specific
適用粒度タスク・話題単位ファイルパス単位リポジトリ全体

判断フローチャート

インストラクション使い分け判断フロー新しい指示を追加したい全ファイル・全タスクに常時適用?Yescopilot-instructions.mdNo特定のファイルパターンにのみ適用?Yes.instructions.mdNo特定のタスク・話題のときだけ発動?YesSKILL.md適用範囲リポジトリ全体 → パス別 → タスク別広い ————————→ 狭い読み込みタイミング常時 → マッチ時 → 必要時のみ頻繁 ————————→ まれ可搬性GitHub固有 → VS Code → オープン標準限定的 ————→ ユニバーサル

AGENTS.md によるクロスツール統一管理

AGENTS.mdファイルを使うと、GitHub Copilot・Claude Code・OpenAI Codex等の複数エージェントに対する共通指示を1つのファイルで管理できます。詳しくは マルチエージェント協働ガイド を参照してください。

💡 実践例:テスト自動化スキル

以下は、Webアプリケーションのテスト自動化を支援するスキルの完全な例です。

ディレクトリ構成

.github/skills/webapp-testing/
├── SKILL.md              # スキル本体
├── test-template.js      # テストテンプレート
└── naming-conventions.md # 命名規則リファレンス

SKILL.md

---
name: webapp-testing
description: >-
  Webアプリケーションのテスト戦略と自動テスト作成を支援する。
  テスト、test、E2E、単体テスト、integration testの話題で使用する。
license: MIT
metadata:
  author: dev-team
  version: "1.0"
---

## Goal
テストカバレッジを向上させ、テスト品質を標準化する。

## Testing Strategy
1. **単体テスト**: ビジネスロジックの境界値を優先
2. **統合テスト**: API endpoint + DB の結合確認
3. **E2Eテスト**: ユーザーフロー(ログイン→操作→結果確認)

## Naming Convention
- テストファイル: `*.test.ts` or `*.spec.ts`
- テスト名: `describe('機能名') > it('期待する動作')` 形式

## Output Format
- テスト実行前にスキーマ検証を追加
- AAA (Arrange-Act-Assert) パターンで構造化
- 各テストにコメントで意図を明記

## References
- [テストテンプレート](./test-template.js)
- [命名規則](./naming-conventions.md)

descriptionにキーワードを列挙する

description に「テスト、test、E2E、単体テスト、integration test」のように関連キーワードを含めることで、ユーザーがこれらの話題に触れた際にスキルが自動発動します。

実践例:ドキュメント生成スキル

APIドキュメントやREADMEの自動生成を支援するスキルの例です。テスト自動化スキルとは異なり、出力ルールに重点を置いた構成になっています。

.github/skills/doc-generator/
├── SKILL.md              # スキル本体
├── readme-template.md    # READMEテンプレート
└── changelog-format.md   # CHANGELOG形式リファレンス
---
name: doc-generator
description: >-
  APIドキュメントやREADME、CHANGELOG の生成・更新を支援する。
  ドキュメント、documentation、README、API doc、CHANGELOGの話題で使用する。
metadata:
  author: dev-team
  version: "1.0"
---

## Procedure
1. 対象コードを読み取り、公開APIを特定
2. JSDoc/docstring形式のコメントを追加
3. README.mdの該当セクションを更新
4. CHANGELOGに変更内容を追記(Keep a Changelog形式)

## Output Rules
- コードブロックには必ず言語指定を付与
- APIエンドポイントはメソッド・パス・パラメータ・レスポンス例を記載
- 破壊的変更には ⚠️ マークを付与

## References
- [READMEテンプレート](./readme-template.md)
- [CHANGELOG形式](./changelog-format.md)

🛠️ スキル作成のベストプラクティス

1. スキルの粒度設計

1スキル = 1専門領域

スキルは単一の専門領域にフォーカスしてください。「テスト+デプロイ+ドキュメント」を1つのスキルにまとめると、不要な場面でもコンテキストを消費します。

# ❌ 非推奨: 範囲が広すぎるスキル
name: everything-helper
description: テスト、デプロイ、ドキュメント、コードレビューを全部やる

# ✅ 推奨: 専門領域を絞ったスキル
name: webapp-testing
description: Webアプリのテスト戦略と自動テスト作成を支援する

2. descriptionの設計原則

原則
具体的なキーワードを含める「テスト、test、E2E、単体テスト」
対象範囲を明示する「Webアプリケーションの」
動作を動詞で記述する「支援する」「生成する」「検証する」
1024文字以内に収める簡潔かつ網羅的に

descriptionの設計をさらに深掘りしたい場合は description設計ガイド(スキル発動精度を高める具体的なパターン集)を参照してください。

3. 参照リソースの活用

SKILL.md本文は手順の概要に留め、詳細なテンプレートやスクリプトは別ファイルに分離します。これにより、Level 3(Resources)でのみ読み込まれるため、コンテキスト効率が向上します。

.github/skills/my-skill/
├── SKILL.md                # 手順概要(Level 2で読み込み)
├── templates/
│   ├── component.tsx       # コンポーネントテンプレート(Level 3)
│   └── test.spec.ts        # テストテンプレート(Level 3)
└── examples/
    └── sample-output.md    # 出力例(Level 3)

❓ よくある質問 (FAQ)

Q: スキルが発動しない場合はどうする?
  1. /skills コマンドでスキルが有効化されているか確認
  2. settings.jsonchat.agentSkillsLocations パスが正しいか確認
  3. description に適切なキーワードが含まれているか見直す
  4. disable-model-invocation: true になっていないか確認
Q: スキルの数に上限はある?

公式に上限は明示されていませんが、実用上の注意点はあります。Level 1(Discovery)メタデータは軽量ですが、Copilot CLIでは49スキルを登録した際に31スキルしか表示されなかった事例が報告されています(Issue #1130)。これはCLI固有の挙動とみられますが、スキル数が増えるとコンテキスト制限に当たる可能性があるため、実際に使うスキルに絞って管理することを推奨します。

Q: Claude Codeで作ったスキルをCopilotでも使える?

はい。Agent SkillsはagentSkills.ioのオープンフォーマットに準拠しているため、.claude/skills/ に作成したSKILL.mdを .github/skills/ にコピー(またはシンボリックリンク)するだけで利用できます。フォーマットは共通です。

🔗 関連記事

Copilot シリーズ

参考資料(Agent Skills 深掘り)