🧠

GitHub Copilot Coding Agent を使ってみて

に公開

はじめに

GitHub Copilot Coding Agent を使って、いくつかタスクを進めてみた感想を共有します。
手動で行っていた小規模な修正作業をAIに任せたときのメリット・デメリットや、テンプレート整備の重要性が見えてきたので記事にします。

実際のワークフロー

1. Issue 作成

まず、 Issue による命令が最も大事だと考えたのでテンプレートを作成しました。
やって欲しいこと、目的、関連ファイルなど、作業をやってもらう上で必要となる情報を与えられるようにしています。

.github/ISSUE_TEMPLATE.md
## 種類 (Type of Issue)
<!-- 該当のものを残してください -->
- バグ修正 (Bug)
- 機能追加 (New Feature)
- リファクタリング (Refactoring)
- その他 (Other)

## やりたいこと (Task/Goal)
<!-- このIssueで実現・修正したい内容を簡潔に記入 -->
例: ユーザープロフィール画面に編集機能を追加する

## 目的 (Purpose/Background)
<!-- 上記を行う背景や理由を記入 -->
例: ユーザー自身がプロフィールを更新できるようにし、利便性を向上させるため

## 前提条件 (Prerequisites/Conditions)
<!-- 作業開始にあたっての前提条件などを記入 -->
例: ユーザーがログインしている状態でのみプロフィール編集ボタンが表示されること

## 受け入れ基準 (Acceptance Criteria)
<!-- 完了とみなすための条件を箇条書きで記入 -->
例: 
- [ ] プロフィール編集画面でユーザー名・自己紹介を更新できる  
- [ ] 更新後、プロフィール画面に変更内容が即時反映される  
- [ ] 既存のテストがすべてパスし、必要に応じて新規テストを追加

## 関連ファイル・コード箇所 (Relevant Files/Code)
<!-- 影響範囲のファイルやクラス名などを記入 -->
例: 
- `app/controllers/users_controller.rb`  
- `app/views/mypage/accounts/edit.html.slim`  
- `app/javascript/components/UserProfileEdit.vue`

## 補足情報 (Additional Information)
<!-- バグ再現手順やエラーメッセージ、UI モック等を詳述 -->
例:  
1. 再現手順:プロフィール画面を開き、「編集」ボタンをクリックすると 404 エラー  
2. エラーログ:`TypeError: undefined is not a function`(ログ添付)  
3. スクリーンショット:![エラー画面](https://example.png)

これに沿って作成し、 Copilot をアサインすると、すぐにPRが作られて作業が始まります。
issue へのアサイン

2. コード編集

作られたPRに以下のような表示が出てきます。
作業ログへのリンク

遷移してみると agent-sessions つまりエージェントの作業ログが流れるようになっていて、関連ファイルの確認だったり、実際の変更を行なっている様子が見えます。
agent-sessions

3. PRレビュー・動作確認

作業が完了すると以下のようにレビューリクエストがもらえるので普段通りレビューをしていきます。
レビューリクエスト

change request を送ると、すぐさま修正作業が始まり
作業ログへのリンク

完了後、レビューコメントに対して返信も書いてくれます。
完了後の返信

Copilot は実際に画面を操作しながら確認しているわけではないので、タスクによっては自分で該当ブランチに入って動作を見ることも必要ですね。

良かった点

  • 小さな変更はすべてを任せられる:Issue 作成後、コード編集~PR作成まで一貫して自動で行える

課題だと感じた点

  • Issue をかなり丁寧に書かないと、編集箇所が漏れることがある
  • 自分が完全に理解しているドメインでないと、変更が正しいのか判断できない
    • どこでも使えるわけではない

今後について

Issue を丁寧に書く必要があるなと感じていて、現状やってもらっている簡単なタスクだと Copilot 向けの Issue を書く時間と自分で変更してPRを作る時間が同じくらいになりそうでした。

Issue を0から書くのではなく、タスク管理ツールから Issue を自動生成できれば、そこも改善が期待できるので、 Copilot にタスクを渡す前の段階をいかに効率化できるかが重要だと考えています。

また、 Copilot に対する指示の改善として .github/copilot-instructions.md を作っておけば Copilot に対してのシステムプロンプトとなるので、そこの整備と Issue の書き方でより難しいタスクも任せられるようになるはずです。

現状の copilot-instructions.md
# Instructions for GitHub Copilot Coding Agent
# このファイルは GitHub Copilot Coding Agent にプロジェクトのルールを伝えるためのものです。

## Pull Request Requirements
- Use the pull request template defined in `.github/pull_request_template.md`
  # PRテンプレート(pull_request_template.md)を必ず使うこと

- Write the pull request in **Japanese**, following the team communication standard.
  # チーム内の共通言語として、PRは日本語で記述すること

- Include the following sections in the PR:
  # PR内には以下のセクションを含めること:
  - 概要(NotionのタスクURLや背景)
  - 細かな変更点(どこをどう変更したか)
  - スクリーンショット(UI変更がある場合)
  - 影響範囲・懸念点(レビュー時に注意してほしい点)
  - 動作確認(どの環境でどう確認したか)
  - その他(補足があれば)

## Branch Naming Convention
- Use the following format for branch names:
  - `feature/ISSUE_NUMBER-description` for new features
  - `bugfix/ISSUE_NUMBER-description` for bug fixes
  # ブランチ名は `feature/1234-user-edit-page` や `bugfix/4567-fix-image-load` の形式にすること

## Pull Request Workflow
- After completing the work, switch the PR from **draft** to **open**
  # 作業が完了したら、PRをドラフトからOpenに切り替えること

- Add the label `レビュー依頼中` to indicate it's ready for review
  # レビュー依頼中のラベルを追加すること

- Set the base branch of the PR to `develop`
  # マージ先のブランチは必ず `develop` に設定すること

## Notes
- Keep instructions in English for the agent, and use Japanese comments only for human developers.
  # 英語の命令がCopilotの理解の中心。日本語コメントは補足として記述すること。

まとめ

GitHub Copilot Coding Agent は「小さくて単純な作業」を安定して自動化できる強力なツールでした。
Issue テンプレートをきちんと用意することで、 AI に期待どおりの手順を実行させやすくなるのでまずはそこが大事だと感じています。

コーディング支援だけで十分だと考えている方も、まずはどこまで使えるのか試してみるのをおすすめします。

ラブグラフのエンジニアブログ

Discussion