SQLiteはエージェントが書いたコードを受け付けない
(simonwillison.net)- SQLite AGENTS.md は、コードベースにエージェントを使う人向けのもので、プルリクエストの条件とエージェント生成コードに関する方針を明確に示している
- SQLiteは、事前の合意や パブリックドメインに関する法的書類 がない限りプルリクエストを受け付けず、実際の変更は開発者が自ら再実装する
- agentic code は受け付けないが、再現可能なテストケースを含む agentic bug report は受け付ける場合がある
- 最近のコミットでは “currently” が削除され、エージェント生成コードを拒否する方針が一時的な表現ではなく、より断定的な文言に変更された
- 品質にばらつきのある AI生成バグレポート が増えたため、SQLiteは新しいバグフォーラムを作成し、問題報告と人間の開発者による再実装を分離した
SQLiteのAGENTS.mdポリシー
- sqlite AGENTS.md は、SQLiteコードベースに対してエージェントを利用する人のためのファイルであり、SQLite自体の開発ガイドラインではない
- このファイルは 5日前のコミット で追加され、SQLiteプロジェクトの プルリクエスト受け入れ条件 と エージェント生成コードの方針 を明記している
- SQLiteは、事前の合意またはプルリクエストをパブリックドメインに置くための法的書類がない限り、プルリクエストを受け付けない
- 人間が書いた簡潔で整理されたプルリクエストは概念実証として検討されることがあるが、実際の変更はSQLite開発者が自ら再実装する
エージェントコードとバグレポートの境界
- SQLiteは agentic code を受け付けない
- 再現可能なテストケースを含む agentic bug report は受け付ける場合がある
- 修正の方向性を示すパッチやプルリクエストは、文書化目的であれば歓迎される
- 最新のコミット では “SQLite does not (currently) accept agentic code” から “(currently)” が削除され、コミットメッセージは “Strengthen the statement about not accepting agentic code” だった
- この変更により、SQLiteのエージェント生成コード拒否方針は、一時的な表現からより断定的な文言へと変わった
AI生成バグレポートと別フォーラム
- SQLiteフォーラムには、品質にばらつきのある AI生成バグレポート が多数投稿されていた
- SQLiteはこれを 別に分離 し、新しいSQLite Bug Forum を作成した
- D. Richard Hipp は新しいバグフォーラムのイシューを処理しながら、コードベースに複数のコミットを続けている
- SQLiteの方針は、エージェントが作成したコードを直接マージせず、再現可能な問題報告と人間の開発者による再実装を分離する形で整理されている
1件のコメント
Lobste.rs の意見
SQLite は 郵送された CLA がなければ、どんな貢献も受け付けないと記憶しているので、これはまったく驚きではない
タイトルは AGENTS.md ファイルの文言を引用したものだ
まったく驚きではない。興味深いのは、そうしたコードを提出しようとする人たちを扱いやすくするために、リポジトリに AGENTS.md ファイルを追加した点だ
コード作業をする LLM だけでなく、生成されたプログラムを設定したり、ライブラリを責任を持って使ったりする LLM にも案内が必要だ。プラグインインターフェースを提供するなら、それを LLM に知らせたほうが皆にとってよいだろう
LLM よりずっと前に作られた長期サポートページに書かれた SQLite のビジョンには、いつも感銘を受ける
開発者たちは 2050年まで SQLite をサポートする意図で作業しており、その長期的な視点が重要な意思決定に影響を与えているという。最新の流行に流されず、まだ生まれてもいないプログラマーが読んで理解し、保守できる 時を耐え抜くコード を目指すという文言もよい
アーカイブを見ると、文言を継続的に更新してきたのもよい。2016年版の https://web.archive.org/web/20161021183035/… では「2050年はまだ34年先」と書かれていた
バージョン管理や Web UI/UX が好きなら、Simon が言及した「エージェントコード不受理の文言強化」コミットを、Git ではなく Fossil Web UI で元の形のまま見ることも面白いかもしれない
このコミットは trunk にあるのであまり面白くないが、ブランチにあったなら、'Timelines' 一覧でブランチのタイムラインも選べる。'Ancestors' タイムラインはブランチ外の祖先まで表示するので、ブランチに何がマージされたのか確認できる
どうせ受け付けないコードでも、エージェントが書いたコード であってはならないということか。なるほど