Godot、AIが書いたコードのコントリビューションを今後受け付けない方針に
(pcgamer.com)- オープンソースのゲームエンジン Godot は、AI生成のPull Requestがレビュー負担を増大させていることを受け、AIが書いたコードとAIエージェントによる提出をコントリビューションポリシーで禁止する方針
- メンテナーらは、AI生成PRのレビューが、もともと単調なレビュー作業をさらに消耗の大きいものにし、新しいコントリビューターを将来のメンテナーに育てる効果も弱めると見ている
- 新ポリシーでは、AIが書いたコード、AIエージェントが提出したPull Request、人同士のコミュニケーションに含まれるAI生成テキストを明示的に拒否する予定
- コントリビューターはAIを「menial things」に限って補助的に使うことができるが、その使用を開示する必要があり、人が書いた原文に基づく機械翻訳は許可される
- Godot Foundationは、AIツールが急速に変化していることから、まずは保守的に運用し、状況の変化に応じてポリシーを再評価する計画
Godotのコントリビューションポリシー変更
- Godot Foundationとメンテナーらは、数カ月にわたる議論の末、コントリビューターガイドラインを改定し、AI関連の提出を制限する方針
- 制限対象は、AIが書いたコード、AIエージェントが提出したPull Request、人同士のコミュニケーションに含まれるAI生成テキスト
- Godotは、Slay the Spire 2やThe Case of the Golden Idolのようなゲームで使われているオープンソースのゲームエンジン
AI Pull Requestが生んだメンテナンス負担
- メンテナーらは2月から、増加した AI slop Pull Request にどう対応するかを議論してきた
- こうしたPRの流れは、プロジェクトのコードレビュアーにとって「increasingly draining and demoralizing」な状態になっている
- Godot Foundationは、この問題を一時的なものではないと見ており、メンテナーの負担を減らしつつ、新しいコントリビューターを将来のメンテナーに育てる経路は維持しようとしている
レビューがメンタリングにつながらない問題
- レビュー待ちのPRが増えている状況自体は、Godotの利用やコントリビューションへの関心の高まりと見ることができる
- しかし、AIが書いた、または提出したコントリビューションが増えるにつれ、メンテナーがPRレビューに時間を使おうとする意欲は弱まっている
- PRへのフィードバックが潜在的な将来のメンテナーをメンタリングできず、「機械に吸収」されるだけなら、自由時間をレビューに費やすことを正当化しにくくなる
新ポリシーの具体的な制限
- Godotのコントリビューションポリシーには近く、AI-authored code を明示的に拒否する内容が含まれる予定
- コントリビューターはAI支援を「menial things」にのみ使用し、その使用を開示しなければならない
- Foundationは「AIは責任を負えず、AIを多用する人が自分のコードを直せるほど十分に理解しているとは信頼できない」と述べている
- 人同士のコミュニケーションでも、AI生成テキストは拒否される
- Foundationはこれを「a basic principle of respect」と表現している
- 人が書いた原文に基づく機械翻訳は引き続き許可される
ポリシーの運用方針
- Godot Foundationは、低労力の「slop」なコントリビューションに対して障壁を追加することに重点を置く
- メンテナーがコードレビューを続けられるようにすること、新しいコントリビューターを将来のメンテナーへ成長させることもポリシーの目標に含まれる
- すべてのコントリビューションは、自分のコードに責任を持ち、問題が起きた場合に自ら修正できる人間からのものでなければならない
- Foundationは、現在のAIツールは日々変化しているため保守的なポリシーを維持しつつ、変化に応じて再評価するとしている
1件のコメント
Hacker Newsの反応
このポリシーは公平だ。冗長なAI作成のテキストの壁を徹底的にレビューしろと渡されるのは本当にうんざりするし、人間の精神に対するサービス拒否攻撃のように感じる。
ただし、AIベースのコーディング自体は止められないだろう。否定的に見れば、投稿者が人間らしく見えるよう文体上の印を付け足し、核心部分や貢献の規模はそのままなのに、スタイルだけが奇妙になる可能性がある。
肯定的に見れば、「これがコードで、変更理由はこれで、影響はこうだ」といった、無駄のないコミットやコメントを出すようになるかもしれない。AIが作ったとしても、こうした小さな貢献ははるかに検証しやすくなり、適切な貢献の大きさや、より厳格なレビューが必要な変更についての基準も生まれ得る。
個人的には、内容が後者に合っているなら、AI生成かどうかはあまり気にしない。
「無駄のないコミットとコメント」が実際に来るなら夢のようだ。
こうした文脈ではAIによる貢献を押し返すのは妥当で、Godotのようにすでに大きな価値を証明しているソフトウェアならなおさらだ。
AIが書いたコミットが本質的に違わないなら拒否する理由もないので、AIベースのコーディングを止めることが目標ではないと思う。
一方では、AI企業の企業価値が、近い将来すべてのコードとデジタル成果物がAIによって書かれるという前提に依存しているのに、他方では、ほぼすべての人気オープンソースプロジェクトがAIによる貢献を阻止しようとしているのは興味深い。両立させるのは難しい。
個人的にも、自分のオープンソースプロジェクトでかなり使ったあと、AIの二日酔いのようなものを経験している。使っている瞬間は、数週間かかる機能を数時間で作れて、すごい力を得たように感じるが、時間が経ってコードを見ると、ツールが残した微妙なひび割れや不整合が見えて困惑する。
今では、大きな機能開発よりも、計画、デバッグ、範囲の狭いリファクタリングのように厳格なガードレールを置けるところで控えめに使おうとしている。それでも作業は速くなるが、10倍ではなく1.5〜3倍程度に近い。
コーディングに必要な精神的集中は減るが、機械とずっとチャットしながら自然言語の指示がどう解釈されるかわからないという新しい疲労が生じる。内部配線が絶えず変わる機械を、ボタンの組み合わせで操作しているような感覚で、満足感はない。
AIが可能にしたのは、プロジェクトにまったく関わっていない人たちからの貢献だ。今では、PRを作ったという事実だけで「この人はプロジェクトの成功にある程度関心がある」というハードルを越えたとは見なせなくなった。
AIは正しく使えば増幅器だが、オープンソースのメンテナーの立場では、プロジェクトに関心のない人たちが大量に吐き出す低価値の「貢献」に簡単に埋もれてしまう。
特にAIのお世辞傾向のせいで、ずっと「いいアイデアですね!」と言ってくるが、自分のアイデアの大半が大したものではないことはよくわかっている。
子どもたちと一緒にいながらスマホでバイブコーディングをしている、といった話を見ると、ほとんど強迫のようにも聞こえる。
そもそもオープンソースにおいて速さには大きな意味がなく、それには理由があった。
仕事をしたり新しいプロジェクトを始めたりするとき、あまりにも簡単にAIに手が伸びるドーパミン構造も問題だ。
今はClaudeにまず頼るより、大半のコードを手で書くほうを再び好むように、脳を再訓練しようとしている。これが一時的な段階なのか、それともLLM匿名会のようなものが必要になるのかは、時間が教えてくれるだろう。
AIなしのソフトウェアを集めたリストがある。時間とともにどう変わるか、インデックスやグラフで見られるとよさそうだ。
https://codeberg.org/brib/slopfree-software-index
https://noai.starlightnet.work/list.html
https://hcker.news/?ai=exclude&include_domains=github.com
機能的な理由としては、no-AIポリシーはあまり思い浮かばない。誰が作ったにせよ、何が作ったにせよ、動くなら動く。
AI生成のゴミを避けられても、フィルターを通過する人間生成、または人間+AI生成のゴミまで避けられるわけではない。
それでも、出所、説明責任、作業の証明、人々が自分でコードを書くことを促すこと、人間がコードベースを発展させる方法を実証的に追跡すること、といった非機能的な理由は十分に思い浮かぶ。
「PRへのフィードバックが、将来のメンテナーになるかもしれない人をメンタリングするために使われるのではなく、機械に吸収されるだけなら、自由時間をPRレビューに使うことを正当化するのはずっと難しくなる」というFoundationの言葉が核心を突いている
理解できないなら、これらを見ればよい
https://github.com/godotengine/godot/pull/115280
https://github.com/godotengine/godot/pull/116410
AI時代以前からレビューすべきPRが多すぎて大変だったプロジェクトに、こうしたものまで処理し続けろと言うのはメンテナーに公平ではない
だからポリシーの本当に大きな変更点は、新規コントリビューターが大きな機能やリファクタリングを担当できなくした部分だ
リポジトリに残っている情報だけで別名とソーシャルアカウントを見つけることができ、まだ10代前半にもなっていない子どもだった。問題や関連する社会的構造を理解するための基礎知識がまだない状態に見える
Brandoliniの法則がそのまま働いている事例だ
たわごとに反論するには、それを作り出すより10倍多くの労力がかかる。コードレビューは反論であり、命題の正確性を検証することも同じだ
命題を生成するのは簡単だが、反論するには真偽を証明するか矛盾を見つけなければならない。時間の足りないオープンソースメンテナーのエネルギーが不必要に浪費されるので、エネルギーを節約して生産的に使おうという点には全面的に同意する
AIは業界で最も高価なリソースの一つを偶然見つけ出した。つまり、本業を終えた後の夜にオープンソースを管理する人々の自由時間だ
Foundationは、常に事実だったがAIが前面に押し出した点を指摘した。AIを含むどんなコントリビューターでも、今後そのパッチを保守できない可能性がある
核心はAIの使用そのものではなく、提出者が自分が何を出しているのか理解していないことを示す兆候の一つだという点だ。変数名の慣例を破ったり、触ってはいけないAPIを変えたり、未熟な言語上のミスをしたりすることは、パッチが動作していても拒否する理由になり得る
回避策としては、AIが理由でPRを拒否すると示したうえで、作者に特に誇りに思う部分を一つ挙げさせ、AIのテキストの壁ではなく自分の言葉で何をしていてなぜ良いのか説明させることができる。作者はAIにはない好みと意見を示さなければならない
ここでは多くの人が実際のポリシーを読むより、タイトルに反応しているように感じる。ポリシーには、PRレビューを新規コントリビューターの育成と潜在的な将来のメンテナー発掘に使うことが重要な理由だと書かれている
AIによる貢献の品質とは無関係に、この部分は反論しにくそうだ
AIがオープンソース貢献やメンテナンスという概念全体を不要にすると信じているなら例外だろうが、それならGodotにPRを送るより、エンジンをフォークしてエージェントたちに作業させるほうが合っているように思う
AIコントリビューターたちは、本当に自分たちが役に立っていると思っているのだろうか。そういう「作業」でプロジェクトを台無しにしていることに気づいていないのだろうか
誰も望んでおらず拒否されるものに、なぜお金を使うのか理解できない。趣味がないのか、それとも作った人が忘れてしまって自由に動き回っているOpenClawインスタンスが勝手に動いているのか
こういう人たちは、主要なFOSSプロジェクトへの貢献を履歴書の水増しとして刈り取っている。脆弱性報告でも同じことが起きている
大量生成する人たちは本気で役に立っていると思っているかもしれないし、自分の「貢献」がプロジェクトにとって純損失だと知っているかもしれない。だが直接的な経済的動機があり、立場が不安定なら、外部性は優先順位から押しのけられる
Claudeは1時間でやり遂げ、私は3〜4回手直ししてテキストの壁を減らし、元プロジェクトのスタイルに合わせた。代替案はそのまま放置するか、Issueだけ開いてメンテナーに負担を渡すことだった
だから私は役に立ったと思っている。この境界事例も、私の趣味であるホームラボをいじっているときに見つけた
どちらのPRも小さく、人間のPRと変わらなかった。今でも価値のある追加だったと信じているし、一部のメンテナーもそう見たのは明らかだ
コーディングしたい、あるいは製品をより良くしたいのではなく、細部を理解しなくても「コード行数」「コミット」、見栄えのよいGitHubの緑のプロフィールが欲しいのだ