火曜日, 8月 12, 2025
火曜日, 8月 12, 2025
- Advertisment -
ホームニューステックニュースGitHub Copilot Chat で Plan mode を再現する #VSCode

GitHub Copilot Chat で Plan mode を再現する #VSCode



GitHub Copilot Chat で Plan mode を再現する #VSCode

Cline などのコーディングエージェントでは、 Plan mode と呼ばれる機能があります。

「コーディングを行う前に作業計画を作成してくれる」もので、やることのすり合わせが行えて便利なのですが、Copilot Chat には標準でこの機能が搭載されていません。これを再現する方法をいくつか紹介します。

1. Custom Instrucutions で Plan を作るように指示する

Copilot Chat には Custom Instructions という、追加の指示をあらかじめ与えておく機能があります。これを使います。

以下の内容を .github/copilot-instructions.md に書きます。

.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 の変更を行うことも可能です。

image.png

Plan の実施は別のチャットで行うように指示してあるので、別チャットを開いて「これを実施して」と送ると、これに従って実装を開始してくれます。

image.png

Plan をファイルに書き出しておくと、手で編集できて便利

擬似的に Plan mode を実現するため、 .plans ディレクトリにファイルを一度書き出して、参照させているわけですが、一度ファイルに書き出すことで、直接ファイルを変更できるのが案外便利でした。

コーディングエージェントに Plan を作ってもらった場合、Plan の細部を修正したいというのは結構ありがちですが、細かい部分になってくると、指示するより自分で計画に手を加えたほうが早いです。ファイルに書き出すのはそういった点で便利でした。

ちなみに、自分が Plan を立てる際は、こんな感じの流れでやってます。

  1. とりあえず Copilot Chat に大雑把に Plan を作ってもらう
  2. 何度かチャットしながら、曖昧な部分を具体化
  3. Copilot Chat 自身が具体化しきれなかったり、微妙にニュアンスが違う部分は手で Plan を修正

あと、「前作った Plan を元に似たような作業をしてもらう」みたいなことも出来たり、ファイルに書き出しておくのは結構応用が出来て便利でした。

Custom Instructions はグローバルに設定することも可能

.github/copilot-instructions.md はそのディレクトリで作業を行う場合のみ使われますが、ユーザーデータディレクトリに Custom Instructions を保存することで、場所を問わずに使用することが出来ます。

設定するには、Command Palette から Chat: Configure Instructions を選択し、「新しい命令ファイルの作成」を選びます。

image.png

image.png

作成場所は 「ユーザーデータフォルダー」を選び、作成する instruction の名前を入力します。

image.png

すると、ファイルが作成されるので、ここに .github/copilot-instructions.md と同様、内容を入力すれば OK です。

image.png

詳しい書式は以下のドキュメントを参照してください。

2. Custom Chat Modes を使う

最近の Copilot Chat のアップデートで、独自のモードを作成することが出来るようになりました。設定例にもなるぐらいに Plan mode を作るのにうってつけな機能です。

独自のモードを作成するには、 Command Palette から Chat: Configure Chat Modes を選択します。

image.png

すると、新規の Mode を作成するか、既存の Mode を編集するかを聞かれるので、新規の Mode を作成します。

image.png

作成場所は、それぞれ以下の意味なので、好きな方に作成してください。

  • .github/chatmodes: プロジェクトのみで使える場所
  • ユーザーデータフォルダー: グローバルに使える場所

image.png

mode の名前を選ぶと、Custom Chat mode の雛形が作られるので、こんな感じで書きます。

plan.chatmode.md

---
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 の画面から切り替えて使います。

image.png

image.png

すると Plan を立ててくれるので、十分なら Agent Mode に切り替えて実際に作業を進めてもらうという流れになります。 (このへんは Cline 等に近い体験ですね)

image.png

tools の指定について

plan.chatmode.md 内の tools の設定についてなのですが、これは使用出来る tool (組み込みや MCP の機能) を絞るものです。

tools: ['changes', 'codebase', 'editFiles', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI']

この辺の指定について詳しくは、↓ のドキュメントやリリースノートを参照ください。

:warning: Custom Chat mode ではファイル作成、編集が出来ない?

2025/6/24 現在でやや困ることとして、 Custom Chat mode にファイル編集の権限を渡せないことがあります。
明示的に tools で指定していても、「ツールが有効になっていないので使えない」と言われてしまって、ファイルを作ってくれません。

Mode を切り替えると Context を引き継いでくれるので Plan mode としての役割自体は果たせますが、ファイルに出力できないのは若干不便です。

image.png

Twitter などでもそういう声が上がっています。(これに関しては今後の改善待ちかもです)

結局どれがおすすめ?

  • 長期的には 2. Custom Chat Modes を使う がおすすめ
    • ただ、いまだとファイル編集できないなどの不便点があるので、 1. Custom Instrucutions で Plan を作るように指示する のほうが体験は良いと思う
  • そんなに難しい設定でもないので、 1 を試す → ファイル編集周りが改善されたら 2 に切り替えるが良さそう





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -