Se um prompt é bom não dá para decidir lendo o texto. Se ele briga consigo mesmo, dá. Estas checagens são deliberadamente mecânicas: uma instrução de produzir JSON sem descrever o JSON, uma instrução de tamanho sem tamanho nenhum dentro, um marcador ainda sem preencher, uma expressão ao mesmo tempo exigida numa frase e proibida em outra. Cada achado aponta o trecho de onde veio, porque um resultado de linter que você não consegue localizar é só uma opinião. Algumas regras são sobre custo e não sobre correção: maiúsculas contínuas e súplicas acrescentam tokens a toda requisição sem mudar o que volta.
Recursos
Contradições, em que a mesma coisa é exigida e descartada
Pedidos de JSON sem nenhum formato descrito
Instruções de tamanho sem nenhum número
Marcadores de modelo sem preencher, relatados como erros
Tags no estilo XML abertas e nunca fechadas
Instruções de não raciocinar, que costumam sair pela culatra
Cada achado aponta o texto exato que casou
Uma pontuação que pesa erros acima de notas
Como usar Linter de prompts
Cole o prompt de sistema
Leia os achados, erros primeiro
Corrija as contradições: são as que mudam o comportamento
Confira de novo enquanto edita
Exemplo
Entrada
Always include the order number. Never include the order number if unverified.
Saída
Possible contradiction: “the order number” is both asked for and ruled out
Um absoluto mais uma exceção condicional é o formato habitual.
Erros comuns e solução de problemas
Aponta uma contradição que é intencional. — Uma regra com exceção costuma parecer uma. Se a exceção é deliberada, escreva também a primeira instrução de forma condicional para a precedência ficar explícita.
Reclama do JSON quando eu descrevo o formato. — A checagem procura uma chave visível ou um esquema. Se o seu está em prosa, mostrar um exemplo pequeno é mais claro de qualquer jeito.
Aponta “sempre” e “nunca”. — Só como notas. Absolutos são fáceis de escrever e difíceis de cumprir, e são a fonte habitual de um prompt se contradizer mais adiante.
Um prompt longo é apontado. — Tamanho não é erro. A nota existe porque o meio de um prompt longo é onde instruções se perdem: as inegociáveis vão no começo ou no fim.
Perguntas frequentes
Corrigir tudo vai deixar o prompt bom?
Não. São checagens mecânicas: contradições, formatos faltando, marcadores mortos. Se as instruções são as certas é um julgamento sobre a sua tarefa que nenhum linter faz.
Por que “não pense” é apontado?
Instruções de pular o raciocínio tendem a piorar a saída em vez de encurtá-la, e nos modelos atuais podem empurrar o raciocínio para a resposta visível em vez de suprimi-lo. Pedir uma resposta mais curta é a instrução que funciona.
Por que ele se importa com maiúsculas?
Maiúsculas contínuas não carregam a ênfase que carregam para um leitor humano, e custam mais tokens que as mesmas palavras em minúsculas. É uma nota, não um erro.
Como funciona a checagem de contradições?
Ela procura o mesmo sintagma nominal aparecendo tanto em algo exigido quanto em algo proibido, incluindo uma versão qualificada. É deliberadamente estreita, então deixa passar conflitos sutis em vez de inundar você de falsos positivos.
Funciona com qualquer prompt?
Foi escrito para texto em forma de instrução: prompts de sistema, descrições de ferramenta, corpos de skill. Passar por prosa comum vai produzir notas que não significam muito.
Ferramentas relacionadas
Comparador de prompts — Compare duas versões palavra por palavra, com a diferença em tokens.
Seções XML do prompt — Envolva seções em tags das quais o conteúdo não consegue escapar.
Exemplos few-shot — Transforme pares de entrada e saída em exemplos com tags, JSON ou chat.
Linter de skills — Cole um SKILL.md e veja o que impede que ele seja associado a uma tarefa.