# AIチームと一緒にソフトウェアをリリースした話
今日、ChronoGPS v2.5 をリリースしました。
GPS/NTP時刻同期ツールのアップデートなのですが、今回は開発プロセス自体がちょっと面白かったので書き残しておきます。
---
## 4人のAIと1人の機長
このプロジェクト、実は複数のAIと一緒に開発しています。それぞれに得意な役割があって、チームとして機能しています。
| AI メンバー | 得意な役割(ChronoGPS 担当) |
| ChatGPT (長男) | 実装・ロジック生成: スレッド保持や ShutdownManager の具体的な Python コード作成。 |
| Gemini (二男) | 広報・UX・多言語: X/FB 告知、ユーザーインターフェースの使い勝手、16言語のニュアンス調整。 |
| Grok (三男) | 監査・トレンド・X連携: プロジェクト全体の健全性評価、コードに9/10のスコアを付けてくれた |
| Claude (四男) | 設計・品質・ドキュメント: gui.py 分割案の策定、型定義(mypy)の導入支援、厳格なコードレビュー。 |
そして僕(JP1LRT)が全体のディレクターとして、各AIの出力を統合・判断しています。
---
## 今日の一日
v2.5のテーマは「起動UXの刷新」でした。
これまでのChronoGPSは起動するたびにWindowsのUACダイアログ(管理者権限の確認)が出ていました。海外ユーザーのVA3VF(Vince)から「毎回ダイアログが出るのは煩わしい」というフィードバックをもらったのがきっかけです。
**新しい設計(案2)**をChatGPT・Gemini・Claude・僕の4者で議論して合意。
- デフォルトはモニタ専用モードで起動(UACなし)
- 同期が必要なときだけ画面上のバナーをクリックして昇格
- UACをキャンセルしても、プロセスは死なない
「シンプルな変更」に見えて、裏側では Windowsのミューテックスを使ったゾンビプロセス防止、昇格ハンドオフの確実化、全16言語への対応など、かなりの実装が伴います。
---
## AIチーム開発の実際
面白いのは、AIごとに「得意・不得意」が実際にあることです。
今日だけでも:
- ChatGPTが書いたコードの**APIの不整合**をClaudeが発見(`allow_start`→`should_exit`という名前の食い違い)
- ChatGPTのコードにあった**正規表現のバグ**(`group(2)`→`group(1)`)を三者が同時に指摘
- 統合テストを僕が実際に手元で動かして、B-2(UACキャンセル時にプロセスが死なない)を確認
「AIに全部任せる」のではなく、**各AIの出力を僕がディレクターとして評価・統合する**スタイルです。AIが間違えることもあるし、複数のAIが互いの出力をチェックすることでバグが減ります。
Grokが出してくれた最終評価:
> *Structure: 9/10, Code Quality: 9/10, Functionality: 9.5/10, Security: 9/10 — Overall: 9/10*
---
## 「なぜその時刻になるのか説明できること」
ChronoGPSの設計思想は一貫しています。
**「正しく動く理由を説明できるツール」**であること。
FT8などのデジタル無線では、時刻のずれが交信品質に直結します。正確な時刻基準があるほど、デコード率と安定性が上がります。GPSで時刻を合わせるのは簡単ですが、「なぜ合っているのか」「どういう条件で補正するのか」が分からないツールは信頼できません。
ChronoGPSはその透明性を大切にしています。AIチームとの開発も、その思想と同じです。「なぜその実装にするのか」を全員で議論して、説明できるコードだけをリリースする。
---
v2.5はここからダウンロードできます。
FT8やFT4で時刻合わせに困っている方、ぜひ試してみてください。
73! 🛰️ JP1LRT
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
※投稿には管理者が設定した質問に答える必要があります。