# Simon Willison lanzó sqlite-utils 4.0rc2 escrito casi todo por IA

> El desarrollador usó Claude Fable para revisar la librería antes del lanzamiento estable y detectó un bug grave de pérdida de datos. El costo total del trabajo fue de 149,25 dólares.

- Medio: Onda Corta (https://ondacorta.news)
- Sección: Desarrollo
- Publicado: 2026-07-05T23:59:03.049Z
- URL canónica: https://ondacorta.news/desarrollo/sqlite-utils-4-0rc2-claude-fable

El programador Simon Willison publicó la versión candidata sqlite-utils 4.0rc2, una actualización que corrige un error crítico detectado gracias a una revisión final hecha con el modelo de IA Claude Fable. El hallazgo evitó que un bug capaz de causar pérdida de datos llegara a la versión estable de la librería.

Willison, creador de sqlite-utils, ya había presentado la versión 4.0rc1 semanas atrás. Antes de que venciera su suscripción a Claude Max, decidió aprovechar los días restantes para pedirle a Fable una revisión final del código, con el objetivo de evitar cambios incompatibles que obligaran a romper el versionado semántico que sigue en el proyecto.

## Un bug que arruinaba la base de datos

La revisión, iniciada desde Claude Code para web en un iPhone, identificó cinco problemas que el propio modelo clasificó como bloqueantes para el lanzamiento. El más grave afectaba al método `delete_where()`: al ejecutar un borrado, la operación no quedaba envuelta correctamente en una transacción, a diferencia de lo que sí ocurría con el método `delete()` regular. Como resultado, la conexión a la base de datos quedaba marcada como abierta en modo transaccional, lo que hacía que cualquier operación posterior tomara un camino de código que nunca terminaba de confirmarse en disco.

En la práctica, esto significaba que un borrado podía revertirse solo, y que inserciones o incluso tablas enteras creadas después del `delete_where()` desaparecían al reabrir la base de datos, sin ningún aviso de error. Willison señaló que, de haber llegado a producción, hubiera sido un defecto serio pero corregible en una actualización menor; el riesgo mayor era no detectarlo a tiempo y verse forzado a un cambio de diseño más profundo en una futura versión mayor.

## 37 instrucciones, 34 commits

A lo largo de 37 instrucciones (prompts) sucesivas, el proceso generó 34 commits con más de 1.300 líneas agregadas y cerca de 190 eliminadas, distribuidas en 30 archivos distintos. Además de resolver los cinco bloqueantes, el trabajo incorporó otras mejoras de diseño surgidas durante la revisión.

Willison describió que, al tratarse de tareas más complejas, el agente necesitaba entre 10 y 15 minutos para completar cada paso, tiempo que aprovechó para asistir al desfile del 4 de julio en Half Moon Bay, California, revisando el progreso y enviando la siguiente instrucción desde el teléfono. La revisión final del pull request la hizo ya desde su computadora, usando la interfaz de GitHub.

## Documentación del nuevo modelo transaccional

El cambio más relevante de esta versión candidata tiene que ver con el manejo de transacciones, la función central que ya había introducido la versión rc1 anterior. La nueva rc2 suma documentación detallada sobre este modelo: cualquier operación que modifique la base de datos, ya sea insertar registros, actualizar filas, borrar datos, transformar una tabla o crear un índice, se ejecuta dentro de su propia transacción y queda confirmada en disco apenas termina de ejecutarse, sin pasos adicionales de parte de quien usa la librería.

sqlite-utils es una herramienta ampliamente usada para manipular bases de datos SQLite desde la línea de comandos y desde Python, y forma parte del ecosistema de proyectos que Willison mantiene junto a Datasette.

## Por qué importa

El caso documenta con números concretos (costo, cantidad de prompts, commits y líneas de código) cómo un desarrollador experimentado usa IA para auditar su propio código antes de un lanzamiento estable, incluyendo un bug de pérdida de datos que hubiera pasado desapercibido sin esa revisión. Es una referencia práctica para equipos que evalúan incorporar modelos de IA como paso de control de calidad previo a un release.

## Fuentes

- [sqlite-utils 4.0rc2, mostly written by Claude Fable (for about $149.25)](https://simonwillison.net/2026/Jul/5/sqlite-utils-fable/#atom-everything) (simonwillison.net)

---
Artículo original de Onda Corta. Al citarlo, atribuir con enlace a https://ondacorta.news/desarrollo/sqlite-utils-4-0rc2-claude-fable
