La ilusión peligrosa del desarrollador solo con IA
Traducido del inglés. Lee el original en English.
La trampa de “funciona y ya”
Herramientas como Claude Code, Cursor y GitHub Copilot nos dejan sacar funciones más rápido de lo que podríamos a mano. Las uso todos los días. Pero veo un patrón en proyectos de código abierto y en bases de código de empresa donde la persona que escribe el prompt deja de formar parte del proceso.
Va así. Tratas a la IA como a alguien que contrataste y en quien confías para que lo haga bien. Escribes el prompt. Copias el resultado. Lo despliegas. Si compila, se publica.
Así es como acabas con agujeros de seguridad por los que pasa un camión. Encontré autenticación del lado del cliente, rutas de archivo sin validar y acceso a shell sin restricción en varias interfaces web que, según sus propios autores, estaban generadas por completo con IA. Puertas cerradas con la llave pegada al lado.
La IA es un junior con turbo
Imagina a un desarrollador junior que escribe mil palabras por minuto y se sabe todas las librerías que existen. Ahora dale dos rasgos más.
No tiene idea de qué es un problema de seguridad salvo que alguien se lo diga. Y nunca dice que no sabe algo. Te entrega una respuesta segura de sí misma y equivocada.
¿Dejarías que esa persona empujara a producción sin que nadie lo leyera? Claro que no.
Eso es exactamente lo que hace un proyecto solo con IA. El modelo es muy bueno resolviendo lo que tiene delante y no tiene ninguna razón para pensar en qué pasa cuando alguien manda una petición que no planeaste. Un parámetro de ruta con ../../ no forma parte de la tarea que pediste así que nunca entra en la conversación.
El bucle que cría bugs
El modo de fallo que más veo es el bucle de contexto. Le das un bug a la IA. Te devuelve código. El código sigue fallando. Pegas el error de vuelta y recibes una versión “arreglada”.
Cinco rondas después tienes algo que corre. También tienes un montón de parches que resolvieron un síntoma cada uno y el modelo perdió la forma del sistema con el que empezó. Ahora está ajustando código al mensaje de error en vez de al diseño.
Aquí es donde entran las vulnerabilidades. En la prisa por poner los tests en verde se cae un chequeo de permisos. La validación de entrada desaparece porque estorbaba. Una clave se queda escrita en el código porque la variable de entorno era molesta. Nadie lo nota porque todos están mirando el test que por fin pasa.
Cómo usar la IA de verdad
La solución no es usar menos IA. Es quedarte en la silla. Tú eres el ingeniero a cargo y la IA es la persona con la que estás trabajando.
No aceptes código que no puedas explicar
Si la IA escribe un bloque que no entiendes entonces para. Pídele que explique el bloque línea por línea. Si sigues sin poder decir por qué es seguro entonces asume que no lo es. Esa sola regla atrapa casi todo el daño antes de que aterrice.
Responde al resultado
Háblale como a un colega que escribió algo descuidado.
- “Quitaste el token CSRF en este refactor. ¿Por qué tenía que irse?”
- “Este manejador de entrada parece vulnerable a XSS. Reescríbelo con sanitización.”
- “Estás usando
dangerouslySetInnerHTMLaquí. ¿Hay una forma más segura?”
La última vale la pena decirla en voz alta porque el modelo repite el patrón que usó la última vez. Nombrar el problema suele bastar para recibir una respuesta mejor en la siguiente pasada.
Lee el diff
No leas solo el archivo final. Lee qué cambió.
¿Borró un chequeo de permisos mientras limpiaba otra cosa? ¿Quitó una llamada de validación porque el camino feliz no la necesitaba? Los modelos trabajan dentro de una ventana de contexto y pierden en silencio restricciones que pusiste hace dos horas. El diff es el único sitio que te muestra qué se fue del edificio.
Mantén los chequeos fuera del chat
A un modelo se le puede convencer de que un test pasa. Tu CI no. La autenticación y la autorización viven en el código y en el pipeline donde el agente tiene que satisfacerlas. La validación de entrada vive en el borde donde llegan los datos en vez de en un prompt que esperas que recuerde.
Conclusión
La IA hace mucho más rápido a un ingeniero fuerte y hace fallar más rápido a un proceso descuidado. Si tu intención es publicar algo ahora y ver qué pasa entonces el modelo te va a ayudar a hacer exactamente eso. Si tu intención es publicar algo que aguante entonces también te ayuda con eso. La intención es tuya en cualquier caso.
Tú conduces. La IA lee el mapa y discute contigo la salida y esa discusión es la parte útil.