# 初めてのカスタム指示

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

> \[!NOTE]
>
> * このライブラリの例はインスピレーションを得るためのものです。プロジェクト、言語、チーム プロセスに合わせて具体的に調整することをお勧めします。
> * 特定の言語とシナリオ向けのカスタム指示のコミュニティに投稿された例については、[Awesome GitHub Copilot Customizations](https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md) リポジトリを参照してください。
> * カスタム指示は、作成するプラットフォームまたは IDE に応じて、さまざまなスコープにわたって適用できます。 詳しくは、「[GitHub Copilotの応答をカスタマイズする方法](/ja/copilot/concepts/prompting/response-customization)」を参照してください。

## カスタマイズについて

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

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

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

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

* **リポジトリ全体の指示**: リポジトリ内のすべてのファイルに適用される 1 つの `copilot-instructions.md` ファイルをリポジトリ ルートに作成します。
* **パス固有の指示**: 特定のファイルまたはディレクトリにのみ適用される `.instructions.md` フィールドを含む 1 つ以上の `applyTo` ファイルを作成します。 パス固有の手順は、現在、Copilot Chat、\*\*\*\*、およびVisual Studio CodeのVisual Studioでサポートされています。

## 初めての指示

これらの基本的なカスタム指示から始めましょう。そうすれば、GitHub Copilot があなたのコーディングの好みを理解するのに役立ちます。

### 関数の記述に関する指示

```markdown copy
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 Chat の個人用カスタム命令を使用します。

1. まず、[github.com/copilot](https://github.com/copilot?ref_product=copilot\&ref_type=trial\&ref_style=text) に移動し、次のプロンプトを入力します。

   `Create a JavaScript function that calculates the area of a circle`

**カスタム指示がない場合は**、たとえば次のような結果になります。

````
```javascript
function areaOfCircle(radius) {
    if (typeof radius !== 'number' || radius < 0) {
        throw new Error('Radius must be a non-negative number');
    }
    return Math.PI * radius * radius;
}
```
````

1. 次に、ページの左下にあるプロファイル画像をクリックして個人のカスタム手順をaccessし、**個人の指示**をクリックします。 上記の指示をテキスト ボックスに貼り付けて、**\[Save]** をクリックします。

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

**カスタム指示を使うと**、次のような結果になります。

````
```javascript
/**
 * 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
```
````

## 参考資料

* [GitHub Copilotの応答をカスタマイズする方法](/ja/copilot/concepts/prompting/response-customization) - GitHub Copilot での応答カスタマイズの概要
* [Copilot に対してカスタム命令を追加する](/ja/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions) - カスタム指示を構成する方法
* [優れた GitHub Copilot カスタマイズ](https://github.com/github/awesome-copilot/blob/main/README.md) - 特定の言語とシナリオ向けにコミュニティに投稿されたカスタム指示とその他のカスタマイズのリポジトリ