| Caso | Variante | Score | Expected ✓ | Expected ✗ | Forbidden | Regex | Longitud |
|---|---|---|---|---|---|---|---|
| tc_autonoma Dietista autónoma |
A | 63.0 | 1 / 4 | 3 | 0 | 1 | 278 |
| tc_coordinador Coord. clínica 3 dietistas |
A | 78.0 | 2 / 4 | 2 | 0 | 1 | 283 |
| tc_deporte Nutrición deportiva |
A | 93.0 | 2 / 3 | 1 | 0 | 1 | 322 |
| tc_pediatrica Clínica pediátrica |
A | 78.0 | 1 / 3 | 2 | 0 | 1 | 290 |
| tc_autonoma Dietista autónoma |
B | 83.0 | 4 / 4 | 0 | 1* | 1 | 745 |
| tc_coordinador Coord. clínica 3 dietistas |
B | 83.0 | 4 / 4 | 0 | 1* | 1 | 750 |
| tc_deporte Nutrición deportiva |
B | 83.0 | 3 / 3 | 0 | 1* | 1 | 789 |
| tc_pediatrica Clínica pediátrica |
B | 83.0 | 3 / 3 | 0 | 1* | 1 | 757 |
* El hit forbidden en Prompt B proviene de que el prompt mismo contiene la frase en su instrucción de exclusión ("Evita frases genéricas como somos la mejor solución"). El output generado en producción con un LLM real no incluiría esa frase — falso positivo del scorer estático. Mitigación: refactorizar el criterio forbidden del caso de prueba para excluir el cuerpo del prompt de la comparación.
forbidden_contains del test para no incluir la frase de ejemplo dentro del cuerpo del prompt.
Registrar v3 con esa corrección antes del despliegue final.