開発の進め方
GitHub Copilot ChatのAgent Modeを使用すると、AIにある程度自律的な動作をさせることが可能になります。
以下のような「開発の進め方」を定義しておくことで、GitHub Copilotに対して「機能開発の完了条件」を理解させ、自律的なタスク実行を促すことができます。
- 設計書をもとにソースコードを作成または修正する
- テスト仕様書およびソースコードをもとに、テストコードを作成する
- テストを実行し、合格するまで繰り返す
たとえば、テストコードの実装有無やブランチへのマージを許可する条件はプロジェクトによって異なります。これらの情報は明文化したうえで開発メンバーと共有しておく必要がありますが、これはAIに対しても同じです。
このような開発の進め方をインストラクションファイルとして用意しておくと、必要な情報を与えて機能実装を指示するだけで、テストコードの作成からテストの実施までを自動的に行わせることが可能 になります。
また「ソースコードを作成する」といっても、実際に完了と言えるまでには以下のような、より詳細な条件があるでしょう。
- ビルドができること
- 静的解析ツールで違反がないこと
- プロジェクトで定められたコーディング標準を守っていること
これらの完了条件を明文化し、かつAIに実行可能なコマンドとして整備することで、AI自身に問題を認識・修復させることが可能になります。 また、開発の進め方を都度細かく指示しなくても、定義された手順に従って自動的に次の作業を進めてくれるようになります。
これにより開発者はAIが想定通りの成果物を作成しているかのレビューや確認作業に集中でき、対象工程における生産性の向上が期待できます。
以下は、開発の進め方を定義したインストラクションファイルの記述例です。
---
applyTo: "**"
---
# 開発の進め方
機能開発は以下の手順に従って行ってください。
1. 実装: 指示された仕様を元に、ソースコードを作成または修正してください
2. コーディング標準の遵守: コーディング標準を確認し、実装内容に問題がないことを確認してください
3. テストコード生成: ユーザーから指示されたテスト仕様書と作成したソースコードをインプットにして、テストコードを作成または修正してください
4. テスト実行: `mvn test -Dtest=[テストクラス名]`を実行し、テストが成功することを確認してください
- ソースコードとテストコードがコンパイルおよび静的解析処理の対象となるため、コンパイルエラーや静的解析違反とならないことを確認してください
- テストクラスの特定が難しい場合やテスト実行に失敗した場合は、フォールバックとして`mvn test`の実行を試みてください
5. 繰り返し: 上記のステップをすべて実行し、全ステップが成功するまで作業を繰り返してください
AIが外部コマンドを実行する際は、都度ユーザに実行許可を求めます。 これは意図しないコマンドの実行を防ぐための安全機能ですが、許可を与えない限りAIのタスクはそこで停止することに注意してください。
ただし、AIが自律的に動作するといっても、常に完璧に動作するとは限りません。 インストラクションファイルや設計書の内容に誤りがあったり、AIが指示を正しく解釈できなかったりするなど、様々な要因でAIがタスクを正常に完了できない場合があります。
AIに複数ステップの実行やミスの自己修復をさせられるのがAgent Modeの強みです。 しかし、AIが解決できない問題に直面した場合はAIだけに固執せず、開発者自身が実装を修正したり、AIの作業をサポートしたりする柔軟な姿勢も必要です。