Como construí um Gate de QC para esconder sinais de automação
A automação se revela de maneiras que você não espera.
Eu operava um pipeline de conteúdo automatizado para o Bluesky. Um post foi publicado mencionando "o pipeline de conteúdo". Em um blog técnico, isso não é problema. Em uma timeline social, é um sinal de alerta. Isso diz aos leitores que eles estão falando com um bot.
Eu construí um script de controle de qualidade para impedir isso. Ele atua como um gate entre a etapa de geração e a etapa de postagem.
O novo fluxo de trabalho é assim: bluesky-qc.mjs → (PASS) bluesky-post-queue.mjs → Bluesky API
O script utiliza quatro gates para verificar cada entrada:
Gate 1: Filtragem de Frases Eu uso uma lista de regex para capturar palavras que sinalizam automação. Ele bloqueia termos como "AI-generated", "cron", "content pipeline" ou "batch test". Se um post parecer um relatório de desenvolvedor, ele falha.
Gate 2: Verificações de Conteúdo Datado Eu verifico dois tipos de conteúdo datado: • Fraseado datado: Captura palavras como "hoje" ou "acabou de ser lançado" que perdem o sentido se o post for atrasado. • Timestamps datados: Se uma entrada tiver mais de 14 dias, ela é rejeitada.
Gate 3: Predição de Engajamento O script analisa meus últimos 300 posts. Ele prevê se as hashtags em um novo post terão um bom desempenho. Atualmente, isso apenas registra um aviso, mas em breve transformarei isso em uma falha crítica (hard fail).
Gate 4: Aprovação de Qualidade (Planejado) Pretendo adicionar uma camada final usando um protocolo de qualidade para capturar erros sutis.
Cada falha vai para um log de rejeição. Eu reviso esse log uma vez por semana. Isso me ajuda a ajustar meus prompts. Se o gate continuar capturando "content pipeline", eu sei que preciso mudar a forma como a IA escreve.
Por que usar um gate em vez de apenas prompts melhores? Prompts são probabilísticos. Eles podem falhar. Um gate é determinístico. Ele segue regras estritas.
Usar ambas as camadas é a maneira mais segura de manter um tom humano.
