Jarvis — una IA potente para un programador

Tras ver Iron Man, desde niño soñaba con hacer un asistente de IA: con Voice Commander configuré el control por voz en Windows 98 para que moviera el ratón y abriera programas, pero resultaba más espectacular que útil. Incluso el reconocimiento de voz era entonces una tarea enorme, y poder conversar no se esperaba antes de cien años.

Llegó 2024.
Maduré como programador, aprendí stacks y frameworks, y creé mis propias plantillas para levantar cualquier proyecto rápido. Así fui acercándome poco a poco a las startups, mientras hacía el trabajo habitual por encargo.

Escribí una tonelada de código con ChatGPT y entendí que podía escribir sobre mis plantillas. Solo había que explicarle cómo está montado todo.

Puede trabajar con mi base de datos. Solo hay que pedírselo con tino y darle acceso.

Hay mucha rutina, y GPT parecía la forma ideal de quitármela de encima por fin.


Primera versión. Es el núcleo de la aplicación: recibe texto, analiza la tarea, pregunta a GPT qué hay que completar y lo escribe. En la práctica es el Copilot que ahora se añade a muchos IDE.

Cuando codifiqué los primeros resultados, quedó claro: no tengo archivos de código, tengo proyectos. Añadí soporte de proyectos.

Un proyecto no es una sola carpeta. Hice un escáner de carpetas y un detector del tipo de cosa que hay en cada una. En esa etapa Jarvis obtuvo su propia base de proyectos. Ante carpetas desconocidas preguntaba qué proyecto era y a qué se dedicaba, y lo metía en el pre-prompt si había que programar algo, sabiendo más del proyecto.

Gestión de la base de datos. Hacía tiempo que quería que él mismo la manejara a partir de mi petición, y lo hice, añadiendo una comprobación de que el código es correcto. Puede crear no un solo campo, sino todas las tablas desde cero y rellenarlas si hace falta.

Junto con eso le enseñé a hacerme preguntas y a sentirse en el ordenador como en casa: conoce los procesos en marcha, las ventanas, los archivos y en qué estoy ahora, para que yo no tenga que explicarle dónde hacer cada cosa.


Para programar con más comodidad, le pedí a Jarvis que me escribiera un plugin de VS Code que obtuviera la información con delicadeza y se la devolviera a sí mismo para analizarla. Y así, sin saber nada de escribir plugins, lo hice.

Jarvis lo hizo para sí mismo.

Y ahora, además de la interfaz de entrada, tenía una integración estrecha con el IDE.

Sacaba archivos de VS Code, detectaba solo el proyecto en marcha, extraía la estructura de las tablas y hacía el despliegue local.

PERO. A veces no está claro qué reescribió exactamente. Le añadí soporte de Git para ver lo nuevo y poder revertir rápido. Ahora Jarvis creaba una rama aparte para su cambio y hacía commit él mismo de los que salían bien.


Había llegado el momento de acercarme a mis plantillas y crear lo necesario en segundos.

Primero, la instalación de proyectos nuevos: trasladé todos mis scripts de instalación y los reescribí en C# con ayuda de Jarvis.

Añadí soporte de Vue 3 + TypeScript, Yii2, Bash y demás, pero lo principal es mi regenerador automático de modelos a partir de las tablas.

Ahora Jarvis no solo puede crear la base: configura los modelos él mismo. Me quité de encima una rutina enorme. Falta que también ajuste las migraciones.


Trabajo

Jarvis ya ha pasado por varios de mis proyectos, y cada vez quedan menos sitios que no haya tocado y en los que no haya dejado su rama de git, porque es demasiado cómodo.

¿Qué vendrá después?

Ya veremos.