AI News HubLIVE
サイト内リライト2 分で読了

sqlite-utils 4.0rc2、ほとんどClaude Fableが執筆(費用は約149.25ドル)

Simon Willisonがsqlite-utils 4.0rc2をリリース。このリリースの大部分はClaude Fableモデルによって書かれました。記事では、delete_where()がコミットせずデータ損失を引き起こす重大なバグを含む、4.0rc1からrc2への改善プロセスを詳述しています。さらに、GPT-5.5による最終レビューで追加の問題が発見されました。全体の未補助コストは約149.25ドルと推定されます。

Simon Willisonは、SQLiteユーティリティライブラリの重要なリリース候補版であるsqlite-utils 4.0rc2を公開しました。このリリースのコードの大部分は、AnthropicのClaude Fableモデルによって生成されました。推定費用は、APIの未補助価格で約149.25ドルです。

4.0rc1のリリース後、WillisonはClaude Fableを活用して安定版4.0の最終仕上げを行うことにしました。Claude Code for webを通じてレビューを依頼したところ、複数の深刻な問題が発見され、そのうち5つは「リリースブロッカー」に分類されました。最も深刻だったのは、delete_where()メソッドがトランザクションをコミットしないバグで、これにより後続のすべてのデータベース書き込みが失われる可能性がありました。このバグが本番リリースに含まれていた場合、4.0.1での修正が必要でしたが、幸いにも早期に発見されました。

37回のプロンプト、34回のコミット、30ファイルにわたるコード変更(+1,321行、-190行)を通じて、WillisonとFableはすべてのフィードバックに対処し、いくつかの設計改善を行いました。特筆すべきは、Fableが複雑なタスクを処理している間(各タスクに10〜15分かかることも)、Willisonは外出して独立記念日のパレードを楽しみ、時折スマートフォンから進行状況を確認して次の指示を与えていたことです。

最も重要な変更はトランザクション処理に関連しており、これはrc1で導入された際立った新機能でした。rc2では、新しいトランザクションモデルに関する包括的なドキュメントが追加されました。ライブラリのすべての書き込みメソッド(insert、upsert、update、delete、delete_where、transformなど)は、独自のトランザクション内で実行され、戻り値の前にコミットされます。commit()を呼び出す必要はなく、変更を永続化するためにデータベースを閉じる必要もありません。手動トランザクションが必要なのは、db.atomic()を使用して複数の書き込みをグループ化する場合と、db.begin()で自分でトランザクションを管理する場合の2つの状況だけです。

さらに、Willisonはクロスレビューを実施しました。Fableの作業をGPT-5.5にレビューさせるという方法です。この方法は以前は非合理に感じられましたが、実際に効果的であることがわかりました。GPT-5.5は2つの優先度P1の問題を発見しました:db.query()がSQL文の種類をチェックする前に書き込みを実行してコミットしてしまう問題と、INSERT ... RETURNING文のコミットがジェネレータが完全に消費された後にしか行われず、ドキュメントの約束と矛盾する問題です。これらの問題は新しいFableセッションで確認され、修正されました。

開発全体のコスト見積もりは興味深いものです。メインセッションで141.02ドル、サブエージェント(APIスキャン、トランザクションレビュー、コミットレビュー、マイグレーションレビューなど)を合わせて合計149.25ドルでした。WillisonはClaude Maxサブスクリプション(月額200ドル)を利用しており、このコストを賄えることに満足していますが、より安価なモデルをサブエージェントとして活用すべきだったとも述べています。

最終的に、sqlite-utils 4.0rc2には、自動コミット、改善されたバリデーションエラー処理、upsertの主キー要件、WALモードのトランザクション安全性など、重要な破壊的変更と改善が含まれています。完全なリリースノートはチェンジログに記録されており、Willisonによれば、これらはFableによって書かれたもので、自分で書くよりも優れているとのことです。リリースノートは「退屈で予測可能で正確」である必要があり、エージェントに委託するのに適した文体です。