Copilot instructions 分割 と prompt 共有によるモノレポ開発効率化の実践

音声による概要

この音声概要は AI によって生成されており、誤りを含む可能性があります。

2025 年 4 月に公開された VSCode のアップデートで、モノレポの観点から非常に重要な機能が Copilot に追加されました:

  • .github/copilot-instructions.md の分割サポート
  • prompt ファイルの共有機能

HQ では会社全体で一つのモノレポジトリ(モノレポ)を運用しており、その中でこの HQ Dev も一元管理しています。 本記事ではこれらの機能を紹介するとともに、一つの実践としてブログ執筆の効率化を図るために、どのように活用したかを紹介します。

従来の課題

従来の Copilot では .github/copilot-instructions.md にすべての指示を記述する必要がありました。 そして全ての Copilot Chat でこのファイルが参照されます。

モノレポでは、複数のプロダクトに関わるコードやインフラ、ドキュメントなど多様な用途のファイルが混在します。

例えば HQ では Go や TypeScript など複数言語・用途の instruction をすべて一つのファイルにまとめていましたが、 Go ファイルに対して TypeScript の指示が適用されても意味がありませんし、無関係な指示が増えるほど Copilot の提案精度が低下してしまいます。

また、相対的に重要度が低いとプロジェクトの instruction は用意されていないことが多く、必然的にブログ用の指示はありませんでした。 そのため、以下のような問題が発生していました。

  • ブログを書く際に Copilot Chat を使おうとしても指示がブレてしまう
  • ブログ執筆に最適化された指示がないため、毎回プロンプトを手動で書く必要がある

instructions 分割・prompt 共有が可能となった

2025 年 4 月のアップデートで Copilot instructions の分割と prompt 共有機能が追加されました。

  • instructions ファイルの分割: 複数の instruction ファイルを用途やディレクトリ単位で分割し、applyTo プロパティで適用範囲を細かく指定できます。
  • prompt ファイルの共有: リポジトリ内に置いた prompt ファイルを Copilot Chat で選択することで、特定のプロンプトを簡単に呼び出せるようになります。

これにより、たとえば「ブログ執筆用」「API 設計用」など目的別に Copilot のふるまいを最適化でき、チーム全体の生産性向上が期待できます。

WARNING

2025 年 4 月時点において prompt 共有機能は Experimental となっており、今後のアップデートで変更される可能性があります。

ブログ執筆効率化の実践

ここからは、実際に Copilot instructions の分割と prompt 共有を活用して、ブログ執筆を効率化する手順を紹介します。

1. instructions ファイルの分割

.github/instructions/blog.instructions.md のように、用途ごとに instruction ファイルを作成します。

---
applyTo: "**/hqdev/**"
---

# ブログの書き方

- 日本語を使いですます調で書く
- ...(以下略)

applyTo プロパティで、どのディレクトリやファイルに適用するかを柔軟に指定できます。 こうすることで AI がブログ記事用のファイルを生成した後にそのファイルの内容を生成する際、ブログ執筆用の instruction が適用されます。

NOTE

HQDev ではモノレポの hqdev ディレクトリ以下にソースコードがあるため、**/hqdev/** を指定しています。

2. prompt ファイルの共通化

.github/prompts/blog.prompt.md に、ブログ執筆用のプロンプトを記述します。

---
mode: "agent"
tools: ["web", "fetch", "codebase"]
description: "Generate a blog post for our technology blog."
---

あなたは技術ブログのブログ記事を執筆する AI です。以下の指示に従ってください。

1. **トピックの選択**: ブログ記事のトピックが与えられていない場合は質問をして、トピックを決定してください。
2. ...(以下略)

ここで指定している tools とは、Copilot Chat で利用できる外部情報取得のための機能群です。 たとえば webfetch を指定しておくことで、チャット中で外部サイト(公式ドキュメントや Web 記事など)を参照したい場合に、その内容を自動的に取得して回答に反映してくれます。

今回の記事執筆でも、VSCode の公式ドキュメントを参照するようプロンプトで指示することで、プロンプトでは説明しなかった instructions の分割機能の細かい使い方を Copilot が自動で調べてくれました。

3. prompt を利用して執筆する

共有された prompt は Copilot Chat で /blog と入力することで利用することができます。

今回のブログ執筆では、以下のような流れで作業を進めました。

OK

改善が必要

Copilot Chat を開き /blog を実行

Copilot が prompt の指示に従って叩き台を生成

Copilot とやりとりしながら構成案や本文を執筆

判断

完了

構成案や叩き台の生成は Copilot に任せて、あとは自分で修正を加えたり、必要に応じて Copilot に質問したりしながら進めました。 全てを LLM に書かせようとすると却って時間がかかるため、細かなニュアンスの修正や微調整は自分で行いました。 その際も Copilot Completion が適宜提案してくれるため、スムーズに進めることができます。

実際に使ってみた感想・効果

Copilot instructions の分割と prompt 共有を導入してみて、ブログ執筆だけでなく一般的な開発業務においても多くのメリットを感じました。

  • 用途ごとに最適な AI アシストが得られる: プロダクトコード、ドキュメント、テスト、ブログなど、目的に応じて適切な指示が自動で適用されるため、AI の提案精度が大きく向上しました。
  • 指示の肥大化・矛盾が解消: 1 つの instruction ファイルに全てを詰め込む必要がなくなり、指示の競合や冗長さが減りました。

また、これは instructions の分割とは関係ありませんが、今回改めて Copilot を使ってみて、特定のサービスに依存しない形で知見が蓄積されていく点が重要だと感じました。

HQ では Devin も利用しています。 Devin の自立性は非常に有益だと感じる一方で、知見が Devin 内部の専用 DB に蓄積されていくため他の AI ツールでは利用できません。 昨今の AI 関連サービスの発展速度を考えると、特定のサービスに縛られることは望ましくないでしょう。

Copilot では基本的に全てを Git リポジトリにファイルとして保存していくため、 Devin や Cline、 OpenAI Codex などの他の AI ツールでも利用することができるだけでなく、今後出てくる新しい AI ツールでも活用できるはずです。 これは非常に大きなメリットではないでしょうか。

まとめ

2025 年 4 月 のアップデートで追加された Copilot instructions の分割サポートと prompt 共有機能は、モノレポ構成のコードベースで長らく求められていた機能です。

今後も AI 関連ツールを活用して、開発効率や生産性を向上させる取り組みを続けていきます。