Skip to content

GitHub Copilot Chat モードの使い分け

学習目標

Ask、Edit、Agentの各モードの特徴を理解し、タスクに応じて適切なモードを選択できるようになります。

学習内容

1. チャットモードの概要

各モードの特徴

モード 用途 特徴
Ask 質問・理解 コードの説明、技術的な質問、ブレインストーミング
Edit 複数ファイル編集 制御された編集、ファイル指定、段階的な変更
Agent 自律的タスク実行 複雑なタスク、ツール実行、反復的な問題解決

2. Ask モードの活用

演習1: コード理解とアイデア出し

  1. 既存コードの理解
    public class OrderService
    {
        private readonly IOrderRepository _repository;
        private readonly IPaymentService _paymentService;
    
        public async Task<Order> ProcessOrderAsync(OrderRequest request)
        {
            // 複雑なビジネスロジック
        }
    }
    

Askモードで質問: - "ProcessOrderAsyncメソッドの処理フローを説明してください" - "このサービスにキャンセル機能を追加する場合の設計案を提案してください"

  1. 技術的な質問
    プロンプト: "C#でのasync/awaitのベストプラクティスを教えてください"
    

3. Edit モードの活用

演習2: 複数ファイルの編集

  1. プロジェクト構造の準備

    /ShoppingCart
      - Product.cs
      - Cart.cs
      - ICartService.cs
    

  2. Editモードでの実装

    モード: Edit
    プロンプト: Product.csとCart.csを更新して、商品の在庫管理機能を追加してください。
    各商品に在庫数を持たせ、カートに追加時に在庫をチェックする機能を実装してください。
    

  3. 段階的な変更の確認

  4. 各ファイルの変更内容をレビュー
  5. 必要に応じて個別に承認/却下

4. Agent モードの活用

演習3: 複雑なタスクの自動化

  1. 新機能の実装

    モード: Agent
    プロンプト: RESTful APIを持つ商品管理システムを作成してください。
    以下を含めてください:
    - 商品のCRUD操作
    - カテゴリによるフィルタリング
    - ページネーション
    - 単体テスト
    

  2. 問題の自動解決

  3. Agentモードがエラーを検出して自動修正する様子を観察
  4. ビルドエラーやテスト失敗の反復的な解決

5. カスタムチャットモードの作成

演習4: プロジェクト固有のモード

  1. 計画モードの作成

.github/chatmodes/plan.chatmode.md を作成:

---
description: 新機能の実装計画を生成します
tools: ['codebase', 'fetch', 'search']
---
# 計画モード

新機能や改修の実装計画を作成します。コードは変更せず、以下を含む計画書を生成してください:

- 概要
- 要件
- 実装ステップ
- テスト計画

  1. レビューモードの作成

.github/chatmodes/review.chatmode.md を作成:

---
description: コードレビューを実施します
tools: ['codebase', 'problems', 'usages']
---
# レビューモード

コードレビューを実施し、以下の観点で分析してください:

- コーディング規約の遵守
- パフォーマンスの問題
- セキュリティの懸念
- 改善提案

実践プロジェクト

シナリオ: ECサイトの注文処理システム

各モードを使い分けながら、注文処理システムを構築します:

  1. Ask モード: 設計の相談

    プロンプト: ECサイトの注文処理システムの設計について相談したいです。
    在庫管理、支払い処理、配送管理を含む必要があります。
    適切なアーキテクチャパターンを提案してください。
    

  2. Edit モード: 基本実装

    プロンプト: Order.cs、OrderService.cs、IOrderRepository.csを作成してください。
    注文の作成、更新、キャンセル機能を実装してください。
    

  3. Agent モード: 完全な機能実装

    プロンプト: 注文処理システムに以下の機能を追加してください:
    - 在庫確認と予約
    - 支払い処理の統合
    - 注文ステータスの管理
    - 注文履歴のAPI
    必要なテストも含めて実装してください。
    

  4. カスタムモード: 計画とレビュー

  5. 計画モードで配送機能の追加計画を作成
  6. レビューモードで実装されたコードを評価

モード選択のガイドライン

いつどのモードを使うか

  1. Ask モードを選ぶ場合
  2. コードの理解が必要
  3. 設計の相談
  4. 技術的な質問
  5. 単一ファイルの小さな変更

  6. Edit モードを選ぶ場合

  7. 複数ファイルの変更が明確
  8. 変更内容を細かく制御したい
  9. 段階的なレビューが必要

  10. Agent モードを選ぶ場合

  11. タスクが複雑で範囲が広い
  12. 必要なファイルが不明確
  13. ツールやコマンドの実行が必要
  14. 反復的な問題解決が必要

まとめ

学習した内容: - 3つの基本モードの特徴と使い分け - カスタムモードの作成方法 - タスクに応じた適切なモード選択 - 各モードの強みを活かした開発フロー

次のステップ

次は「Ask モード」の詳細な使い方を学習し、効果的な質問方法を習得しましょう。