VS Code でカスタムインストラクションを使用する
カスタムインストラクションを使用すると、AI がコードを生成したり、他の開発タスクを処理したりする方法に自動的に影響を与える共通のガイドラインとルールを定義できます。チャットプロンプトごとに手動でコンテキストを含めるのではなく、Markdown ファイルでカスタムインストラクションを指定することで、コーディングプラクティスとプロジェクト要件に沿った一貫性のある AI レスポンスを保証できます。
カスタムインストラクションは、すべてのチャットリクエストに自動的に適用されるように、または特定のファイルのみに適用されるように構成できます。あるいは、カスタムインストラクションを特定のチャットプロンプトに手動で添付することもできます。
エディターで入力中にコード補完のためにカスタムインストラクションは考慮されません。
インストラクションファイルの種類
VS Code は、複数の種類の Markdown ベースのインストラクションファイルをサポートしています。プロジェクトに複数の種類のインストラクションファイルがある場合、VS Code はそれらを結合してチャットコンテキストに追加しますが、特定の順序は保証されません。
-
単一の
.github/copilot-instructions.mdファイル- ワークスペース内のすべてのチャットリクエストに自動的に適用されます
- ワークスペース内に保存されます
-
1 つ以上の
.instructions.mdファイル- 特定のタスクまたはファイルのために作成されます
- インストラクションを適用するファイルを定義するために
applyToフロントマターを使用します - ワークスペースまたはユーザープロファイルに保存されます
-
単一の
AGENTS.mdファイル (実験的)- ワークスペースで複数の AI エージェントと連携する場合に便利です
- ワークスペース内のすべてのチャットリクエストに自動的に適用されます
- ワークスペースのルートに保存されます
インストラクション間の空白は無視されるため、インストラクションは単一の段落として、各行を新しい行に、または空白行で区切って読みやすくすることができます。
インストラクション内でファイルや URL など、特定のコンテキストを参照するには、Markdown リンクを使用できます。
カスタムインストラクションの例
次の例は、カスタムインストラクションの使用方法を示しています。コミュニティからのより多くの例については、Awesome Copilot リポジトリを参照してください。
例: 一般的なコーディングガイドライン
---
applyTo: "**"
---
# Project general coding standards
## Naming Conventions
- Use PascalCase for component names, interfaces, and type aliases
- Use camelCase for variables, functions, and methods
- Prefix private class members with underscore (_)
- Use ALL_CAPS for constants
## Error Handling
- Use try/catch blocks for async operations
- Implement proper error boundaries in React components
- Always log errors with contextual information
例: 言語固有のコーディングガイドライン
これらのインストラクションが一般的なコーディングガイドラインファイルを参照していることに注目してください。インストラクションを複数のファイルに分割することで、整理された状態を保ち、特定のトピックに焦点を当てることができます。
---
applyTo: "**/*.ts,**/*.tsx"
---
# Project coding standards for TypeScript and React
Apply the [general coding guidelines](./general-coding.instructions.md) to all code.
## TypeScript Guidelines
- Use TypeScript for all new code
- Follow functional programming principles where possible
- Use interfaces for data structures and type definitions
- Prefer immutable data (const, readonly)
- Use optional chaining (?.) and nullish coalescing (??) operators
## React Guidelines
- Use functional components with hooks
- Follow the React hooks rules (no conditional hooks)
- Use React.FC type for components with children
- Keep components small and focused
- Use CSS modules for component styling
例: ドキュメント作成ガイドライン
ドキュメント作成のような非開発活動を含む、さまざまな種類のタスクのインストラクションファイルを作成できます。
---
applyTo: "docs/**/*.md"
---
# Project documentation writing guidelines
## General Guidelines
- Write clear and concise documentation.
- Use consistent terminology and style.
- Include code examples where applicable.
## Grammar
* Use present tense verbs (is, open) instead of past tense (was, opened).
* Write factual statements and direct commands. Avoid hypotheticals like "could" or "would".
* Use active voice where the subject performs the action.
* Write in second person (you) to speak directly to readers.
## Markdown Guidelines
- Use headings to organize content.
- Use bullet points for lists.
- Include links to related resources.
- Use code blocks for code snippets.
.github/copilot-instructions.mdファイルを使用する
ワークスペースのルートにある単一の.github/copilot-instructions.md Markdown ファイルでカスタムインストラクションを定義します。VS Code は、このワークスペース内のすべてのチャットリクエストにこのファイルのインストラクションを自動的に適用します。
.github/copilot-instructions.mdファイルを使用するには
-
github.copilot.chat.codeGeneration.useInstructionFiles設定を有効にします。
-
ワークスペースのルートに
.github/copilot-instructions.mdファイルを作成します。必要に応じて、まず.githubディレクトリを作成します。 -
自然言語と Markdown 形式を使用してインストラクションを記述します。
Visual Studio および GitHub.com の GitHub Copilot も.github/copilot-instructions.mdファイルを検出します。VS Code と Visual Studio の両方で使用するワークスペースがある場合、同じファイルを使用して両方のエディターのカスタムインストラクションを定義できます。
.instructions.mdファイルを使用する
すべてのチャットリクエストに適用される単一のインストラクションファイルを使用する代わりに、特定のファイルタイプまたはタスクに適用される複数の.instructions.mdファイルを作成できます。たとえば、異なるプログラミング言語、フレームワーク、またはプロジェクトタイプのインストラクションファイルを作成できます。
インストラクションファイルのヘッダーにあるapplyToフロントマタープロパティを使用すると、自動的に適用されるファイルを定義するグロブパターンを指定できます。インストラクションファイルはファイルの作成または変更時に使用され、通常、読み取り操作には適用されません。
あるいは、チャットビューでコンテキストを追加 > インストラクションオプションを使用して、インストラクションファイルを特定のチャットプロンプトに手動で添付することもできます。
- ワークスペースインストラクションファイル: ワークスペース内でのみ利用可能で、ワークスペースの
.github/instructionsフォルダーに保存されます。 - ユーザーインストラクションファイル: 複数のワークスペースで利用可能で、現在のVS Code プロファイルに保存されます。
インストラクションファイルの形式
インストラクションファイルは.instructions.md拡張子を使用し、次の構造を持ちます
-
ヘッダー (オプション): YAML フロントマター
description: チャットビューのホバー時に表示される説明applyTo: 自動適用用のグロブパターン (すべてのファイルには**を使用)
-
本文: Markdown 形式のインストラクション
例
---
applyTo: "**/*.py"
---
# Project coding standards for Python
- Follow the PEP 8 style guide for Python.
- Always prioritize readability and clarity.
- Write clear and concise comments for each function.
- Ensure functions have descriptive names and include type hints.
- Maintain proper indentation (use 4 spaces for each level of indentation).
インストラクションファイルの作成
インストラクションファイルを作成する際に、ワークスペースまたはユーザープロファイルのどちらに保存するかを選択します。ワークスペースインストラクションファイルはそのワークスペースにのみ適用されますが、ユーザーインストラクションファイルは複数のワークスペースで利用可能です。
インストラクションファイルを作成するには
-
チャットビューで、チャットを構成 > インストラクションを選択し、新しいインストラクションファイルを選択します。

あるいは、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) からチャット: 新しいインストラクションファイルコマンドを使用します。
-
インストラクションファイルを作成する場所を選択します。
-
ワークスペース: デフォルトでは、ワークスペースインストラクションファイルはワークスペースの
.github/instructionsフォルダーに保存されます。ワークスペース用のインストラクションフォルダーは、chat.instructionsFilesLocations設定で追加できます。 -
ユーザープロファイル: ユーザーインストラクションファイルは現在のプロファイルフォルダーに保存されます。設定同期を使用して、複数のデバイス間でユーザーインストラクションファイルを同期できます。
-
-
インストラクションファイルの名前を入力します。
-
Markdown 形式を使用してカスタムインストラクションを作成します。
インストラクションを自動的に適用する時期を構成するために、ヘッダーに
applyToメタデータプロパティを指定します。たとえば、TypeScript ファイルのみにインストラクションを適用するには、applyTo: "**/*.ts,**/*.tsx"を指定できます。追加のワークスペースファイルを参照するには、Markdown リンク (
[index](../index.ts)) を使用します。
既存のインストラクションファイルを変更するには、チャットビューでチャットを構成 > インストラクションを選択し、リストからインストラクションファイルを選択します。あるいは、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) からチャット: インストラクションを構成コマンドを使用し、クイックピックからインストラクションファイルを選択します。
AGENTS.mdファイルを使用する
ワークスペースで複数の AI エージェントと連携する場合、ワークスペースのルートにあるAGENTS.md Markdown ファイルですべてのエージェントのカスタムインストラクションを定義できます。VS Code は、このワークスペース内のすべてのチャットリクエストにこのファイルのインストラクションを自動的に適用します。
AGENTS.mdファイルのサポートを有効または無効にするには、chat.useAgentsMdFile設定を構成します。
複数のAGENTS.mdファイルを使用する (実験的)
プロジェクトの異なる部分に異なるインストラクションを適用したい場合、サブフォルダーで複数のAGENTS.mdファイルを使用することは便利です。たとえば、フロントエンドコード用とバックエンドコード用にそれぞれAGENTS.mdファイルを持つことができます。
ワークスペース内のネストされたAGENTS.mdファイルのサポートを有効または無効にするには、実験的なchat.useNestedAgentsMdFiles設定を使用します。
有効にすると、VS Code はワークスペースのすべてのサブフォルダーでAGENTS.mdファイルを再帰的に検索し、それらの相対パスをチャットコンテキストに追加します。エージェントは、編集されているファイルに基づいて使用するインストラクションを決定できます。
フォルダー固有のインストラクションには、フォルダー構造に一致する異なるapplyToパターンを持つ複数の.instructions.mdファイルを使用することもできます。
設定でカスタムインストラクションを指定する
VS Code のユーザーまたはワークスペース設定を使用して、特殊なシナリオのカスタムインストラクションを構成できます。
| インストラクションの種類 | 設定名 |
|---|---|
| コードレビュー | github.copilot.chat.reviewSelection.instructions |
| コミットメッセージの生成 | github.copilot.chat.commitMessageGeneration.instructions |
| プルリクエストのタイトルと説明の生成 | github.copilot.chat.pullRequestDescriptionGeneration.instructions |
| コード生成 (非推奨)* | github.copilot.chat.codeGeneration.instructions |
| テスト生成 (非推奨)* | github.copilot.chat.testGeneration.instructions |
* codeGeneration および testGeneration 設定は、VS Code 1.102 以降で非推奨になりました。代わりにインストラクションファイル (.github/copilot-instructions.md または *.instructions.md) を使用することをお勧めします。
カスタムインストラクションは、設定値のテキスト (textプロパティ) として定義するか、ワークスペース内の外部ファイル (fileプロパティ) を参照することができます。
次のコードスニペットは、settings.jsonファイルで一連のインストラクションを定義する方法を示しています。
{
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
{ "text": "Always include a list of key changes." }
],
"github.copilot.chat.reviewSelection.instructions": [
{ "file": "guidance/backend-review-guidelines.md" },
{ "file": "guidance/frontend-review-guidelines.md" }
]
}
ワークスペースのインストラクションファイルを生成する
VS Code はワークスペースを分析し、コーディングプラクティスとプロジェクト構造に一致するカスタムインストラクションを含む.github/copilot-instructions.mdファイルを生成できます。
ワークスペースのインストラクションファイルを生成するには
-
チャットビューで、チャットを構成 > インストラクションを生成を選択します。
-
生成されたインストラクションファイルを確認し、必要な編集を行います。
デバイス間でユーザーインストラクションファイルを同期する
VS Code は、設定同期を使用して、複数のデバイス間でユーザーインストラクションファイルを同期できます。
ユーザーインストラクションファイルを同期するには、プロンプトとインストラクションファイルの設定同期を有効にします。
-
設定同期が有効になっていることを確認してください。
-
コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から設定同期: 構成を実行します。
-
同期する設定のリストからプロンプトとインストラクションを選択します。
カスタムインストラクションを定義するためのヒント
-
インストラクションは短く、自己完結型にしてください。各インストラクションは、単一のシンプルなステートメントである必要があります。複数の情報を提供する必要がある場合は、複数のインストラクションを使用してください。
-
タスクまたは言語固有のインストラクションの場合、トピックごとに複数の
*.instructions.mdファイルを使用し、applyToプロパティを使用して選択的に適用します。 -
プロジェクト固有のインストラクションはワークスペースに保存し、他のチームメンバーと共有してバージョン管理に含めてください。
-
プロンプトファイルやチャットモードでインストラクションファイルを再利用および参照して、それらをクリーンで焦点を絞った状態に保ち、インストラクションの重複を避けてください。