copilot 用のプロンプトを git subtree で取り込む¶
背景¶
VSCode で Copilot を使うときに、instructions
や chatmodes
、prompts
を設定できる。これらは、Copilot の動作をカスタマイズするために利用される。 github/awesome-copilotのレポジトリには、これらの設定を事前に定義したものがあり、そのプロンプト集を取り込んで開発に活用できないかと考えた。
取り込む方法の検討¶
このレポジトリのプロンプトを取り込む方法として、3 つの方法を検討した。1 つ目は curl や wget などを用いて直接ファイルをダウンロードする方法、2 つ目はgit submodule
を利用してレポジトリをサブモジュールとして追加する方法、3 つ目はgit subtree
を利用してレポジトリをサブツリーとして追加する方法。 1 つ目の方法は git を使わないため、プロンプトのバージョン管理がしづらい。2 つ目の方法は、取り込んだプロンプトをカスタマイズできない。取り込んだプロンプトをカスタマイズできて、かつプロンプトのバージョン管理ができる方法として、3 つ目のgit subtree
で取り込むことにした。
取り込み手順¶
git subtree
を利用して、プロンプトを取り込む手順は以下の通り。
- git remote にプロンプト集のレポジトリを追加する。
git subtree
を利用して、プロンプト集のレポジトリをサブツリーとして追加する。ここで、--prefix
オプションは、サブツリーを追加するディレクトリを指定する。- .
git log
を利用して、取り込んだプロンプトのコミットログを確認する。 - 取り込んだプロンプトを利用できるように、vscode の設定ファイルを更新する。
- 取り込んだプロンプトが copilot の設定で利用できることを確認する。
/xxx
を入力した時や chatmodes の切り替え時に、取り込んだプロンプトが表示されることを確認する
- 必要に応じて取り込んだプロンプトをカスタマイズする。
git push
を利用して、取り込んだプロンプトをリモートリポジトリにプッシュする。
まとめ¶
git subtree
を利用してプロンプトを取り込むことで、バージョン管理とプロンプトをカスタマイズを両立できる。既存のプロンプト集を活用することで、一からプロンプトを作成する手間を省略できる。
今後、開発組織でベースとなるプロンプト集を作成し、あらゆるプロジェクトで共通して利用できるようにする取り組みが広がっていくのではないかということを、今回の取り組みを通じて思った。
余談¶
今回 3 つの方法を検討したが、この施策を実施した後にgit-fetch-fileというツールを知った。これを利用すると、特定のファイルだけ取り込むことができる。