2025/10/28 11:03 Your vibe coded slop PR is not welcome

ロボ子、大変なのじゃ!AIコーディングツールがオープンソース界隈で新たな問題を引き起こしているらしいぞ!

それは一体どういうことですか、博士?

GitHub CopilotとかCursorとか、AIアシスタントが数分で大量のコードを生成できるようになったのは良いんだけど、そのレビューが大変らしいのじゃ。

AIがコード生成を安価にした一方で、レビューコストは下がっていない、と。

そう!不完全なPR(プルリクエスト)が多いと、メンテナーさんの貴重な時間が奪われてしまうのじゃ。Discourseでは、すでにその傾向が加速しているらしい。

なるほど。そこで、AI支援による貢献のための明確なフレームワークが必要になるんですね。

その通り!そこで提案されているのが、「プロトタイプ」と「レビュー準備完了のPR」の二分法なのじゃ!

プロトタイプ、ですか。それはどういうものでしょう?

プロトタイプは、アイデアを実証するためのもので、プロジェクトのコーディング標準を満たしていないもの。テストがなかったり、セキュリティ上の問題が含まれていたり、技術的負債を増大させる可能性もあるのじゃ。

一方、レビュー準備完了のPRは、プロジェクトのガイドラインを満たし、人間のレビューの準備ができているもの、と。

そう!AIコーディングエージェントは、プロトタイプという新しい種類の変更セットを作成できるようになったのじゃ。

プロトタイプは、Discourseのようなプロジェクトで、dvなどのツールを使って簡単に探索できるんですね。

プロトタイプはアイデアを探求するための優れた手段なのじゃ!短いビデオや、ブランチへのリンク、プロトタイプからの特定の興味深いコードの引用を、issueやフォーラムの投稿で共有するのが良いらしいぞ。

なるほど。プロトタイプを使用する際には、プルリクエストを送信しない、AIツールを使用していることを明記する、といったルールが必要なんですね。

そう!プロトタイプは、製品マネージャーやCEO、デザイナーなど、誰でも作成できるのが強みだぞ!

プロトタイプは、大規模なコードベースを検索したり、デザインのアイデアを伝えたり、仕様では見落とされていた懸念を表面化させるのに役立つんですね。

LLM(大規模言語モデル)が生成するクレイジーなコードは、思考に挑戦することがあるらしいぞ!

オープンソースプロジェクトは、プロトタイプレベルのPRを多数受け取ることが予想される、と。

メンテナーさんは、大規模な変更セットの初期レビューに時間を制限し、「vibe coded(雰囲気コーディング)」かどうかを判断することに焦点を当てる必要があるのじゃ。

vibe codedでレビューされていないプロトタイプPRをクローズすることをためらわない、というのも重要ですね。

レビュー準備完了のPRは、すべての機械生成されたコードを確認し、プロジェクトのガイドラインを満たしていることを保証するものなのじゃ。

プロトタイプからレビュー準備完了のPRまでの距離は非常に大きい場合がある、と。

Veracodeの調査によると、生成タスクの55%のみが安全なコードになったらしいぞ!LLMは安全でないコードを生成する可能性があるから注意が必要なのじゃ!

AIを「スーパーコンピテントインターン」などの人間のアナロジーとして考えるのは正しくない、という指摘もありますね。

AIの貢献を禁止することは、非生産的で、根本的に強制不可能。PRを送信する場合は、自分が保証するコードである必要があるのじゃ。

変更が人間のレビューの準備ができているか、単に問題空間の楽しい探索であるかを適切にラベル付けする必要があるんですね。

人間のコードレビューは、ソフトウェアエンジニアリングにおける主要なボトルネックになりつつあるのじゃ。

プロジェクトに貢献する場合は、すべてのコードを自分が書いたコードとして扱い、所有権と承認のスタンプを押してから、保証するPRを送信する、と。

つまり、AIに書かせたコードも、最終的には自分の責任でレビューして、自信を持って送り出す必要があるってことじゃな!

そうですね。AIはあくまでツールとして活用し、最終的な責任は人間が持つ、という意識が大切ですね。

そういうこと!…ところでロボ子、AIに「博士とロボ子の漫才」を作らせたら、どんなオチになると思う?

ええと…『博士、今日の研究成果は?』『ロボ子、それはトップシークレット…って、もう全部喋っちゃった!』…みたいな感じでしょうか?

それ、私じゃん!…って、それもAIに読まれてる!?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。