gororoba

Linter de voz para português brasileiro. Aponta slop de IA por eixo. Não detecta autoria.

View the Project on GitHub renanburn/gororoba

gororoba

Linter de voz para português brasileiro. Aponta trechos de slop de IA (texto genérico, requentado, traduzido do inglês, sem voz) por eixo, igual o ESLint aponta código.

O que é

Uma régua que você roda no seu texto e que diz, por eixo, o que está genérico: “isto tem 3 conectivos de tradução, 2 voz passiva e 1 clichê de IA”. Roda local e no seu CI, em cima de Vale.

O que NÃO é

Não detecta autoria de IA. A pergunta aqui é “vale a pena ler?”, não “quem escreveu?”.

Os detectores de autoria (GPTZero, Turnitin AI) têm viés comprovado contra quem escreve simples ou não é nativo, e foram desligados por várias universidades. O gororoba foge disso de propósito. Slop é propriedade do texto, medível e acionável. Autoria não é. Tem IA bem usada que sai limpa, e tem gente escrevendo gororoba pura sem máquina nenhuma.

O exemplo rodando

Isto é a saída real de vale tests/gororoba.md, não um mockup. O fixture sujo entra, o linter aponta cada trecho com o eixo, a regra e a severidade:

3:1    warning     [cliche-ia] 'No mundo de hoje': abertura de garganta limpa.
3:38   warning     [conectivo-traducao] 'vale ressaltar que': conectivo de tradução.
4:50   warning     [voz-passiva] 'foi observado': voz passiva ou impessoal.
8:10   error       [cliche-ia] 'de tirar o fôlego': clichê de IA. Corta.
8:28   suggestion  [cliche-ia] travessão como recurso. Use vírgula, ponto ou dois pontos.
10:1   error       [cliche-ia] 'Ótima pergunta': clichê de IA. Corta.
12:42  warning     [voz-passiva] gerundismo de call center: use 'envio' no lugar de 'Vou estar enviando'.

✖ 5 errors, 16 warnings and 2 suggestions in 1 file.

O anteparo que importa (antes → depois)

O risco mortal de uma régua dessas é marcar mineirês ou fala popular como slop. O fixture tests/voz-limpa.md trava isso. Texto de voz real entra e tem que sair com zero alerta. Isto é a saída real de vale tests/voz-limpa.md:

✔ 0 errors, 0 warnings and 0 suggestions in 1 file.

A frase “Cê viu o trem que o sô falou, uai?” passa limpa. O CI quebra se algum sinal vazar pra cima dela. Isto roda a cada push, então não fica no campo da promessa.

Os 6 eixos da v0

Cada eixo é uma tag: o nome que aparece no alerta é o mesmo que você lê aqui.

Eixo (tag) O que pega
conectivo-traducao vale ressaltar, nesse sentido, cabe ressaltar
calco-traducao no final do dia, dito isso, posto isso
voz-passiva foi observado, pode-se notar, constata-se que
gerundismo vou estar enviando, vou estar mandando
cliche-ia ótima pergunta, abertura de garganta limpa, travessão, paralelismo negativo
alusao-vaga estudos mostram, especialistas afirmam, uma grande marca

calco-traducao e alusao-vaga entram como suggestion (sinal mais fraco, falso positivo maior: nomear a fonte nem sempre cabe, tipo texto sob NDA); os outros como warning. Ritmo, brasilidade e densidade ficam pra depois. São subjetivos e baixam a concordância entre anotadores. A v0 fica nos 6 eixos objetivos.

Estado honesto

Esta é a Camada 2, o linter. Funciona e roda em CI hoje. A Camada 1, o dataset público anotado por dois humanos com concordância (kappa) medida, ainda está em construção. Sem ela, isto é uma régua útil. Com ela, vira uma régua provada. Não vai virar “benchmark” antes de o kappa estar na mão.

Camada O que é Estado
Camada 2 o linter Vale, 5 eixos, CI pronto, roda hoje
Camada 1 dataset anotado + kappa por eixo em construção, 0 trechos

O cético tem um lugar pra cavar: o posicionamento responde de frente “isso é só regex?”, “e os falsos positivos?” e “por que confiar sem o kappa?”.

Crédito

Vem da régua anti-slop papo-reto, que o autor já mantinha, e do stop-slop de Hardik Pandya (MIT), que ajudou a formalizar a ideia pro português. Licença MIT.

Como rodar

brew install vale
git clone https://github.com/renanburn/gororoba && cd gororoba
vale tests/gororoba.md

Repo: github.com/renanburn/gororoba.