Departamento de marketing · agente por agente · 8 de 12 · anatomía antes de construir

Denisse, la imagen

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.

Código: la fábricaModelo: solo donde hace faltaHermes Agent: la cáscaraHumano: GEG decide
00

Cómo está Denisse hoy

Cerebro
glm-5.3-flash por OpenRouter

El más barato del tronco. Correcto para lo que hará: rellenar campos y, en la rama de video, escribir prompts.

SOUL.md
Prompts 6C en inglés para modelos de imagen

«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.

La fábrica que existe
fabrica/render.py, 46 líneas, una sola plantilla

HTML → 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.

Dos cosas rotas
El render no corre hoy

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.

Lo que se corrige

HoyPor qué dueleCó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.
01

La pregunta honesta: ¿aquí hace falta un modelo?

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.

02

Cómo le llega la información

1 · código
Verifica la puerta

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.

2 · código
Une pieza y espec

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.

3 · código
Renderiza y mide

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>/.

4 · hermes
Solo si algo no cabe

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.

03

Las cinco plantillas y los cinco paneles

TarjetaQué llevaDe dónde sale
portadaKicker, 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
contextoIcono arriba, párrafo de 4 a 6 líneas, fuente en chico.APOYO y FUENTE de la pieza
hallazgoFrase-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
pruebaIgual que hallazgo, con el panel a mayor tamaño y la glosa debajo.TITULAR + PANEL + GLOSA
cierreIcono, dos renglones, «leer más» con el enlace en negritas.TITULAR y LEER MÁS
PanelCómo se dibuja
barrasBarras 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 grandeLa cifra a 220 px, la glosa debajo a 40 px. Nada más en la tarjeta.
antes y despuésDos bloques del mismo ancho separados por una flecha; misma unidad en los dos, obligada por el cerrojo v6 de Aurelio.
esquemaDos lados nombrados con una flecha entre ellos; cajas redondeadas, sin iconos decorativos.
capturaMarco de navegador simple con la captura dentro; si no hay imagen, la fábrica falla en vez de improvisar.
04

Los cerrojos de la imagen (el alto)

Aquí los cerrojos no juzgan a un modelo: miden el archivo. Es la única etapa donde el resultado se puede comprobar directamente.

d1

Ocho archivos, medida exacta. Un PNG por tarjeta, 1080×1350 cada uno, en orden. Falta uno o mide distinto: falla.

d2

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.

d3

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.

d4

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.

d5

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.

d6

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.

d7

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.

05

Qué se construye

fabrica/tarjetas.html
Cinco plantillas, cinco paneles

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.

denisse.py
La fábrica

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.

La fábrica al VPS
Playwright propio

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.

Prueba real
La pieza del 1-sep, dibujada

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.

06

Tres decisiones que necesitan el OK de GEG

DecisiónLo 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.
HAILO · departamento de marketing · serie agente por agente · 8 de 12: Denisse · plano escrito el 2-sep-2026 antes de construir. Anteriores: 1 Máximo · 2 Ulises · 3 Cecilia · 4 Rodrigo · 5 Adriana · 6 Selene · 7 Aurelio. Con esto queda cerrada la rama A: de la noticia a las ocho tarjetas. Mapa completo: el pipeline.