Skip to main content

GitHub Copilot のリポジトリ カスタム命令を追加する

Copilot Chat のすべての質問に情報を自動的に追加するファイルをリポジトリに作成できます。

Note

  • この機能は現在パブリック プレビューにあり、変更される可能性があります。

  • 現在、カスタム指示は、Visual Studio、VS Code の Copilot Chat、GitHub Web サイトでサポートされています。

    この記事のこのバージョンは、GitHub Web サイト上でリポジトリのカスタム命令を使うためのものです。 他の環境でカスタム指示を使う方法については、上のタブをクリックします。

Note

  • この機能は現在パブリック プレビューにあり、変更される可能性があります。

  • 現在、カスタム指示は、Visual Studio、VS Code の Copilot Chat、GitHub Web サイトでサポートされています。

    この記事のこのバージョンは、VS Code でリポジトリのカスタム命令を使うためのものです。 他の環境でカスタム指示を使う手順については、上のタブをクリックします。

Note

  • この機能は現在パブリック プレビューにあり、変更される可能性があります。

  • 現在、カスタム指示は、Visual Studio、VS Code の Copilot Chat、GitHub Web サイトでサポートされています。

    この記事のこのバージョンは、Visual Studio でリポジトリのカスタム命令を使うためのものです。 他の環境でカスタム指示を使う手順については、上のタブをクリックします。

GitHub Copilot Chat

のリポジトリのカスタム命令について

GitHub Copilot は、チームの活動方法、使用するツール、またはプロジェクトの詳細に合わせて調整されたチャット応答を提供できます (そのために十分なコンテキストを指定した場合)。 このコンテキストの詳細をチャットの質問に繰り返し追加するのではなく、この情報を自動的に追加するファイルをリポジトリ内に作成できます。 追加情報はチャットには表示されませんが、Copilot が使用して、より高品質の応答を生成できます。

さらに、プロンプト ファイルを作成することもできます。 プロンプト ファイルを使うと、共通のプロンプト命令と関連するコンテキストを Markdown ファイル (*.prompt.md) に指定できます。また、チャット プロンプトでそれを再利用できます。 プロンプト ファイルは、VS Code でのみ使用できます。

また、個人用カスタム命令を作成して、ユーザーとして Copilot Chat と GitHub 内で行う会話に適用することもできます。 これは、1 つのリポジトリのコンテキストで会話に適用されるリポジトリのカスタム命令とは異なります。 個人用命令の詳細については、「GitHub Copilot 用に個人用カスタム命令を追加する」を参照してください。

前提条件

  • カスタム指示ファイル (以下の手順を参照)。
  • カスタム指示を使うかどうかという個人の選択肢は、有効に設定する必要があります。 この機能は、既定では有効になっています。 この記事で後述する「リポジトリのカスタム命令の有効化または無効化」を参照してください。
  • Copilot Business サブスクリプションを持っている場合、パブリック プレビュー 期間中は、サブスクリプションを受信する organization は [Opt in to preview features] 設定を有効にしておく必要があります。 「organization 内での Copilot のポリシーの管理」を参照してください。

リポジトリのカスタム命令ファイルを作成する

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

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

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

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

サンプルの指示

この .github/copilot-instructions.md ファイルの例には、すべてのチャットの質問に追加される 3 つの指示が含まれています。

We use Bazel for managing our Java dependencies, not Maven, so when talking about Java packages, always give me instructions and code samples that use Bazel.

We always write JavaScript with double quotes and tabs for indentation, so when your responses include JavaScript code, please follow those conventions.

Our team uses Jira for tracking items of work.

効果的なリポジトリのカスタム命令を作成する

.github/copilot-instructions.md ファイルに追加する指示は、ユーザーのチャット質問を補完するコンテキストすなわち関連情報を追加する、短い自己完結型の文章であることが必要です。

次のような種類の指示は、期待したとおりに作動する可能性が低く、Copilot の他の領域で問題が発生する可能性があります。

  • 応答を作成するときに外部リソースを参照するという要求
  • 特定のスタイルで回答するという指示
  • 常に特定の詳細レベルで応答するという要求

したがって、次の指示では意図した結果が得られない可能性が高いです。

Always conform to the coding styles defined in styleguide.md in repo my-org/my-repo when generating code.

Use @terminal when answering questions about Git.

Answer all questions in the style of a friendly colleague, using informal language.

Answer all questions in less than 1000 characters, and words of no more than 12 characters.

使われているリポジトリのカスタム命令

.github/copilot-instructions.md ファイルの指示は、ファイルを保存するとすぐに Copilot Chat によって使用できます。 完全な指示セットは、指示ファイルを含むリポジトリに関連するチャット プロンプトに自動的に追加されます。

イマーシブ モード (https://github.com/copilot ページ) では、指示ファイルを含むリポジトリを添付ファイルとして追加することで、カスタム指示を使う会話を開始できます。

カスタム指示は Copilot Chat には表示されませんが、チャット パネルのチャット応答の上部にある参照一覧を展開することで、Copilot で使われていることを確認できます。 モデルに送信されたプロンプトにカスタム指示が追加されると、.github/copilot-instructions.md ファイルが参照として一覧表示されます。

展開された [References] リストのスクリーンショット。'copilot-instructions.md' ファイルが濃いオレンジ色の枠線で強調表示されています。

参照をクリックしてファイルを開くことができます。

Note

個人用カスタム命令はリポジトリ カスタム命令より優先されますが、どちらも Copilot Chat に提示される最終プロンプトに組み込まれます。 可能な限り、矛盾する個人用命令とリポジトリ命令を提示することは避けてください。 回答の品質に問題がある場合は、リポジトリ命令を一時的に無効にすることもできます。 詳しくは、「GitHub Copilot のリポジトリ カスタム命令を追加する」をご覧ください。

.github/copilot-instructions.md ファイルの指示は、ファイルを保存するとすぐに Copilot Chat によって使用できます。 完全な指示セットは、Copilot Chat ビューまたはインライン チャットで送信した要求に自動的にアタッチされます。

カスタム指示はチャット ビューやインライン チャットには表示されませんが、チャット ビューで応答の参照リストを確認することで、それらが Copilot によって使われていることを確認できます。 モデルに送信されたプロンプトにカスタム指示が追加されると、.github/copilot-instructions.md ファイルが参照として一覧表示されます。 参照をクリックしてファイルを開くことができます。

展開された [References] リストのスクリーンショット。'copilot-instructions.md' ファイルが濃いオレンジ色の枠線で強調表示されています。

.github/copilot-instructions.md ファイルの指示は、ファイルを保存するとすぐに Copilot Chat によって使用できます。 完全な指示セットは、Copilot Chat ビューまたはインライン チャットで送信した要求に自動的にアタッチされます。

カスタム指示はチャット ビューやインライン チャットには表示されませんが、チャット ビューで応答の参照リストを確認することで、それらが Copilot によって使われていることを確認できます。 モデルに送信されたプロンプトにカスタム指示が追加されると、.github/copilot-instructions.md ファイルが参照として一覧表示されます。 参照をクリックしてファイルを開くことができます。

[References] ポップアップのスクリーンショット。'copilot-instructions.md' ファイルが濃いオレンジ色の枠線で強調表示されています。

リポジトリのカスタム命令の有効化または無効化

チャット質問にカスタム指示を追加するかどうかを選択できます。

  1. [Chat] パネルの上部、またはイマーシブ ページの右上にある ボタンをクリックします。
  2. [Disable custom instructions] または [Enable custom instructions] をクリックします。

選んだ内容は、変更するまで保持されます。

  1. キーボード ショートカット Command+, (Mac) / Ctrl+, (Linux/Windows) を使用して設定エディターを開きます。
  2. 検索ボックスに、「instruction file」と入力します。
  3. [Code Generation: Use Instruction Files] の下のチェックボックスをオンまたはオフにします。
  1. Visual Studio メニュー バーの [ツール] で、 [オプション] をクリックします。

    Visual Studio メニュー バーのスクリーンショット。 [ツール] メニューが展開され、[オプション] 項目がオレンジ色の枠線で強調表示されています。

  2. [Options] ダイアログで、検索ボックスに「custom instructions」と入力します。

  3. [(Preview) Enable custom instructions to be loaded from .github/copilot-instructions.md files and added to requests] のチェックボックスをオンまたはオフにします。

プロンプト ファイルについて

Note

プロンプト ファイルは パブリック プレビュー 段階であり、変更される可能性があります。

プロンプト ファイルを使うと、追加のコンテキストを含む再利用可能なプロンプト命令を作成し、共有することができます。 プロンプト ファイルは、Copilot Chat でプロンプトを記述する既存の形式を模倣した Markdown ファイルです (たとえば、Rewrite #file:x.ts)。 これにより、自然言語命令、追加のコンテキストだけでなく、依存関係としての他のプロンプト ファイルへのリンクも組み合わせて使用することができます。

カスタム命令は、各 AI ワークフローにコードベース全体のコンテキストを追加するのに役立ちますが、プロンプト ファイルを使うと、特定のチャット操作に命令を追加できます。

一般的な使用用途は次のとおりです。

  • コードの生成。 コンポーネント、テスト、または移行 (React フォーム、API モックなど) 用の再利用可能なプロンプトを作成します。
  • ドメイン専門知識。 プロンプトを通じて、セキュリティ対策やコンプライアンス チェックなどの専門知識を共有します。
  • チーム コラボレーション。 仕様とドキュメントを参照して、パターンとガイドラインを文書化します。
  • オンボード。 複雑なプロセスやプロジェクト固有のパターンにはステップバイステップ ガイドを作成します。

プロンプト ファイルの例

次の例は、プロンプト ファイルの使用方法を示しています。

  • react-form.prompt.md - フォームを生成するための再利用可能なタスクを文書化します。

    Your goal is to generate a new React form component.
    
    Ask for the form name and fields if not provided.
    
    Requirements for the form:
    - Use form design system components: [design-system/Form.md](../docs/design-system/Form.md)
    - Use `react-hook-form` for form state management:
      - Always define TypeScript types for your form data
      - Prefer *uncontrolled* components using register
      - Use `defaultValues` to prevent unnecessary rerenders
    - Use `yup` for validation:
      - Create reusable validation schemas in separate files
      - Use TypeScript types to ensure type safety
      - Customize UX-friendly validation rules
    
  • security-api.prompt.md - REST API のセキュリティ レビューを行うために使用できる、REST API の再使用可能なセキュリティ プラクティスを文書化します。

    Secure REST API review:
    - Ensure all endpoints are protected by authentication and authorization
    - Validate all user inputs and sanitize data
    - Implement rate limiting and throttling
    - Implement logging and monitoring for security events
    …
    

プロンプト ファイルを使う

プロンプト ファイルを有効にするには、chat.promptFilesVS Code 設定を構成します。 これを true に設定するか、{ "/path/to/folder": boolean } 表記を使って別のパスを指定します。 相対パスはワークスペースのルート フォルダーから解決され、他のパスが指定されない場合は既定値の .github/prompts が使われます。 詳細な手順については、Visual Studio Code ドキュメントの「GitHub Copilot in VS Code の設定リファレンス」を参照してください。

  1. ワークスペースの .github/prompts ディレクトリに .prompt.md ファイルを作成します。

  2. Markdown 形式を使ってプロンプト命令を作成します。

    追加のワークスペース ファイルを Markdown リンク ([index](../index.ts)) として参照するか、プロンプト ファイル内の #file:../index.ts 参照として参照します。 他の .prompt.md ファイルを参照することもできます。

  3. 添付アイコンを選び、**[Prompt...] ** を選び、プロンプト ファイルを選んで、Copilot Chat または Copilot Edits に添付します。

  4. 必要に応じて、タスクに必要な追加のコンテキスト ファイルを添付します。

  5. チャット プロンプトを送信します。

    • 再利用可能なタスクの場合は、追加の命令なしでプロンプトを送信します。
    • 追加の命令を含めることで、現在のタスクのより詳しいコンテキストを提供できます。

Tip

Markdown リンクを使って API 仕様やドキュメントなどの追加のコンテキスト ファイルを参照し、より詳細な情報を Copilot に提供します。