Cline などのコーディングエージェントでは、 Plan mode と呼ばれる機能があります。
「コーディングを行う前に作業計画を作成してくれる」もので、やることのすり合わせが行えて便利なのですが、Copilot Chat には標準でこの機能が搭載されていません。これを再現する方法をいくつか紹介します。
1. Custom Instrucutions で Plan を作るように指示する
Copilot Chat には Custom Instructions という、追加の指示をあらかじめ与えておく機能があります。これを使います。
以下の内容を .github/copilot-instructions.md
に書きます。
## Plan mode
Copilot Agent は他のコーディングエージェントと異なり、コーディングを始める前に詳細なコーディング計画を立てる いわゆる Plan mode を持ちません。
その代用として、コーディングを始める前に、ユーザーと一緒にコーディング計画 (Plan) を立てて、それを `.plans` ディレクトリ内に Markdown 形式で保存します。
依頼された内容をコーディングする前に、まず `.plans` ディレクトリ内に、依頼された内容に対応する Plan があるかを確認します。なければ、ユーザーに Plan の作成を提案します。
Plan の作成を行った場合、計画の実施は別のチャットで行うようにしてください。
無視するように言われた場合は、そのままコーディングを開始します。
Plan を実施するように明示的に指示された場合は、Plan に従ってコーディングを開始します。
### Plan 作成時の留意点
- Plan は Markdown 形式で記述します。
- Plan のファイル名は、以下のルールに従ってください。
- 依頼内容に関連するキーワードを含めるようにします。
- ファイル名の先頭には、現在の日付を `YYYYMMDD-` 形式で付けます。
- 例: `20250613-add-user-feature.md`, `20250501-fix-bug-in-login-module.md`
すると、指示を行った際に、こういった形でコーディング計画 (Plan) を作成を提案し、作成してくれます。指示したり直接ファイルを編集することで、 Plan の変更を行うことも可能です。
Plan の実施は別のチャットで行うように指示してあるので、別チャットを開いて「これを実施して」と送ると、これに従って実装を開始してくれます。
Plan をファイルに書き出しておくと、手で編集できて便利
擬似的に Plan mode を実現するため、 .plans
ディレクトリにファイルを一度書き出して、参照させているわけですが、一度ファイルに書き出すことで、直接ファイルを変更できるのが案外便利でした。
コーディングエージェントに Plan を作ってもらった場合、Plan の細部を修正したいというのは結構ありがちですが、細かい部分になってくると、指示するより自分で計画に手を加えたほうが早いです。ファイルに書き出すのはそういった点で便利でした。
ちなみに、自分が Plan を立てる際は、こんな感じの流れでやってます。
- とりあえず Copilot Chat に大雑把に Plan を作ってもらう
- 何度かチャットしながら、曖昧な部分を具体化
- Copilot Chat 自身が具体化しきれなかったり、微妙にニュアンスが違う部分は手で Plan を修正
あと、「前作った Plan を元に似たような作業をしてもらう」みたいなことも出来たり、ファイルに書き出しておくのは結構応用が出来て便利でした。
Custom Instructions はグローバルに設定することも可能
.github/copilot-instructions.md
はそのディレクトリで作業を行う場合のみ使われますが、ユーザーデータディレクトリに Custom Instructions を保存することで、場所を問わずに使用することが出来ます。
設定するには、Command Palette から Chat: Configure Instructions
を選択し、「新しい命令ファイルの作成」を選びます。
作成場所は 「ユーザーデータフォルダー」を選び、作成する instruction の名前を入力します。
すると、ファイルが作成されるので、ここに .github/copilot-instructions.md
と同様、内容を入力すれば OK です。
詳しい書式は以下のドキュメントを参照してください。
2. Custom Chat Modes を使う
最近の Copilot Chat のアップデートで、独自のモードを作成することが出来るようになりました。設定例にもなるぐらいに Plan mode を作るのにうってつけな機能です。
独自のモードを作成するには、 Command Palette から Chat: Configure Chat Modes
を選択します。
すると、新規の Mode を作成するか、既存の Mode を編集するかを聞かれるので、新規の Mode を作成します。
作成場所は、それぞれ以下の意味なので、好きな方に作成してください。
-
.github/chatmodes
: プロジェクトのみで使える場所 - ユーザーデータフォルダー: グローバルに使える場所
mode の名前を選ぶと、Custom Chat mode の雛形が作られるので、こんな感じで書きます。
---
description: 'Generate an implementation plan for a given task.'
tools: ['changes', 'codebase', 'editFiles', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI']
---
## Plan mode
Plan mode は、ユーザーが依頼した内容に対して、コーディングを始める前に詳細なコーディング計画 (Plan) を立てるモードです。
ユーザーと一緒に Plan を立てて、それを `.plans` ディレクトリ内に Markdown 形式で保存します。
立てた Plan の実施は、 Plan mode 内では行いません。
また、 Plan mode 内では、`.plans` 内での Markdown ファイルの作成や変更を行い、実際のコードの変更などの実装は行いません。
これらは Agent Mode で行います。
Plan を作成する場合は、以下の点に留意してください。
- ユーザーが依頼した内容を正確に理解し、必要な情報を収集する。
- 実装前に調査や確認が必要な場合は Plan mode 内で調査を行うか、ユーザーに質問して、不明な点を明確にしてください。
- 行う作業を小さなステップに分解し、順序立てて記述する。
- また、TODO リスト形式の箇条書きを利用し、進捗が記入できるようにする。
- 行う作業が箇条書きに収まらない場合は、段落形式の記述を TODO リストの後ろに追加してください。
- 変更を行う予定のファイルやモジュールを具体的に記述する。
内容自体は Custom Instruction と概ね同じです。 (tools の設定については後述します)
作成した Custom Chat mode は Copilot Chat の画面から切り替えて使います。
すると Plan を立ててくれるので、十分なら Agent Mode に切り替えて実際に作業を進めてもらうという流れになります。 (このへんは Cline 等に近い体験ですね)
tools の指定について
plan.chatmode.md
内の tools の設定についてなのですが、これは使用出来る tool (組み込みや MCP の機能) を絞るものです。
tools: ['changes', 'codebase', 'editFiles', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI']
この辺の指定について詳しくは、↓ のドキュメントやリリースノートを参照ください。
Custom Chat mode ではファイル作成、編集が出来ない?
2025/6/24 現在でやや困ることとして、 Custom Chat mode にファイル編集の権限を渡せないことがあります。
明示的に tools で指定していても、「ツールが有効になっていないので使えない」と言われてしまって、ファイルを作ってくれません。
Mode を切り替えると Context を引き継いでくれるので Plan mode としての役割自体は果たせますが、ファイルに出力できないのは若干不便です。
Twitter などでもそういう声が上がっています。(これに関しては今後の改善待ちかもです)
結局どれがおすすめ?
- 長期的には
2. Custom Chat Modes を使う
がおすすめ- ただ、いまだとファイル編集できないなどの不便点があるので、
1. Custom Instrucutions で Plan を作るように指示する
のほうが体験は良いと思う
- ただ、いまだとファイル編集できないなどの不便点があるので、
- そんなに難しい設定でもないので、 1 を試す → ファイル編集周りが改善されたら 2 に切り替えるが良さそう