QGIS suspende las contribuciones de IA: qué cambia para ti
QGIS, el mayor software de GIS open source del planeta, decidió que por ahora no acepta contribuciones de IA en su código. La decisión llegó en una propuesta de mejora del proyecto, la QEP #387 en GitHub, y es una moratoria. O sea, una pausa con cara de "paremos a pensar antes de que esto se vuelva un desastre". Si mantienes un proyecto, contribuyes al open source o solo usas Copilot y Claude en el día a día, vale la pena entender el motivo. La misma pregunta va a llegar a tu repositorio, tarde o temprano.
Qué decidió QGIS sobre las contribuciones de IA
Para quien nunca lo abrió: QGIS es una app de escritorio de mapas y geoprocesamiento. Está hecha en C++ con Qt, tiene una capa enorme en Python y usa licencia GPL. La usan ayuntamientos, ONG, universidades y empresas del agro en todo el mundo. Es un proyecto viejo, grande y mantenido en buena parte por voluntarios.
La moratoria dice, en resumen, que el código generado por herramientas de IA generativa no entra en la base mientras el proyecto no tenga una política definitiva. La palabra "moratoria" importa. Nadie está diciendo que la IA sea mala. El mensaje es otro: el proyecto todavía no sabe manejar esto de forma segura, así que prefiere frenar.
La discusión gira en torno a tres ejes:
- Licencia y autoría. QGIS es GPL. Quien contribuye necesita tener derechos sobre lo que envía. Con código generado por un modelo entrenado con quién sabe qué, esa garantía se vuelve borrosa.
- Costo de revisión. Generar un PR de 800 líneas lleva minutos. Revisarlo lleva horas, y quien revisa es voluntario.
- Comprensión. Un PR cuyo autor no sabe explicar su propio cambio es un problema, venga de donde venga el código.
Por qué un proyecto open source haría esto
QGIS no está solo. Gentoo aprobó una prohibición parecida en 2024. NetBSD empezó a tratar el código generado por LLM como "presuntamente contaminado" desde el punto de vista de la licencia. QEMU adoptó una regla que rechaza el código generado por IA y cita el DCO, ese Signed-off-by en el que declaras que tienes derecho a enviar lo que envías. Y Daniel Stenberg, de curl, ya se quejó en público varias veces de la avalancha de reportes de seguridad generados por IA que no tienen ningún sentido.
El patrón es claro. Los proyectos con licencia copyleft, código antiguo y un equipo pequeño de mantenedores son los primeros en echar el freno. Esto tiene poco que ver con miedo a la tecnología. Lo que pesa es la cuenta: la IA bajó casi a cero el costo de abrir un PR, y el costo de revisarlo sigue igual.
Generar código se volvió barato. Revisarlo sigue siendo caro, y quien paga es el mantenedor.
Piensa en el día a día de un mantenedor de un proyecto grande. Antes, un PR malo le costaba esfuerzo a quien lo enviaba. Eso filtraba solo. Hoy alguien le pide al agente "arregla la issue #12345", recibe un diff que compila y abre el PR. El mantenedor pasa una tarde descubriendo que el arreglo resuelve el síntoma y rompe otra cosa en silencio. Multiplica eso por diez PR por semana y entiendes la moratoria.
El otro extremo: Bun está hecho con IA
El contraste queda claro cuando miras a Bun. Anthropic compró Bun a finales de 2025, y el equipo no oculta que usa mucho Claude en el desarrollo. Hay PR en el repositorio de Bun abiertos por agentes, revisados por personas y mergeados. El runtime que mucha gente usa hoy en producción está escrito, en parte, con ayuda de IA.
¿Entonces quién tiene razón? Los dos, y ese es el punto. Las situaciones son muy distintas:
- Bun tiene un equipo pagado, a tiempo completo, que conoce cada rincón del código y tiene herramientas para validar lo que produce la IA.
- QGIS depende de voluntarios, carga décadas de código y tiene una licencia que exige claridad de autoría.
La IA con revisión fuerte y un responsable claro funciona. La IA como atajo para quien no conoce el proyecto se convierte en ruido. La herramienta es la misma en los dos casos. Lo que cambia es quién se hace responsable del resultado.
Mi opinión, sin rodeos: la moratoria de QGIS es sensata. Quizás hasta llega tarde. Una política clara, aunque sea restrictiva, protege más al proyecto que dejar que cada revisor decida solo según su humor del día.
Cómo aplicar una política de IA en tu repositorio
No necesitas prohibir nada para aprender de QGIS. Necesitas decidir y escribir. La mayoría de los repositorios hoy no tiene ninguna regla, y ahí está el problema.
Un buen comienzo es una sección en el CONTRIBUTING.md:
## Uso de IA
- Puedes usar herramientas de IA, pero eres responsable de cada línea.
- Indica en el PR si partes relevantes fueron generadas por IA.
- Debes poder explicar cualquier fragmento durante la revisión.
- Los PR que el autor no pueda defender se cerrarán.
Y si quieres al menos saber qué está entrando, puedes automatizar un aviso en el CI. Muchas herramientas de IA dejan rastro en los commits, como Co-authored-by: Claude o "Generated with". Un script en Bun lo resuelve en pocas líneas:
// scripts/check-ai-trailers.ts
const base = Bun.argv[2] ?? "origin/main";
const log = await Bun.$`git log ${base}..HEAD --format=%H%n%B%n--END--`.text();
const suspect = /co-authored-by:.*(claude|copilot|cursor|codex|devin)|generated with/i;
const flagged = log
.split("--END--")
.map((c) => c.trim())
.filter((c) => c && suspect.test(c));
if (flagged.length > 0) {
console.error(`${flagged.length} commit(s) con marca de IA:`);
for (const c of flagged) console.error("-", c.split("\n")[0]);
process.exit(1);
}
console.log("No se encontraron marcas de IA.");
En el workflow, basta con ejecutar bun scripts/check-ai-trailers.ts origin/main. Bun.$ ya escapa la variable interpolada, así que no armas strings de shell a mano.
Ahora, siendo honesto: esto solo atrapa a quien es honesto. Basta con borrar el trailer y el script queda ciego. Los detectores de texto generado por IA tampoco sirven, la tasa de falsos positivos es ridícula. Así que no trates el script como un sistema de vigilancia. Sirve para hacer visible lo que dice tu política. Si el proyecto exige una declaración, el CI puede pedirla, y entonces exit(1) se vuelve un recordatorio amable en lugar de una acusación.
Qué cambia en tu flujo como contribuidor
Si contribuyes al open source, la regla práctica ahora es esta: lee la política antes de abrir el PR. Si no existe, pregunta en una issue. Enviar código generado a un proyecto que lo prohíbe quema tu reputación ahí dentro, y los mantenedores tienen buena memoria.
Incluso donde está permitido, algunas actitudes separan a quien usa bien la IA de quien solo vuelca diffs:
- PR pequeños. Si la IA generó 600 líneas, divídelas en partes que alguien pueda revisar en lo que dura un café.
- Tests escritos o al menos ejecutados por ti, no solo "el agente dijo que pasaron".
- Una descripción con el porqué del cambio, en tus propias palabras.
- Respuestas rápidas y con contenido cuando el revisor pregunte. "No sé, lo hizo la IA" termina la conversación.
En el trabajo privado vale la misma lógica, solo que con menos ceremonia. Tu compañero que revisa tu PR también es un mantenedor cansado. La diferencia es que él no puede simplemente cerrar el PR e irse (aunque tenga ganas).
La moratoria no es el final de la historia
Las moratorias terminan. QGIS probablemente saldrá de esta con reglas de declaración, límites de tamaño de PR y alguna exigencia de responsabilidad explícita. Ese fue el camino de varios proyectos después del susto inicial. Las herramientas legales y técnicas para lidiar con la autoría del código generado todavía están madurando, y frenar mientras tanto es prudencia.
El mensaje para quien desarrolla es simple. Usar IA se volvió lo normal, y está bien. La responsabilidad por el código sigue siendo tuya, línea por línea. QGIS solo lo puso en un documento oficial antes que la mayoría.
Uso IA todos los días en mis proyectos, y la regla aquí es la misma de QGIS en versión relajada: si no lo puedo explicar, no entra. Si quieres ver cómo queda esto en la práctica, échale un vistazo a mis proyectos.
Resumen para LinkedIn
QGIS, el mayor software de GIS open source del mundo, dejó de aceptar código generado por IA. No es miedo a la tecnología. La cuenta es simple: abrir un PR ya casi no cuesta nada, pero revisarlo sigue costando horas de voluntarios. Del otro lado está Bun, escrito en buena parte con Claude y revisado por un equipo pagado a tiempo completo. La herramienta es la misma. Lo que cambia es quién responde por el resultado. Mi regla es la versión relajada de la suya: si no lo puedo explicar, no entra. ¿Tu repositorio ya tiene una política de IA por escrito o cada revisor decide según su humor del día? En el artículo dejé un modelo de CONTRIBUTING.md y un script en Bun para empezar. #OpenSource #InteligenciaArtificial #CodeReview #DesarrolloDeSoftware #QGIS