前回の記事では、GitHub Copilot Agentモードの基本的な使い方と.github/copilot-instructions.mdによるプロジェクト全体の指示方法を解説しました。
今回は、さらに細かい制御を可能にする仕組みを紹介します。特定のファイル種別にのみ適用されるInstruction filesと、繰り返し実行する複雑なタスクをコマンド化するPrompt filesです。これらを組み合わせると、プロジェクト全体の基本方針から個別ファイルの詳細規約、定型作業の自動化まで、階層的なルール管理が実現できます。
GitHub Copilot Chatの3つのモード
GitHub Copilot Chatには、3つの動作モードが用意されています。作業内容に応じて適切なモードを選ぶと、効率的な開発が可能になります。
Editモードは選択中のファイル内でコードを生成・修正します。Agentモードはより広範囲な変更に対応し、複数ファイルの作成・編集を自動化できます。
Instruction filesとPrompt filesの全体像
GitHub Copilot Chatでは、3種類の設定ファイルを組み合わせて使います。それぞれのファイルは適用されるタイミングと用途が異なるため、適切に使い分けると効果的なコンテキスト管理が実現できます。
copilot-instructions.mdは全モードで自動適用され、プロジェクトの基本設計方針を定義します。Instruction filesは該当ファイルの編集時に自動適用され、ファイル種別ごとの詳細なコーディング規約を提供します。Prompt filesは明示的にコマンド実行することで、定型作業の手順を再現します。
例えば、Reactコンポーネント作成時には、copilot-instructions.mdでプロジェクト全体の設計原則、tsx.instructions.mdでTypeScript規約、Prompt fileで定型作業を自動化するという階層的な適用が効果的です。
設定方法
Instruction files 及び Prompt files を利用するには VS Codeの下記設定が有効になっていることを確認してください。設定は Settings(⌘+,)から検索できます。
- Instruction files:
github.copilot.chat.codeGeneration.useInstructionFilesを有効化 - Prompt files:
chat.promptFilesを有効化
Instruction filesの活用
Instruction filesは、ファイル種別やプロジェクトの特定部分に対して、Copilotの動作方針やコーディング規約を定義できる機能です。プロジェクト全体の基本方針はcopilot-instructions.mdで定義します。個別の詳細な指示は複数の.instructions.mdファイルで管理できます。
Instruction filesの種類
VS Codeでは下記のようなInstruction filesを扱うことができます。複数のファイルを同時に使用することも可能です。
Instruction: ファイルの保存先と適用範囲
Instruction filesは保存場所によって、どのプロジェクトで利用できるかが変わります。
プロジェクト固有のコーディング規約やアーキテクチャルールはワークスペースに配置してチーム全体で共有します。個人の好みや複数プロジェクトで共通して使える汎用的なルールはユーザープロファイルに配置すると、効率的な管理ができます。
Instruction filesの構成
.instructions.mdはxxx-yyy.instructions.mdのようにsuffixとしてファイル名につけることで特定のタスクごとに複数ファイルを作成でき、2つのセクションで構成されます。
Instruction filesの作成
Instruction filesは、VS CodeのChat viewから「Configure Chat」 > 「New instruction file」で作成します。.github/instructions/ディレクトリに直接ファイルを作成することも可能です。
Instruction: メタデータ(Front Matter)
applyToフィールドで、指示を適用したいファイルの拡張子をglobパターンで指定できます。特に指定しない場合は**を設定します。
globパターンの例:
globパターンを指定すると該当ファイルの編集時に自動適用され、指定しない場合はChatのAdd Context > Instructionsから手動で選択します。
Instruction: ボディ
指示の内容をMarkdownで記述します。他の.instructions.mdをMarkdownのリンク記法を使って参照することもできます。
Prompt files の活用(試験機能)
Instruction filesがChatリクエストにルールや制約を追加するのに対し、Prompt filesは再利用可能なプロンプトテンプレートを定義できます。頻繁に実行する複雑なタスクをファイル化し、チーム全体で共有できます。
Prompt: ファイルの保存先と適用範囲
VS Codeでは2種類の保存先がサポートされています。
Prompt filesの構成
.prompt.mdはxxx-yyy.prompt.mdのようにsuffixとしてファイル名につけることで特定のタスクごとに作成できます。
Prompt filesの作成と使用
Chatの入力欄で/を入力すると候補が表示されます。任意のPrompt fileを選択することで適用できます。
Prompt: メタデータ(Front matter)
メタデータでは以下を指定できます。
主要なツール一覧
Agentモードでは、以下のツールをtoolsフィールドで指定できます。
その他のツールはChatで#入力、またはAdd Context... > Tools...で確認できます。
Prompt: ボディ
指示の内容をMarkdownで記述します。他の.prompt.mdをMarkdownのリンク記法を使って参照することもできます。
まとめ
GitHub Copilot Chatのモード選択、Instruction files、Prompt filesを組み合わせることで、プロジェクト固有のコーディング規約を自動適用しながら、効率的な開発が実現できます。
特に、copilot-instructions.mdで全体方針を定義し、Instruction filesで詳細ルールを適用、Prompt filesで定型作業を自動化するという階層的なアプローチが効果的です。AIによるコーディングツールは急速に進化していますが、公式機能をしっかり活用することで、長期的に安定した開発環境を構築できます。
プロジェクトの成長に合わせて学びながら、段階的にルールを追加していくことをおすすめします。
