はじめに
GitHub Copilotにカスタムインストラクションという新機能が追加され、プロジェクトのルールや方針を事前に設定することで、それらが継続的にCopilotの提案に反映されるようになりました。これまでは都度指示が必要だった内容も、リポジトリ固有のコーディング規約やアーキテクチャ設計方針、さらには業務ドメイン特有の複雑なルールを自動的に考慮したコード提案を継続的に受けられるようになります。
このページでは、カスタムインストラクションの機能とvscodeでの利用方法についてまとめます。
カスタムインストラクションとは?
カスタムインストラクションとは、Copilotに対して開発者が事前に設定できる指示や制約のことです。コードの生成、テスト、レビューなどの場面で、Copilotの動作を開発者の意図に沿ったものにカスタマイズできます。
例えば、以下のようなコードのレビューをCopilotにしてもらうとします。
func calcDiff(start, end time.Time) int32 {
diff := end.Sub(start)
return int32(diff.Seconds())
}
のようにコメントしてくれます。
そこで、カスタムインストラクションで時間の差分は分単位で扱うものとする。
指定すると、
このようにコメントしてくれるようになります。分単位で扱う前提で指摘してました。
指定方法
vscodeでは、setting.jsonに
"github.copilot.chat.reviewSelection.instructions": [
{
"file": ".copilot-instructions.md"
},
{
"text": "時間の差分は分単位で扱うものとする。"
}
],
と指定すると、対象のファイルと、直書きしたtextを読み取りその内容を反映したアウトプットをしてくれます。簡単ですね。
現在vscodeでは以下の利用シーンでそれぞれ別のインストラクションを指定することができるようです。
- レビューとコメント
github.copilot.chat.codeGeneration.instructions
- コード生成時
github.copilot.chat.codeGeneration.instructions
- テスト生成時
github.copilot.chat.testGeneration.instructions
- コミットメッセージ生成時
github.copilot.chat.commitMessageGeneration.instructions
まとめ
カスタムインストラクションは、AIが従来苦手としてきたプロジェクト固有の文脈に基づく判断を可能にする画期的な機能です。チーム内で策定した設計方針や業務ルールをinstructionsファイルとして管理し、Copilotと共有することで、より正確で実用的なコード提案を得られるようになります。積極的に活用していきましょう!!
と書きつつも、人間がコードを書く必要性が薄れていき、どこか寂しい気持ちにもなりますね。