VS Codeでのカスタム指示の使用
カスタムインストラクションを使用すると、AIがコードを生成したり、その他の開発タスクを処理したりする方法に自動的に影響を与える共通のガイドラインやルールを定義できます。チャットプロンプトごとに手動でコンテキストを含める代わりに、Markdownファイルでカスタムインストラクションを指定することで、コーディング習慣やプロジェクト要件に沿った一貫したAIの応答を確保できます。
カスタムインストラクションは、すべてのチャットリクエストに自動的に適用されるように設定することも、特定のファイルのみに適用されるように設定することもできます。あるいは、特定のチャットプロンプトにカスタムインストラクションを手動で添付することも可能です。
エージェントカスタマイズエディター (プレビュー) を使用すると、すべてのエージェントカスタマイズを1か所で検出、作成、管理できます。コマンドパレットから Chat: Open Customizations を実行してください。
カスタムインストラクションは、エディターでの入力中に表示されるインラインサジェストには反映されません。
インストラクションファイルのタイプ
VS Codeは2つのカテゴリーのカスタムインストラクションをサポートしています。プロジェクト内に複数のインストラクションファイルがある場合、VS Codeはそれらを組み合わせてチャットコンテキストに追加します(特定の順序は保証されません)。
常時適用されるインストラクション (Always-on instructions)
常時適用されるインストラクションは、すべてのチャットリクエストに自動的に含まれます。プロジェクト全体のコーディング標準、アーキテクチャの決定、すべてのコードに適用される規約などに使用してください。
-
単一の
.github/copilot-instructions.mdファイル- ワークスペース内のすべてのチャットリクエストに自動的に適用されます
- ワークスペース内に保存されます
-
1つ以上の
AGENTS.mdファイル- ワークスペースで複数のAIエージェントを使用する場合に便利です
- ワークスペース内のすべてのチャットリクエスト、または特定のサブフォルダーに自動的に適用されます(実験的機能)
- ワークスペースのルートまたはサブフォルダーに保存されます(実験的機能)
-
- GitHub組織内の複数のワークスペースやリポジトリ間でインストラクションを共有します
- GitHub組織レベルで定義されます
-
CLAUDE.mdファイル- Claude Codeおよびその他のClaudeベースのツールとの互換性のため
- ワークスペースのルート、
.claudeフォルダー、またはユーザーホームディレクトリに保存されます
ファイルベースのインストラクション
ファイルベースのインストラクションは、エージェントが作業しているファイルが指定されたパターンと一致する場合、または説明が現在のタスクと一致する場合に適用されます。言語固有の規約、フレームワークのパターン、またはコードベースの特定の部分のみに適用されるルールには、ファイルベースのインストラクションを使用してください。
- 1つ以上の
.instructions.mdファイル- globパターンを使用して、ファイルの種類や場所に基づいて条件付きでインストラクションを適用します
- ワークスペースまたはユーザープロファイルに保存されます
インストラクション内でファイルやURLなどの特定のコンテキストを参照するには、Markdownリンクを使用できます。
どの方法を使うべきか? プロジェクト全体のコーディング標準については、まず単一の .github/copilot-instructions.md ファイルから始めてください。ファイルの種類やフレームワークごとに異なるルールが必要な場合は .instructions.md ファイルを追加します。ワークスペースで複数のAIエージェントを使用している場合は AGENTS.md を使用してください。
.github/copilot-instructions.md ファイルを使用する
VS Codeは、ワークスペースのルートにある .github/copilot-instructions.md Markdownファイルを自動的に検出し、このワークスペース内のすべてのチャットリクエストに適用します。
copilot-instructions.md を使用するケース
- プロジェクト全体に適用されるコーディングスタイルと命名規則
- 技術スタックの宣言と推奨ライブラリ
- 従うべき、または避けるべきアーキテクチャパターン
- セキュリティ要件とエラーハンドリングのアプローチ
- ドキュメント化の標準
ワークスペースに .github/copilot-instructions.md ファイルを作成する手順は以下の通りです
-
ワークスペースのルートに
.github/copilot-instructions.mdファイルを作成します。必要に応じて、まず.githubディレクトリを作成してください。 -
Markdown形式でインストラクションを記述します。最適な結果を得るために、簡潔かつ的を絞った内容にしてください。
VS Codeは、常時適用されるインストラクションとして AGENTS.md ファイル の使用もサポートしています。
例:一般的なコーディングガイドライン
---
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
.instructions.md ファイルを使用する
*.instructions.md Markdownファイルを使用してファイルベースのインストラクションを作成できます。これらは、エージェントが作業しているファイルやタスクに基づいて動的に適用されます。
エージェントは、インストラクションファイルのヘッダーにある applyTo プロパティで指定されたファイルパターン、またはインストラクションの説明と現在のタスクとの意味的な一致に基づいて、どのインストラクションファイルを適用するかを判断します。
.instructions.md ファイルを使用するケース
- フロントエンドとバックエンドのコードで異なる規約がある場合
- モノレポ内での言語固有のガイドライン
- 特定のモジュールに対するフレームワーク固有のパターン
- テストファイルやドキュメントのための特殊なルール
インストラクションファイルの場所
特定のワークスペース用、またはすべてのワークスペースに適用されるユーザーレベルのインストラクションを定義できます。次の表は、スコープごとのインストラクションファイルのデフォルトの場所を示しています。ワークスペース用インストラクションファイルの追加の場所は、 chat.instructionsFilesLocations ... 設定で構成できます。
| スコープ | デフォルトのファイル場所 |
|---|---|
| ワークスペース | .github/instructions フォルダー |
| ワークスペース (Claude形式) | .claude/rules フォルダー |
| ユーザープロファイル | ~/.copilot/instructions、~/.claude/rules、またはユーザーデータ(VS Codeプロファイル固有) |
VS Codeはこれらのフォルダーを再帰的に検索するため、サブディレクトリにインストラクションファイルを整理できます。たとえば、チーム、言語、またはモジュールごとにインストラクションをグループ化できます。
.github/instructions/
frontend/
react.instructions.md
accessibility.instructions.md
backend/
api-design.instructions.md
testing/
unit-tests.instructions.md
以下の例は、ワークスペースレベルのインストラクションのみを許可するようにインストラクションファイルの場所を構成する方法を示しています。
"chat.instructionsFilesLocations": {
".github/instructions": true,
".claude/rules": true,
"~/.copilot/instructions": false,
"~/.claude/rules": false
}
モノレポでは、 chat.useCustomizationsInParentRepositories ... を有効にして、親リポジトリのルートからインストラクションを検出できるようにします。親リポジトリの検出について詳しくはこちら。
インストラクションファイルのフォーマット
インストラクションファイルは .instructions.md 拡張子を持つMarkdownファイルです。オプションのYAMLフロントマターヘッダーで、インストラクションが適用されるタイミングを制御します。
| フィールド | 必須 | 説明 |
|---|---|---|
名前 |
なし | UIに表示される表示名。デフォルトはファイル名です。 |
説明 |
なし | チャットビューでホバーしたときに表示される短い説明。 |
applyTo |
なし | ワークスペースのルートを基準として、インストラクションが自動的に適用されるファイルを定義するglobパターン。すべてのファイルに適用するには ** を使用します。指定しない場合、インストラクションは自動的には適用されませんが、チャットリクエストに手動で追加することは可能です。 |
本文にはMarkdown形式でインストラクションを記述します。エージェントツールを参照するには #tool:<tool-name> 構文を使用します(例:#tool:web/fetch)。
---
name: 'Python Standards'
description: 'Coding conventions for Python files'
applyTo: '**/*.py'
---
# Python coding standards
- Follow the PEP 8 style guide.
- Use type hints for all function signatures.
- Write docstrings for public functions.
- Use 4 spaces for indentation.
インストラクションファイルを作成する
インストラクションファイルを作成する際は、ワークスペースに保存するか、ユーザープロファイルに保存するかを選択します。ワークスペースのインストラクションファイルはそのワークスペースのみに適用されますが、ユーザーインストラクションファイルは複数のワークスペースで使用可能です。
インストラクションファイルを作成するには
チャット入力欄に /instructions と入力して、インストラクションとルールの設定 (Configure Instructions and Rules) メニューを素早く開きます。
-
チャットビューで チャットの設定 (Configure Chat) (歯車アイコン) を選択してエージェントカスタマイズエディターを開き、インストラクション (Instructions) タブを選択します。
-
ドロップダウンから 新しいインストラクション (ワークスペース) または 新しいインストラクション (ユーザー) を選択し、ファイルの保存先を指定します。

または、コマンドパレットから Chat: New Instructions File コマンドを使用します(⇧⌘P (Windows, Linux Ctrl+Shift+P))。
-
場所を選択し、ファイル名を入力します。これはUIで使用されるデフォルトの名前になります。
-
Markdownフォーマットを使用してカスタムインストラクションを作成します。
- ファイル上部のYAMLフロントマターを記入し、インストラクションの説明、名前、適用条件を設定します。
- ファイルの本文にインストラクションを追加します。
エージェントカスタマイズエディターで開くことで、既存のインストラクションファイルを変更できます。
AIを使用してインストラクションファイルを生成する
AIを使用してターゲットを絞ったインストラクションファイルを生成できます。チャットで /create-instruction と入力し、適用したい規約やガイドラインを説明します(例:「このプロジェクトでは常にタブとシングルクォートを使用すること」)。エージェントは確認のための質問を行い、適切な applyTo パターンと内容を含む .instructions.md ファイルを生成します。
進行中の会話からインストラクションを抽出することもできます。たとえば、チャットセッション中にエージェントのインポートスタイルを修正した場合、「extract an instruction from this(これからインストラクションを抽出して)」と依頼すると、その修正をプロジェクトの規約として保存できます。
/create-instruction は、ターゲットを絞ったオンデマンドのインストラクションファイルを生成します。ワークスペース全体に適用される常時インストラクションを生成するには、代わりに /init コマンド を使用してください。
例:言語固有のコーディングガイドライン
これらのインストラクションが一般的なコーディングガイドラインファイルを参照していることに注目してください。インストラクションを複数のファイルに分割することで、整理を保ち、特定のトピックに集中させることができます。
---
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.
コミュニティによるその他の例については、Awesome Copilotリポジトリを参照してください。
AGENTS.md ファイルを使用する
VS Codeはワークスペースのルートにある AGENTS.md Markdownファイルを自動的に検出し、ワークスペース内のすべてのチャットリクエストにそのインストラクションを適用します。これは、ワークスペースで複数のAIエージェントを使用しており、それらすべてで認識される単一のインストラクションセットが必要な場合、またはモノレポの特定部分に適用されるサブフォルダーレベルのインストラクションが必要な場合に便利です。
AGENTS.md を使用するケース
- 複数のAIコーディングエージェントを使用していて、それらすべてで共通のインストラクションセットを認識させたい場合
- モノレポの特定部分に適用されるサブフォルダーレベルのインストラクションが必要な場合
AGENTS.md ファイルのサポートを有効または無効にするには、 chat.useAgentsMdFile ... 設定を構成します。
複数の AGENTS.md ファイルを使用する(実験的機能)
サブフォルダー内に複数の AGENTS.md ファイルを使用することは、プロジェクトの異なる部分に異なるインストラクションを適用したい場合に便利です。たとえば、フロントエンドコード用とバックエンドコード用にそれぞれ AGENTS.md ファイルを作成できます。
実験的な chat.useNestedAgentsMdFiles ... 設定を使用して、ワークスペース内でのネストされた AGENTS.md ファイルのサポートを有効または無効にします。
有効にすると、VS Codeはワークスペースのすべてのサブフォルダーを再帰的に検索して AGENTS.md ファイルを探し、その相対パスをチャットコンテキストに追加します。その後、エージェントは編集中のファイルに基づいて使用するインストラクションを決定できます。
フォルダー固有のインストラクションについては、フォルダー構造と一致する異なる applyTo パターンを持つ複数の .instructions.md ファイルを使用することもできます。
CLAUDE.md ファイルを使用する
VS Codeは CLAUDE.md ファイルを自動的に検出し、AGENTS.md と同様に常時適用されるインストラクションとして適用します。これは、Claude Codeやその他のClaudeベースのツールをVS Codeと併用しており、それらすべてで認識される単一のインストラクションセットが必要な場合に便利です。
VS Codeは以下の場所で CLAUDE.md ファイルを検索します
| 場所 | 説明 |
|---|---|
| ワークスペースのルート | ワークスペースのルートにある CLAUDE.md |
.claude フォルダー |
ワークスペース内の .claude/CLAUDE.md |
| ユーザーホーム | すべてのプロジェクトで個人のインストラクションを適用するための ~/.claude/CLAUDE.md |
| ローカルバリアント | ローカル専用のインストラクション(バージョン管理にコミットされない)のための CLAUDE.local.md |
CLAUDE.md ファイルのサポートを有効または無効にするには、 chat.useClaudeMdFile ... 設定を構成します。
.claude/rules インストラクションファイルの場合、VS Codeはglobパターンのために applyTo の代わりに paths プロパティを使用し、Claude Rulesフォーマットに従います。paths プロパティはglobパターンの配列を受け入れ、省略した場合は **(すべてのファイル)がデフォルトとなります。
ワークスペース用のカスタムインストラクションを生成する
VS Codeはワークスペースを分析し、コーディング習慣やプロジェクト構造に合致した常時適用されるカスタムインストラクションを生成できます。これらのインストラクションは、ワークスペース内のすべてのチャットリクエストに自動的に適用されます。
インストラクションを生成する際、VS Codeは以下の手順を実行します
copilot-instructions.mdやAGENTS.mdファイルなど、ワークスペース内の既存のAI規約を検出します。- プロジェクトの構造とコーディングパターンを分析します。
- プロジェクトに合わせて調整された包括的なワークスペースインストラクションを生成します。
ワークスペース用のカスタムインストラクションを生成するには
-
チャット入力ボックスに
/initと入力して Enter キーを押します。 -
/create-instructionsと入力し、続けて生成したいインストラクションの説明を入力します。 -
エージェントカスタマイズエディターで、ドロップダウンから インストラクションの生成 (Generate Instructions) を選択します。
チーム間でカスタムインストラクションを共有する
GitHub組織内の複数のワークスペースやリポジトリ間でカスタムインストラクションを共有するには、GitHub組織レベルでそれらを定義できます。
VS Codeは、アカウントがアクセス権を持つ組織レベルで定義されたカスタムインストラクションを自動的に検出します。これらのインストラクションは、個人やワークスペースのインストラクションと一緒に チャットインストラクション (Chat Instructions) メニューに表示され、すべてのチャットリクエストに自動的に適用されます。
組織レベルのカスタムインストラクションの検出を有効にするには、 github.copilot.chat.organizationInstructions.enabled ... を true に設定します。
GitHubドキュメントで、組織のカスタムインストラクションを追加する方法を確認してください。
デバイス間でユーザーインストラクションファイルを同期する
VS Codeは、Settings Syncを使用して、ユーザーインストラクションファイルを複数のデバイス間で同期できます。
ユーザーインストラクションファイルを同期するには、Settings Syncを有効にし、コマンドパレットから Settings Sync: Configure を実行します(⇧⌘P (Windows, Linux Ctrl+Shift+P))。同期する設定のリストから プロンプトとインストラクション (Prompts and Instructions) を選択します。
設定でカスタムインストラクションを指定する
設定ベースのコード生成およびテスト生成インストラクションは、VS Code 1.102より非推奨となりました。代わりにファイルベースのインストラクションを使用してください。
コードレビュー、コミットメッセージ、プルリクエストの説明については、引き続きVS Codeの設定を使用してカスタムインストラクションを定義できます。これらの設定は、text プロパティ(インラインインストラクション)または file プロパティ(Markdownファイルへのパス)を持つオブジェクトの配列を受け入れます。
| シナリオ | 設定 |
|---|---|
| コードレビュー | github.copilot.chat.reviewSelection.instructions |
| コミットメッセージ | github.copilot.chat.commitMessageGeneration.instructions |
| プルリクエストの説明 | github.copilot.chat.pullRequestDescriptionGeneration.instructions |
インストラクションの優先順位
複数のタイプのカスタムインストラクションが存在する場合、それらはすべてAIに提供されます。競合が発生した場合は、優先度の高いインストラクションが優先されます。
- 個人的なインストラクション(ユーザーレベル、最高優先度)
- リポジトリのインストラクション (
.github/copilot-instructions.mdまたはAGENTS.md) - 組織のインストラクション(最低優先度)
効果的なインストラクションを書くためのヒント
-
インストラクションは短く、完結したものにしてください。各インストラクションは1つの単純な記述であるべきです。複数の情報を提供する必要がある場合は、複数のインストラクションを使用してください。
-
ルールの背後にある根拠を含めてください。規約が存在する理由をインストラクションで説明すると、エッジケースにおいてAIはより良い判断を下せます。例:「
moment.jsは非推奨でありバンドルサイズを増大させるため、代わりにdate-fnsを使用すること。」 -
具体的なコード例で、推奨パターンと回避すべきパターンを示してください。AIは抽象的なルールよりも、例に対してより効果的に反応します。
-
自明ではないルールに焦点を当ててください。標準的なリンターやフォーマッターが既に強制している規約は省略してください。
-
タスクや言語固有のインストラクションについては、トピックごとに複数の
*.instructions.mdファイルを使用し、applyToプロパティを使用して選択的に適用してください。 -
プロジェクト固有のインストラクションはワークスペースに保存し、他のチームメンバーと共有してバージョン管理に含めてください。
-
インストラクションを明確かつ焦点を絞ったものにし、インストラクションの重複を避けるために、プロンプトファイルや カスタムエージェント内でインストラクションファイルを再利用および参照してください。
-
インストラクション間の空白は無視されるため、読みやすさを考慮して、1つの段落として記述したり、別の行に分けたり、空白行で区切ったりしてフォーマットできます。
よくある質問
インストラクションファイルが適用されないのはなぜですか?
チャットのカスタマイズ診断ビューを使用して、読み込まれたすべてのインストラクションファイルとエラーを確認できます。チャットビューで右クリックし、診断 (Diagnostics) を選択します。VS CodeでのAIのトラブルシューティングについて詳しくはこちら。
インストラクションファイルが適用されない場合は、以下を確認してください。
-
インストラクションファイルが正しい場所にあることを確認してください。
.github/copilot-instructions.mdファイルは、ワークスペースのルートにある.githubフォルダー内に存在する必要があります。*.instructions.mdファイルは、 chat.instructionsFilesLocations ... 設定(デフォルト:.github/instructions)で指定されたフォルダー(またはそのサブディレクトリ)内、あるいはユーザープロファイル内に存在する必要があります。 -
*.instructions.mdファイルの場合、applyToglobパターンが作業中のファイルと一致しているか確認してください。applyToプロパティが指定されていない場合、インストラクションファイルは自動的には適用されません。チャット応答の 参照 (References) セクションを確認し、どのインストラクションファイルが使用されたかを確認してください。 -
関連する設定が有効になっているか確認してください:パターンベースのインストラクションには chat.includeApplyingInstructions ... 、Markdownリンクを介して参照されるインストラクションには chat.includeReferencedInstructions ... 、
AGENTS.mdファイルには chat.useAgentsMdFile ... が必要です。
高度な診断については、チャットデバッグビューで言語モデルのリクエストを確認するか、applyTo マッチングロジックをデバッグすることができます。
カスタムインストラクションファイルの由来を確認するにはどうすればよいですか?
カスタムインストラクションファイルには、組み込みのもの、プロファイルでユーザー定義されたもの、現在のワークスペースでワークスペース定義されたもの、組織レベルのもの、拡張機能から提供されたものなど、さまざまなソースがあります。
カスタムインストラクションファイルのソースを特定するには
- コマンドパレットから Chat: Configure Instructions を選択します(⇧⌘P (Windows, Linux Ctrl+Shift+P))。
- リスト内のインストラクションファイルの上にマウスを置きます。ソースの場所がツールチップに表示されます。
チャットのカスタマイズ診断ビューを使用して、読み込まれたすべてのインストラクションファイルとエラーを確認できます。チャットビューで右クリックし、診断 (Diagnostics) を選択します。VS CodeでのAIのトラブルシューティングについて詳しくはこちら。