Si un prompt es bueno no se puede decidir leyendo el texto. Si se contradice a sí mismo, sí. Estas comprobaciones son deliberadamente mecánicas: una instrucción de producir JSON sin describir el JSON, una instrucción de longitud sin ninguna longitud dentro, un marcador todavía sin rellenar, una frase a la vez exigida en una oración y prohibida en otra. Cada hallazgo apunta al fragmento del que salió, porque un resultado de linter que no puedes localizar es solo una opinión. Algunas reglas tratan del coste más que de la corrección: las mayúsculas sostenidas y las súplicas añaden tokens a cada petición sin cambiar lo que vuelve.
Características
Contradicciones, donde lo mismo se exige y se descarta
Peticiones de JSON sin ninguna forma descrita
Instrucciones de longitud sin ningún número
Marcadores de plantilla sin rellenar, informados como errores
Etiquetas al estilo XML abiertas y nunca cerradas
Instrucciones de no razonar, que suelen salir mal
Cada hallazgo apunta al texto exacto que coincidió
Una puntuación que pesa más los errores que las notas
Cómo usar Linter de prompts
Pega el prompt de sistema
Lee los hallazgos, errores primero
Corrige las contradicciones: son las que cambian el comportamiento
Vuelve a comprobar mientras editas
Ejemplo
Entrada
Always include the order number. Never include the order number if unverified.
Salida
Possible contradiction: “the order number” is both asked for and ruled out
Un absoluto más una excepción condicional es la forma habitual.
Errores comunes y solución de problemas
Señala una contradicción que es intencionada. — Una regla con excepción suele parecerlo. Si la excepción es deliberada, formula también la primera instrucción de forma condicional para que la precedencia sea explícita.
Se queja del JSON cuando sí describo la forma. — La comprobación busca una clave visible o un esquema. Si la tuya está en prosa, mostrar un ejemplo pequeño es más claro de todos modos.
Señala «siempre» y «nunca». — Solo como notas. Los absolutos son fáciles de escribir y difíciles de cumplir, y son la fuente habitual de que un prompt se contradiga más abajo.
Un prompt largo aparece señalado. — La longitud no es un error. La nota existe porque el centro de un prompt largo es donde se pierden las instrucciones: las innegociables van al principio o al final.
Preguntas frecuentes
¿Arreglarlo todo hará bueno al prompt?
No. Son comprobaciones mecánicas: contradicciones, formatos que faltan, marcadores muertos. Si las instrucciones son las correctas es un juicio sobre tu tarea que ningún linter emite.
¿Por qué se señala «no pienses»?
Las instrucciones de saltarse el razonamiento tienden a empeorar la salida en vez de acortarla, y en los modelos actuales pueden empujar el razonamiento a la respuesta visible en lugar de suprimirlo. Pedir una respuesta más corta es la instrucción que sí funciona.
¿Por qué le importan las mayúsculas?
Las mayúsculas sostenidas no transmiten el énfasis que transmiten a un lector humano, y cuestan más tokens que las mismas palabras en minúscula. Es una nota, no un error.
¿Cómo funciona la comprobación de contradicciones?
Busca el mismo sintagma nominal apareciendo a la vez en algo exigido y en algo prohibido, incluida una versión matizada. Es deliberadamente estrecha, así que se le escapan conflictos sutiles en lugar de inundarte de falsos positivos.
¿Funciona con cualquier prompt?
Está escrito para texto con forma de instrucción: prompts de sistema, descripciones de herramienta, cuerpos de skill. Pasarlo por prosa corriente producirá notas que no significan gran cosa.
Herramientas relacionadas
Comparador de prompts — Compara dos versiones palabra por palabra, con la diferencia en tokens.
Secciones XML del prompt — Envuelve secciones en etiquetas de las que el contenido no puede salir.
Ejemplos few-shot — Convierte pares de entrada y salida en ejemplos etiquetados, JSON o de chat.
Linter de skills — Pega un SKILL.md y descubre qué impide que se asocie a una tarea.