はじめに
GitHub Copilotを使っていて、「毎回同じようなプロンプトを入力するのが面倒」「チームで共通のプロンプトを使いたい」と感じたことはないでしょうか。VS CodeのGitHub Copilotには、繰り返し使うプロンプトをファイルとして保存し、必要なときにすぐ呼び出せる**プロンプトファイル(Prompt Files)**機能があります。
プロンプトファイルは、.prompt.mdという拡張子のMarkdownファイルで定義します。コンポーネントの雛形生成、コードレビュー、テスト作成など、定型的な開発タスクをワンコマンドで実行できるようになります。
本記事では、GitHub Copilotプロンプトファイルの概要から作成方法、実践的な活用例まで詳しく解説します。この記事を読むことで、以下のことができるようになります:
- プロンプトファイルの仕組みと用途を理解する
.prompt.mdファイルを作成してチャットから呼び出す- 変数やツール参照を使った高度なプロンプトを設計する
- Custom InstructionsやCustom Agentsとの適切な使い分けを把握する
前提条件
プロンプトファイル機能を使用するには、以下の環境が必要です:
| 項目 | 要件 |
|---|---|
| VS Code | バージョン1.100以降 |
| GitHub Copilot拡張機能 | 最新版をインストール |
| GitHub Copilotサブスクリプション | Copilot Individual、Business、Enterprise、または無料プラン |
プロンプトファイルとは
プロンプトファイルは、GitHub Copilot Chatで繰り返し使用するプロンプトをMarkdownファイルとして定義する機能です。チャット入力欄で/に続けてプロンプト名を入力するだけで、事前に定義したプロンプトを実行できます。
プロンプトファイルが解決する課題
日常の開発作業では、以下のような繰り返しパターンが発生します:
- 新しいReactコンポーネントを作成するたびに同じ構造を指示する
- コードレビューで毎回同じ観点(セキュリティ、パフォーマンス等)をチェックする
- APIエンドポイントの実装時に共通のエラーハンドリングパターンを適用する
- テストコードを生成する際に毎回テストフレームワークの使い方を説明する
プロンプトファイルを使えば、これらのパターンを一度定義しておくだけで、以降は数文字入力するだけで同じ品質のプロンプトを再利用できます。
Custom Instructionsとの違い
GitHub Copilotには「Custom Instructions(カスタム指示)」という類似機能がありますが、プロンプトファイルとは目的が異なります:
| 機能 | Custom Instructions | プロンプトファイル |
|---|---|---|
| 適用タイミング | 自動(すべてのリクエストに適用) | 手動(/コマンドで呼び出し) |
| 主な用途 | コーディング規約、スタイルガイド | 特定タスクの実行 |
| ファイル形式 | .instructions.md |
.prompt.md |
| 保存場所 | .github/instructions/ |
.github/prompts/ |
Custom Instructionsは「常に適用されるルール」、プロンプトファイルは「オンデマンドで実行するタスク」と捉えるとわかりやすいでしょう。
プロンプトファイルの構造
プロンプトファイルは、YAMLフロントマター(ヘッダー)とMarkdown本文(ボディ)で構成されます。
ヘッダー(YAMLフロントマター)
ファイル先頭のYAMLフロントマターでは、プロンプトのメタ情報を定義します:
|
|
各プロパティの意味は以下の通りです:
| プロパティ | 説明 | 必須 |
|---|---|---|
name |
プロンプト名(/の後に入力する名前) |
任意(未指定時はファイル名) |
description |
プロンプトの説明 | 任意 |
argument-hint |
チャット入力欄に表示されるヒント | 任意 |
agent |
使用するエージェント(ask/edit/agent/カスタムエージェント名) | 任意 |
model |
使用する言語モデル | 任意 |
tools |
利用可能なツールのリスト | 任意 |
ボディ(プロンプト本文)
ヘッダーの後に、実際のプロンプト内容をMarkdownで記述します:
|
|
プロンプトファイルの作成方法
方法1:VS Codeのコマンドから作成
- コマンドパレットを開く(
Ctrl+Shift+P/Cmd+Shift+P) - 「Chat: New Prompt File」を選択
- 保存場所を選択:
- Workspace:
.github/prompts/に保存(そのワークスペースでのみ使用可能) - User profile: ユーザープロファイルに保存(すべてのワークスペースで使用可能)
- Workspace:
- ファイル名を入力
- Markdown形式でプロンプトを記述
方法2:Chatビューから作成
- Chatビューを開く(
Ctrl+Alt+I/Cmd+Alt+I) - 歯車アイコン(Configure Chat)をクリック
- 「Prompt Files」を選択
- 「New prompt file」をクリック
- 保存場所とファイル名を指定して作成
方法3:手動でファイルを作成
.github/prompts/ディレクトリに直接.prompt.mdファイルを作成することもできます:
|
|
プロンプトファイルの呼び出し方
作成したプロンプトファイルは、以下の方法で呼び出せます:
方法1:スラッシュコマンド
Copilot Chatの入力欄に/を入力すると、利用可能なプロンプトの一覧が表示されます:
/create-component UserProfile
プロンプト名の後に追加のテキストを入力すると、そのテキストがプロンプトのコンテキストとして渡されます。
方法2:コマンドパレット
- コマンドパレットを開く
- 「Chat: Run Prompt」を選択
- プロンプトファイルを選択
方法3:エディタからの実行
プロンプトファイルをエディタで開いた状態で、タイトルバーの再生ボタンをクリックすると、そのプロンプトを実行できます。プロンプトのテストや調整を行う際に便利です。
変数の活用
プロンプトファイルでは、${variableName}形式で変数を参照できます。これにより、動的なプロンプトを作成できます。
ワークスペース変数
| 変数 | 説明 |
|---|---|
${workspaceFolder} |
ワークスペースのルートパス |
${workspaceFolderBasename} |
ワークスペースフォルダ名 |
ファイルコンテキスト変数
| 変数 | 説明 |
|---|---|
${file} |
現在開いているファイルのパス |
${fileBasename} |
ファイル名(拡張子付き) |
${fileDirname} |
ファイルのディレクトリパス |
${fileBasenameNoExtension} |
ファイル名(拡張子なし) |
選択テキスト変数
| 変数 | 説明 |
|---|---|
${selection} |
エディタで選択中のテキスト |
${selectedText} |
${selection}と同じ |
入力変数
ユーザーからの入力を受け取る変数も定義できます:
|
|
${input:variableName:defaultValue}形式で、デフォルト値を指定することも可能です。
ツール参照の活用
プロンプト本文内で#tool:<tool-name>構文を使用すると、特定のツールを参照できます:
|
|
実践的なプロンプトファイルの例
例1:Reactコンポーネント生成
|
|
例2:コードレビュープロンプト
|
|
例3:APIエンドポイント生成
|
|
例4:テストコード生成
|
|
プロンプトファイルの保存場所
プロンプトファイルは2種類のスコープで保存できます:
ワークスペースプロンプト
.github/prompts/ディレクトリに保存すると、そのワークスペース内でのみ使用可能です。チームで共有したいプロンプトはこちらに保存し、バージョン管理に含めることをおすすめします。
追加の保存場所を指定するには、settings.jsonでchat.promptFilesLocationsを設定します:
|
|
ユーザープロンプト
VS Codeのユーザープロファイルに保存すると、すべてのワークスペースで使用できます。個人用の汎用プロンプトはこちらに保存すると便利です。
複数デバイス間での同期
Settings Syncを有効にすることで、ユーザープロンプトを複数デバイス間で同期できます:
- Settings Syncを有効にする
- コマンドパレットで「Settings Sync: Configure」を実行
- 「Prompts and Instructions」を同期対象に追加
プロンプトファイル設計のベストプラクティス
明確な目的を定義する
各プロンプトファイルは単一の目的に集中させます。「何でもできる」汎用プロンプトよりも、特定タスクに特化したプロンプトの方が効果的です。
具体的な例を含める
抽象的な指示だけでなく、期待する出力の具体例を示すことで、AIの応答精度が向上します。
|
|
Custom Instructionsを参照する
プロンプトファイル内でCustom Instructionsファイルを参照することで、指示の重複を避けられます:
|
|
適切なエージェントを選択する
タスクの性質に応じて、適切なエージェントをagentプロパティで指定します:
ask: 質問や説明が主な目的の場合edit: 既存コードの編集が目的の場合agent: ファイル作成・編集を含む複合タスクの場合
Custom Agentsとの連携
複雑なワークフローには、プロンプトファイルとCustom Agentsを組み合わせることが効果的です。Custom Agentsは特定の役割(フロントエンド開発、セキュリティレビュー等)に特化したエージェントを定義でき、プロンプトファイルから参照できます。
|
|
Custom Agentsの詳細については、VS Code公式ドキュメントを参照してください。
注意点と制限事項
インライン補完には適用されない
プロンプトファイルの内容は、Copilot Chatからの呼び出し時にのみ適用されます。エディタ上でのインライン補完(ゴーストテキスト)には影響しません。
ツールの可用性
toolsプロパティで指定したツールが利用できない環境では、そのツールは無視されます。重要なツールに依存するプロンプトの場合は、代替手段も記述しておくことをおすすめします。
ファイルサイズ
プロンプトファイルが大きすぎると、コンテキストウィンドウを圧迫し、AIの応答品質に影響する可能性があります。1つのプロンプトファイルは簡潔に保ち、必要に応じて複数のファイルに分割してください。
まとめ
GitHub Copilotのプロンプトファイルは、繰り返し行う開発タスクを効率化するための機能です。本記事で解説した内容を実践することで、以下のメリットが得られます:
- 定型的なプロンプト入力の手間を削減できる
- チーム全体で一貫性のあるプロンプトを共有できる
- 複雑なタスクをワンコマンドで実行できる
- プロンプトをバージョン管理し、継続的に改善できる
まずは日常的に繰り返しているタスク(コンポーネント生成、テスト作成など)から始めて、徐々にプロンプトライブラリを充実させていくことをおすすめします。