TL;DR
「GitHub Copilotはコスパが良い」という話を聞き、とりあえずProプランを契約して試している。
ある程度複雑なタスクとして、GitHub Copilot coding agentを使って、簡単なNext.jsアプリケーションのランタイム・依存ライブラリのアップデートを実施した。
結論としては、下記の要領で自動でほぼ完ぺきなPull Requestの作成ができた。
-
モデルにClaude Opus 4.6を使う。
※ 他のモデルでは、プロンプトで指示した検証の漏れが発生して動作しない箇所が残った。
-
プロンプトに下記を明記する。
- バージョンアップの指針(メジャーバージョンアップ必要か?など)
- バージョンアップに伴うコード修正(Deprecatedとなる箇所の修正など)
- Linter、ビルド、Storybook起動、E2Eテスト等の、必要な検証内容
-
上手くいかない場合はプロンプトを修正して最初からやり直す。
実施内容の詳細
対象リポジトリ
- アプリ本体: frontend-example-next
- E2E テスト: e2e-example-playwright
最終版のプロンプト
下記の要件に従って、プロジェクトのランタイムと依存ライブラリを最新化してください。
- バージョンアップ要件
- ランタイム、依存ライブラリは、メジャーバージョンが更新されていれば、メジャーバージョンも更新して、最新の安定版にアップデートしてください。
- Dev Dependenciesや開発ツールも、メジャーバージョンを最新化して、最新の安定版にアップデートしてください。
- Next.jsのPages RouterをApp Routerに移行してください。
- 上記のアップデート時に、コードの修正が必要かを確認し、必要な場合はコードを修正してください。
- 検証要件
- Linterのエラーがないことを確認してください。
- プロジェクトのビルドが正常にできることを確認してください。
- Storybookが正常に起動でき、コンポーネントが正常に表示できることを確認してください。
- 下記のリポジトリにE2Eテストがあります。このテストを実行して作り壊しがないか確認してください。作り壊しがある場合は修正してください。
作成されたPull Request
その他気づいたことなど
- 追加指示の使いどころの難しさ
- AgentやPull Requestのコメントで追加指示をすると、最初のプロンプトの内容がスキップされるなど、迷走してしまうことがあった。結局、最初のプロンプトを見直して、最初からやり直す方が上手くいく印象を持った。
- 追加指示をすると、Pull Requestの内容がその指示に置き換わってしまった。(プロンプト次第で回避できるかもしれない。)
- GitHub Copilot coding agentの費用感
- 最終的なClaude Opus 4.6での実行は40分近くかかったにも関わらず、3 premium requestsの消費(モデルによって消費するrequest数が決まっている)となっている。月10ドルでこれが100回使えると考えるとコスパは良さそう。