# カスタム指示の追加 GitHub Copilot CLI

プロジェクト Copilot 理解する方法と、その変更をビルド、テスト、検証する方法に関する追加のコンテキストを提供します。

GitHub Copilot では、個人の好み、チームの作業方法、使用するツール、またはプロジェクトの詳細に合わせて調整された応答を提供できます(これを行うのに十分なコンテキストを提供する場合)。 このコンテキストの詳細をプロンプトに繰り返し追加する代わりに、この情報を自動的に追加するカスタム命令を作成できます。 追加情報は表示されませんが、 Copilot して、より高品質な応答を生成できます。

## カスタム指示の種類

GitHub Copilot CLI は、以下の場所からの指示をサポートしています。

次の表に記載されていない限り、 Copilot CLI は、リポジトリ ルート、現在の作業ディレクトリ、それらの間の中間ディレクトリ、および作業中のファイルのパスに入れ子になったディレクトリなど、 **標準の場所**にあるリポジトリとエージェント命令ファイルを検出します。 モジュール命令ファイル (一致する `*.instructions.md`) はパス固有です。 `applyTo` 値を持つファイルは、一致するファイルにのみ適用されます。

| 場所                                                  | スコープと動作                                                                                                    |
| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `$HOME/.copilot/copilot-instructions.md`            | リポジトリ間で適用されるユーザー レベルの命令。                                                                                   |
| `$HOME/.copilot/instructions/**/*.instructions.md`  | モジュール化されたユーザー向け手順。                                                                                         |
| `.github/copilot-instructions.md`                   | 標準の場所で見つかった、リポジトリ全体に適用される指示。                                                                               |
| `.github/instructions/**/*.instructions.md`         | モジュール式のリポジトリ命令。中間ディレクトリではなく、標準の場所で検出されます。                                                                  |
| `AGENTS.md`                                         | 標準の場所で検出されたエージェントの指示。 詳細については、 [agentsmd/agents.md リポジトリ](https://github.com/agentsmd/agents.md)を参照してください。 |
| `CLAUDE.md`                                         | 標準の場所で検出されたエージェントの指示。                                                                                      |
| Copilot CLI では、 `.claude/CLAUDE.md`も使用されます。         |                                                                                                            |
| `GEMINI.md`                                         | 標準の場所で検出されたエージェントの指示。                                                                                      |
| `COPILOT_CUSTOM_INSTRUCTIONS_DIRS` に一覧表示されているディレクトリ | その他の `AGENTS.md` ファイルと `*.instructions.md` ファイル。 複数のディレクトリをコンマで区切ります。                                      |

`COPILOT_HOME`環境変数を設定した場合、Copilot CLIは両方のユーザー レベルの命令の場所に`$HOME/.copilot`ではなく、そのディレクトリを使用します。

`/instructions` コマンドを使用して、現在のセッションで検出された命令ファイルを表示し、個々のファイルを有効または無効にします。

## 複数の命令ファイルが対話する方法

適用可能なユーザー レベルおよびリポジトリ命令ファイルが複数存在する場合、 Copilot CLI はそれらの命令を結合します。 これにより、同じユーザー レベルの `copilot-instructions.md`、リポジトリ全体、およびエージェント命令の重複コピーが削除されますが、これらのファイル間の一般的な優先順位は定義されません。 命令の競合を避ける。

パス固有の命令は、 `applyTo` 値が、 Copilot CLI が使用しているファイルと一致する場合にのみ含まれます。
`/instructions`を使用して無効にする命令ファイルは含まれません。

## リポジトリ全体のカスタム指示の作成

1. リポジトリのルートで、`.github/copilot-instructions.md` という名前のファイルを作成します。

`.github` ディレクトリがまだ存在しない場合は作成します。

1. Markdown 形式で自然言語の指示をファイルに追加します。

   指示と指示の間の空白は無視されます。このため複数の指示を 1 段落に記述することも、1 行に 1 つずつ記述することもできます。あるいは、読みやすくするために空白行で区切ることもできます。

   効果的なカスタム命令の記述については、 [GitHub Copilotの応答をカスタマイズする方法](/ja/copilot/concepts/prompting/response-customization#writing-effective-custom-instructions) を参照してください。

### 他のファイルの参照

`.github/copilot-instructions.md`、`AGENTS.md`、または`CLAUDE.md`では、`@`の後に相対パスを使用して別のファイルを含めます。
Copilot CLI は、参照ファイルを直ちに読み取り、参照ファイル内の参照をサポートします。

参照されるファイルは、リポジトリ内、またはローカル命令用のカスタム命令ディレクトリ内に保持する必要があります。
`~/`で始まる絶対パスとパスは読み込まれません。 ファイル参照は、 `GEMINI.md` ファイルや `*.instructions.md` ファイルでは展開されません。

## パス固有のカスタム指示の作成

1. `.github/instructions` ディレクトリがまだ存在しない場合は作成します。

2. 必要に応じて、 `.github/instructions` のサブディレクトリを作成して命令ファイルを整理します。

3. 1 つ以上の `NAME.instructions.md` ファイルを作成します。ここで、`NAME` は指示の目的を示します。 ファイル名は `.instructions.md` で終わる必要があります。

4. ファイルの先頭に、`applyTo` キーワードを含む frontmatter ブロックを作成します。 glob 構文を使用して、指示が適用されるファイルまたはディレクトリを指定します。

   次に例を示します。

   ```markdown
   ---
   applyTo: "app/models/**/*.rb"
   ---
   ```

   複数のパターンをコンマで区切って指定できます。 たとえば、リポジトリ内のすべての TypeScript ファイルに指示を適用するには、次の frontmatter ブロックを使用できます。

   ```markdown
   ---
   applyTo: "**/*.ts,**/*.tsx"
   ---
   ```

   Glob の例:

   * `*` - 現在のディレクトリ内のすべてのファイルと一致します。
   * `**` または `**/*` - すべてのディレクトリ内のすべてのファイルと一致します。
   * `*.py` - 現在のディレクトリ内のすべての `.py` ファイルと一致します。
   * `**/*.py` - すべてのディレクトリ内のすべての `.py` ファイルと再帰的に一致します。
   * `src/*.py`- `.py` ディレクトリ内のすべての`src` ファイルと一致します。 たとえば、`src/foo.py`と`src/bar.py`しかし\_ではない\_`src/foo/bar.py`。
   * `src/**/*.py`- `.py` ディレクトリ内のすべての`src` ファイルと再帰的に一致します。 たとえば、 `src/foo.py`、 `src/foo/bar.py`、 `src/foo/bar/baz.py`などです。
   * `**/subdir/**/*.py`- 任意の`.py` ディレクトリ内のすべての`subdir` ファイルを任意の深さで再帰的に照合します。 たとえば、`subdir/foo.py`、`subdir/nested/bar.py`、`parent/subdir/baz.py`、`deep/parent/subdir/nested/qux.py` は使用できますが、\_\_ ディレクトリを含まないパスでは`foo.py``subdir`。

5. 必要に応じて、ファイルが Copilot cloud agent または Copilot code reviewによって使用されないようにするには、frontmatter ブロックに `excludeAgent` キーワードを追加します。
   `"code-review"`または`"cloud-agent"`を使用します。

   たとえば、次のファイルは Copilot cloud agentによってのみ読み取られます。

   ```markdown
   ---
   applyTo: "**"
   excludeAgent: "code-review"
   ---
   ```

`excludeAgent` キーワードが front matterblock に含まれていない場合は、Copilot code reviewとCopilot cloud agentの両方で指示が使用されます。

1. Markdown 形式を使い、自然言語でカスタム指示を追加します。 指示と指示の間の空白は無視されます。このため複数の指示を 1 段落に記述することも、1 行に 1 つずつ記述することもできます。あるいは、読みやすくするために空白行で区切ることもできます。

## 使用中のカスタム指示

カスタム命令ファイルに加えた変更は、アクティブな CLI セッションですぐに使用することはできません。 変更を適用するには、現在のセッションを終了してから再開するか ( `copilot --continue`の実行など)、新しいセッションを開始します (たとえば、対話型セッション内から `/new` を使用します)。

## 詳細については、次を参照してください。

* [さまざまな種類のカスタム命令のサポート](/ja/copilot/reference/custom-instructions-support)
* [カスタム指示](/ja/copilot/tutorials/customization-library/custom-instructions) - サンプルの厳選されたコレクション
* [カスタム命令を使用してCopilotのコードレビュー機能を引き出す](/ja/copilot/tutorials/customize-code-review)