ChatGPT+ Antigravity + Codexでシステム開発を行う
1.はじめに
最近のAI開発ツールはかなり強力になってきました。
単に「コードを書いてもらう」だけでなく、仕様整理、実装、レビュー、修正方針の整理まで、開発工程のかなり広い範囲をAIに支援してもらえるようになっています。私もそうしています。
ただし、ここで重要なのは、1つのAIにすべてを任せないことで、これ結構重要だと考えています。
仕様整理も、実装も、レビューも、同じAIにまとめて任せてしまうと、間違った前提のまま実装が進んだり、レビューが甘くなったりする可能性があります。
ここでは、以下の3つを役割分担して使う開発スタイルを整理してみます。
AIの役割分担
- ChatGPT
- Antigravity
- Codex
考え方としては、次のような分担です。
| ツール | 主な役割 |
|---|---|
| ChatGPT | 仕様整理、判断整理、修正方針の作成 |
| Antigravity | 実装、ファイル修正、動作確認補助 |
| Codex | コードレビュー、PRレビュー、リスク指摘 |
2.基本方針
この開発スタイルの基本方針は、次の1点です。
AIを「全部やってくれる人」として使うのではなく、
役割を持った開発チームのメンバーとして使い分ける。
たとえば、人間の開発チームでも、仕様を整理する人、実装する人、レビューする人が同じとは限りません。
AI開発でも同じように、
- 仕様を整理するAI
- 実装するAI
- レビューするAI
を分けることで、ミスに気づきやすくなります。
3.ChatGPTの役割
ChatGPTは、仕様整理や判断整理に向いていると思います。
特に、次のような作業で使いやすいです。
- 業務仕様の整理
- 機能要件の洗い出し
- 非機能要件の整理
- UI構成の検討
- データ構造の整理
- 修正依頼文の作成
- レビュー指摘の採用・不採用の判断
- 記事や使用方法ドキュメントの作成
ChatGPTには、いきなり「作って」と依頼するよりも、まず仕様を整理させるのが良いです。
たとえば、次のように依頼します。
以下の内容をもとに、システム仕様として整理してください。
目的:
- ○○を行うGUIアプリを作成する
利用環境:
- Windows 11
- Python 3.12
- PySide6
- pyqtgraph
- WinPython環境
必要な機能:
- 入力データの読み込み
- 計算条件の設定
- 計算実行
- 2D結果表示
- 3D結果表示
- 使用方法タブ
- ログ表示
制約:
- 既存機能は壊さない
- .batはcp932 + CRLF
- PythonソースはUTF-8
- コメントとdocstringは日本語で詳しく入れる
このように、ChatGPTには「実装そのもの」よりも、実装前の整理を担当させると安定します。
4.Antigravityの役割
Antigravityは、実装担当として使うのが向いていると思います。
特に、既存プロジェクトのフォルダ構成を読み取りながら、複数ファイルをまとめて修正するような作業と相性が良いです。
Antigravityに依頼するときは、次のような情報を明確に渡します。
- 修正したい内容
- 変更してよい範囲
- 変更してはいけない範囲
- 既存機能への影響を避けること
- 動作確認方法
- 出力してほしい説明内容
たとえば、次のような指示にします。
以下の仕様で修正してください。
目的:
- 結果表示タブに「最大水深」と「最大流速」の表示を追加する
修正方針:
- 既存の計算ロジックは大きく変更しない
- UIの既存レイアウトは維持する
- 結果表示部分だけを拡張する
注意:
- 指示されていない機能は変更しない
- 既存のタブ名やボタン名を勝手に変更しない
- .batはcp932 + CRLFで保存する
- PythonソースはUTF-8で保存する
- 主要な関数には日本語docstringを追加する
実装後に説明してほしい内容:
- 修正したファイル
- 修正内容
- 動作確認方法
- 既存機能への影響
- 未対応事項
Antigravityには、単に「直して」と投げるよりも、作業範囲を明確に制限して依頼することが重要です。
5.Codexの役割
Codexは、レビュー担当として使うのが向いていると思います。
実装後に、差分やPRを確認してもらい、次のような観点でレビューしてもらいます。
- バグがないか
- 例外処理が不足していないか
- 既存機能を壊していないか
- セキュリティ上の問題がないか
- ファイル構成が不自然になっていないか
- 将来メンテナンスしにくい実装になっていないか
- テストや動作確認が不足していないか
などなど
Codexにレビューさせるときは、レビュー観点を明確に渡すのが良いです。
この差分をレビューしてください。
重点的に確認してほしい点:
- 既存機能を壊していないか
- 指示外の大きな変更が入っていないか
- 例外処理やログ出力が不足していないか
- Windows + WinPython環境で問題になりそうな点がないか
- .batファイルの文字コードや改行コードに問題がないか
- PySide6のイベント処理に問題がないか
- 将来の保守性に問題がないか
ただし、単なる好みのリファクタリングは重大な問題でない限り指摘しないでください。
ここで大事なのは、Codexの指摘をすべて採用しないことです。
Codexはレビュー担当として有効ですが、業務仕様や開発方針を完全に理解しているとは限りません。
そのため、指摘は次のように分類してから採用します。
| 指摘内容 | 対応方針 |
|---|---|
| 明らかなバグ | 採用 |
| セキュリティ問題 | 原則採用 |
| 例外処理不足 | 採用候補 |
| テスト不足 | 採用候補 |
| 命名やスタイルの好み | 慎重に判断 |
| 大規模リファクタリング | 原則保留 |
| 仕様と異なる提案 | 不採用 |
| 既存UIを壊しそうな提案 | 不採用 |
6.組み合わせるメリット
ChatGPT、Antigravity、Codexを分けて使うメリットは大きいです。
6.1. 仕様と実装を分離できる
ChatGPTで仕様を整理してからAntigravityに渡すことで、実装AIに渡す指示が明確になります。
曖昧な仕様のまま実装すると、AIはそれらしく補完してしまいます。
しかし、その補完が業務的に正しいとは限りません。
先にChatGPTで仕様を言語化しておくことで、実装のブレを減らせます。
6.2. 実装とレビューを分離できる
実装したAIに、そのままレビューまで任せると、自分の実装に甘くなる可能性があります。
Antigravityで実装し、Codexでレビューすることで、第三者レビューに近い形になります。
これは、人間の開発でも重要な考え方です。
6.3. レビュー指摘を冷静に整理できる
Codexのレビュー指摘には、有用なものもあれば、今回の目的には不要なものもあります。
そこでChatGPTを使って、指摘を次のように整理します。
- 採用する
- 今回は保留する
- 不採用にする
- 追加確認が必要
この整理を挟むことで、不要な修正による副作用を減らせます。
6.4. 開発履歴が残りやすい
AIに依頼するときのプロンプト、実装後の説明、レビュー指摘、修正方針を残しておくと、後から見返したときに非常に役立ちます。
特に、以下の情報は残しておくと便利です。
- 何を修正したか
- なぜ修正したか
- どのファイルを変更したか
- どの指摘を採用したか
- どの指摘を採用しなかったか
- 動作確認で何を見たか
などなど
これは、人間が作る開発メモや変更履歴と同じです。
7.注意点
7.1. AIに仕様判断を丸投げしない
AIは、実装方法を提案することは得意です。
しかし、業務上どちらが正しいか、どの仕様を優先するべきかは、最終的に人間が判断する必要があります。
たとえば、UIの見た目を少し変えた方がコード上はきれいになるとしても、利用者が慣れている画面を変えない方がよい場合もあります。
そのような判断は、AIではなく開発者側で行うべきです。
7.2. 「ついで修正」を許可しすぎない
AIに実装を任せると、親切に関連箇所まで直してくれることがあります。
しかし、これは危険な場合もあります。
特にGUIアプリでは、少しの修正でレイアウトやイベント処理が崩れることがあります。
そのため、依頼文には必ず次のように書いておくと良いです。
指示された箇所以外は大きく変更しないでください。
既存機能を壊さないことを最優先してください。
7.3. ローカルでの動作確認は必須
AIが「動作確認済み」と説明していても、自分の環境で必ず確認する必要があります。
特に、Windows、WinPython、PySide6、OpenGL、Docker、WebGISなどは、環境差が出やすいです。
最低限、次の確認は行います。
- アプリが起動するか
- 主要なボタンが動くか
- 入力データを読み込めるか
- 計算を実行できるか
- 結果表示が崩れていないか
- ログにエラーが出ていないか
- 既存機能が消えていないか
などなど
7.4. レビュー指摘を全部入れない
Codexの指摘は有用ですが、すべて採用すると、当初の目的から外れる可能性があります。
特に、大規模リファクタリングや設計変更は慎重に扱うべきです。
今回の修正目的に対して必要なものだけを採用し、不要なものは次回以降に回す方が安全です。
7.5. プロジェクトルールを明文化する
毎回同じ注意点をプロンプトに書くのは大変です。
そのため、プロジェクトごとに開発ルールを文書化しておくと便利です。
たとえば、次のような内容です。
開発ルール:
- Pythonは3.12を対象とする
- GUIはPySide6 + pyqtgraphを基本とする
- .batはcp932 + CRLFで保存する
- PythonソースはUTF-8で保存する
- 主要な関数・クラスには日本語docstringを入れる
- 初心者向けの使用方法を用意する
- 既存機能を壊さない
- 指示外の大規模変更は行わない
このようなルールを用意しておくと、AIへの依頼が安定します。
8.実務で使うときのおすすめ構成
実務では、次のように構成すると管理しやすいと思います。
project/
├── src/
├── data/
├── docs/
├── tests/
├── README.md
├── CHANGELOG.md
├── AGENTS.md
└── run_app.bat
8.1.README.md
プロジェクトの概要、起動方法、必要な環境を書きます。
8.2.CHANGELOG.md
バージョンごとの変更内容を書きます。
8.3.AGENTS.md
AIエージェント向けのルールを書きます。
たとえば、以下のような内容です。
# AGENTS.md
## Project rules
- Python 3.12を対象とする
- GUIはPySide6 + pyqtgraphを使用する
- .batはcp932 + CRLFで保存する
- PythonソースはUTF-8で保存する
- 主要な関数・クラスには日本語docstringを入れる
- 指示外の大規模リファクタリングは禁止
- 既存UIの文言やタブ名を勝手に変更しない
- 既存機能を壊さない
## Review guidelines
- 既存機能への影響を重視する
- Windows環境での動作リスクを確認する
- 例外処理とログ出力を確認する
- セキュリティ上の問題を確認する
- 単なる好みのリファクタリングは重大な理由がない限り指摘しない
AGENTS.mdを用意しておくと、AIに毎回同じルールを説明する手間を減らせます。
9.参考リンク
-
Google Antigravity Codelab
https://codelabs.developers.google.com/getting-started-google-antigravity -
OpenAI Codex GitHub連携
https://developers.openai.com/codex/integrations/github
10.まとめ
ChatGPT、Antigravity、Codexを組み合わせると、AIを使ったシステム開発をかなり実務的に進められます。
重要なのは、AIに全部任せることではありません。
それぞれのAIに役割を持たせることです。
AIの役割分担
- ChatGPTで仕様を整理する
- Antigravityで実装する
- Codexでレビューする
- ChatGPTでレビュー指摘を整理する
- 人間が最終判断する
このように役割を分けることで、AI開発のスピードを活かしつつ、品質面のリスクも抑えやすくなります。
特に、GUIアプリ、解析プログラム、WebGIS、業務支援ツールのように、仕様と実装の両方が複雑になりやすい開発では、この分担はかなり有効だと思います。
AIは単なるコード生成ツールではなく、開発チームの一部として使う時代になってきています。
ただし、最終的な仕様判断、採用判断、動作確認は人間が行う。
この前提を守ることで、ChatGPT + Antigravity + Codex の組み合わせは、実務開発でかなり強力なワークフローになります。
それでは、開発を進めましょう!!