31
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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 に切り替えるが良さそう
31
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?