はじめに
Twitter(現:X)などでは、CLIベースのAIエージェントがソースコードを吹き飛ばした話を時々見かけていました。
とうとう手元の環境で発生したので、その際の話を記録として残しておきます。
経緯
特定のUIをコンポーネントとして分離するように指示して、成果物を確認したところ不備があり指摘したところ修正を実施しました。
ここまでは良かった、、
\\ファイルの内容が失われてしまったため、元のコードを復元する必要があります。//
ファイル内のソースコード全てを吹き飛ばしてきました。
リポジトリごと吹き飛ばした訳ではないので、大したことはないですが派手にやらかしてくれました。
対応
AIが自律的にコーディングしている以上この手のミスは完全には防げません。
対策はAIが手を出せる範囲を限定しておくことが挙げられます。
まさにセキュリティの最小権限の原則と、考え方は全く一緒ですね。
さらに、ソースコードを任意の地点に戻せるように変更管理を厳格に行うことが必要です。
私は、
- こまめにコミットする
- AIにGitHubを触らせない(コミットは人間が手動で実施)
- GitHub Flowに基づいた適切なブランチ戦略を実施する
ことを徹底しています。
AIにGitHubを触らせないことは、一番安全ではあるものの開発速度が落ちるデメリットもあります。
ただ、GitHubのリポジトリを吹き飛ばしたりされるとかなり面倒なので、
暫くはAIにGitHubは触らせないつもりです。
おわりに
コーディングAIエージェントが発達してきて、個人開発レベルでも変更管理を厳格に行う必要が出て来ました。
チーム開発では当たり前に意識されることなので、個人開発をしたことない方も厳格な変更管理を初めて見てはいかがでしょうか?