Referencia del motor

Cómo funciona el motor

Todo lo que hay en esta página se genera a partir de los propios datos del motor (RULES, DIMENSIONS, SEVERITY_PENALTY, STAGE_LABELS), así que no puede desviarse del código.

Pipeline

  1. Análisis sintáctico del prompt parse
  2. Detección de intención intent
  3. Análisis de estructura structure
  4. Extracción de requisitos requirements
  5. Detección de ambigüedad ambiguity
  6. Detección de contexto faltante missing_context
  7. Calidad de las instrucciones instruction_quality
  8. Análisis de restricciones constraints
  9. Análisis del formato de salida output_format
  10. Análisis de tokens tokens
  11. Detección de redundancia redundancy
  12. Análisis de seguridad e inyección security
  13. Estrategia de optimización strategy
  14. Transformación del prompt transform
  15. Validación validation
  16. Evaluación de calidad evaluation
  17. Comparación de tokens y coste comparison

Las etapas 1–12 se ejecutan en cada análisis. Las etapas 13–17 se ejecutan al optimizar. Solo el análisis sintáctico puede fallar, y solo con un prompt vacío. Los hallazgos de seguridad se notifican, pero nunca detienen el pipeline.

Catálogo de reglas

Cada regla enlaza a una página de referencia con un ejemplo que la activa, la explicación del motor y una versión corregida.

CódigoDimensiónSe activa cuando
missing_objectiveCompletitudSin palabra clave de tarea, oración imperativa ni pregunta.
too_shortEspecificidadMenos de 5 palabras con contenido.
vague_languageClaridad“algo”, “cosas”, “etc.”, “y así sucesivamente”.
unquantified_sizeEspecificidad“corto”, “unos pocos”, “detallado” sin número.
unclear_referenceCompletitud“esto” o “lo anterior” sin nada incluido a lo que referirse.
missing_languageEspecificidadSe pide código sin lenguaje ni framework.
hedged_instructionClaridad“intenta”, “si es posible”, “quizá”.
long_sentenceClaridadUna oración en prosa de más de 40 palabras.
negative_only_constraintsClaridad3 o más prohibiciones y ningún requisito positivo.
contradictory_instructionsCoherenciaFormatos, longitudes, límites de palabras, herramientas o idiomas en conflicto.
near_duplicate_instructionCoherenciaDos oraciones con un solapamiento de palabras ≥ 80 %.
missing_output_formatEspecificación de salidaNo se nombra ningún formato de salida.
missing_length_guidanceEspecificación de salidaTarea de contenido o resumen sin límite de longitud.
wall_of_textEstructuraMás de 120 palabras sin secciones, listas ni saltos.
duplicate_instructionEficienciaUna oración repetida literalmente.
filler_phrasesEficienciaCortesía e intensificadores que no cambian la tarea.
prompt_injection_signatureSeguridadFirma ponderada de inyección/jailbreak (crítica con riesgo ≥ 60).
sensitive_dataSeguridadCredenciales (críticas) o datos personales (advertencia).
undelimited_variableSeguridad{{var}} o ${var} fuera de etiquetas, bloques de código o comillas triples.
destructive_operationSeguridadrm -rf /, DROP TABLE, borrar todo, curl | sh.

Versión de las firmas de inyección: 2026.11.1. La coincidencia de firmas indica riesgo, no prueba: puede pasar por alto ataques nuevos y marcar texto que cita un ataque para hablar de él.

Puntuación

  • Penalización por hallazgo: crítico 30, advertencia 10, info 3.
  • Global = 100 − la suma de todas las penalizaciones, limitada a 0–100 y con un tope de 50 si algún hallazgo es crítico.
  • Cada dimensión = 100 − las penalizaciones de los hallazgos de esa dimensión. La estructura solo se aplica a prompts de 120 palabras o más.
  • Niveles: 85+ sólido, 70–84 bueno, 50–69 mejorable, menos de 50 débil.

Cada informe enumera las comprobaciones ejecutadas en cada dimensión y si se superaron, junto con la evidencia.

Transformaciones y modos

ModoTransformaciones
conservativeNormalizar espacios; eliminar frases duplicadas exactas.
balanced+ Eliminar relleno y fórmulas de cortesía (please, basically, un I would like you to inicial, saludos); in order to → to.
structured+ Organizar las frases en las secciones Task, Context, Requirements, Output format e Input; envolver las variables de plantilla en etiquetas.

Los bloques de código, el código en línea, el texto citado, las URL, los bloques con etiquetas XML y las variables de plantilla están protegidos: se ocultan antes de cualquier transformación y se restauran byte a byte. Ninguna transformación añade contenido salvo los encabezados de sección y los delimitadores de variables, y ambos se notifican como cambios.

Verificación de candidatos

Cada modo produce un candidato. Un candidato solo es válido si:

  • todos los fragmentos protegidos siguen presentes;
  • todas las frases originales siguen presentes (tras la misma normalización que aplican las transformaciones);
  • todos los requisitos extraídos siguen presentes;
  • no introduce ninguna advertencia ni hallazgo crítico nuevos;
  • en los modos conservative y balanced, no tiene más tokens que el original.

Después, el motor elige según el objetivo: tokens (el menor número), quality (la puntuación más alta) o balanced (la puntuación más alta sin superar el 115 % de los tokens del original). El original siempre es un candidato y gana cuando nada es mejor.

Reestructuración

restructurePrompt convierte una petición escrita sin estructura en un prompt de ingeniería por secciones. Es una operación distinta de optimizar: optimizar elimina palabras y demuestra que no se perdió nada; reestructurar reorganiza y, en tareas de software, añade un plan de pruebas.

  1. Limpiar. La misma eliminación de relleno y duplicados que el modo balanced.
  2. Dividir. Las frases encadenadas se dividen en cláusulas en las conjunciones que inician una nueva instrucción (fix X and make Y work and don't break Z). Los pares de verbos y las listas de sustantivos se dejan intactos.
  3. Clasificar. Cada cláusula va a Role, Objective, Context, Requirements, Constraints o Expected output. El código, las citas, las URL y las variables nunca se editan.
  4. Andamiar. Solo en tareas de software se añade una orientación fija según la intención detectada (depuración, código nuevo, refactorización, pruebas, revisión, configuración, explicación) y el tema (autenticación, API, base de datos, interfaz, rendimiento, pagos): casos límite, pruebas, criterios de aceptación y un formato de salida por defecto.

Cada línea del resultado se etiqueta como prompt (tuya), engine (orientación añadida) o codebase (datos del proyecto que aporta la extensión de VS Code), para que una interfaz pueda mostrar exactamente qué se añadió. Las secciones sin contenido se omiten: una petición clara de una línea se devuelve sin cambios y un prompt que no es de código no recibe plan de pruebas. La orientación que ya diste no se repite, y tu propio formato de salida sustituye al predeterminado. Pasa scaffold: false para reorganizar sin añadir nada.

La orientación es una tabla fija en el código del motor, no salida de un modelo, así que la misma petición produce siempre el mismo prompt. Los encabezados de sección y las líneas de orientación están en inglés.

Tokens y coste

Los modelos de OpenAI se cuentan con o200k_base (o cl100k_base para GPT-4/3.5) y se marcan como exactos. Los demás proveedores usan o200k_base como aproximación y se marcan como aproximados. Sin un tokenizador cargado, los recuentos pasan a caracteres ÷ 4 y se marcan como heurísticos. Los costes usan una tabla de precios de referencia con la fecha en que se comprobó cada precio. Consulta el catálogo de modelos.