Departamento de marketing · el mapa completo

El pipeline, agente por agente

Cómo viaja una pieza desde que el cron enciende a Máximo hasta que Ismael la deja en la cola de aprobación. Dónde se decide si el día es carrusel o video y quién lo decide. El paso de cada uno de los 30 agentes, incluidos los que todavía no hemos tocado, y en qué estado real está cada uno hoy. Se actualiza cada vez que un agente cambia de estado.

construido y probadoen pruebaplano escritoexiste, sin diseñarfalta: no existecódigo, no agente
01

Dónde se decide carrusel o video, y quién

Lo decide Máximo, el lunes, en el calendario. No el día de la pieza.

arranque.py semana despierta a Máximo el lunes a las 04:00 con el estado del mundo (cuentas abiertas, presupuesto real de OpenRouter y HeyGen, lo publicado, la regla del dueño) y él fija cuenta, formato y clase de noticia por día: martes carrusel, miércoles pantalla pura con voz en off, jueves pizarrón, viernes el error. Sin temas: el tema se decide cada mañana con el radar. Un cerrojo de código (c5) tira el calendario si intenta elegir noticias.

La regla del dueño manda sobre Máximo: _comun/reglas.json {"video": false} apaga el video con cara toda la semana; el cerrojo c8 tira cualquier pieza que lo lleve. Hoy está apagado. Por eso esta semana todo es carrusel, pantalla pura y pizarrón, y el pipeline de video existe en el mapa pero no corre.

Cada mañana a las 06:00, arranque.py dia le da a Máximo el radar de las últimas 24 h y él elige noticia, industria y ángulo dentro del formato que ya fijó. Esa orden es la que lee Ulises. El formato del día viaja después a Cecilia (carrusel) o a Micaela (video) por código: el calendario dice «MARTES: @hailo · carrusel · …» y el código lo corta.

02

El tronco común: de la noticia a la evidencia

código · cron cada hora
El radar de X
construido y probado

Lee 55 semillas (el feed de GEG + laboratorios), guarda cada post y mide velocidad en likes por hora. Sin modelo. Arreglado el 1-sep: estaba ciego a 34 semillas por el tope de 512 caracteres de X.

radar/radar.py → radar.db · ultimo.json
Máximo · director
El calendario (lunes) y la orden del día (diario)
construido y probado

Calendario = estructura: formato y cuenta por día, gasto, métrica. Orden = pieza de hoy, candidatas descartadas, stories, lo que Ulises debe traer, qué descalifica. 7 cerrojos de código, vuelta 2, escalado.

arranque.py → _comun/calendario/ · _comun/ordenes/ · página 1 de la serie
Ulises · investigador
El dossier
construido y probado

Busca solo en X con su MCP propio (traza de todo lo que leyó). Un bloque por punto de Máximo: cita literal, enlace, fecha, nivel. 9 cerrojos contra la traza. Corrida real del 1-sep: 5 puntos, 13 búsquedas, PASA.

ulises.py + mcp/x_mcp.py → _comun/dossiers/ · página 2
Máximo · director
El veredicto: ORO · REBUSCA · CAMBIO
construido y probado

Lee orden + dossier enteros y decide. ORO sigue; REBUSCA regresa a Ulises con lo que falta (máximo 3 vueltas); CAMBIO dicta la pieza de respaldo en una orden nueva. 1-sep: ORO en una vuelta, 74 s.

ulises.py (turno de Máximo) → _comun/veredictos/
03

La bifurcación: el formato del día manda

Aquí el código lee el formato del calendario y manda la pieza por una de dos ramas. El dossier y el veredicto viajan enteros por las dos. Nadie resume a nadie.

Rama A · carrusel y pizarrón
Cecilia · copywriter
La pieza: 8 tarjetas + pie + fuentes
construido y probado

Sistema fijo (anatomía de @claudeai): portada con número, contexto, hallazgos con panel, la prueba, cierre. 10 cerrojos con el dossier como juez. Primera pieza real sellada el 2-sep: 2 vueltas, 715 s, $0.18.

cecilia.py → _comun/piezas/ · página 3
Rodrigo · crítico
Aprueba o devuelve, máximo 2 vueltas
construido y probado

Linaje distinto al de Cecilia a propósito (glm contra qwen). Recibe pieza + dossier + nota de Máximo; cerrojos sobre el juez; devolución quirúrgica con tarjetas congeladas. 2-sep: devolvió por unidad «tokens» y aprobó la corrección.

Adriana · verificadora
VERIFICADO · AUTORREPORTADO · SIN FUENTE
construido y probado

Coteja cada afirmación en palabras contra el dossier (los números ya los verificó el código). SIN FUENTE bloquea. Sin web: el dossier es el único juez. 2-sep: 19 afirmaciones, PASA.

Selene · mismidad
¿Se parece a lo ya publicado?
construida · espera corpus

El código mide (firma, portada, cierre, trigramas) contra las 30 selladas; Selene juzga el molde en las 3 más parecidas. Corre en paralelo con Rodrigo y Adriana. Su primer turno real llega con la segunda pieza.

Aurelio · director de arte
Qué panel lleva cada tarjeta
plano escrito

Entrega una espec por tarjeta: tipo de panel, series, unidad, qué se resalta. Cerrojos v1–v8; v6 obliga la misma unidad en «antes y después», que es lo que Rodrigo devolvió a mano el 2-sep.

Denisse · productora de imagen
Las tarjetas a 1080×1350
plano escrito

Fábrica HTML → PNG determinista: 5 plantillas y 5 paneles, cerrojos d1–d7 que MIDEN el archivo. Hoy el render está roto (busca Playwright en una carpeta que ya no lo tiene) y no existe en el VPS.

fabrica/render.py · plantilla-noticia.html
Rama B · pantalla pura · el error · video con cara
Micaela · guionista de video
El guion frase por frase, con su imagen
existe, sin diseñar

Lo que pide el reel de referencia de GEG: cada frase con su b-roll, subtítulo palabra a palabra, cara nunca más de 4 s. Hoy su prompt de conducta pide «hablado, sin timestamps»; hay que rediseñarla al nivel.

Rodrigo · Adriana
Mismo par que en la rama A
plano

El guion se valida contra el dossier igual que las tarjetas.

Aurelio · director de arte
Plano, rincón del set, vestuario del día
plano

Tiene horneado El Piso 9 (6 rincones), 17 conjuntos amarrados al día ficticio y la plantilla de subtítulo en y=1140.

Gael · productor de video
Clips, voz, montaje
existe, sin diseñar

Veo para clips (no animar fotos), HeyGen solo si la cara está encendida, ElevenLabs por asset para la voz, ffmpeg para rótulos. Apagado esta semana por la regla del dueño.

—
Biblioteca de b-roll
falta: no existe

Nadie busca archivo, pinturas, memes ni capturas por frase. Es lo que hace que el reel de @creatorcamp se vea como se ve. Agente o herramienta nueva.

04

Después de la pieza: publicar, medir, corregir

Fabián · horarios
A qué hora sale
existe, sin diseñar

Debería leer los números de Damián y fijar la hora por formato. Hoy no está en ninguna cadena.

Ismael · publicador
La cola de aprobación y la publicación
MCP listo, cola falta

MCP hailo_publica probado (imagen, carrusel, reel; verifica leyendo el recurso, nunca cree el 200). Nivel SOMBRA: nada sale sin aprobación humana. La cola de aprobación en WhatsApp no existe todavía.

Damián · desempeño
Guardados, compartidos, DMs, juntas
existe, sin diseñar

La métrica que Máximo pide revisar cada mañana y cada domingo. Nadie la lee hoy: no hay pieza publicada aún.

Máximo · director
Repite lo que produjo pipeline
en el calendario

El calendario ya dice qué decide con la métrica: el formato que produjo juntas se repite y refuerza; si hubo alcance sin juntas, revisa el camino entre pieza y junta. Cerrar ese bucle es lo que GEG pide para viralizar: estrategia por números.

05

Los 30, con su paso y su estado

AgentePaso en el pipelineModeloEstado
MáximoCalendario, orden del día, veredicto, métricaqwen3.8-maxconstruido y probado
UlisesDossier con evidencia de Xglm-5.3construido y probado
CeciliaCarrusel: tarjetas, pie, fuentesqwen3.8-maxconstruido y probado
RodrigoCrítico de la pieza, ≤2 vueltasglm-5.3construido y probado
AdrianaHechos contra el dossierglm-5.3-flashconstruido y probado
SeleneMismidad contra lo publicadodeepseek-v4-flashconstruida · espera corpus
AurelioDirección de arte: la espec del panel por tarjetaglm-5.3plano escrito · página 7
DenisseTarjetas a 1080×1350 con la fábrica (casi sin modelo)glm-5.3-flashplano escrito · página 8
IsmaelCola de aprobación y publicación en Instagramdeepseek-v4-flashMCP probado · cola falta
MicaelaGuion de video frase por frase con su imagenqwen3.8-maxexiste, sin diseñar
GaelProducción de video: clips, voz, montajeglm-5.3-flashexiste, sin diseñar
DamiánDesempeño: guardados, DMs, juntas por piezadeepseek-v4-flashexiste, sin diseñar
FabiánHora de publicación por formatoglm-5.3-flashexiste, sin diseñar
BrendaAudiencia: quién sigue, quién respondedeepseek-v4-flashexiste, sin diseñar
SabinaEscucha social: menciones, crisisglm-5.3-flashexiste, sin diseñar
PamelaCommunity: responde comentarios y DMs (2 líneas)qwen3.8-flashexiste, sin diseñar
HéctorEscalador: freno de emergenciaglm-5.3-flashconducta probada, sin cadena
IlseMarca: deltas a la rúbrica con evidenciaqwen3.8-maxconducta probada, sin cadena
GretaAuditora: niveles de autonomía por canaldeepseek-v4-proconducta probada, sin cadena
IreneInvestigadora de producto: qué se puede decir de clientesglm-5.3conducta probada, sin cadena
ErnestoVigía de competenciaglm-5.3existe, sin diseñar
PetraContra-estratega: ataca la campaña una vezkimi-k2.5no está en ninguna cadena
SalvadorEstratega de campañaqwen3.8-maxno está en ninguna cadena
RosarioOperadora de pauta (solo con evidencia orgánica)glm-5.3después
JoaquínCopy de formato largo (LinkedIn, blog)qwen3.8-maxdespués
YolandaLocalizadora (inglés)qwen3.8-flashdespués
NorbertoBibliotecario de memoriaglm-5.3-flashexiste, sin diseñar
NadiaPlanificadora editorialglm-5.3-flashredundante con el calendario de Máximo
—Biblioteca de b-roll por frase—falta: no existe
—Stories del día (3 crudas)—falta: nadie las escribe
—Cola de aprobación en WhatsApp—falta: no existe
06

Lo que ya está bien y lo que falta, en una línea cada uno

HAILO · departamento de marketing · mapa del pipeline · 2-sep-2026 · se actualiza con cada agente que cambia de estado. Serie: agentes.hailo.mx