# Brief de simulaciones V2

El cambio de presentación mejoró de **358/376 (95.21%) a 371/376 (98.67%)** en los mismos escenarios conocidos. Corrigió 14 errores y produjo una regresión. En el caso de Quick Attack, su probabilidad de elección pasó de 45% a 99%, y Jev lo eligió.

## Qué cambió

El brief identifica cada acción por su descripción y comando, coloca primero sus consecuencias y luego sus detalles. En lugar de exigir que Jev relacione índices y reconstruya el significado de varios estados finales, presenta nombres, vida, KO, estados y efectos legibles. Agrupa lo que comparten todas las respuestas rivales, conservando las diferencias y los patrones de KO que sí coexistieron en una misma rama.

Ejemplo abreviado del contenido realmente enviado en `prioridad-01`:

| Acción | Resumen de las ramas probadas | Estado final |
|---|---|---|
| Lucario: Quick Attack → Arcanine | Tu lado gana en 32 | Lucario: 1%; Arcanine: 0%, debilitado |
| Lucario: Aura Sphere → Arcanine | Tu lado pierde en 32 | Lucario: 0%, debilitado; Arcanine: 1% |

Estos conteos son resultados **condicionados a las hipótesis y respuestas simuladas**, no probabilidades de victoria. El formateador no ordena acciones por calidad ni sustituye la decisión de Jev. No interviene un LLM. Una victoria o derrota solo se identifica cuando el final y la información de los participantes permiten concluirlo; los finales ambiguos quedan como desconocidos. Los cambios durante un reemplazo no se presentan como si ya se hubieran resuelto ataques pendientes.

## Comparación controlada

Se sustituyó únicamente `state.consequenceBrief` en las 376 solicitudes finales guardadas. Permanecieron idénticos el modelo, las instrucciones, las opciones y su orden, V4, el log, las hipótesis y las simulaciones. Se reutilizaron 33,536 ramas. Hubo una llamada nueva por escenario, sin repeticiones ni reintentos: 376 respuestas y cero errores de ejecución. Las etiquetas se consultaron en un proceso separado, después de congelar las decisiones.

| Medida | Brief V1 | Brief V2 |
|---|---:|---:|
| Aciertos | 358/376 | **371/376** |
| Turnos hasta siguiente decisión | 343/355 | **352/355** |
| Entradas de reemplazos | 15/21 | **19/21** |
| P(Quick Attack), mismo menú final | 45% | **99%** |
| Tamaño medio del brief | 8,840 bytes | 10,721 bytes |

El brief creció aproximadamente 21%. La mejora observada corresponde al conjunto de cambios de representación, no demuestra que una frase específica sea la causa. La auditoría independiente confirmó el cambio de un solo campo, la integridad de las opciones y la ausencia de etiquetas o campos privados en los briefs.

Quedan cinco errores: `bulk-11-status-thaw-fire-b` (única regresión), `bulk-15-switch-water-entry-a`, `bulk-15-switch-water-entry-c`, `long-heatproof-enemy-b` y `state-stale-pp-pressure`. En el último, la respuesta aceptada ya había quedado fuera de los cuatro finalistas y ningún cambio del brief podía recuperarla.

## Implementación y uso

- Formateador: `src/live-top4/brief-v2.ts`.
- Envoltorio que conserva la selección y simulación de V1: `src/live-top4/decision-v2.ts`.
- Modo opcional: `npm run play:top4:brief-v2`, con puertos predeterminados 8060/8140. `npm run play:top4` conserva V1.
- Si no cabe la evidencia completa, la decisión conserva sus candidatos y contexto con una indicación explícita de que la simulación no está disponible. No se presenta una simulación parcial como completa.

La integración es optativa. La sesión que ya estaba abierta en 8130 no se reinició durante esta entrega y continúa con V1. Se comprobó que el nuevo formato cabe también en 18 posiciones guardadas de batallas reales; esto es una comprobación de compatibilidad y tamaño, no una nueva prueba de su calidad en batalla.

Validación local: `typecheck` aprobado; suite general con 677 pruebas aprobadas, cero fallos y una prueba de servidor optativa omitida; suite focalizada posterior de integración con 22/22 aprobadas. Esta última comprueba que el modo V2 envía y registra el brief correcto, conserva la ruta V1 y mantiene las 360 selecciones de Team Preview. No se ejecutó una nueva batalla en navegador en esta entrega.

## Evidencia y reproducción

- [Resultados completos](evaluation/README.md), [distribuciones y métricas](evaluation/results.json), [errores](evaluation/errors.json).
- [Plan registrado antes de las llamadas](plan.json) y [auditoría independiente](independent-audit.json).
- `traces.ndjson.gz`: 3,388 archivos con las solicitudes y respuestas V2, protocolo y preparación; `archive-manifest.json` conserva sus hashes y el del archivo comprimido.
- `source-files.json.gz`: implementación congelada del experimento y pruebas; `source-archive-manifest.json` verifica su integridad. Las fuentes del experimento preceden a la integración opcional del modo V2.
- La referencia V1 y sus fuentes están preservadas por separado en `../top4-full-corpus/`.

Los archivos de `runs/brief-v2-ab-01` conservan además las trazas locales sin comprimir. El evaluador usado fue `node --import tsx scripts/evaluate-brief-v2.ts --run runs/brief-v2-ab-01 --out experiments/brief-v2-ab/evaluation`. Su verificación estricta de fuentes requiere el snapshot congelado, no las fuentes posteriores de integración. No se deben sobreescribir las fuentes actuales para reproducirlo: restaurar el snapshot en una copia aislada del proyecto y respetar los hashes y rutas del protocolo.

Este corpus ya era conocido y aproximadamente 92% de sus ramas terminan la batalla hipotética. **98.67% es exactitud en estos escenarios, no tasa de victorias ni evidencia de generalización.** Las probabilidades de Jev describen su elección dentro del menú, no el resultado del combate.
