Skip to main content

初めてのカスタム指示

この簡単な例を使って、カスタム指示を初めて作成してテストします。

メモ

  • このライブラリの例はインスピレーションを得るためのものです。プロジェクト、言語、チーム プロセスに合わせて具体的に調整することをお勧めします。
  • 特定の言語とシナリオ向けのカスタム指示のコミュニティに投稿された例については、Awesome GitHub Copilot Customizations リポジトリを参照してください。
  • カスタム指示は、作成するプラットフォームまたは IDE に応じて、さまざまなスコープにわたって適用できます。 詳しくは、「GitHub Copilot 応答のカスタマイズについて」を参照してください。

カスタマイズについて

次の 2 種類のファイルを使って、GitHub Copilot の応答をカスタマイズできます。

  •         **カスタム指示**では、ユーザーのすべての対話に対して GitHub Copilot がどのように動作する必要があるかについての実行時のガイダンスを提供します。
    
  •         **プロンプト ファイル (パブリック プレビュー)** では、必要に応じて呼び出すことができる、特定のタスクに対する再利用可能なプロンプトを定義します。 プロンプト ファイルは、VS Code および JetBrains IDE でのみ使用できます。概要の例については、 [AUTOTITLE](/copilot/tutorials/customization-library/prompt-files/your-first-prompt-file) を参照してください。
    

カスタム指示は各 AI ワークフローにコンテキストを追加するのに役立ちますが、プロンプト ファイルを使うと、チャットの特定の対話に指示を追加できます。

最もよく使われてサポートされるのはリポジトリ カスタム指示ですが、GitHub の GitHub Copilot チャット の場合のみ、個人および organization のカスタム指示を定義することもできます。 リポジトリのカスタム指示は、次の 2 つの方法で作成できます。

  • リポジトリ全体の指示: リポジトリ内のすべてのファイルに適用される 1 つの copilot-instructions.md ファイルをリポジトリ ルートに作成します。
  • パス固有の指示: 特定のファイルまたはディレクトリにのみ適用される applyTo フィールドを含む 1 つ以上の .instructions.md ファイルを作成します。 パス固有の指示は、現在、Visual Studio Code の Copilot チャットGitHub Copilot コーディング エージェントでサポートされています。

初めての指示

最初に見るのは、GitHub Copilot がコーディングの優先事項を理解するのに役立つ、次のコア カスタム指示です。

関数の記述に関する指示

Markdown
When writing functions, always:
- Add descriptive JSDoc comments
- Include input validation
- Use early returns for error conditions
- Add meaningful variable names
- Include at least one example usage in comments

これらの指示により、GitHub Copilot が関数を生成する方法が変わります。

テストする

カスタム命令で実行できる違いをすばやくテストするには、Copilot チャット の個人用カスタム命令を使用します。

  1. 最初に、github.com/copilot に移動して次のプロンプトを入力します。

    Create a JavaScript function that calculates the area of a circle

           **カスタム指示がない場合は**、たとえば次のような結果になります。
    
    function areaOfCircle(radius) {
        if (typeof radius !== 'number' || radius < 0) {
            throw new Error('Radius must be a non-negative number');
        }
        return Math.PI * radius * radius;
    }
    
  2. 次に、ページの左下にあるプロフィール画像をクリックして個人のカスタム指示にアクセスし、[Personal instructions] をクリックします。 上記の指示をテキスト ボックスに貼り付けて、[Save] をクリックします。

    次に、前に入力したのと同じプロンプトを入力します。

           **カスタム指示を使うと**、次のような結果になります。
    
    /**
     * Calculates the area of a circle given its radius.
     *
     * @param {number} radius - The radius of the circle. Must be a positive number.
     * @returns {number|null} The area of the circle, or null if the input is invalid.
     *
     * @example
     * // returns 78.53981633974483
     * areaOfCircle(5);
     *
     * @example
     * // returns null (invalid input)
     * areaOfCircle(-2);
     */
    function areaOfCircle(radius) {
      if (typeof radius !== "number" || isNaN(radius) || radius <= 0) {
        // Invalid input: radius must be a positive number
        return null;
      }
    
      const area = Math.PI * Math.pow(radius, 2);
      return area;
    }
    
    // Example usage:
    console.log(areaOfCircle(5));   // 78.53981633974483
    console.log(areaOfCircle(-2));  // null
    

参考資料