Qué pasa desde que Aurelio entrega la especificación hasta que existen ocho PNG de 1080×1350 listos para la cola de aprobación. Y la conclusión incómoda de esta página: en carrusel, el trabajo de Denisse casi no necesita un modelo. Todo lo de la fábrica lo leí en el código; su casa y su último turno, en el VPS. Nada de esto está construido para el sistema fijo: es el plano.
El más barato del tronco. Correcto para lo que hará: rellenar campos y, en la rama de video, escribir prompts.
«Conviertes la dirección de Aurelio en prompts de generación de imagen, en inglés técnico, listos para Seedream / Nano Banana / LoRA propia. Character solo por referencia, jamás descrita en texto.» Impecable, y es de otra rama: eso es UGC y video, no carrusel.
fabrica/render.py, 46 líneas, una sola plantillaHTML → PNG 1080×1350. Formato «la traducción»: kicker morado, titular de 88 px, cuerpo, y pie con el logotipo, el número n/total y la etiqueta «contenido generado con IA». Sirve, y es de antes del sistema fijo.
1. render.py escribe su script de captura en ~/gamo-work y lo corre ahí por el node_modules/playwright de esa carpeta, que ya no está. 2. La fábrica no existe en el VPS: deploy.sh sube solo almas y configuración. En el servidor hay chromium, pero no Playwright.
| Hoy | Por qué duele | Cómo queda |
|---|---|---|
| Una plantilla para todo. | El sistema fijo tiene cinco tarjetas distintas (portada, contexto, hallazgo, prueba, cierre) y la plantilla actual solo sabe hacer «titular + cuerpo». No hay panel, que es el corazón del canon. | Cinco plantillas en un solo archivo con variantes, y cinco paneles: barras, cifra grande, antes y después, esquema, captura. Todo en HTML y CSS, sin librerías. |
| El texto entra por sustitución de cadenas. | Un titular más largo de la cuenta desborda el lienzo y nadie se entera hasta que alguien mira el PNG. | Antes de capturar, la fábrica mide el DOM: si algo se sale, falla con el nombre de la tarjeta y el campo. Los topes de Cecilia (70 y 140 caracteres) existen precisamente para que esto no pase; el cerrojo es la red. |
| Los valores del panel los pondría el modelo. | Es la última puerta por donde puede entrar un número inventado, y en una gráfica se nota menos que en una frase. | Los valores vienen de la espec de Aurelio, ya verificada contra el dossier (v3), y la fábrica los inyecta. Denisse no los escribe. |
| Corre en la Mac, contra una carpeta que ya no tiene Playwright. | No sobrevive un reinicio ni un cambio de máquina. | La fábrica vive en el repo y corre en el VPS, con su propio Playwright y su propia carpeta. Decisión abajo. |
| Su alma habla de Seedream y LoRA. | En carrusel no se genera imagen: se dibuja HTML determinista. Un modelo de imagen produciría tarjetas distintas cada día, justo lo contrario del sistema fijo. | El SOUL suma una sección: en carrusel produces con la fábrica, no con un modelo de imagen. El 6C se queda intacto para video y UGC. |
Con la pieza aprobada y la espec de Aurelio verificada, producir las ocho tarjetas es rellenar campos y renderizar. Un programa lo hace mejor, gratis y siempre igual. Meter un modelo aquí solo agrega una oportunidad de inventar.
Queda una cosa que sí necesita criterio, y es chica: partir el texto. Dónde corta el titular en dos o tres líneas, si el panel de barras cabe con seis etiquetas o hay que abreviarlas, si «1H-VideoQA» se corta o se rota. Es lo único que un humano haría a ojo.
Propuesta: la fábrica intenta primero por reglas (corte por ancho medido, abreviatura de etiquetas largas). Si después de medir algo no cabe, ahí sí llama a Denisse con el caso concreto («la tarjeta 4 tiene seis etiquetas de 12 caracteres en 900 px: propone abreviaturas de máximo 8, sin inventar palabras») y vuelve a medir. Un turno de flash, unos centavos, solo cuando hace falta. En la mayoría de las piezas, Denisse no se llama nunca.
La pieza aprobada por los tres jueces y la espec de Aurelio sellada con cerrojos OK. Sin espec no hay tarjetas: la fábrica no adivina paneles.
Por cada tarjeta: tipo, textos de la pieza (titular, apoyo, clave, fuente) y panel de la espec (tipo, unidad, series, resalte, glosa). Un solo objeto por tarjeta, sin campos sueltos.
Cinco plantillas, cinco paneles, paleta de la espec. Playwright abre el HTML a 1080×1350, espera fuentes, mide y captura. Ocho PNG en _comun/tarjetas/<fecha>/.
HERMES_HOME=…/productor-imagen con el caso concreto. Flash, segundos. Si tampoco cabe a la segunda, escala a humano con el PNG y la medida.
| Tarjeta | Qué lleva | De dónde sale |
|---|---|---|
| portada | Kicker, título completo en tres líneas con una palabra en serif, el número grande, icono abajo a la derecha. | TITULAR y CLAVE de Cecilia · SERIF e ICONO de Aurelio |
| contexto | Icono arriba, párrafo de 4 a 6 líneas, fuente en chico. | APOYO y FUENTE de la pieza |
| hallazgo | Frase-titular arriba (1 o 2 líneas), panel redondeado abajo ocupando la mitad inferior, fuente al pie. | TITULAR de la pieza · PANEL de la espec |
| prueba | Igual que hallazgo, con el panel a mayor tamaño y la glosa debajo. | TITULAR + PANEL + GLOSA |
| cierre | Icono, dos renglones, «leer más» con el enlace en negritas. | TITULAR y LEER MÁS |
| Panel | Cómo se dibuja |
|---|---|
| barras | Barras horizontales en morado, etiqueta a la izquierda, valor al final de la barra, unidad en el eje. La serie resaltada va llena; las otras al 45% de opacidad. |
| cifra grande | La cifra a 220 px, la glosa debajo a 40 px. Nada más en la tarjeta. |
| antes y después | Dos bloques del mismo ancho separados por una flecha; misma unidad en los dos, obligada por el cerrojo v6 de Aurelio. |
| esquema | Dos lados nombrados con una flecha entre ellos; cajas redondeadas, sin iconos decorativos. |
| captura | Marco de navegador simple con la captura dentro; si no hay imagen, la fábrica falla en vez de improvisar. |
Aquí los cerrojos no juzgan a un modelo: miden el archivo. Es la única etapa donde el resultado se puede comprobar directamente.
Ocho archivos, medida exacta. Un PNG por tarjeta, 1080×1350 cada uno, en orden. Falta uno o mide distinto: falla.
Nada desbordado. Antes de capturar se mide cada bloque de texto y el panel contra el lienzo y contra el margen de 80 px. Si algo se sale, se dice qué tarjeta y qué campo. Es el cerrojo que hoy no existe y por eso nadie sabía si un titular cabía.
El texto del PNG es el de la pieza. Se extrae el texto del DOM y se compara, normalizado, con los campos de la pieza aprobada. Ni una palabra distinta: la imagen no puede decir algo que los jueces no leyeron.
Los valores del panel son los de la espec. Se comparan los números dibujados contra las series de Aurelio. Cierra la cadena que empezó en el dossier.
Legible. Contraste mínimo de 4.5 a 1 entre texto y fondo, tamaño mínimo de 32 px en cualquier texto, incluida la etiqueta de una barra. Una gráfica ilegible no prueba nada.
La firma en las ocho. Logotipo, número n/total y la etiqueta de contenido generado con IA. Es obligación declarada en la rúbrica, no decoración.
Una sola paleta. Los colores usados están en la paleta de la espec. Un morado distinto entre la tarjeta 3 y la 6 rompe el sistema fijo.
Un solo archivo con variantes por clase de tarjeta, las dos paletas como variables y los paneles dibujados con CSS. Sin librerías de gráficas: barras hechas con divs.
Une pieza y espec, renderiza, mide, captura, corre d1–d7, llama a Denisse solo si algo no cabe, escala si sigue sin caber. Sello en _comun/tarjetas/<fecha>/ con las medidas.
deploy.sh pasa a subir también fabrica/, y el VPS tiene su Playwright y su Chromium. Deja de depender de una carpeta de la Mac que ya no existe.
Ocho tarjetas con datos reales de Agentic Video. Es la primera vez que se ve el sistema fijo aplicado, y es lo que tú tienes que mirar antes de que se vuelva plantilla.
| Decisión | Lo que propongo |
|---|---|
| Dónde corre la fábrica. | En el VPS, con Playwright instalado ahí. Todo lo demás del departamento ya corre en el VPS y sobrevive reinicios; la fábrica es la única pieza que hoy depende de la Mac. |
| Denisse casi no usa modelo en carrusel. | Se llama solo cuando la fábrica mide que algo no cabe. No es degradarla: es que en la rama A el trabajo es determinista, y en la rama B (video y UGC) su 6C sigue siendo el centro. Un agente que no se llama es un agente barato, no uno inútil. |
| La portada animada. | El canon la permite: la misma tarjeta con el icono animado en bucle de 7 a 15 segundos. Propongo dejarla fuera de la primera versión y decidirla cuando veas las ocho tarjetas quietas. Añade una dependencia de video a una cadena que hoy es HTML puro. |