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
- Análisis sintáctico del prompt
parse - Detección de intención
intent - Análisis de estructura
structure - Extracción de requisitos
requirements - Detección de ambigüedad
ambiguity - Detección de contexto faltante
missing_context - Calidad de las instrucciones
instruction_quality - Análisis de restricciones
constraints - Análisis del formato de salida
output_format - Análisis de tokens
tokens - Detección de redundancia
redundancy - Análisis de seguridad e inyección
security - Estrategia de optimización
strategy - Transformación del prompt
transform - Validación
validation - Evaluación de calidad
evaluation - 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ódigo | Dimensión | Se activa cuando |
|---|---|---|
missing_objective | Completitud | Sin palabra clave de tarea, oración imperativa ni pregunta. |
too_short | Especificidad | Menos de 5 palabras con contenido. |
vague_language | Claridad | “algo”, “cosas”, “etc.”, “y así sucesivamente”. |
unquantified_size | Especificidad | “corto”, “unos pocos”, “detallado” sin número. |
unclear_reference | Completitud | “esto” o “lo anterior” sin nada incluido a lo que referirse. |
missing_language | Especificidad | Se pide código sin lenguaje ni framework. |
hedged_instruction | Claridad | “intenta”, “si es posible”, “quizá”. |
long_sentence | Claridad | Una oración en prosa de más de 40 palabras. |
negative_only_constraints | Claridad | 3 o más prohibiciones y ningún requisito positivo. |
contradictory_instructions | Coherencia | Formatos, longitudes, límites de palabras, herramientas o idiomas en conflicto. |
near_duplicate_instruction | Coherencia | Dos oraciones con un solapamiento de palabras ≥ 80 %. |
missing_output_format | Especificación de salida | No se nombra ningún formato de salida. |
missing_length_guidance | Especificación de salida | Tarea de contenido o resumen sin límite de longitud. |
wall_of_text | Estructura | Más de 120 palabras sin secciones, listas ni saltos. |
duplicate_instruction | Eficiencia | Una oración repetida literalmente. |
filler_phrases | Eficiencia | Cortesía e intensificadores que no cambian la tarea. |
prompt_injection_signature | Seguridad | Firma ponderada de inyección/jailbreak (crítica con riesgo ≥ 60). |
sensitive_data | Seguridad | Credenciales (críticas) o datos personales (advertencia). |
undelimited_variable | Seguridad | {{var}} o ${var} fuera de etiquetas, bloques de código o comillas triples. |
destructive_operation | Seguridad | rm -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
| Modo | Transformaciones |
|---|---|
| conservative | Normalizar 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.
- Limpiar. La misma eliminación de relleno y duplicados que el modo balanced.
- 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.
- 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.
- 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.