世界を動かす技術を、日本語で。

あなたの雰囲気に合わないスラップPRは歓迎されません

概要

  • AIコーディングツール の普及により、オープンソースプロジェクトの メンテナー負担 が急増
  • プロトタイプ本番レビュー用PR の明確な区別が必要
  • プロトタイプは アイデア検証 に有用だが、直接PRとして送るべきではない
  • AI生成コード のレビューコストが高く、適切なラベリングと運用ルールが不可欠
  • 人間による最終責任コードへのオーナーシップ の重要性

AIコーディングツールによる新たな課題

  • GitHub Copilot、Cursor、Codex、Claudeなどの AIアシスタント によるコード生成の爆発的増加
  • コード生成コストの低下レビューコストの高さ によるバランスの崩壊
  • 不完全なPRがメンテナーの 貴重なリソース消費 の原因
  • Discourseをはじめとする多くのプロジェクトで この傾向が加速
  • すべてのOSSエンジニアが 同じ課題に直面 する時代の到来

プロトタイプと本番レビュー用PRの二分法

  • プロトタイプ :アイデアのデモ用、品質保証・テスト・セキュリティ未確認
  • 本番レビュー用PR :ガイドライン遵守、テスト済み、責任を持てるコード
  • 適切な ラベリングとルール の欠如がOSSエコシステムに悪影響
  • AI生成のプロトタイプPRがメンテナーの モチベーション低下 を招く
  • 数分で生成 されたコードに対し、 数時間〜数日 かけてレビューが必要な現実

プロトタイプの運用と共有方法

  • プロトタイプは ブランチ で共有、PR(ドラフト含む)は送らない運用推奨
  • 短い動画ブランチへのリンク、面白いコードの引用をIssueやフォーラムで共有
  • AIツールでのアイデア探索であることを 明示
  • 他の誰かがプロトタイプを 本番PRへ昇華 する可能性も
  • Jules、Codex cloud、Cursor Cloud、Lovable、v0など 多様なAIエージェント で誰でもプロトタイピングが可能

プロトタイピング導入時の社内合意形成

  • いつプロトタイプを使うべきか、 チームで議論と合意形成 が必要
  • デザイナーやPMの 受け止め方の違い、人間の創造性への影響、ラベリング基準などの検討
  • 社内での 態度分断や不満 を防ぐための明確なルール作り

プロトタイプの価値と役割

  • アイデア検証・コードベース探索 の効率化
  • 視覚的コミュニケーション 手段として有用
  • プレイアブルなプロトタイプは 仕様漏れの洗い出し に有効
  • テスト実施による 事前課題発見
  • LLM生成の奇抜なコードが 新たな発想のきっかけ になることも

メンテナーのサバイバルガイド

  • 大規模PRの初期レビューをタイムボックス し、AI生成かどうかの見極めを優先
  • プロトタイプPR対応の エチケット整備
  • 貢献ガイドラインへの誘導や フォーラムでの議論推奨
  • 「vibe coded」な未レビューPRは遠慮なくクローズ してOK

本番レビュー用PRの基準

  • 全コードの内容を確認し、責任を持てる状態 で提出
  • プロジェクトの ガイドライン・テスト・構造基準 を満たすこと
  • AIアシストの有無は問わず、 最終的に自分が保証できるコード であること
  • プロトタイプから本番PRへの ギャップは非常に大きい (例:Andrej Karpathyの指摘)
  • Veracode調査によると 生成コードの55%しか安全でない という現実

AIは「異星人知能」として捉えるべき理由

  • LLMを「優秀なインターン」等の 人間的比喩は不適切
  • 良い部分と悪い部分が極端に混在 する異質な知能
  • 異星人知能として受け入れることで、 エンジニアリングプロセスの複雑さ に対応

異星人知能の強みを活かすプロトタイピング

  • dv(Discourse用コンテナオーケストレーター)を AIエージェント中心で開発
  • 複数のプロトタイプ環境を 簡単に構築しアイデア検証
  • dvのようなツールは プロトタイピングの工場 として機能

AI貢献・プロトタイプ禁止の是非

  • 各プロジェクトの ルール遵守 が大前提(例:Cloud hypervisorはAI生成コード禁止)
  • 「AI禁止」は 非生産的かつ実質的に強制困難
  • AI生成と人間生成の区別がつかない 場合も多い
  • 健全なアプローチは 明確な期待値設定とラベリング
  • PRは 自分のブランドとして責任を持てるもの のみ提出

なぜラベリングとオーナーシップが重要か

  • 人間によるコードレビュー がソフトウェア開発のボトルネック化
  • 他人の時間と自分のブランド を守る意識が不可欠
  • プロトタイプは 学びや発見の宝庫 だが、PR提出時は 必ず責任を持つ こと
  • 最終的な承認とオーナーシップ の重要性

まとめ AI時代のOSS貢献は、 プロトタイプと本番レビュー用PRの明確な区別責任あるラベリング が不可欠。 AIによる爆発的なコード生成の恩恵と課題を理解し、 メンテナー・貢献者双方のリソースを守る運用 が求められる。 自分のブランドを守る意識プロジェクトガイドラインの遵守 が、今後ますます重要となる。

Hackerたちの意見

オープンソースプロジェクトには、レビュー用に提出されたコードがプロジェクトのコードフォーマットや規約に従うべきだと明記されたガイドラインが必要じゃないかな?

コーディングスタンダードの話を聞くたびにいつも思うことなんだけど、基準があるだけじゃなくて、それをツールで強制するべきだよね。とはいえ、個人は自分のコードを自由に扱うべきだと思う。小規模プロジェクトでそれを実現するためのインフラを整えるのはちょっと難しいけど、AIのPRは小規模プロジェクトにはあまり大きな問題じゃないと思う。

完璧な世界では、人々はPRやイシューを開く前に貢献ガイドラインを読んで理解するだろうけど、残念ながら…

まるで誰もガイドラインを読まないみたいだね。確かに、違反したときに指摘するためにはあった方がいいけど、基本的に人は貢献する前に読むことはないよね。

LLMのコーディングエージェントは、リンターを書くのがかなり得意だと思う。

コードのフォーマットや規約が問題じゃないんだよ。問題は、テストもせずに、考えもせず、PRに対するオーナーシップを持たずに変更を加えること。中には、AIを魔法使いみたいに使って、何かを実行して「オープンソースの貢献」を得ようとする人もいる。彼らは、適切な注意を払うことの重要性を理解して、メンテナの負担を減らさないといけない。メンテナが本当に必要になる前にレビューしないようにするためにね。新しい貢献者を楽にすることも大事だけど、これは素晴らしい議論だと思う。

提出されたコードはプロジェクトのコードフォーマットや規約に従わなければならない…それは表面的な話に過ぎない。問題は、LLM(大規模言語モデル)が単独の人間なら絶対にしないようなミスをすることだ。コーディングの規約は、コードレビューの焦点になるべきではなく、通常はツールによって強制されるべきだと思う。例えば、他の人のコードを読むとき、その人の思考プロセスに合わせて調整することができる。数行の(非自明な)コードを読んだ後には、その人がどんな「プログラミングキャラクター」なのか、どんな問題が予想されるのかが無意識にわかる。LLMが生成したコードは、まるで千の脳に同時に合わせようとしているようなもので、コードは千人が書いて公開したものの寄せ集めだからだ。コードを通じてその人の思考プロセスを読むことはもうできない。なぜなら、まとまりのある思考プロセスが存在しないからだ。個人的には、信頼できる貢献者でない限り、数十行の小さな変更以上のPRをオープンソースプロジェクトにマージするのは非常にためらう。例えば、受け入れるPRについては、バイブコードかどうかはあまり気にしない。受け入れるPRの複雑さが非常に低いから、違いはあまり重要ではないはずだ。

他に感じてる人いる?LLMコーディングのハイプカーブがピークに達しつつある気がする。価値があるって認識はあるけど、ソフトウェアエンジニアを全部置き換えるっていう興奮状態は過ぎてる感じ。

私もそう感じる—成熟に近づいている気がする。ここにいるサフランさんが言っているように、「プロトタイピングのためにAIを使いまくって、PRの代わりにデモやブランチ、ビデオとしてコミュニケーションを取るべき」って。人やプロジェクトが「その雑なものを出すな」っていう純粋な態度から、よりニュアンスのある、価値あるものを統合しながら怠けたものを除外する方法を自信を持って表現する方向に動いている感じがする。

gpt5がリリースされて、OpenAIのベールが剥がれたときにそうなったと思う。悪いモデルではないけど、オルトマン氏の言葉の価値がはっきりしたね。

人々が「AIバブルが弾ける」と言うとき、これを指しているんだ。AIは役に立ち続けることは明らかだけど、「特異点が近い」というハイプは衰えてきているし、永続的な指数的改善に基づく企業評価は現実的じゃない。さらに悪いことに、各世代での限界的な改善は、ますます高いリソースを必要とするようになってきていて、AIがどれだけ優れていても、経済的に運用できる範囲に制限がかかっている。

うーん、MSがOpenAIにサーバーの無料使用を許可して、OpenAIがそれを100億ドルの投資と呼ぶ。で、トークンを使い切って、MSが100億ドルの収益を上げるってことかな。そう思うよ。

現状のLLMが人間を置き換えられるかどうかには懐疑的だったけど(ここ18ヶ月で少しは良くなったけど)、GPT-3.5(初めて本当に役立つLLM)はたった3年前のことだってことを忘れちゃいけない。GPTに関する初期の論文からまだ10年も経ってないんだから。

最初はすごく懐疑的で、だからこそ可能性について批判的だった。でも、最近のLSPに接続してコードベースのコンテキストをスキャンするCLIエージェントの最新バージョンには、いい方向で驚かされてる。プロジェクトの構造を理解する必要があるタスクを与えたら、ちゃんとできたからね。だから、私の立場は懐疑論者から大きな支持者に変わったけど、結局は自分のコードが本番環境にプッシュされることを考えると、注意が必要だと思ってる。幻滅の谷を通り抜けたわけじゃないけど、生産性に到達して、すごくいいと感じてる。

うーん、もしかしたらそうかも、そうじゃないかも。OSSプロジェクトのこういう記事からは、特に企業の仕事については何が起こっているのかを判断するのが難しい。$jobではそんな言葉はないけど、大規模なAI投資がまだ何も変わっていないように見える。もし変わらなければ、また多くの人を解雇して続けるだろうね。

まだ1年も経ってないのに、エージェントが明らかに役に立たない状態から、うまく使えばかなり役立つ存在になったね。

LLMの強みにもっと合った新しいプログラミングパラダイムが必要な気がする。それが新しい種類のアプリケーションを可能にするんだ。つまり、異なる種類のユーザー入力に対して高い許容度を持つアナログなアプリケーションを考えてみて。コンピュータをプログラミングするのが、子供やティーンエイジャーに人間のインタラクションが多いタスクを教えるような感じだったらどうだろう? そのインタラクションにはデータを提示したり、絵を描いたりすることが必要なんだ。

毎日、期待と嫌悪の間で揺れ動いてる。昨日は提案や編集、回答が全部幻覚みたいなゴミで、コパイロットのプラグインを完全に外そうと思ってた。今日は、すごくイライラする問題に何時間もハマってて、ふざけ半分でClaudeにスタックトレースと説明を渡してみたんだ。そしたら、驚くほど正確な思考の流れを作り出して、問題を見つけてくれた。全然予想外だったけどね。機能やコードベースを生成するのにどれだけ役立つかはまだ分からないけど、ゴムアヒルとしては悪くないよ。

タイトルが内容に見合ってないね。LLMが「異星の知性」っていう段落がすごく良かった。> 「私が知っている多くのエンジニアは2つのキャンプに分かれる。新しいクラスのLLMを知的で画期的、驚くほど優れていると考えるキャンプと、LLMが生成するコンテンツを『裸の王様』だと思うキャンプだ。彼らが生成するコードは『裸』で、根本的に欠陥があって有害だ。私は新しいシステムをどちらでもないと思いたい。新しい知性のクラスを『異星の知性』と考えたい。それは驚くほど優れていて、同時に驚くほどひどい。LLMを『超優秀なインターン』や他の人間のアナロジーで表現するのは間違ってる。これらのシステムは異星人で、これを受け入れることで、異星の知性を私たちのエンジニアリングプロセスに取り入れる複雑さをうまくナビゲートできるようになる。これは私が魅力を感じる類似性だ。彼らがコードを生成する方法や、彼らとどのようにやり取りするかは本当に『異星的』で、人間的に扱おうとすると感情が湧いてきて、それは正しくない。確かに、古い決定論的なプログラムが不具合を起こしてバグを見つけたり潰したりする時でも感情的になったりイライラしたりするけど、LLMとのやり取りは全く新しいレベルに引き上げることができる。だから、彼らが『異星人』であることを忘れないようにしないとね。」

ある運動では、異星の知性が2020年代初頭に到着すると予想していた。もしかしたら、彼らは正しかったのかもね ;)

ダイクストラを思い出すな。「機械が考えられるかどうかの問題は、潜水艦が泳げるかどうかの問題と同じくらい重要だ。」新しい潜水艦は、昔のものより人間の泳ぎに近いけど、やっぱり全然違うよね。

だから、根本的にAGIの概念はあまり意味がないんだ。機械の知能を人間と比較して測ることはできない。それは、機械が知的でないというわけじゃない…むしろ、測定基準は抽象化された人間であってはいけない。特定のタスクの蓄積だけが基準になるんだ。

他の人の知性って、私たちにとっては異質なものじゃない? 記事の最後で「自分たちのエンジニアリングブランドを守る必要がある」と言ってるけど、それはどうやって伝えるの? これを見つけたけど、あまりにも不十分に思える。実際には、慣習は既存のコードを通じて伝えられるんだ。人間の貢献者が数個のPRを通じて「エンジニアリングブランド」を理解できるのかな?

「これを閉じるけど、これは面白いね。フォーラムや問題に移って話し合おう」Discourseが新しい人がコミュニティとやり取りするにつれて機能を徐々に開放する「レベル」を使っているのがすごく好き。GitHubも、一定のやり取りをした後でしかPRを開けない仕組みを作れないかな?(例えば、小さなPRを十分に出した後でないと大きなPRを出せないとか)。もちろん、これは悪用されたり意図しない制限を招く可能性があるけど(例えば、たくさんの場所での小さな変更)、Discourseでも同じことが言えるし、うまく機能しているみたいだね。

メーリングリストは、コードを貢献したいけどメンテナンスする気がない人を排除するためのフィルターとして使われてる。Githubは良くも悪くも、参入障壁をかなり下げて、変更提案がしやすくなったけど、その後に消えちゃう人も多いよね。

エッセイはタイトルよりずっと面白いよ。タイトルじゃ全然伝わってない。

タイトルは、記事を読まない人からのアップボートを狙って完璧に設計されてるみたいで、それが実際に記事を読む人の目に触れることになる(これは良いことだと思う、だって記事は本当に面白くてシェアする価値があるから)。あまり好きじゃないけど、彼らを責めることはできないな。

AIの問題は新しいものじゃない。技術の古い問題と同じで、コンピュータはあなたが望むことをするのではなく、あなたが言ったことだけをする。多くのPRは、どれだけよく説明されているか、正当化されているかで判断できる。コード自体はそれほど重要じゃなくて、それで解決しようとしている問題が重要なんだ。人は問題を定義するのが得意だけど、AIはあまり得意じゃないと思う。部分的には理解がないからだし、部分的には説明が長すぎて読むのをやめちゃうから、問題の核心にたどり着けない。たとえたどり着いても、AIが問題を誤解していて、解決策が微妙に間違っている可能性が高い。AIの出力の過信がさらに問題を悪化させて、彼らが問題を理解しているという信頼をすぐに失わせるんだ。

これは今やどこでも問題になってることで、コードだけじゃない。コードでも作業計画でも「深い研究」でも、何かを生産するのに全く努力がいらなくなって、それを投げて人にレビューしてもらうことを期待するようになってる。これは非対称なクソ原則の延長だと思うし、今やすべての職場やプロジェクトにはこのことについての規範が必要だと思う。

評判やアイデンティティが、どんな形の貢献でも、それが考慮されるかどうかを決める上で、もっと重要になりそうな気がする。

LLMを使って良いコードが書けるって言うなら、包括的なe2eテストを書くのも同じくらい簡単なはず。コードに高いテスト基準を求めないなら、シリコンのニューラルネットワークからの「感覚」でも、人間のバイアスでも、結局は「雰囲気」でやってることになるよね。

エンジニアとして、私たちの変更を適切にラベル付けするのが役割だよね。LLMに対しては、行単位での責任を求めたくなる。もしチームメイトがClaude Codeに直接書かれたものをコミットしたら、それを知る方が、スカッシュ+マージのPRプロセスで人間に責任を押し付けられるよりもずっと有用だよ。最終的には誰かが責任を持たなきゃいけないけど、もしチームメイトが私と同じくらい理解してないなら、それを明示的にして「お前がコミットしたからお前が責任を持つ」っていうダンスを避けたいな。原則的には良いけど、実際にはあまりうまくいかないと思う。

人間のPRを装ったプロトタイプはだいたいわかるけど、AIの助けを借りた人間の本物のPRは見分けがつかないこともあるよね。数週間前、バイナリデータを文字列に詰め込む必要があって、ホワイトスペースの変更で壊れないようにしたんだ。Rustのコードを書いて文字列を生成したんだけど、メソッドを終えるために「}」を打ったら、1: Copilotが文字列をバイナリデータに戻すための100%正しいメソッドを提案してくれて、2: 100%正しいユニットテストも提案してくれた。どちらのメソッドも、私が書くものと同じだった。まるでCopilotが私の脳を読んでるみたいだった。でも、もしCopilotにシリアル化の形式を考えさせたり、ホワイトスペースで壊れないものを選ぶ必要があるってことを知らせたら、プロジェクトに合わない完全に間違ったものを選んでしまうかもしれない。