Vírgula ASCII e gênero errado: como paramos de revisar o blog só depois de publicar
Voltar para o Blog
Artigoverboo codedev toolsautomaçãodesenvolvimento de software

Vírgula ASCII e gênero errado: como paramos de revisar o blog só depois de publicar

Mafra24 de setembro de 20265 min de leitura

Essa semana, um artigo nosso ficou no ar com a frase errada colada em "Verboo Code" até alguém notar depois de publicar nas três línguas. Em outros três posts, a versão em chinês saiu com vírgula comum onde devia ter a vírgula de largura total. A correção sempre existiu, só que dependia de alguém olhar a tela com atenção certa. Trocamos isso por um script, testamos contra os erros reais que já tínhamos vivido, e achamos um bug no próprio script no meio do teste.

Que erro passou batido no blog essa semana?

Pelo menos quatro vezes entre 21 e 23 de setembro de 2026, sempre no mesmo par de problemas: pontuação ASCII sobrando no rascunho em chinês, ou artigo de gênero errado perto de "Verboo Code" (a marca é sempre feminina, "a Verboo Code"). Um deles só foi achado depois de publicar nas três línguas.

DataPostErroQuando foi achado
21/09/rewindvírgula ASCII no rascunho zhantes de publicar, na revisão visual
22/09Kimi K3 vs Claude Fable 5vírgula e dois pontos ASCII no rascunho zhantes de publicar, com um script feito na hora só pra esse caso
23/09Codex CLI no /resumeartigo de gênero errado perto de "Verboo Code"só depois de publicar nas 3 línguas, corrigido com unpublish e nova publicação
23/09Codex, erro 432 no Workspace routingvírgula ASCII no rascunho zhantes de publicar, na revisão visual

Por que a revisão visual não pega isso sozinha?

Porque o erro é pequeno demais para o olho notar toda vez. Uma vírgula ASCII no meio de duzentos caracteres em chinês ocupa quase o mesmo espaço da vírgula de largura total, e ninguém para para medir símbolo por símbolo. O artigo de gênero é pior ainda: a forma errada está gramaticalmente correta em português, só está errada pra essa marca específica, então nada nela chama atenção.

O caso do dia 23 passou pela revisão de quem escreveu, de quem gerou a tradução e de quem conferiu antes do publish, e mesmo assim foi ao ar. Só apareceu numa checagem feita depois, sobre o texto que já estava publicado.

Como funciona o script que escrevemos?

Quatro checagens, cada uma em cima de uma expressão regular, rodando contra o HTML do rascunho antes do primeiro publish, não só depois dele:

python3 checar_padrao.py rascunho.html pt
python3 checar_padrao.py rascunho.html zh

Uma das quatro, a de gênero, mostra o formato das outras:

GENERO = re.compile(
    _B_INI + r"(o|do|no|ao|dos|nos|aos)\s+Verboo\s+Code" + _B_FIM,
    re.IGNORECASE,
)

As outras três seguem a mesma lógica de fronteira: uma pega os dois tipos de travessão (as marcas Unicode U+2014 e U+2013) em qualquer parte do texto; outra pega vírgula, dois pontos ou ponto e vírgula ASCII colados num ideograma chinês (faixa U+4E00 a U+9FFF); a última pega a palavra da oferta que a Verboo Code não tem mais. Sai com código 1 quando encontra alguma coisa, então dá para plugar como gate antes de qualquer publicação, sem depender de alguém lembrar de olhar a tela.

A armadilha que o próprio script caiu

Na primeira versão, as checagens de gênero e de oferta antiga usavam \b, a fronteira de palavra padrão do Python. Testando contra uma frase real em chinês, com uma palavra em português colada direto depois de um ideograma, sem espaço, o script não achou nada. O motivo: o \b do Python trata ideograma CJK como caractere de palavra, então não existe fronteira nenhuma entre um ideograma e a letra seguinte. A checagem passava batido exatamente no idioma onde o problema de pontuação é mais comum.

A correção trocou \b por uma fronteira própria, que só conta caractere latino ou dígito como parte de palavra:

_B_INI = r"(?<![A-Za-zÀ-ÿ0-9_])"
_B_FIM = r"(?![A-Za-zÀ-ÿ0-9_])"

Depois do ajuste, o mesmo teste passou a achar a palavra colada no chinês, junto com a pontuação ASCII do lado.

O script pega de verdade os erros que já aconteceram?

Testamos contra uma reconstrução dos dois casos reais, mais um texto limpo como controle:

EntradaResultado
Frase reconstruindo o erro de gênero do dia 23Falhou: achou a forma errada perto de "Verboo Code"
Frase em chinês com vírgula e dois pontos ASCII colados nos ideogramasFalhou: achou as duas ocorrências
"A Verboo Code guarda a sessão. Pontuação normal, sem nenhum problema."OK: nenhum problema

Rodado contra os três rascunhos deste artigo, pt, en e zh, o script não achou nenhuma ocorrência em nenhum dos três. Faz sentido: pra explicar o erro sem repeti-lo, este texto descreve a forma errada em vez de reproduzir a frase exata, então não sobra nada pra checagem confundir com um erro novo. É o mesmo motivo pelo qual a tabela de teste acima usa descrição em vez da frase literal.

Escrever o script, testar, achar um bug na própria checagem e corrigir tudo isso coube numa manhã inteira de tentativa, porque nenhuma rodada custou caro. Na Verboo Code o token é ilimitado dentro do plano, então a quinta tentativa custa o mesmo que a primeira.

Gostou deste artigo?
Compartilhe conhecimento com sua rede.
// Leia também

Artigos relacionados