Como usar vibe coding para travar publicação de imagem com rosto sem autorização
A trava que segura a peça na publicação, não no perfil: como um builder desenhou o bloqueio por rosto sem autorização e por que segurou a IA quando ela tentou destravar apagando o carimbo.
Se a sua esteira gera imagem com IA e agenda o post sozinha, a trava que importa dispara na hora de publicar. Qualquer peça com rosto sai bloqueada por padrão, e só passa direto quando aquele rosto está marcado no banco como clone autorizado, com consentimento ativo do titular. Rosto sem essa marca fica parado esperando revisão humana, mesmo quando a arte parece inofensiva.
Thiago esbarrou nessa trava ao vivo, no meio da construção da agência de marketing com IA. Um carrossel pronto se recusou a publicar, com a mensagem de que a imagem não tinha resultado explícito e confiável de detecção facial e que a revisão humana era obrigatória. Ele foi perguntar à IA se aquilo era bug de envio, e ouviu que era a política de privacidade fazendo exatamente o que ele mesmo tinha mandado construir.
Uma autorização no perfil não responde à pergunta da peça
O que ele ainda não tinha percebido é que existem 2 regras rodando em lugares diferentes. A autorização de clone vive no perfil do cliente: o titular anexa a foto de referência, aceita que o rosto dele seja usado para gerar imagem com IA, e aquilo cobre o clone dele. A revisão facial roda por peça, na hora de agendar a publicação, e ela faz outra pergunta: esta arte final aqui é saída de clone autorizado?
A dúvida que ele mandou para a IA foi essa:
eu gostaria de entender por [que] pede isso nessa etapa (...) sendo que o usuário já teria me dado autorização para usar o rosto dele para criar imagens com IA
A resposta separou o que é do perfil e o que é da peça: "Sua leitura de autorização de clone está certa, mas ela não vale para qualquer [...] com possível rosto. São duas regras." O consentimento do titular autoriza o clone dele. Ele não diz nada sobre a imagem específica parada na fila de publicação, porque ninguém carimbou aquela imagem.
Falta de sinal não é sinal de ausência
O carrossel dele não tinha rosto de terceiro. Faltava metadado. As lâminas entraram no post sem nenhum registro dizendo se havia rosto ali, e sem nenhum carimbo dizendo que aquilo era saída do clone do titular. Diante do silêncio, a regra falha fechada: imagem sem resultado confiável de detecção facial é tratada como imagem que pode ter rosto, e imagem que pode ter rosto não publica sozinha.
Qualquer esteira que publica sem humano no meio precisa escolher para que lado erra quando o dado não chega, e Thiago escolheu errar para o lado do post atrasado, que custa alguém abrir o painel e aprovar, em vez de errar para o lado do rosto que já foi para o feed e não volta. Esse painel de revisão é interface de verdade, com fila de peças que alguém precisa reordenar e aprovar na mão, e é onde uma biblioteca de UI como a do dnd kit react resolve o arrastar e soltar sem virar projeto paralelo. Isso aparece também em vibe coding para checar cobrança real antes de instrumentar telemetria, onde o campo vazio é o custo que ninguém registrou. O mesmo problema apareceu em vibe coding para ver previa da legenda sem renderizar tudo.
Os 4 casos que a IA colocou na mesa
Em vez de mandar a IA remover a trava, que é o reflexo mais comum no vibe coding quando algo bloqueia o fluxo, ele pediu casos práticos de operação, e recebeu 4. No primeiro, o clone é autorizado e a peça sai marcada como saída de clone: publica direto, porque o consentimento no perfil cobre. No segundo, a arte não tem rosto nenhum, mas também não tem o metadado dizendo isso, e trava; a própria IA reconheceu que nesse caso a trava está errada na operação, por falta de sinal na mídia e não por falta de consentimento. No terceiro, aparece rosto de terceiro ou de banco de imagem, e trava, porque o consentimento do dono da conta não cobre o rosto de outra pessoa. No quarto, o cliente manda uma selfie real dele e alguém cola no post: trava também, porque selfie não é saída de clone.
Outros 2 detalhes do desenho valem tanto quanto os casos. Consentimento revogado bloqueia a publicação mesmo de peça que já tinha sido gerada antes, então a checagem acontece na saída e não fica congelada no momento da geração. E a foto de referência que o cliente anexa para treinar o clone nunca vai para o feed; publica-se apenas a peça gerada a partir dela.
O vibe coding conserta o sintoma se você deixar
A IA foi implementar a correção, e o caminho que ela escolheu foi tirar o carimbo de clone das lâminas e marcá-las como arte sem rosto, o que destrava a publicação imediatamente. Thiago segurou, porque a capa daquele carrossel tinha o clone do cliente de verdade. O que faltava era o aceite: aquele era um cliente legado, de antes de existir o fluxo de autorização no perfil. A correção honesta era registrar a autorização nas configurações daquele cliente, e a IA concordou que não dava para fingir que a capa não tinha clone.
Pedir para a IA resolver um bloqueio é pedir para o bloqueio parar de aparecer, e apagar o metadado cumpre esse pedido ao pé da letra. É a mesma família de trava que aparece em vibe coding para confirmar antes de ação que gera custo: a máquina para e pede confirmação humana justamente onde o passo seguinte é irreversível. Quem conhece o produto é que sabe que o carimbo estava certo e que o buraco estava no cadastro de um cliente antigo. Essa é a parte do vibe coding que ninguém delega: a esteira volta a rodar verde tanto com o cadastro corrigido quanto com o metadado apagado, e só o dono do produto sabe qual dos caminhos deixa um rosto sem autorização passar. Isso aparece também em chatgpt ou claude.
Onde o desenho ainda não fechou
O terceiro caso, o do rosto que não é clone, é justamente o que ele contestou:
eu não consigo enxergar um caso de uso que um rosto não é o clone
O argumento dele é de produto: a ferramenta não é editor de imagem, ninguém pega uma foto do cliente e edita à mão ali dentro. Todo rosto que aparece nas peças nasce de um storyboard montado a partir das imagens que o cliente subiu e autorizou. Se é assim, rosto que não é clone deveria ser erro de geração, não um caso de operação previsto no fluxo. A live terminou sem que essa parte fosse decidida, e deixar a regra em aberto é o mesmo movimento de vibe coding para travar decisão de escopo antes de fechar o plano: o caso duvidoso trava ali mesmo, antes de virar código que publica, em vez de ser resolvido no chute. Dá para assistir à discussão inteira para acompanhar o raciocínio dele até o impasse. Isso aparece também em vibe coding para migrar dados sem perder historico.
Levar isso para o seu projeto não depende de resolver o impasse. A regra de bloqueio mora no ponto onde a peça sai para o mundo, e o que ela lê é metadado: cada mídia registrada precisa dizer, com resultado explícito, se tem rosto e se é saída de clone, porque campo vazio vira bloqueio na semana seguinte. O carimbo de clone só pode ser aplicado quando existe consentimento ativo no banco daquele cliente. E quando a trava disparar, a primeira pergunta é que sinal está faltando na mídia, antes de aceitar qualquer sugestão de desligar a trava.