【第004話】魔法の言葉は「完成した証拠を出せ!」だった(笑)

#Vibe Coding#Drive Coding#Antigravity#AI開発#プログラミング初心者#薬屋DX奮戦記
💡 🚗 集中連載『VIBE CODINGからDRIVE CODINGへ』(全8話)

キャッチコピー: 「コードは書けない。でも、開発はできる。」「昨日の失敗を、明日の誰かの近道に。」「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の口先」ではなく「機械の終了コード」で客観的に判定する仕組みを導入したのです。

💡 ⚠️ ただし、Exit Code 0 にも落とし穴がある!

終了コードが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が生まれた!』――プログラミング知識ゼロの薬剤師が、コードを書かせずにアプリの骨格を設計した魔法のアプローチ。

📮 先生に「こんな記事書いて!」とリクエストしてみませんか?

「うちの薬局のこの業務改善について知りたい」「AIへの頼み方をもっと教えて」「写真見て笑いましたw」など、
現場の困りごとや応援メッセージを、先生に直接届ける専用ポストを開設しました!

メッセージ・記事リクエストを送る ✉️