Agentes

Web QA

Activo

Valida texto, contenido y renderizado visual antes de publicar

En cola

0

prospectos esperando

Ejecuciones

50

50 logs

Costo total

$0.0383

acumulado total

Errores

0

100% éxito

Último run

14/8, 11:00 a. m.

Parte del pipeline lineal diario (sin hora fija propia) — corre apenas termina SEO Injector, dentro del QA loop de esa misma corrida

Descripción

QA en tres capas. Primero checks de texto deterministas (placeholders, nombre, ciudad, contacto, title, meta). Segundo revisión de contenido con IA (coherencia del copy, servicios lógicos, español natural) — le pasa al modelo los campos reales de copy_content para que, si hay un problema, señale el campo EXACTO a corregir, no solo lo describa. Tercero y más crítico: check visual con Puppeteer — abre el preview_url real en un browser headless, espera 4 segundos (bajado de 7 el 04/07/2026) y verifica que el preloader desapareció y hay contenido visible. Guarda screenshot en output/{slug}/qa.png. Ruteo inteligente por origen del rechazo (04/07/2026): si el problema es de CONTENIDO (check de IA) vuelve al Copywriter (status: researched) para que regenere SOLO el/los campo(s) señalados con sus fórmulas reales; si es TÉCNICO (placeholder, contacto, loader, JS) va a qa_failed — cola de revisión manual, nunca se reintenta solo porque regenerar copy no arregla un bug de mapping. ⚠️ Límite conocido: si Puppeteer falla en cargar la página (timeout/red), el issue queda como warn (no bloquea el pase a qa_passed) — un prospecto puede aprobar sin que nadie haya confirmado visualmente cómo se ve. Queda logueado explícito para poder auditarlo.

Tareas

  • Check 1 — Texto: detectar placeholders sin reemplazar ({{VARIABLE}})
  • Check 1 — Texto: verificar nombre, ciudad y botón de contacto/WhatsApp
  • Check 1 — Texto: validar title tag, meta description, HTML mínimo 5.000 chars
  • Check 2 — IA: revisa coherencia del copy, servicios y tono, señalando el campo exacto si hay un problema
  • Check 3 — Visual: Puppeteer abre preview_url en browser headless real
  • Check 3 — Visual: esperar 4 segundos para que las animaciones terminen
  • Check 3 — Visual: verificar que #loader tiene display:none (preloader dismissado)
  • Check 3 — Visual: verificar que body.innerText tiene contenido visible (> 50 chars)
  • Check 3 — Visual: capturar screenshot → output/{slug}/qa.png
  • Check 3 — Visual: registrar errores JS de la página
  • Si Puppeteer falla en cargar la página, loguear warn explícito (no bloquea el pase — límite conocido)
  • Rechazo de contenido → status: researched (vuelve al Copywriter con qa_fix_notes + qa_fix_fields)
  • Rechazo técnico → status: qa_failed (cola de revisión manual, sin reintento automático)

Últimas ejecuciones (system_logs)

14/8, 11:00 a. m.

Sin webs pendientes de QA

14/8, 11:00 a. m.

Sin webs pendientes de QA

14/8, 11:00 a. m.

Sin webs pendientes de QA

13/8, 11:00 a. m.

Sin webs pendientes de QA

13/8, 11:00 a. m.

Sin webs pendientes de QA

13/8, 11:00 a. m.

Sin webs pendientes de QA

12/8, 11:00 a. m.

Sin webs pendientes de QA

12/8, 11:00 a. m.

Sin webs pendientes de QA

12/8, 11:00 a. m.

Sin webs pendientes de QA

11/8, 11:00 a. m.

Sin webs pendientes de QA

11/8, 11:00 a. m.

Sin webs pendientes de QA

11/8, 11:00 a. m.

Sin webs pendientes de QA

10/8, 11:00 a. m.

Sin webs pendientes de QA

10/8, 11:00 a. m.

Sin webs pendientes de QA

10/8, 11:00 a. m.

Sin webs pendientes de QA

7/8, 11:01 a. m.

Sin webs pendientes de QA

7/8, 11:01 a. m.

Sin webs pendientes de QA

7/8, 11:01 a. m.

Sin webs pendientes de QA

6/8, 11:01 a. m.

Sin webs pendientes de QA

6/8, 11:01 a. m.

Sin webs pendientes de QA

6/8, 11:01 a. m.

Sin webs pendientes de QA

5/8, 11:01 a. m.

Sin webs pendientes de QA

5/8, 11:01 a. m.

Sin webs pendientes de QA

5/8, 11:01 a. m.

Sin webs pendientes de QA

4/8, 11:01 a. m.

Sin webs pendientes de QA

Modelo IA

$0.1/1M in · $0.4/1M out

Costo acumulado real

$0.0383

Tokens

Última ejecución

1.553 in 116 out

+1.497 thinking

7/7, 11:24 a. m.

Script

src/pipeline/web-qa.js

Capa

Pipeline operativo