Github Copilot の prompt を活用しよう
開発環境
- GitHub Copilot
- Visual Studio Code
- プロジェクト(Next.js + TypeScript + Prisma + Vitest)
前提
開発をしていると、毎回似たような指示をGitHub Copilotに出すことがありませんか?
例えば・・
- 「新機能を実装して」
- 「テストファイルを作成して」
- 「実装計画を立てて」
- 「PRの説明文を書いて」
これらの曖昧な指示だけでは意図しない実装をしてしまうことがあります。
しかしながら、毎回具体的な文章を1から考えて入力するのは非効率です。特に2行以上の複雑なプロンプトになる場合、毎回同じような内容を書くのは時間の無駄です。また、チーム内で指示の品質にばらつきが生じることもあります。
本題
プロンプトファイルを活用した効率化
GitHub Copilotでは、プロンプトファイル(.prompt.md)を活用することで、定型的な指示を再利用できます。
1. プロンプトファイルの基本構造
プロンプトファイルは、YAML形式のフロントマターと本文で構成されます。フロントマターでは実行モード、使用するツール、説明を記述し、本文では具体的な要件と指示を記載します。
2. 実際のプロンプトファイル例
利用できそうなプロンプトファイルを用意してみました。
実装用(do.prompt.md)
---
mode: 'agent'
model: Claude Sonnet 4
tools: ['codebase', 'problems', 'changes', 'fetch', 'findTestFiles', 'githubRepo', 'editFiles', 'search', 'runCommands']
description: '実装を依頼するプロンプト'
---
# 要件
新機能の実装はプロジェクトの既存アーキテクチャに従って行う。
- TypeScriptを使用
- フォームライブラリではReact Hook Formを使用
- Prismaを使用したデータベース操作
- Next.jsのApp Routerパターンを採用
- 適切なエラーハンドリングを実装
# 指示
以下の手順で実装を進めてください:
1. 必要な型定義を作成
2. データベーススキーマの更新(必要に応じて)
3. APIエンドポイントの実装
4. フロントエンドコンポーネントの作成
5. 単体テストの作成と実行
6. 動作確認とエラーハンドリングの検証
計画立案用(plan.prompt.md)
---
mode: 'ask'
model: Claude Sonnet 4
description: '実装計画を作成するためのプロンプト'
---
以下の要件を基に、段階的な実装を行うための計画をタスクリストとして作成してください。
各タスクには以下の要素を含めてください:
- 実装内容の概要
- 必要な技術要素(API、DB、UI等)
- 依存関係(他のタスクとの関連)
- 想定作業時間
- テスト方針
# 要件
<!-- ここに具体的な機能要件を記述 -->
<!-- 例:ユーザー管理機能、家族グループ機能、カテゴリ管理機能など -->
テスト作成用(test.prompt.md)
---
mode: 'agent'
model: Claude Sonnet 4
tools: ['codebase', 'problems', 'changes', 'fetch', 'findTestFiles', 'githubRepo', 'editFiles', 'search', 'runCommands']
description: 'テストを依頼するプロンプト'
---
# 要件
Vitestを使用して単体テストを実装してください。
テストの記述はAAAパターン(Arrange, Act, Assert)に従い記述してください。
以下の観点でテストを作成:
- 正常系のテスト
- 異常系のテスト(エラーハンドリング)
- エッジケースのテスト
- モック化が必要な外部依存の適切な処理
# 指示
対象のファイルまたは機能に対して包括的なテストスイートを作成し、
カバレッジ80%以上を目指してテストを実装してください。
テスト実行後は結果を確認し、すべてのテストが成功することを検証してください。
3. プロンプトファイルの使い方
- .github/prompts/ディレクトリにプロンプトファイルを配置しておく
- 実装したい内容に合わせて都度都度書き換える
- GitHub Copilot Chatで/と入力すると候補が出るので選択
4. プロンプトファイル設計のポイント
技術スタックの明記
プロジェクトで使用している技術スタックを明確に指定することで、一貫性のある実装が可能になります。フロントエンドはNext.js App Router、TypeScript、フォームはReact Hook Form、データベースはPrisma、テストはVitestといった具合に具体的に記載します。
段階的な指示
複雑な実装を複数のステップに分割することで、漏れのない実装が可能になります。型定義作成から動作確認まで、体系的な手順を提示することで品質の高い実装を促進できます。
品質基準の設定
テストカバレッジ80%以上、AAAパターンの採用など、具体的な品質基準を設定することで、一定水準以上のコード品質を担保できます。
5. 活用のポイント
プロンプトファイルの使い方で紹介した「実装したい内容に合わせて都度都度書き換える」がポイントです。
ついつい、チャット欄で毎回文章を作って依頼しがちですが、プロンプトファイル経由で依頼した方が最終的な質の向上につながります。
プロンプトファイルの内容は固定せず、毎回具体的な内容に書き換えて利用します。
(チーム開発時はgit管理から外した方が良いかもしれません)
さいごに
プロンプトファイルは単なる時短ツールではなく、開発の品質向上とチーム内の知識共有にも大きく貢献します。最初は少し手間に感じるかもしれませんが、長期的には大幅な時間短縮と品質向上につながります。
ぜひプロジェクトに合わせてプロンプトファイルを作成し、GitHub Copilotをより効果的に活用してみてください。