Instruction files / Prompt filesで実現するGitHub Copilot Chatの階層的コンテキスト管理

9分で読めます

前回の記事では、GitHub Copilot Agentモードの基本的な使い方と.github/copilot-instructions.mdによるプロジェクト全体の指示方法を解説しました。

今回は、さらに細かい制御を可能にする仕組みを紹介します。特定のファイル種別にのみ適用されるInstruction filesと、繰り返し実行する複雑なタスクをコマンド化するPrompt filesです。これらを組み合わせることで、プロジェクト全体の基本方針から個別ファイルの詳細規約、定型作業の自動化まで、階層的なルール管理が実現できます。

GitHub Copilot Chatの3つのモード

GitHub Copilot Chatには、3つの動作モードが用意されています。作業内容に応じて適切なモードを選ぶことで、効率的な開発が可能になります。

モード主な用途利用シーン
Askコードや技術に関する質問応答ロジックの確認、設計相談
Editファイル内のコード編集機能追加、バグ修正、リファクタリング
Agent自律的な複数ファイル編集新機能実装、エラー自動修正

Editモードは選択中のファイル内でコードを生成・修正します。Agentモードはより広範囲な変更に対応し、複数ファイルの作成・編集を自動化できます。

Instruction filesとPrompt filesの全体像

GitHub Copilot Chatでは、3種類の設定ファイルを組み合わせて使います。

ファイルタイプ適用モード適用タイミング主な用途
copilot-instructions.mdAsk / Edit / Agent全モードで自動適用プロジェクト全体の基本方針・アーキテクチャ
Instruction filesEdit / Agent該当ファイル編集時に自動適用ファイル種別ごとのコーディング規約
Prompt filesAsk / Edit / Agentコマンド実行時に適用繰り返し実行する複雑なタスク

例えば、Reactコンポーネント作成時には、copilot-instructions.mdでプロジェクト全体の設計原則、tsx.instructions.mdでTypeScript規約、Prompt fileで定型作業を自動化するという階層的な適用が効果的です。

設定方法

Instruction files 及び Prompt files を利用するには VS Codeの下記設定が有効になっていることを確認してください。

  • 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を扱うことができます。複数のファイルを同時に使用することも可能です。

ファイル種別配置パス役割
.github/copilot-instructions.md.github/直下ワークスペース全体の基本ルール。全Chatリクエストに自動適用
.instructions.md.github/instructions/特定ファイル種別向けの詳細ルール。globパターンで自動適用または手動選択
AGENTS.mdワークスペースルートまたはサブフォルダ複数AIエージェント利用時のルール(試験機能)

Instruction: ファイルの保存先と適用範囲

Instruction filesは保存場所によって、どのプロジェクトで利用できるかが変わります。

保存先利用可能範囲使い分け
ワークスペースそのプロジェクト内でのみプロジェクト固有のルール・チーム共有
ユーザープロファイル複数プロジェクトで共通個人的な設定・汎用的なルール

プロジェクト固有のコーディング規約やアーキテクチャルールはワークスペースに配置してチーム全体で共有します。一方、個人の好みや複数プロジェクトで共通して使える汎用的なルールはユーザープロファイルに配置することで、効率的な管理ができます。

Instruction filesの構成

.instructions.mdxxx-yyy.instructions.mdのようにsuffixとしてファイル名につけることで特定のタスクごとに複数ファイルを作成でき、以下の2つのセクションで構成されます。

Instruction filesの作成

Instruction filesは、VS CodeのChat viewから「Configure Chat」 > 「New instruction file」で作成できます。.github/instructions/ディレクトリに直接ファイルを作成することも可能です。

Instruction: メタデータ(Front Matter)

Markdown
---
applyTo: "**/*.{tsx,ts}"
---

applyToフィールドで、指示を適用したいファイルの拡張子をglobパターンで指定できます。特に指定しない場合は**にします。

globパターンの例:

Markdown
# 特定ディレクトリのMDXファイルのみ
applyTo: "src/app/blog/_posts/**/*.mdx"

# すべてのTypeScript/TSXファイル
applyTo: "**/*.{tsx,ts}"

# 特定ディレクトリのMarkdownファイル
applyTo: "docs/**/*.md"

globパターンを指定すれば該当ファイルの編集時に自動適用され、指定しない場合はChatのAdd Context > Instructionsから手動で選択できます。

Instruction: ボディ

指示の内容をMarkdownで記述します。他の.instructions.mdをMarkdownのリンク記法を使って参照することもできます。

Markdown
---
applyTo: "**/*.tsx"
---

# Reactコンポーネントのコーディング規約

共通のコーディング規約は[共通規約](./common-rules.instructions.md)を参照してください。

## TypeScript規約

- 型定義は必ず明示する
- propsには適切なJSDocコメントを記述
- コンポーネント名はPascalCaseを使用

Prompt files の活用(試験機能)

Instruction filesがChatリクエストにルールや制約を追加するのに対し、Prompt filesは再利用可能なプロンプトテンプレートを定義できます。頻繁に実行する複雑なタスクをファイル化し、チーム全体で共有できます。

Prompt: ファイルの保存先と適用範囲

VS Codeでは2種類の保存先がサポートされています。

保存先利用範囲配置パス
ワークスペースそのプロジェクト限定.github/prompts
ユーザープロファイル複数プロジェクトで共通VS Code profileフォルダ

Prompt filesの構成

.prompt.mdxxx-yyy.prompt.mdのようにsuffixとしてファイル名につけることで特定のタスクごとに作成できます。

Prompt filesの作成と使用

Chatの入力欄で/を入力すると候補が表示されるので、任意のPrompt filesを選択することで適用されます。

Prompt: メタデータ(Front matter)

Markdown
---
mode: 'agent'
tools: ['codebase', 'file']
description: '新しいブログ記事の作成'
---

メタデータでは以下を指定できます。

フィールドデフォルト値説明
modeagent実行時の動作モード。askeditagentから選択
toolsなしcodebasegithubRepo など、Agentモードで使用するツール名
description-プロンプトの簡潔な説明

主要なツール一覧

Agentモードでは、以下のツールをtoolsフィールドで指定できます。

ツール名機能
codebaseワークスペース内のコード検索・参照
githubRepoGitHub上のリポジトリ参照
webSearchWeb検索によるリアルタイム情報取得
terminalターミナルコマンド実行
file特定ファイルの内容参照
selectionエディタで選択中のコード参照
editor現在開いているエディタのコンテキスト
problemsワークスペース内のエラー・警告確認

その他のツールはChatで#入力、またはAdd Context... > Tools...で確認できます。

Prompt: ボディ

指示の内容をMarkdownで記述します。他の.prompt.mdをMarkdownのリンク記法を使って参照することもできます。

Markdown
---
mode: 'agent'
tools: ['codebase', 'file']
description: '新しいブログ記事の作成'
---

ブログ記事を作成します。以下の情報が不足している場合は質問してください。

- タイトル
- カテゴリ(ai, tools, directionから選択)
- タグ(3つ以上)

記事作成の要件:
- MDX形式で作成
- Front Matterに必要なメタデータを全て含める
- 見出しは階層構造を保つ(h2 → h3 → h4)
- コードブロックには適切な言語指定を行う
- 箇条書きの前にコロンを使用しない
- 「です・ます」調で統一

まとめ

GitHub Copilot Chatのモード選択、Instruction files、Prompt filesを組み合わせることで、プロジェクト固有のコーディング規約を自動適用しながら、効率的な開発が実現できます。

特に、copilot-instructions.mdで全体方針を定義し、Instruction filesで詳細ルールを適用、Prompt filesで定型作業を自動化するという階層的なアプローチが効果的です。AIによるコーディングツールは急速に進化していますが、公式機能をしっかり活用することで、長期的に安定した開発環境を構築できます。

プロジェクトの成長に合わせて学びながら、段階的にルールを追加していくことをおすすめします。

参考

この記事は役に立ちましたか?

この記事をシェア

X
Facebook
はてな
utsusieのプロフィール画像

utsusie

UI Designer / Web Director