Voltar para o Blog

Debian Libera IA Generativa no Codigo: O Que a Votacao de 2026 Muda no Open Source

Ola HaWkers, o Debian passou duas semanas votando e fechou no dia 28 de agosto de 2026 a General Resolution 2026-002, a "LLM usage in Debian". Foram oito propostas na cedula, indo de banir LLM pelo Contrato Social ate aceitar contribuicao assistida sem cerimonia. Venceu a opcao 5, "Responsible Use of Generative AI". O projeto que empacota boa parte da infraestrutura da internet decidiu que nem endossa nem proibe IA generativa.

Voce contribui com algum projeto open source, ou pretende contribuir, e ja se perguntou se pode abrir um PR com codigo que o Claude ou o Copilot escreveu junto? Essa duvida saiu do campo da etiqueta e virou politica escrita, com regras diferentes em cada projeto. Neste artigo eu destrincho o que o Debian aprovou, comparo com quem proibe, e mostro como automatizar a conformidade no seu proprio repositorio com git hooks e CI.

O Que o Debian Decidiu de Fato

A votacao ficou aberta de 15 a 28 de agosto de 2026, com 1.045 desenvolvedores aptos a votar e um quorum exigido de 48,49 votos. A cedula tinha nove linhas: oito propostas mais o classico "None of the above". O Debian usa Condorcet com o metodo de Schulze, entao nao existe "voto util": cada participante ordena as opcoes por preferencia e o sistema apura todos os confrontos par a par.

As oito propostas cobriam o espectro inteiro:

  • 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

A proposta de Marc Haber venceu todos os confrontos. Bateu a de Lucas Nussbaum por 203 a 148, a de Tobias Frost por 210 a 130 e a de Pierre-Elliott Becue por 232 a 115. O detalhe mais revelador da apuracao nao esta em quem ganhou, e sim em quem perdeu: as duas propostas de banimento duro, a de Matthias Geiger e a de Ian Jackson, foram derrotadas ate pelo "None of the above". A base do Debian nao rejeitou apenas o texto delas, rejeitou a ideia de proibir.

Por Que "Nem Endossa Nem Proibe" e a Parte Importante

O texto aprovado e curto e cabe em cinco compromissos. Vale ler cada um com atencao, porque a formulacao foi escolhida a dedo:

  1. O Debian nao endossa nem proibe o uso de ferramentas de IA generativa no desenvolvimento, na manutencao ou na documentacao de software, empacotamento e demais midias publicadas pelo projeto.
  2. Toda contribuicao atende ao mesmo padrao, independentemente de como e com qual ferramenta foi produzida: qualidade, correcao, manutenibilidade e conformidade legal.
  3. A ferramenta nao dilui a responsabilidade. Quem submete continua respondendo pela contribuicao. A expectativa e explicita: entender, revisar, testar e, quando fizer sentido, modificar a saida da IA antes de incorporar.
  4. Todo processo automatizado precisa de supervisao humana, e esse humano responde pelo comportamento do processo.
  5. A divulgacao e encorajada, mas nao obrigatoria. O texto trata a transparencia como uma cortesia com os outros contribuidores, nao como um requisito de aceitacao.

Repare no que o item 5 evita. Um requisito de divulgacao obrigatoria so funciona se alguem puder verificar, e ninguem consegue provar que uma funcao de trinta linhas saiu de um modelo ou da cabeca de quem escreveu. O campo pro-IA argumentou exatamente isso durante o debate: uma regra inaplicavel nao produz conformidade, produz cacada as bruxas contra quem parecer suspeito. O campo contrario respondeu com a pergunta que continua sem resposta boa, sobre como o contribuidor certifica a situacao legal de um trecho que ele nao escreveu.

O Debian resolveu a tensao empurrando o problema inteiro para o unico lugar onde ele sempre esteve: a pessoa que assina. Nao e uma politica sobre IA, e uma politica sobre responsabilidade que por acaso menciona IA.

O Mapa das Politicas: Quem Proibe, Quem Libera, Quem Ainda Nao Decidiu

O Debian nao definiu um consenso, definiu a posicao dele. O ecossistema segue rachado, e se voce contribui com mais de um projeto precisa saber onde pisa.

Quem proibe:

  • Gentoo e o mais direto. Ficou expressamente proibido contribuir com qualquer conteudo criado com auxilio de ferramentas de IA de processamento de linguagem natural. Os motivos citados sao copyright, qualidade e etica.
  • NetBSD trata codigo gerado por LLM como codigo contaminado por presuncao. Nao pode ser commitado sem aprovacao previa por escrito.
  • QEMU recusa contribuicoes que acredita conterem ou derivarem de conteudo gerado por IA. O argumento e juridico e elegante: como a situacao de copyright da saida ainda nao esta resolvida e os dados de treino podem incluir codigo com licenca incompativel, o contribuidor nao consegue certificar honestamente o Developer Certificate of Origin.

Quem libera com regra:

  • O kernel Linux foi por um caminho parecido com o do Debian, mas com mais mecanica. Permite contribuicao assistida por IA e criou um trailer proprio para isso, que e o assunto da proxima secao.

Quem ainda nao fechou:

  • Fedora, Rust, FreeBSD, GCC, Blender, NixOS e Jupyter tem discussao viva e nenhuma politica consolidada.

A briga toda, repare, quase nunca e sobre a qualidade do codigo. E sobre proveniencia. O QEMU nao diz que o codigo do modelo e ruim, diz que ninguem sabe de quem ele e. E vale separar essa discussao juridica da discussao de qualidade, que tambem existe e tem dados proprios. Eu ja tinha falado disso quando saiu o estudo sobre o impacto do vibe coding no open source, e as duas conversas seguem em trilhos diferentes.

O Trailer Assisted-by: A Regra Que Voce Vai Encontrar Primeiro

Se voce for contribuir com o kernel, esta e a parte pratica. A documentacao oficial em docs.kernel.org/process/coding-assistants.html estabelece duas regras que nao se negociam.

A primeira e uma proibicao: agentes de IA nao podem adicionar um Signed-off-by. So um humano pode certificar legalmente o Developer Certificate of Origin. A segunda e um formato novo de trailer para creditar a assistencia:

# Formato definido pela documentacao do kernel
# Assisted-by: NOME_DO_AGENTE:VERSAO_DO_MODELO [FERRAMENTA1] [FERRAMENTA2]

git commit -s -m "net: corrige vazamento de referencia no caminho de erro

O caminho de erro de xyz_probe() nao liberava a referencia do device
quando a alocacao do buffer falhava.

Assisted-by: Claude:claude-3-opus coccinelle sparse"

Duas sutilezas fazem diferenca. A flag -s do git commit adiciona o seu Signed-off-by, e ele continua sendo obrigatorio: o Assisted-by credita, nao substitui. E a lista de ferramentas entre colchetes e para analisadores especializados, como coccinelle, sparse, smatch e clang-tidy. Ferramenta basica de desenvolvimento nao entra ali. Nao liste git, gcc, make nem o seu editor.

O resto do processo nao muda: o codigo precisa ser compativel com GPL-2.0-only, nao pode introduzir warning de build e tem que passar no checkpatch.pl.

Automatizando a Politica no Seu Repositorio

Politica que depende de memoria humana falha na terceira semana. Se voce mantem um projeto e adotou uma regra parecida com a do Debian ou a do kernel, coloque-a num hook. O commit-msg roda antes do commit existir e consegue barrar o problema na origem:

#!/usr/bin/env bash
# .git/hooks/commit-msg
# Garante que agente de IA nao assine o DCO e que o trailer
# Assisted-by siga o formato AGENTE:MODELO.
set -euo pipefail

MSG_FILE="$1"

# Lista de identificadores de agente que nunca podem assinar o DCO
AGENTES="Claude|Copilot|Codex|Cursor|Gemini|GPT"

if grep -qiE "^Signed-off-by:.*($AGENTES)" "$MSG_FILE"; then
  echo "ERRO: agente de IA nao pode assinar o Developer Certificate of Origin." >&2
  echo "Use o trailer Assisted-by e assine voce mesmo com git commit -s." >&2
  exit 1
fi

# Se existe Assisted-by, valida o 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 "ERRO: formato invalido do Assisted-by." >&2
    echo "Esperado: Assisted-by: AGENTE:MODELO [ferramenta1] [ferramenta2]" >&2
    exit 1
  fi

  # Trailer de assistencia exige Signed-off-by humano no mesmo commit
  if ! grep -q "^Signed-off-by:" "$MSG_FILE"; then
    echo "ERRO: commit com Assisted-by precisa de um Signed-off-by humano." >&2
    exit 1
  fi
fi

exit 0

Hook local, porem, so protege quem instalou o hook. Ele resolve o seu caso e o de quem clonou com core.hooksPath configurado, e nao resolve o PR que chega de fora.

Levando a Verificacao Para o CI

A checagem que vale e a que roda no servidor, em cima de todos os commits do PR. Esta action varre o intervalo do pull request e reprova quando encontra um DCO assinado por agente:

# .github/workflows/ai-policy.yml
name: Politica de contribuicao assistida

on:
  pull_request:

jobs:
  trailers:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          # Precisa do historico completo para varrer o intervalo do PR
          fetch-depth: 0

      - name: Verifica trailers de todos os commits do PR
        env:
          BASE: ${{ github.event.pull_request.base.sha }}
          HEAD: ${{ github.event.pull_request.head.sha }}
        run: |
          falhou=0
          for sha in $(git rev-list "$BASE".."$HEAD"); do
            corpo=$(git log -1 --format=%B "$sha")

            if echo "$corpo" | grep -qiE "^Signed-off-by:.*(Claude|Copilot|Codex|Cursor|Gemini|GPT)"; then
              echo "::error::$sha tem Signed-off-by de agente de IA"
              falhou=1
            fi

            if echo "$corpo" | grep -q "^Assisted-by:" \
               && ! echo "$corpo" | grep -q "^Signed-off-by:"; then
              echo "::error::$sha declara Assisted-by sem Signed-off-by humano"
              falhou=1
            fi
          done
          exit $falhou

Um aviso honesto sobre o alcance disso: nada aqui detecta codigo gerado por IA. Detecta trailer mal formado e assinatura indevida, que e o que da para verificar de fato. Foi por reconhecer esse limite que o Debian deixou a divulgacao como cortesia em vez de requisito.

Escrevendo a Politica do Seu Projeto

Se voce mantem um projeto e ainda nao escreveu nada sobre isso, o CONTRIBUTING.md e o lugar. O modelo abaixo segue a linha do Debian, que na pratica e a mais facil de sustentar porque nao promete uma fiscalizacao que voce nao consegue fazer:

## Contribuicoes assistidas por IA

Este projeto nao endossa nem proibe o uso de ferramentas de IA generativa.

Toda contribuicao passa pelo mesmo criterio, seja qual for a ferramenta:
qualidade, correcao, manutenibilidade e conformidade de licenca.

Usar uma ferramenta nao transfere a responsabilidade. Ao abrir um PR voce
declara que entendeu, revisou e testou o codigo que esta submetendo, e que
respondera por ele na revisao.

Divulgar o uso de assistencia e encorajado como cortesia com a equipe de
revisao, e nao e obrigatorio. Se quiser declarar, use o trailer:

    Assisted-by: AGENTE:MODELO

Agentes automatizados nao assinam o DCO. O Signed-off-by e sempre de uma
pessoa.

Adapte a ultima linha ao seu contexto: se o projeto nao usa DCO, troque por quem responde pela revisao. O importante e a estrutura, que separa tres coisas normalmente misturadas na mesma frase: o que e permitido, qual e o padrao de qualidade e de quem e a responsabilidade.

O Que Muda na Sua Rotina de Contribuidor

Na pratica, quatro coisas.

Leia a politica antes do primeiro PR. Isso deixou de ser opcional. Um patch perfeitamente bom e recusado no NetBSD e no Gentoo por um criterio que o Debian nao aplica. Procure por CONTRIBUTING.md, pelo Codigo de Conduta e por alguma pagina de politica antes de investir horas.

Assuma que voce vai defender o codigo. O padrao do Debian e do kernel te obriga a entender o que submeteu. Se voce nao consegue explicar por que uma linha esta ali numa revisao, o problema nao e a ferramenta ter escrito, e voce nao ter revisado.

Trate proveniencia como parte da entrega. Codigo com licenca duvidosa e um problema seu, nao do modelo. Se a saida parece uma implementacao conhecida de algum projeto, verifique antes de submeter.

Declare quando ajudar. Nao e obrigatorio em quase lugar nenhum, mas ajuda quem revisa a calibrar a atencao, e voce nao perde nada com isso.

Perspectivas: O Que Vem Depois da Votacao

O peso do Debian faz do "Responsible Use" um texto de referencia. E provavel que projetos menores copiem a estrutura, do mesmo jeito que copiaram o Contrato Social e a Definicao de Software Livre do Debian. A distancia entre a posicao do Debian e a do kernel Linux tambem e menor do que parece, e as duas convergem no mesmo ponto: um humano assina, um humano responde.

O que continua em aberto e a pergunta juridica que o QEMU levanta e ninguem respondeu, sobre a situacao de copyright da saida de um modelo treinado em codigo com licenca incompativel. Enquanto isso nao se resolve nos tribunais, cada projeto vai calibrar o proprio risco. Fedora, Rust e FreeBSD estao com a discussao aberta agora, e o resultado do Debian vai pesar nesses debates.

Para voce, o efeito imediato e simples e vale mais que qualquer previsao: a pergunta deixou de ser "posso usar IA?" e passou a ser "eu entendo o que estou submetendo?". Essa segunda pergunta e mais dificil, e sempre foi a unica que importava.

Bora pra cima! 🦅

📚 Quer Acompanhar o Que Vem Por Ai?

Este artigo cobriu a votacao do Debian sobre IA generativa, mas o ecossistema muda toda semana e nem tudo vira artigo aqui.

No X eu compartilho o que estou testando, os bastidores dos projetos e as novidades que aparecem antes de virarem post.

Me Segue La

👉 Seguir @jeffbruchado no X

💡 Conteudo diario sobre desenvolvimento, carreira e as ferramentas que eu realmente uso

Comentários (0)

Esse artigo ainda não possui comentários 😢. Seja o primeiro! 🚀🦅

Adicionar comentário