Verificações de qualidade do conteúdo do produto
Updated 2026-09-05
Separe validade estrutural de significado do produto. Em um caso local de 40 linhas em japonês e alemão, verificações de campos passaram enquanto a revisão por IA ainda encontrou formulação japonesa a corrigir.
Defina o contrato de qualidade antes da geração
Escreva regras de aceitação para cada campo. Campos de identidade e revisão devem corresponder à fonte. Texto editável deve usar o locale solicitado, incluir informações obrigatórias e respeitar o formato do destino. Alegações precisam de evidência de suporte. Um único rótulo de aprovado ou reprovado é amplo demais para explicar qual condição bloqueou um produto.
Mantenha defeitos verificáveis por máquina separados de julgamentos editoriais. Texto ausente e desvio de identificador podem ser localizados deterministicamente. Saber se uma tradução exagera um benefício exige contexto e revisão qualificada. Encaminhe cada problema à pessoa ou sistema capaz de resolvê-lo e mantenha o resultado ligado à revisão do candidato.
| Verificação | Evidência útil | Revisão de acompanhamento |
|---|---|---|
| Identidade e revisão da fonte | Comparação exata de campos | Tradução natural |
| Valores protegidos | Igualdade de escalares tipados | Especificação correta da fonte |
| Marcação e placeholders | Contagens do parser e dos tokens | Alegações de produto exatas |
| Revisão de alegações | Mapeamento de alegação para fonte | Sucesso da importação na loja |
| Leitura posterior do destino | Comparação entre aprovado e armazenado | Desempenho comercial |
Compare valores protegidos depois da montagem
Gere somente campos de texto permitidos e depois monte o registro candidato usando valores protegidos copiados da fonte. Execute uma segunda comparação nesse registro montado. Isso captura erros do mapper e edições acidentais feitas durante a revisão.
O exemplo ilustrativo em JavaScript espera objetos validados pelo esquema com valores escalares protegidos. Ele detecta chaves protegidas ausentes, extras ou alteradas e uma revisão de fonte antiga, retornando códigos estáveis de problema. Coloque validação de esquema e valores antes deste auxiliar e encaminhe depois um candidato estruturalmente válido para revisão editorial.
function checkProtected(source, candidate) {
const issues = [];
if (candidate.sourceRevision !== source.sourceRevision) {
issues.push({ code: "STALE_SOURCE", field: "sourceRevision" });
}
const keys = new Set([
...Object.keys(source.protected),
...Object.keys(candidate.protected),
]);
for (const field of keys) {
const hasSource = Object.prototype.hasOwnProperty.call(source.protected, field);
const hasCandidate = Object.prototype.hasOwnProperty.call(candidate.protected, field);
if (!hasSource || !hasCandidate ||
!Object.is(source.protected[field], candidate.protected[field])) {
issues.push({ code: "PROTECTED_FIELD_CHANGED", field });
}
}
return issues;
}Mantenha formatação de números separada dos valores
Um número localizado pode parecer diferente e representar a mesma quantidade armazenada. A MDN documenta Intl.NumberFormat para apresentação consciente do locale. Aplique formatação depois de selecionar o valor autoritativo; não peça a um modelo de linguagem que recrie um preço a partir de uma string de moeda renderizada.
Defina unidades junto dos valores numéricos, incluindo qual unidade pertence a cada dimensão. Se a conversão for autorizada, use uma regra determinística e preserve a representação original. Não compare apenas os dígitos em uma frase: dois números iguais com unidades diferentes podem descrever produtos diferentes. Unidades ausentes devem bloquear a aprovação até a fonte ser resolvida.
Valide multiplicidade de placeholders e marcação
Use o parser de templates da aplicação para coletar tokens de placeholder da fonte e do candidato. Compare contagens, não apenas um conjunto de nomes; um token duplicado pode quebrar uma frase ou aplicação mesmo quando todo token original ainda aparece. Mantenha regras de escaping específicas do formato no limite do destino.
A pequena verificação a seguir aceita tokens já extraídos. Ela não tenta uma expressão regular universal de placeholder. Para HTML, analise o fragmento do documento e compare separadamente estrutura e links permitidos. A orientação de escaping do WordPress é relevante para renderização personalizada, mas escaping sozinho não prova que o conteúdo preservou seu significado pretendido.
function samePlaceholderCounts(sourceTokens, candidateTokens) {
const counts = new Map();
for (const token of sourceTokens) {
counts.set(token, (counts.get(token) ?? 0) + 1);
}
for (const token of candidateTokens) {
if (!counts.has(token)) return false;
counts.set(token, counts.get(token) - 1);
}
return [...counts.values()].every((count) => count === 0);
}Caso: campos válidos, formulação ainda precisando de correção
Um agente de tradução explicitamente configurado para gpt-5.6-luna com raciocínio xhigh produziu 20 patches japoneses e 20 alemães a partir de 20 produtos sintéticos. Verificações determinísticas de esquema, identidade e campos protegidos passaram para todas as 40 linhas montadas. Preço, moeda, material e dimensões foram copiados da fonte; os patches gerados só podiam alterar title e description para o SKU e locale identificados.
Os patches japoneses intocados também passam pelo validador estrutural. Ainda assim, a revisão por IA identificou os dois problemas de formulação abaixo e revisou suas descrições. Por isso, verificar um campo de material protegido não estabelece que a prosa descreve o material com precisão. Compare cada alegação relevante com a fonte mesmo depois de todas as verificações de esquema ficarem verdes.

| Produto sintético | Significado da fonte | Correção da revisão por IA em japonês |
|---|---|---|
| DEMO-003: sketch pad | Suporte de papelão | Removida implicação sem suporte de papelão ondulado |
| DEMO-010: storage basket | Duas alças laterais no total | Contagem total de alças esclarecida para remover ambiguidade |
Teste a exportação de revisão e a importação
A OWASP descreve injeção de fórmulas em planilhas e observa que transformações de segurança diferem entre consumidores. Trate células de fornecedor e geradas como não confiáveis. Use uma política de serialização revisada para a ferramenta de planilha real e inspecione o artefato salvo, não apenas uma tabela em memória.
Mantenha importações de máquina separadas dos arquivos de revisão. Um prefixo adicionado para visualização humana segura não deve alterar silenciosamente um identificador ou descrição pública durante a importação. Valide codificação, tratamento de aspas e identidades de linhas esperadas com um parser. Mantenha a fonte intocada para identificar e corrigir alterações introduzidas pelo editor de planilhas.
Vincule a aprovação ao candidato exato
Armazene uma revisão ou hash do candidato com aprovação factual e linguística. Qualquer edição posterior deve invalidar a aprovação relevante até ser revisada. O publicador final também deve comparar a revisão atual da fonte, pois uma tradução inalterada pode ficar antiga depois que a especificação do produto muda.
Nos artefatos do caso, os patches japoneses corrigidos e os patches alemães são montados em linhas marcadas review_status: unreviewed. Ambos os relatórios mantêm translation_semantic_review: pending. A correção assistida por IA é uma etapa de revisão, não aprovação de falante nativo ou comerciante. Preserve candidatos brutos e revisados e depois faça o revisor adequado aprovar o texto exato que entraria em um pacote de importação.
Reproduza as verificações e mantenha seu escopo claro
O teste do caso local exercita preservação de campos da fonte, SKU duplicado, SKU ausente e substituição de preço proibida. A remontagem somente leitura dos patches japoneses e alemães salvos reproduz as duas saídas validadas. Para um catálogo mais amplo, adicione verificações para sua gramática de placeholders, marcação e política de revisão; os auxiliares ilustrativos acima são exemplos separados, não o validador usado nestas 40 linhas.
Este foi um caso de tradução local configurado com Luna, sem chamada Astra ou gateway e sem importação real de loja. A ferramenta não expôs uso de API, IDs de solicitação ou faturamento; ambas as saídas mantêm uso e custo null. Use o resultado estrutural para avançar à revisão semântica e depois teste separadamente o adaptador autorizado da loja.
node --test examples/commerce-localization-case/case.test.mjsPerguntas frequentes
Uma resposta JSON válida ainda pode ser insegura para importar?
Sim. Sintaxe válida não estabelece identificadores corretos, atualidade da fonte, campos suportados, alegações precisas ou aprovação. Valide esses contratos de forma independente.
Por que comparar campos protegidos se o modelo não pode editá-los?
As etapas de montagem, mapeamento e revisão ainda podem introduzir erros. Uma comparação posterior à montagem verifica o registro real preparado para entrega.
Posso validar alegações com uma lista de palavras permitidas?
Uma lista pode sinalizar alguns problemas, mas não estabelece o significado ou a força de uma afirmação. Revise a frase contra a evidência do produto.
Coincidir nomes de placeholders é suficiente?
Compare também a multiplicidade usando o parser real de templates. Um token repetido ou ausente pode ser um defeito mesmo quando o conjunto de nomes parece familiar.
O que o caso de 40 linhas estabeleceu?
Os patches salvos foram montados sem falhas estruturais registradas e preservaram campos de produto controlados pela fonte. A formulação japonesa ainda precisou de duas correções de revisão por IA, e a aprovação semântica continua pendente nos dois idiomas.