Skip to main content

カスタム指示の追加 GitHub Copilot CLI(コマンドラインインターフェース)

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

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

カスタム指示の種類

GitHub Copilot CLI(コマンドラインインターフェース) は、以下の場所からの指示をサポートしています。

次の表に記載されていない限り、 Copilot CLI (コパイロット 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 リポジトリを参照してください。
CLAUDE.md標準的な場所に保存されているエージェントの操作手順。
Copilot CLI (コパイロット CLI) では、 .claude/CLAUDE.mdも使用されます。
GEMINI.md標準の場所で検出されたエージェントの指示。
COPILOT_CUSTOM_INSTRUCTIONS_DIRS に一覧表示されているディレクトリその他の AGENTS.md ファイルと *.instructions.md ファイル。 複数のディレクトリをコンマで区切ります。

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

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

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

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

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

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

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

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

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

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

    効果的なカスタム命令の記述については、 GitHub Copilotの応答をカスタマイズする方法 を参照してください。

他のファイルの参照

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

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

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

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

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

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

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

    次に例を示します。

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

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

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

    Glob の例:

    • * - 現在のディレクトリ内のすべてのファイルと一致します。
    • ** または **/* - すべてのディレクトリ内のすべてのファイルと一致します。
    • *.py - 現在のディレクトリ内のすべての .py ファイルと一致します。
    • **/*.py - すべてのディレクトリ内のすべての .py ファイルと再帰的に一致します。
    • src/*.py- .py ディレクトリ内のすべてのsrc ファイルと一致します。 たとえば、src/foo.pysrc/bar.pyしかし_ではない_src/foo/bar.py
    • src/**/*.py- .py ディレクトリ内のすべてのsrc ファイルと再帰的に一致します。 たとえば、 src/foo.pysrc/foo/bar.pysrc/foo/bar/baz.pyなどです。
    • **/subdir/**/*.py- 任意の.py ディレクトリ内のすべてのsubdir ファイルを任意の深さで再帰的に照合します。 たとえば、subdir/foo.pysubdir/nested/bar.pyparent/subdir/baz.pydeep/parent/subdir/nested/qux.py は使用できますが、__ ディレクトリを含まないパスではfoo.py``subdir
  5. 必要に応じて、ファイルが Copilot クラウドエージェント または Copilotコード レビューによって使用されないようにするには、frontmatter ブロックに excludeAgent キーワードを追加します。 "code-review"または"cloud-agent"を使用します。

    たとえば、次のファイルは Copilot クラウドエージェントによってのみ読み取られます。

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

excludeAgent キーワードが front matterblock に含まれていない場合は、Copilotコード レビューとCopilot クラウドエージェントの両方で指示が使用されます。

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

使用中のカスタム指示

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

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