Continue?

Cualquiera que haya pasado su infancia en los salones recreativos recuerda esa pantalla: tu personaje acaba de caer, aparece en grande “Continue?” y empieza una cuenta atrás de diez segundos. Si metes otra moneda antes de que llegue a cero, sigues la partida donde la dejaste. Si no, game over. Precisamente con “Game over” cerré este blog en 2014, por un motivo muy sencillo: no tenía tiempo para seguir escribiendo.

Ese mismo motivo es el que ha matado casi todos mis proyectos personales. El patrón siempre es el mismo: tengo una idea, le dedico unas cuantas tardes, consigo un MVP que más o menos funciona, lo subo a GitHub y ahí se queda, porque el trabajo, la familia y el resto de la vida reclaman su parte. Todo el que programa por su cuenta tiene un cementerio de repositorios así, con el último commit de hace años y una lista de TODO que nadie va a tocar.

Este año he metido la moneda en tres de ellos, y la moneda ha sido la IA.

La Gramola de Vídeos

La Gramola de Vídeos es un addon para Kodi que escribí en 2017 con videoclips de solistas y grupos españoles de los años 80 y 90: eliges un año, eliges una canción y se reproduce su vídeo desde YouTube. Lo fui alimentando con canciones hasta junio de 2018 y ahí se paró. Cuando lo retomé en julio de 2026 estaba escrito en Python 2, que Kodi dejó de soportar hace ya unas cuantas versiones, así que en la práctica era código muerto.

Lo primero que hice fue pedirle a la IA una auditoría del código antes de tocar nada: bugs, deuda técnica, acoplamientos, etc. A partir de ahí salió un plan de migración a Python 3 con una estructura de módulos decente, separando lo que habla con las APIs de Kodi de la lógica del catálogo, para poder probar esta última sin levantar Kodi. Después vinieron cosas que llevaban ocho años en la lista de deseos: ampliar el catálogo hacia atrás con los años 60 y 70, búsqueda y favoritos.

No todo ha sido un camino de rosas. El addon depende del addon oficial de YouTube para reproducir, y al probarlo en Kodi 20.5 resultó que algunos vídeos del catálogo exigen iniciar sesión con una cuenta de YouTube. Eso no lo arregla ninguna IA, porque es una decisión de Google. Lo que sí hizo fue ayudarme a analizar las alternativas y dejar documentado por qué una vía como yt-dlp tiene sentido como plan B para esos casos concretos y no como sustituto completo.

PnP Double-Side Aligner

Este es más reciente. Soy aficionado a los juegos de mesa print and play, esos que te descargas en PDF y te imprimes en casa, y el problema de siempre es que la impresora nunca alinea bien el anverso y el reverso de las cartas: un par de milímetros de desvío y el dorso queda torcido. En enero de 2026 escribí a mano una pequeña utilidad en Python, PnP Double-Side Aligner, que calibra la impresora una vez, guarda un perfil y corrige los PDF a doble cara a partir de ese perfil. Funcionaba, la usé para mis impresiones y la dejé ahí.

Seis meses después la retomé, esta vez con Spec Kit. Lo primero fue redactar la “constitución” del proyecto, las reglas que cualquiera (humano o IA) tiene que respetar al tocar el código. En este caso la más importante era no cambiar el comportamiento de las transformaciones geométricas sin dejarlo documentado, y escribir tests que fijen el comportamiento actual antes de refactorizar nada. Con eso por delante, la auditoría de calidad, la detección automática del orden de páginas de cada PDF (que tenía desactivada porque mi primera versión hacía fallar el programa) y el empaquetado se hicieron sin romper lo que ya funcionaba, que era justo lo que más miedo me daba.

PriceGrab y F-Droid

PriceGrab es la que más me ha sorprendido. Es una app Android muy sencilla: le das dos precios con cantidades distintas (el paquete de 750 gramos frente al de un kilo, por ejemplo) y te dice cuál sale más barato por unidad. La primera versión la hice en 2015 con MIT App Inventor, la herramienta del MIT para crear apps Android encajando bloques en lugar de escribir código, y ahí se quedó, en un fichero .aia olvidado en una carpeta. Lo que le pedí a la IA fue analizar esos bloques y proponer cómo llevarlos a una plataforma actual. La propuesta fue rehacerla desde cero en Kotlin con Jetpack Compose, que es hoy el camino estándar en Android, y así lo hicimos.

Lo sorprendente vino después. Quería publicar la app en F-Droid, el repositorio de aplicaciones libres para Android, y nunca lo había hecho. El proceso tiene su miga: se envía una receta de compilación por merge request a un repositorio de GitLab, unos bots la validan y después la revisa una persona. La IA me acompañó en cada paso. Cuando la validación rechazó la receta por un formato que ya no se admitía, lo corregimos. Cuando el revisor nos pidió pasar a compilaciones reproducibles, en las que F-Droid recompila la app desde el código fuente y comprueba que el resultado es idéntico, byte a byte, al APK que firmo yo, adaptamos la compilación para que lo fuera. Todo quedó documentado en el propio repositorio, por si algún día hay que repetirlo.

El repositorio se creó el 24 de abril de 2026 y la app estaba publicada en F-Droid el 28. Desde entonces, cada vez que etiqueto una versión nueva en GitHub, F-Droid la recoge y la publica solo, sin que yo haga nada más.

Cómo trabajo

Uso sobre todo Cursor y Claude Code, y dependiendo de la complejidad del proyecto añado un framework de desarrollo guiado por especificaciones (SDD, por sus siglas en inglés). Para proyectos personales como estos, Spec Kit me viene muy bien porque te obliga a pensar a fondo en tu proyecto antes de escribir una línea, aunque solo sea para redactar la constitución y los objetivos.

También he probado BMAD, y para un proyecto personal se queda demasiado grande: hay más trabajo de gestión que de desarrollo en sí. Tiene sentido cuando trabajas con un equipo de cierto tamaño y necesitas repartir el trabajo entre distintos roles y personas, pero no para alguien que programa solo en sus ratos libres.

Para que la IA se comporte como quiero, trabajo con dos niveles de reglas. Por un lado, unas reglas generales con el comportamiento común que espero en cualquier proyecto: cómo trabajar con Git, cuándo preguntar, en qué idioma hablarme, etc. Por otro, reglas particulares de cada repositorio según sus circunstancias. En PriceGrab, por ejemplo, el AGENTS.md (el fichero de instrucciones para los agentes) deja claro que la IA puede crear ramas, hacer commits y abrir pull requests, pero que la fusión con la rama principal es cosa mía.

Lo que más me ha sorprendido

Esperaba que la IA me ayudase a escribir código más rápido, y lo hace. Lo que no esperaba es lo bien que se le da trabajar con código antiguo: leer algo escrito hace casi diez años para una versión de Kodi que ya no existe, entender qué hacía y proponer un camino de actualización razonable, o incluso decirte que es mejor cambiar de framework y empezar de cero, como pasó con PriceGrab.

Y tampoco esperaba la ayuda con todo lo que rodea al código: el proceso de publicación, las firmas, las releases, la documentación. Eso es precisamente lo que antes hacía que un MVP se quedara en MVP, porque terminar un proyecto de verdad lleva mucho más tiempo que hacer que funcione.

Lo dicho, este año he vuelto a meter la moneda, y tres partidas que daba por perdidas siguen en marcha. ¿Y tú, cuántas tienes a medias?

Contenidos bajo licencia CC BY-NC-SA 4.0