Copilotを活用した開発フロー:調査・計画・実装の3ステップ
GitHub Copilotを「コード補完ツール」としてだけ使っていませんか?
Copilotの真価は、開発プロセス全体を効率化できることにあります。
この記事では、Copilotを活用した開発フローを「調査→計画→実装」の3ステップで解説します。
全体の流れ
flowchart LR
A[調査] --> B[計画]
B --> C[実装]
C --> D{完了?}
D -->|No| A
D -->|Yes| E[リリース]
各ステップで使う機能が異なります。
| ステップ | 目的 | 主に使う機能 |
|---|---|---|
| 調査 | 現状を把握する | Copilot Chat, Agent mode |
| 計画 | 方針を決める | Plan agent |
| 実装 | コードを書く | Agent mode, Edit mode |
順番に見ていきます。
ステップ1:調査
目的
「何がどうなっているか」を把握します。
- 既存コードの構造
- 依存関係
- 影響範囲
いきなりコードを書き始めると、後で「思ってたのと違う」となりがちです。
使う機能
Copilot Chat で質問する
# 良い質問の例
「このリポジトリの認証の仕組みを説明して」
「UserService クラスの責務は何?」
「このエラーが発生する条件は?」
知らないコードベースでも、Chatに聞けば概要がつかめます。
Agent mode で調査タスクを実行
# 調査タスクの例
「このプロジェクトの依存関係を一覧にして」
「廃止予定のAPIを使っている箇所を洗い出して」
「テストカバレッジが低いファイルを特定して」
Agent modeはファイルを読み、ターミナルでコマンドを実行して調査してくれます。
調査のコツ
出力を残すことが重要です。
- 調査結果をMarkdownにまとめさせる
- Issueとして記録する
- READMEに追記する
調査だけして終わると、次に同じ調査をすることになります。
ステップ2:計画
目的
「何をどの順番でやるか」を決めます。
- 変更が必要なファイル
- 実装の手順
- 考慮すべきリスク
計画なしに実装を始めると、途中で方針がブレます。
使う機能
Plan agent で計画を立てる
Plan agentは実装をせず、計画だけを作成します。
# Plan agentへの入力例
「認証方式をJWTからセッションベースに変更したい。
現状の認証コードを調査し、変更計画を立てて。
制約:
- 既存のAPIは互換性を保つ
- ダウンタイムなしで移行する
- テストは必ず通す」
計画の出力例
Plan agentは以下のような計画を出力します。
## 変更対象ファイル
1. src/auth/jwt.ts → 削除
2. src/auth/session.ts → 新規作成
3. src/middleware/auth.ts → 修正
4. src/api/login.ts → 修正
## 実装手順
1. セッション管理の基盤を作成
2. 新旧両方の認証を並行稼働させる
3. 各APIを順次移行
4. JWT関連コードを削除
## リスク
- セッションストレージの選定が必要
- 既存トークンの無効化タイミング
計画のコツ
「受け入れ条件」を明確にすることが重要です。
## 受け入れ条件
- [ ] 全てのAPIテストが通る
- [ ] 既存ユーザーが再ログインなしで使える
- [ ] セッションの有効期限が設定できる
これがないと、「完了」の判断ができません。
ステップ3:実装
目的
計画に沿って、実際にコードを書きます。
使う機能
Agent mode で自律実行
計画があれば、Agent modeに任せられます。
# Agent modeへの指示例
「先ほどの計画に沿って、ステップ1を実装して。
ビルドとテストが通ることを確認して。」
Agent modeは以下を自律的に行います。
- ファイルを作成・編集
npm run buildを実行- エラーがあれば修正
npm testを実行- 失敗したテストを修正
Edit mode で細かい調整
Agent modeの結果を微調整したい場合は、Edit modeを使います。
# Edit modeでの指示例
「この関数のエラーハンドリングをもう少し丁寧にして」
「変数名をもっとわかりやすくして」
Edit modeは変更箇所を提案として表示し、適用するかどうかを選べます。
実装のコツ
小さく区切って進めることが重要です。
# 悪い例(一度に全部)
「認証システム全体を作り直して」
# 良い例(ステップごと)
「まずセッション管理の基盤だけ作って」
→ 確認
「次にログインAPIを移行して」
→ 確認
「最後にログアウトAPIを移行して」
→ 確認
一度に大きな変更をすると、問題が起きたときに原因特定が難しくなります。
3ステップを回す
実際の開発サイクル
flowchart TB
subgraph 調査["ステップ1: 調査"]
A1[Chatで質問] --> A2[Agent modeで洗い出し]
A2 --> A3[結果を記録]
end
subgraph 計画["ステップ2: 計画"]
B1[Plan agentで計画作成] --> B2[受け入れ条件を設定]
B2 --> B3[計画をレビュー]
end
subgraph 実装["ステップ3: 実装"]
C1[Agent modeで実装] --> C2[テスト確認]
C2 --> C3{問題あり?}
C3 -->|Yes| C4[修正]
C4 --> C2
C3 -->|No| C5[次のステップへ]
end
調査 --> 計画 --> 実装
実装 -->|追加の調査が必要| 調査
よくある失敗パターン
調査をスキップする
「たぶんこうだろう」で実装を始め、後で全部やり直し。
計画を立てない
実装しながら方針がブレて、一貫性のないコードになる。
一度に全部やろうとする
大きな変更を一気にやって、問題の切り分けができなくなる。
チームで使う場合
調査結果を共有する
# Issue として記録
## 調査: 認証システムの現状
### 構造
- JWT認証を使用
- トークンの有効期限は24時間
- リフレッシュトークンなし
### 問題点
- トークン無効化の仕組みがない
- ログアウトしても他端末で使える
### 関連ファイル
- src/auth/jwt.ts
- src/middleware/auth.ts
計画をレビューする
Plan agentの出力をPRやIssueに貼り、チームでレビューします。
# PR: 認証システム移行計画
## 概要
JWTからセッションベース認証への移行計画です。
## Plan agentの出力
(計画を貼り付け)
## レビューポイント
- [ ] 移行手順に漏れはないか
- [ ] リスクの洗い出しは十分か
- [ ] 受け入れ条件は適切か
まとめ
| ステップ | やること | 使う機能 |
|---|---|---|
| 調査 | 現状を把握する | Chat, Agent mode |
| 計画 | 方針を決める | Plan agent |
| 実装 | コードを書く | Agent mode, Edit mode |
Copilotは「コードを書く」だけのツールではありません。
調査→計画→実装のサイクルを意識することで、手戻りが減り、品質の高いコードが書けます。
まずは小さなタスクで3ステップを試してみてください。