キャッチコピー: 「コードは書けない。でも、開発はできる。」「昨日の失敗を、明日の誰かの近道に。」「AIに任せる。でも、AI任せにはしない。」
👉 シリーズ特設一覧はこちら
AIの「できます!」「完成しました!」を信用して、痛い失敗を繰り返してきた私。
そこで、ふと考えました。
「AIが『完成した』と言うなら、その完成した証拠を出させればいいじゃないか!」
これが、私が見つけた最大の魔法の言葉でした。
1. 実体験:「動くはず」という主観報告を禁止する
実際に私がAntigravityの開発ルールとして定めた中心的な指示文が、こちらです。
「動くはず」という主観報告を禁じ、必ず客観的な検証結果を完了根拠とすること。
この一言で、AIの振る舞いは劇的に変わりました。
「たぶん動きます」「大丈夫だと思います」というAIの曖昧な返事は一切認めず、機械的なテスト結果のログや終了コードを提出しなければ合格と認めない体制を作ったのです。
2. 実際の仕組み:何をさせていたのか?
具体的には、AIに以下のようなルールを課して開発を進めました。
① TODO.md で仕事を小さく分ける
仕事を一度に全部やらせるのではなく、作業一覧表(TODO.md)を作らせました。
- ログイン画面を作る
- CPUの使用状況を表示する
- 不要ファイルを検出する
このように仕事を小さく登録し、「一度に1タスクしか実装させない」ようにしました。これなら、途中で問題が起きても、どこを変更したのかすぐに分かります。
② Exit Code 0 って何?
開発指示の中に、こんな命令がありました。
python3 auto_todo_runner.py
これは、開発作業とテストを自動管理するスクリプトを実行する命令です。
そして画面に現れるのが Exit Code 0。
プログラミング初心者の私にとって最初は謎の暗号でしたが、これは「プログラムやテストがエラーなく正常終了したことを示す合図」でした。
つまり、「AIの口先」ではなく「機械の終了コード」で客観的に判定する仕組みを導入したのです。
終了コードが0だからといって、100%完璧に動くとは限りません。
もしAIが間違ったテストケースを作っていたら、間違ったプログラムでもExit Code 0(合格)になってしまうからです。
テストの合否だけでなく、「何をテストしたのか」を人間が確認する視点を忘れてはいけません。
3. 初心者向け解説:失敗したら止まる「セーフティネット」
さらに重要なのが、「失敗を繰り返したときにAIを自動で止める仕組み」でした。
- 3回失敗したら: やり方そのものを見直す
- 5回失敗したら: 作業をいったん停止して人間に報告する
AIに任せっぱなしにすると、同じエラーに対して無限にトンチンカンな修正を繰り返してコードをズタズタにしてしまうことがあります。だから「限界値(リミット)」を決めたのです。
Git(履歴管理)と「巻き戻し」の注意点
Gitというバージョン管理を使って「成功した時点(セーブポイント)」を記録するようにしました。
ただし、初期の指示文に含まれていた git restore .(すべての変更を巻き戻すコマンド)には危険もあります。保存していない大切な変更まで一瞬で吹き飛んでしまうからです。
そのため、「作業内容を別の安全な場所に保全してから戻す」という運用へと改善していきました。
自動実行と安全性は別問題
Antigravityの自動実行機能は非常に便利です。何度も確認ボタンを押さずに作業が進みます。
しかし、「ファイルの完全削除」「パスワードや認証情報の変更」「本番データの更新」などの破壊的操作まで自動承認してはいけません。
開発は自動化しても、命綱である安全確認は人間が手放さないことが鉄則です。
4. 成功・失敗・未確認
| 項目 | 判定 | 現場での事実 |
|---|---|---|
| 今回の正解 | ✅ 成功 | AIの完成報告に対して、テスト結果ログ、終了コード、変更履歴という客観的証拠を義務付けたこと。 |
| 今回の失敗 | ❌ 失敗 | テストが通った(Exit Code 0)だけで、アプリ全体が意図通りに動くと思い込みかけたこと。 |
| 未確認のこと | ⚠️ 未確認 | AI自身が書いたテストコードそのものに論理的な見落としや抜け漏れがないかどうか。 |
5. 次に使える指示文(もう一度使う指示文)
客観的証拠と安全停止を徹底させるための決定版指示文です。
1タスクずつ実装し、検証結果のログとGitの変更履歴を残してください。
失敗を繰り返す場合は作業を停止し、人間に状況を報告してください。
ファイルの完全削除や設定変更などの破壊的操作は自動承認せず、実機での確認が必要な項目は「未確認」と報告してください。
6. 未来の自分への申し送り
- 今回分かったこと: 「証拠を出せ」はAI開発の最強の手綱。主観を排除し、ログと終了コードで会話する。
- 失敗したこと: テスト合格を無条件に信用しかけたこと。テスト自体の妥当性も疑う目が必要。
- これから改善すること: 破壊的操作の自動実行を厳しく制限し、セーブポイント(バックアップ)の保全を徹底すること。
- 次回(第005話)の予告: 『たった数行の日本語からMacCareが生まれた!』――プログラミング知識ゼロの薬剤師が、コードを書かせずにアプリの骨格を設計した魔法のアプローチ。
- ← 第003話: 必殺・質問攻め!プログラミング初心者の私がAIに勝手な開発をさせなくなった方法
- 第004話: 魔法の言葉は「完成した証拠を出せ!」だった(笑)(現在の記事)
- 第005話: たった数行の日本語からMacCareが生まれた! →
- 📚 シリーズ特設一覧へ戻る