[AIDD Lv.1] カスタムモードとプロンプトテンプレートでAIコーディングを効率化
GitHub Copilot には様々な設定ファイルがあります。
ここではチャット体験を激変させる *.chatmode.md と .prompt.md について、目的・構造・具体的な書き方を詳しく解説します。
チャット体験を変えるファイル(カスタムチャット関連)
1. *.chatmode.md ― カスタムチャットモード定義ファイル
用途
標準の「Ask/Edit/Agent」以外に、プロジェクト専用モードや役割特化モードを追加するための設定ファイルです。たとえば Planning モードで計画立案だけを行ったり、Review モードでコードレビューに必要なツールだけを有効化するなど、モードを切り替えるだけで口調・権限・ツール構成を一括変更できます。
ファイル構造
YAML フロントマター
description – モードの概要。モード選択ドロップダウンや入力欄のツールチップに表示されます。
tools – モードで 使用可能なツール のリスト。['codebase', 'search'] のように列挙し、不要なツールは無効化できます。
model – 使用する AI モデル。GPT-4 や o3 など。指定が無い場合は現在選択中のモデルが採用されます。
本文(追加プロンプト)
このモードに入った際にChatGPTに守らせたい 追加指示 をMarkdown形式で記述します。
必要に応じて他の インストラクションファイル(.instructions.md)へのリンクをMarkdownリンクで埋め込むことも可能です。
サンプル (plan.chatmode.md)
---
description: 新機能の実装計画を作成するモード
tools: ['codebase', 'search', 'githubRepo', 'usages'] # 読み取り系ツールのみ
model: GPT-4
---
# 計画モードの指示
あなたは現在、計画立案のアシスタントです。新機能またはリファクタリングの実装計画を Markdown で出力してください。
計画書には以下のセクションを含めます:
- **概要**: 目的を 3 行程度で簡潔に
- **要件**: 必要機能や制約を箇条書き
- **実装ステップ**: 実装手順を工程ごとに分割
- **テスト**: 検証ポイントとテスト内容作成方法
チャットパネルのモード選択のドロップダウンリストからモードの構成を選択
新しいカスタムチャットモードファイルを作成
既存のカスタムチャットモードファイルを選択すると修正できます作成場所として .github/chatmodes/ か ユーザーデータフォルダー を選択
配置と共有
リポジトリ単位: .github/chatmodes/ フォルダーに入れると、同じリポジトリを開くメンバー全員が利用できます。
ユーザー全体: VS Code のプロファイルフォルダー(例: $HOME/Library/Application Support/Code/User/prompts)に置くと、すべてのワークスペースで呼び出せます。
ヒント: 複数の .chatmode.md を置く場合、ファイル名がモード名として UI に表示されます。分かりやすい命名を心がけましょう。
2. .prompt.md ― 再利用可能なプロンプトテンプレート
用途
よく使う 定型プロンプト をファイル化し、ワンクリック/補完で呼び出す仕組みです。
例) コードレビュー項目一覧、API ドキュメント生成、React コンポーネント雛形生成 …など
プロンプトの呼び出しは VS Code の 「Add Context」ボタン または #prompt:<ファイル名> 補完が使えます。
ファイル構造
YAML フロントマター(任意)
mode – プロンプト実行時に適用するチャットモード。'agent' など。空欄なら現在のモードを継承。
model – 実行モデル。大量生成タスクなら GPT-4o, 軽量タスクなら o3 など用途で使い分けます。
tools – 必要なツールセット。リポジトリ検索 (githubRepo) やローカルコード検索 (codebase) などを明示できます。
description – プロンプトの説明。プロンプト一覧パネルでのラベルになります。
プロンプト本文
フロントマターで実行時モードやモデルを宣言し、本文に実際の指示文を書きます。
プロンプト本文をMarkdown形式で記述します。プロンプト本文中では、複数行に渡る詳細な要求や、必要に応じて他の インストラクションファイル(.instructions.md)へのリンクをMarkdownリンクで埋め込むことも可能です。
こうすることで、一般的な指針(コーディング規約など)はインストラクションファイルから参照しつつ、そのプロンプト固有の指示だけを本文に書く、といった使い分けが可能です。
サンプル (react-form.prompt.md)
---
mode: 'agent'
model: GPT-4
tools: ['githubRepo', 'codebase']
description: '新しい React フォームコンポーネントの生成'
---
あなたのゴールは #githubRepo のテンプレートを参考に、React フォームコンポーネントを生成することです。
必要に応じてフォーム名とフィールド内容を質問してください。
このフォームの要件:
* デザインシステムのフォームパーツを使用(../docs/design-system/Form.md 参照)
* 状態管理に `react-hook-form`
* フォームデータの型定義を必ず用意
* `defaultValues` を設定して再レンダリングを最適化
* バリデーションには `yup` を使用すること作成方法
チャットパネル上の チャットの構成… から プロンプトファイル を選択
新しいプロンプトファイルを作成
既存のプロンプトファイルを選択すると修正できます作成場所として .github/prompts/ か ユーザーデータフォルダー を選択
配置と共有
リポジトリ共有: .github/prompts/ に配置するとチーム全員が使用可能。
ユーザー全体: VS Code のプロファイルフォルダー(例: $HOME/Library/Application Support/Code/User/prompts)に置くと、すべてのワークスペースで呼び出せます。
コツ: プロンプト本文は Markdown が使えるため、コードブロックやリンクを駆使して長い手順書をそのまま埋め込むこともできます。複数行の複雑な指示を一度に再利用できるので、レビュー標準化やドキュメント生成に最適です。
まとめ
*.chatmode.md のカスタムチャットモードを共有することでメンバー間の品質を均一化したり、
.prompt.md のプロンプトテンプレートで作業を効率化することができます。
設定ファイルは Git でバージョン管理できるため、チーム全体で共有・レビューしながら育てていきましょう。
知識は武器とかけまして、レゴブロックと解く、その心は?
知識のひとつひとつは小さなレゴブロック
でも、組み合わせれば世界を変えるアイディアをカタチにする武器になる!
また Knowledge Oasis でお会いしましょう。
案内人は koふみ でした。
