Debian Libera la IA Generativa en el Codigo: Que Cambia la Votacion de 2026 en el Open Source
Hola HaWkers, Debian paso dos semanas votando y cerro el 28 de agosto de 2026 la General Resolution 2026-002, la "LLM usage in Debian". Fueron ocho propuestas en la papeleta, desde prohibir los LLM via Contrato Social hasta aceptar la contribucion asistida sin ceremonia. Gano la opcion 5, "Responsible Use of Generative AI". El proyecto que empaqueta buena parte de la infraestructura de internet decidio que ni respalda ni prohibe la IA generativa.
Contribuyes en algun proyecto open source, o piensas hacerlo, y ya te preguntaste si puedes abrir un PR con codigo que Claude o Copilot escribieron contigo? Esa duda salio del terreno de la etiqueta y se convirtio en politica escrita, con reglas distintas en cada proyecto. En este articulo desmenuzo lo que Debian aprobo, lo comparo con quienes lo prohiben, y muestro como automatizar el cumplimiento en tu propio repositorio con git hooks y CI.
Que Decidio Debian en Realidad
La votacion estuvo abierta del 15 al 28 de agosto de 2026, con 1.045 desarrolladores habilitados para votar y un quorum exigido de 48,49 votos. La papeleta tenia nueve lineas: ocho propuestas mas el clasico "None of the above". Debian usa Condorcet con el metodo de Schulze, asi que no existe el "voto util": cada participante ordena las opciones por preferencia y el sistema calcula todos los enfrentamientos uno a uno.
Las ocho propuestas cubrian el espectro completo:
- Ban LLM contributions from Debian via Social Contract, de Matthias Geiger
- Allow AI-Assisted Contributions with conditions, de Lucas Nussbaum
- Reject LLMs as far as practical, update Code of Conduct, de Ian Jackson
- Accept AI contributions for Debian specific work, de Pierre-Elliott Becue
- Responsible Use of Generative AI, de Marc Haber
- A cautious approach to generative AI, de Tobias Frost
- Debian is created by humans, de Gard Spreemann
- Avoid the use of LLM: climate destruction is a deal breaker, de Holger Levsen
La propuesta de Marc Haber gano todos los enfrentamientos. Vencio a la de Lucas Nussbaum por 203 a 148, a la de Tobias Frost por 210 a 130 y a la de Pierre-Elliott Becue por 232 a 115. El detalle mas revelador del recuento no esta en quien gano, sino en quien perdio: las dos propuestas de prohibicion dura, la de Matthias Geiger y la de Ian Jackson, fueron derrotadas incluso por el "None of the above". La base de Debian no rechazo solo su texto, rechazo la idea de prohibir.
Por Que "Ni Respalda Ni Prohibe" Es la Parte Importante
El texto aprobado es corto y cabe en cinco compromisos. Vale la pena leer cada uno con atencion, porque la formulacion fue elegida con pinzas:
- Debian no respalda ni prohibe el uso de herramientas de IA generativa en el desarrollo, el mantenimiento o la documentacion de software, empaquetado y demas medios publicados por el proyecto.
- Toda contribucion cumple el mismo estandar, sin importar como ni con que herramienta fue producida: calidad, correccion, mantenibilidad y cumplimiento legal.
- La herramienta no diluye la responsabilidad. Quien envia sigue respondiendo por la contribucion. La expectativa es explicita: entender, revisar, probar y, cuando tenga sentido, modificar la salida de la IA antes de incorporarla.
- Todo proceso automatizado necesita supervision humana, y ese humano responde por el comportamiento del proceso.
- La divulgacion se fomenta, pero no es obligatoria. El texto trata la transparencia como una cortesia con los demas contribuidores, no como un requisito de aceptacion.
Fijate en lo que evita el punto 5. Un requisito de divulgacion obligatoria solo funciona si alguien puede verificarlo, y nadie logra probar que una funcion de treinta lineas salio de un modelo o de la cabeza de quien la escribio. El bando pro-IA argumento exactamente eso durante el debate: una regla inaplicable no produce cumplimiento, produce caza de brujas contra quien parezca sospechoso. El bando contrario respondio con la pregunta que sigue sin una buena respuesta, sobre como el contribuidor certifica la situacion legal de un fragmento que el no escribio.
Debian resolvio la tension empujando el problema entero al unico lugar donde siempre estuvo: la persona que firma. No es una politica sobre IA, es una politica sobre responsabilidad que de paso menciona la IA.
El Mapa de las Politicas: Quien Prohibe, Quien Libera, Quien Aun No Decide
Debian no definio un consenso, definio su posicion. El ecosistema sigue partido, y si contribuyes en mas de un proyecto necesitas saber donde pisas.
Quienes prohiben:
- Gentoo es el mas directo. Quedo expresamente prohibido contribuir con cualquier contenido creado con ayuda de herramientas de IA de procesamiento de lenguaje natural. Los motivos citados son copyright, calidad y etica.
- NetBSD trata el codigo generado por LLM como codigo contaminado por presuncion. No se puede commitear sin aprobacion previa por escrito.
- QEMU rechaza contribuciones que cree que contienen o derivan de contenido generado por IA. El argumento es juridico y elegante: como la situacion de copyright de la salida todavia no esta resuelta y los datos de entrenamiento pueden incluir codigo con licencia incompatible, el contribuidor no logra certificar honestamente el Developer Certificate of Origin.
Quienes liberan con regla:
- El kernel Linux siguio un camino parecido al de Debian, pero con mas mecanica. Permite la contribucion asistida por IA y creo un trailer propio para eso, que es el tema de la proxima seccion.
Quienes aun no cierran:
- Fedora, Rust, FreeBSD, GCC, Blender, NixOS y Jupyter tienen la discusion viva y ninguna politica consolidada.
Toda la pelea, fijate, casi nunca es sobre la calidad del codigo. Es sobre procedencia. QEMU no dice que el codigo del modelo sea malo, dice que nadie sabe de quien es. Y vale la pena separar esa discusion juridica de la discusion de calidad, que tambien existe y tiene datos propios. Ya habia hablado de eso cuando salio el estudio sobre el impacto del vibe coding en el open source, y las dos conversaciones siguen por carriles distintos.
El Trailer Assisted-by: La Regla Con la Que Te Vas a Topar Primero
Si vas a contribuir al kernel, esta es la parte practica. La documentacion oficial en docs.kernel.org/process/coding-assistants.html establece dos reglas que no se negocian.
La primera es una prohibicion: los agentes de IA no pueden anadir un Signed-off-by. Solo un humano puede certificar legalmente el Developer Certificate of Origin. La segunda es un formato nuevo de trailer para acreditar la asistencia:
# Formato definido por la documentacion del kernel
# Assisted-by: NOMBRE_DEL_AGENTE:VERSION_DEL_MODELO [HERRAMIENTA1] [HERRAMIENTA2]
git commit -s -m "net: corrige fuga de referencia en la ruta de error
La ruta de error de xyz_probe() no liberaba la referencia del device
cuando la asignacion del buffer fallaba.
Assisted-by: Claude:claude-3-opus coccinelle sparse"Dos sutilezas hacen la diferencia. La bandera -s de git commit anade tu Signed-off-by, y este sigue siendo obligatorio: el Assisted-by acredita, no sustituye. Y la lista de herramientas entre corchetes es para analizadores especializados, como coccinelle, sparse, smatch y clang-tidy. Una herramienta basica de desarrollo no entra ahi. No listes git, gcc, make ni tu editor.
El resto del proceso no cambia: el codigo tiene que ser compatible con GPL-2.0-only, no puede introducir warnings de build y tiene que pasar el checkpatch.pl.
Automatizando la Politica en Tu Repositorio
Una politica que depende de la memoria humana falla en la tercera semana. Si mantienes un proyecto y adoptaste una regla parecida a la de Debian o a la del kernel, ponla en un hook. El commit-msg corre antes de que el commit exista y logra frenar el problema en el origen:
#!/usr/bin/env bash
# .git/hooks/commit-msg
# Garantiza que un agente de IA no firme el DCO y que el trailer
# Assisted-by siga el formato AGENTE:MODELO.
set -euo pipefail
MSG_FILE="$1"
# Lista de identificadores de agente que nunca pueden firmar el DCO
AGENTES="Claude|Copilot|Codex|Cursor|Gemini|GPT"
if grep -qiE "^Signed-off-by:.*($AGENTES)" "$MSG_FILE"; then
echo "ERROR: un agente de IA no puede firmar el Developer Certificate of Origin." >&2
echo "Usa el trailer Assisted-by y firma tu mismo con git commit -s." >&2
exit 1
fi
# Si existe Assisted-by, valida el formato AGENTE:MODELO
if grep -q "^Assisted-by:" "$MSG_FILE"; then
if ! grep -qE "^Assisted-by: [A-Za-z0-9._-]+:[A-Za-z0-9._-]+" "$MSG_FILE"; then
echo "ERROR: formato invalido del Assisted-by." >&2
echo "Esperado: Assisted-by: AGENTE:MODELO [herramienta1] [herramienta2]" >&2
exit 1
fi
# El trailer de asistencia exige un Signed-off-by humano en el mismo commit
if ! grep -q "^Signed-off-by:" "$MSG_FILE"; then
echo "ERROR: un commit con Assisted-by necesita un Signed-off-by humano." >&2
exit 1
fi
fi
exit 0Un hook local, sin embargo, solo protege a quien instalo el hook. Resuelve tu caso y el de quien clono con core.hooksPath configurado, y no resuelve el PR que llega de afuera.
Llevando la Verificacion al CI
La comprobacion que vale es la que corre en el servidor, sobre todos los commits del PR. Esta action recorre el intervalo del pull request y reprueba cuando encuentra un DCO firmado por un agente:
# .github/workflows/ai-policy.yml
name: Politica de contribucion asistida
on:
pull_request:
jobs:
trailers:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# Necesita el historial completo para recorrer el intervalo del PR
fetch-depth: 0
- name: Verifica los trailers de todos los commits del PR
env:
BASE: ${{ github.event.pull_request.base.sha }}
HEAD: ${{ github.event.pull_request.head.sha }}
run: |
fallo=0
for sha in $(git rev-list "$BASE".."$HEAD"); do
cuerpo=$(git log -1 --format=%B "$sha")
if echo "$cuerpo" | grep -qiE "^Signed-off-by:.*(Claude|Copilot|Codex|Cursor|Gemini|GPT)"; then
echo "::error::$sha tiene un Signed-off-by de agente de IA"
fallo=1
fi
if echo "$cuerpo" | grep -q "^Assisted-by:" \
&& ! echo "$cuerpo" | grep -q "^Signed-off-by:"; then
echo "::error::$sha declara Assisted-by sin Signed-off-by humano"
fallo=1
fi
done
exit $falloUn aviso honesto sobre el alcance de esto: nada de lo que hay aqui detecta codigo generado por IA. Detecta trailers mal formados y firmas indebidas, que es lo que se puede verificar de verdad. Fue por reconocer ese limite que Debian dejo la divulgacion como cortesia en vez de requisito.
Escribiendo la Politica de Tu Proyecto
Si mantienes un proyecto y todavia no escribiste nada sobre esto, el CONTRIBUTING.md es el lugar. La plantilla de abajo sigue la linea de Debian, que en la practica es la mas facil de sostener porque no promete una fiscalizacion que no puedes hacer:
## Contribuciones asistidas por IA
Este proyecto no respalda ni prohibe el uso de herramientas de IA generativa.
Toda contribucion pasa por el mismo criterio, sea cual sea la herramienta:
calidad, correccion, mantenibilidad y cumplimiento de licencia.
Usar una herramienta no transfiere la responsabilidad. Al abrir un PR
declaras que entendiste, revisaste y probaste el codigo que estas
enviando, y que responderas por el en la revision.
Divulgar el uso de asistencia se fomenta como cortesia con el equipo de
revision, y no es obligatorio. Si quieres declararlo, usa el trailer:
Assisted-by: AGENTE:MODELO
Los agentes automatizados no firman el DCO. El Signed-off-by es siempre
de una persona.Adapta la ultima linea a tu contexto: si el proyecto no usa DCO, cambiala por quien responde por la revision. Lo importante es la estructura, que separa tres cosas normalmente mezcladas en la misma frase: que esta permitido, cual es el estandar de calidad y de quien es la responsabilidad.
Que Cambia en Tu Rutina de Contribuidor
En la practica, cuatro cosas.
Lee la politica antes del primer PR. Eso dejo de ser opcional. Un patch perfectamente bueno es rechazado en NetBSD y en Gentoo por un criterio que Debian no aplica. Busca el CONTRIBUTING.md, el Codigo de Conducta y alguna pagina de politica antes de invertir horas.
Asume que vas a defender el codigo. El estandar de Debian y del kernel te obliga a entender lo que enviaste. Si no logras explicar por que una linea esta ahi en una revision, el problema no es que la herramienta la haya escrito, es que tu no la revisaste.
Trata la procedencia como parte de la entrega. El codigo con licencia dudosa es un problema tuyo, no del modelo. Si la salida parece una implementacion conocida de algun proyecto, verificala antes de enviarla.
Declara cuando ayude. No es obligatorio en casi ningun lugar, pero le sirve a quien revisa para calibrar la atencion, y tu no pierdes nada con eso.
Perspectivas: Que Viene Despues de la Votacion
El peso de Debian convierte al "Responsible Use" en un texto de referencia. Es probable que proyectos mas pequenos copien la estructura, del mismo modo que copiaron el Contrato Social y la Definicion de Software Libre de Debian. La distancia entre la posicion de Debian y la del kernel Linux tambien es menor de lo que parece, y las dos convergen en el mismo punto: un humano firma, un humano responde.
Lo que sigue abierto es la pregunta juridica que QEMU plantea y nadie respondio, sobre la situacion de copyright de la salida de un modelo entrenado con codigo de licencia incompatible. Mientras eso no se resuelva en los tribunales, cada proyecto va a calibrar su propio riesgo. Fedora, Rust y FreeBSD tienen la discusion abierta ahora, y el resultado de Debian va a pesar en esos debates.
Para ti, el efecto inmediato es simple y vale mas que cualquier prediccion: la pregunta dejo de ser "puedo usar IA?" y paso a ser "entiendo lo que estoy enviando?". Esa segunda pregunta es mas dificil, y siempre fue la unica que importaba.
Vamos con todo! 🦅
📚 Quieres Seguir lo Que Viene Por Delante?
Este articulo cubrio la votacion de Debian sobre IA generativa, pero el ecosistema cambia cada semana y no todo se convierte en articulo aqui.
En X comparto lo que estoy probando, el detras de escena de mis proyectos y las novedades que aparecen antes de volverse post.
Sigueme Alla
💡 Contenido diario sobre desarrollo, carrera y las herramientas que realmente uso

