Simon Willisonは2026年7月5日(現地時間)、自身が開発するオープンソースライブラリ「sqlite-utils」のバージョン4.0rc2を公開した。このバージョンは主にAIモデルのClaude Fableが開発を支援し、推定費用149.25ドルを要したと報じられている。Claude Fableは以前のリリース候補版で「リリースブロッカー」に分類される5つの重大なバグを特定し、その修正に貢献した。
sqlite-utilsの開発者であるSimon Willison氏は、SemVer(セマンティック・バージョニング)の原則に従い、互換性のないメジャーバージョンを可能な限り少なくするため、Claude Fableを活用してsqlite-utils 4.0の安定版リリースに向けた最終レビューを実施した。
Claude Fableは、最も深刻なバグとして、delete_where() メソッドがコミットせず、データベース接続を破損してデータ損失を引き起こす問題を特定した。この問題は、delete_where() が atomic() ラッパーなしで DELETE 操作を実行し、接続が in_transaction=True の状態に残り、その後のトランザクションがコミットされなくなることで発生していた。
バグ修正と設計改善は、合計37のプロンプト、34のコミット、30ファイルにわたる1,321行の追加と190行の削除を通じて行われた。Willison氏は、コーディングエージェントを使用する中で、AIがタスクに時間を要する間に他の作業ができるという経験を語っている。
新しいバージョンでは、トランザクション処理に関する包括的なドキュメントが追加された。insert()、upsert()、update()、delete()、delete_where() など、データベースへの書き込みを行う全てのメソッドは、それぞれ独自のトランザクション内で実行され、完了時に自動的にコミットされる。これにより、ユーザーは明示的に commit() を呼び出す必要がなくなった。複数の書き込み操作をグループ化する場合は db.atomic() を使用し、自身でトランザクションを管理する場合は db.begin() を使用する。
また、Python 3.12+で導入された sqlite3.connect(..., autocommit=True) または autocommit=False オプションで作成された接続は、トランザクションの挙動が異なるためサポートされない点も明記された。この互換性問題は、モデルとの協力により解決された。
さらに、Willison氏はAnthropicのモデル(Claude Fable)の作業をOpenAIのモデル(Codex DesktopとGPT-5.5 xhigh)でレビューするという手法を採用した。この相互レビューにより、db.query() が非行ステートメントを拒否する前に書き込みをコミットする問題と、INSERT ... RETURNING がイテレーション完了までコミットされないという2つの新たな問題が発見され、修正された。今回の開発にかかった推定費用は149.25ドルであった。
参考: Simon Willison’s Weblog (アーカイブ) — 2026年7月5日 10:00 (JST)
原文ハイライト"mostly written by Claude Fable (for about $149.25)"