Quem assina embaixo do código que a máquina escreveu
Responsabilidade não transfere pro modelo. Um post-mortem com 'o agente errou' no relatório, e a decisão de banir a voz passiva em todo PR gerado por IA.

Um relatório de incidente chegou na minha mesa com uma frase que eu já tinha visto mil vezes, só que de roupa nova: “o agente gerou uma query sem índice e o banco caiu em produção”. Técnico, educado, e sem um único responsável dentro dele. Antes a gente escrevia “o script falhou” ou “a biblioteca tinha um bug”. O modelo só ofereceu um sujeito mais convincente pra uma manobra antiga: transformar quem aprovou o merge em espectador do próprio código.
Bani a frase. Não por capricho de processo, e sim porque ela reescreve a verdade do incidente. “O agente errou” narra um evento sem dono, e código em produção não tem evento sem dono. Tem alguém que leu, ou que fingiu ter lido, e apertou o botão.
A voz passiva é onde a responsabilidade vaza
Existe um padrão de linguagem que eu aprendi a tratar como cheiro de fumaça: a frase em que a ação acontece mas ninguém a comete. “Foi mergeado um código com credencial hardcoded.” Por quem? “Decidiu-se usar o output do modelo direto no banco.” Quem decidiu? Toda vez que o sujeito some da oração, a conta some junto.
Com agentes, esse apagamento ficou barato demais. O modelo virou o sujeito universal de qualquer erro, o funcionário fantasma que aceita qualquer culpa porque não sente nenhuma. Então a regra no relatório passou a ser trivial e inegociável: sujeito humano, verbo na ativa. Não “o agente introduziu a regressão”, mas “aprovei o PR que introduziu a regressão”. A mudança gramatical parece cosmética. Ela não é. Ela devolve o nome pra dentro da frase, e o nome é a única coisa que aciona vergonha, aprendizado e correção.
O modelo não assume o pager às duas da manhã
O argumento que fecha a discussão é operacional, não moral. Quando o alerta dispara às duas da manhã, quem abre o notebook é uma pessoa. O modelo que escreveu a função não acorda, não é paginado, não perde o domingo, não responde ao cliente na segunda. A responsabilidade acompanha quem carrega o pager, e o pager não é gerável.
Por isso todo PR gerado por IA no meu time leva nome humano de autor e nome humano de revisor, sem exceção. O modelo pode ter escrito cada linha. A assinatura continua sendo de gente. Isso não é burocracia: é o reconhecimento de que aprovar é um ato, e atos têm autor. Quem clica em “merge” está dizendo “eu li isto, entendi isto, e banco meu nome nisto”. Se essa frase for mentira, o problema não é o modelo.
Delegar a escrita é legítimo. Delegar a leitura é abandonar o posto.
“Não li, o agente escreveu” é falha de ownership, não desculpa
A frase mais perigosa que ouvi neste ano não veio de um júnior. Veio de gente experiente, no tom mais casual possível: “não revisei com calma, foi o agente que escreveu”. Dita assim, soa como explicação. Na verdade é uma confissão de que a pessoa parou de fazer o trabalho e não avisou ninguém.
Ler o que entra no seu sistema sempre foi parte do trabalho, muito antes de existir agente. O que mudou é o volume: a máquina produz diff mais rápido do que qualquer humano consegue produzir, e a tentação é aprovar na mesma velocidade. Mas velocidade de geração não compra dispensa de leitura. Se você não tem tempo de entender o que aprova, você não tem tempo de aprovar. Gera menos, ou lê mais. Não existe terceira opção que não seja empurrar risco pra frente com o nome de outra pessoa.
O agente estende o alcance de quem o usa, e alcance estendido também estica a omissão de quem não lê. Um time que aprova sem ler com o modelo é o mesmo time que aprovava sem ler antes dele, só que agora mais rápido e com uma desculpa mais bem-acabada.
Voltei o relatório daquele incidente pra reescrita. A versão final dizia: “aprovei uma query sem índice porque não revisei o plano de execução”. Menos confortável, e verdadeira. Autoria de código a gente delega à vontade. Autoria da decisão de colocá-lo no ar, nunca.