GitHub Copilot Chat応答をカスタマイズする

完了

GitHub Copilot Chatでは、適切なコンテキストが与えられた場合に、コーディングのプラクティスとプロジェクトの要件に一致する応答とコードを生成できます。 この情報をすべてのチャット プロンプトに繰り返し追加する代わりに、このコンテキストをファイルに格納し、すべてのチャット要求に自動的に含めることができます。

Visual Studio Codeで AI 応答をカスタマイズするには、主に次の 3 つの方法があります。

  • カスタム命令: コードの生成、コード レビューの実行、コミット メッセージの生成などのタスクの一般的なガイドラインを定義します。 ここでは、タスクの実行方法について説明し、コーディングプラクティス、優先テクノロジ、セキュリティ規則、またはコミット メッセージ形式を指定できます。

  • プロンプト ファイル: 一般的なタスクの再利用可能なプロンプトを定義します。 これらのスタンドアロン プロンプトでは、何を行う必要があるかを説明します。これには、コンポーネントのスキャフォールディング、コード レビューの実行、ステップ バイ ステップ ガイドの作成、実装計画の生成などが含まれます。

  • カスタム チャット モード: チャットの動作方法、使用できるツール、コードベースとの対話方法を定義します。 たとえば、読み取り専用アクセスを使用する計画モード、外部リソースにアクセスする調査モード、フロントエンド開発などのロール固有のモードなどがあります。

カスタム指示

カスタム手順を使用すると、特定のコーディングプラクティスと技術スタックに一致する応答を取得するガイドラインを記述できます。 このコンテキストをすべてのチャット クエリに手動で含めるのではなく、カスタム命令によってこの情報がすべてのチャット要求に自動的に組み込まれます。

Note

カスタム命令は、コード補完には考慮されません。

カスタム指示の種類

Visual Studio Codeでは、カスタム命令を定義する 3 つの方法がサポートされています。

タイプ Description 使用例
.github/copilot-instructions.md ワークスペース内の単一の Markdown ファイル。すべての要求に自動的に含まれる、エディター間のサポート。 一般的なコーディングプラクティス、推奨されるテクノロジ、プロジェクト全体の要件。
.instructions.md files glob パターンがサポートされている複数の Markdown ファイル、ワークスペース、またはユーザー プロファイル ストレージ。 タスク固有の命令。命令が適用されるタイミングをきめ細かく制御します。
Visual Studio Code設定 特定のシナリオのユーザー/ワークスペース設定の手順。 コードの生成、テストの生成、コミット メッセージ、コード レビュー、PR の説明。

これらの方法を組み合わせることができますが、優先順位が適用されないので、命令の競合を回避できます。

カスタム命令の例

一般的なコーディングガイドライン:

---
applyTo: "**"
---
# Project coding standards

## Naming Conventions
- Use PascalCase for component names, interfaces, and type aliases.
- Use camelCase for variables, functions, and methods.
- Prefix private class members with underscore (_).
- Use ALL_CAPS for constants.

## Error Handling
- Use try/catch blocks for async operations.
- Implement proper error boundaries in React components.
- Always log errors with contextual information.

TypeScript と React のガイドライン:

---
applyTo: "**/*.ts,**/*.tsx"
---
# TypeScript and React standards

Apply the [general coding guidelines](./general-coding.instructions.md) to all code.

## TypeScript Guidelines
- Use TypeScript for all new code.
- Follow functional programming principles where possible.
- Use interfaces for data structures and type definitions.
- Prefer immutable data (const, readonly).
- Use optional chaining (?.) and nullish coalescing (??) operators.

## React Guidelines
- Use functional components with hooks.
- Follow the React hooks rules (no conditional hooks).
- Use React.FC type for components with children.
- Keep components small and focused.
- Use CSS modules for component styling.

.github/copilot-instructions.md ファイルを使用する

カスタム命令をワークスペース ルートの .github/copilot-instructions.md ファイルに格納して、コーディングのプラクティス、推奨されるテクノロジ、プロジェクトの要件について説明します。 これらの手順はワークスペースにのみ適用され、すべてのチャット要求に自動的に含まれます。

セットアップ手順:

  1. github.copilot.chat.codeGeneration.useInstructionFiles が有効になっていることを確認します (最近のバージョンのVisual Studio Codeでは既定で有効になっています)。
  2. ワークスペース ルートに .github/copilot-instructions.md を作成します。
  3. 自然言語と Markdown 形式を使用して手順を説明します。

Note

このファイルは、Visual Studio Code、Visual Studio、および GitHub.com にわたって機能します。

.instructions.md ファイルを使用する

特定のタスク、プログラミング言語、フレームワーク、またはプロジェクトの種類に対して複数の .instructions.md ファイルを作成します。 これらは、ファイル パターンに基づいて自動的に適用することも、チャット プロンプトに手動でアタッチすることもできます。

ファイルの場所:

  • ワークスペース ファイル: .github/instructions フォルダーに格納され、ワークスペース内でのみ使用できます。
  • User files: Visual Studio Code プロファイルに格納され、複数のワークスペースで使用でき、設定の同期を介して同期されます。

ファイル構造:

---
description: "Brief description of the instructions file"
applyTo: "**/*.ts,**/*.tsx"  # Glob pattern for automatic application
---
# Instructions content in Markdown format

命令ファイルを作成して使用します。

  1. コマンド パレットから Chat: New Instructions File を実行します。
  2. ワークスペースまたはユーザーの場所を選択します。
  3. Markdown に名前と作成者の指示を入力します。
  4. Chat: Configure Instructionsを使用して既存のファイルを編集します。

手動添付ファイル:

  • チャット ビューで: コンテキストを追加 > 指示
  • コマンド パレット: Chat: Attach Instructions

自動適用: glob パターンを含む applyTo メタデータを使用します (** はすべての要求に適用、対象を絞った適用には特定のパターンを指定)

設定でカスタム命令を指定する

特定のシナリオのVisual Studio Code設定でカスタム手順を構成します。

Scenario Setting
コード生成 github.copilot.chat.codeGeneration.instructions
テストの生成 github.copilot.chat.testGeneration.instructions
コード レビュー github.copilot.chat.reviewSelection.instructions
メッセージをコミットする github.copilot.chat.commitMessageGeneration.instructions
PR タイトル/説明 github.copilot.chat.pullRequestDescriptionGeneration.instructions

命令をテキストとして定義するか、外部ファイルを参照します。

"github.copilot.chat.codeGeneration.instructions": [
  {
    "text": "Always add a comment: 'Generated by Copilot'."
  },
  {
    "text": "In TypeScript always use underscore for private field names."
  },
  {
    "file": "general.instructions.md"
  },
  {
    "file": "db.instructions.md"
  }
]

カスタム指示に関するベスト プラクティス

  • 命令を簡潔に保つ: 各命令は、単一の単純なステートメントである必要があります。
  • 外部参照を避ける: 外部のコーディング標準やリソースを参照しないでください。
  • トピック別に整理する: 手順を複数のファイルに分割して整理します。
  • チーム共有を有効にする: チームコラボレーションのためにバージョン管理されたファイルに手順を保存します。
  • 対象アプリケーションを使用: ファイルに特化した指示のためにapplyToのプロパティを活用します。
  • 効率的に参照する: 重複を避けるために、プロンプト ファイルのカスタム命令を参照します。

プロンプト用ファイル

プロンプト ファイルは再利用可能であり、スタンドアロン タスク プロンプトは .prompt.md ファイルとして保存されます。 カスタム命令(GitHub Copilot がどのように応答すべきか)とは異なり、プロンプトファイルは特定のタスクに対して何を実行すべきかを記述します。 すべての要求に自動的に適用するのではなく、必要に応じて実行します。

プロンプト ファイルは、新しいコンポーネントのスキャフォールディング、製品要件ドキュメントの最初のドラフトの生成、コード レビュー パスの実行、プロジェクト コンテキストが既に読み込まれているセッションの開始など、繰り返し発生する Vibe コーディング ワークフローに適しています。

プロンプト ファイルを作成する

プロンプト ファイルをワークスペースの .github/prompts/ フォルダーに格納します。 ファイル名がプロンプト名になります。

ファイル構造:

---
mode: "ask"
description: "Generate a product requirements document for a new feature"
---
# Generate a PRD

Create a product requirements document for the described feature.

Include the following sections:
- Product summary
- Target audience
- Core features (prioritized by must-have / should-have / could-have)
- Out of scope
- Technical requirements

Feature description: ${input:Feature description}

プロンプト ファイルを実行する

  • コマンド パレット: Chat: Run Prompt 実行し、ファイルを選択します。
  • チャット入力: チャット ビューに「 # 」と入力し、名前でプロンプト ファイルを選択します。

プロンプト ファイルでは、modeask、およびeditagent値がサポートされます。 Markdown リンク構文を使用してカスタム命令ファイルを参照して、ファイル間でコンテンツが重複しないようにすることもできます。

カスタム チャット モード

カスタム チャット モードを使用すると、特定のワークフローに対して GitHub Copilot Chat パネルがどのように動作するかを構成できます。 カスタム命令を変更することなく、使用可能なツール、AI がコードベースと対話する方法、およびどのような役割を果たす必要があるかを定義します。

バイブ コーディングの場合、これは 計画 フェーズと 建物 フェーズを分離する場合に特に役立ちます。 計画モードでは、GitHub Copilotを読み取り専用分析に制限できるため、変更を加えずにデザインを提案し、実装モードでは完全な編集ツールのロックを解除できます。

カスタム チャット モードを作成する

カスタム チャット モード ファイルをワークスペースの .github/chatmodes/ フォルダーに格納します。

ファイル構造:

---
description: "Plan mode: read-only analysis and architecture decisions"
tools: []
---
You are a software architect in planning mode. Analyze the codebase, identify patterns, suggest designs, and answer questions — but do not make any code changes.

Vibe コーディング用の共通チャット モードの構成:

モード ツール 利用シーン
計画 なし (読み取り専用) アーキテクチャの決定、機能設計、PRD レビュー
研究 Web 検索 ライブラリの調査、アプローチの比較
Implementation ツールの完全アクセス コードの記述と編集、コマンドの実行
レビュー 読み 取り 専用 コード レビュー、セキュリティ監査、パフォーマンス チェック

カスタム チャット モードを使用する

チャット ビュー ツール バーのチャット モード ピッカーからモードを選択します。 モードは、切り替えるまでセッションに対して保持されます。

Summary

GitHub Copilot応答をカスタマイズすると、特定のワークフローに合わせて AI 支援を形成できます。 カスタム命令は、 ファイル、 ファイル、またはVisual Studio Codeの設定を使用して、GitHub Copilotの応答方法を定義し、あなたのコーディングプラクティス、標準、お好みを反映させます。 プロンプト ファイルは、定期的なタスクに対して 実行 する必要のある処理を定義し、必要に応じて実行できる再利用可能なプロンプトを提供します。 カスタム チャット モードでは 、チャット セッションの動作方法を構成し、基になる手順を変更することなく、計画、調査、実装、レビューのワークフローを切り替えることができます。 これら3つのツールを一緒に使用することで、最初からGitHub Copilotがプロジェクトを理解し、一貫性のあるコード作成環境を構築することができます。