Qué pasa entre --url y un HTML servido. Qué pasos usan un modelo, cuáles son deterministas, y dónde divergen los tres outputs: el render por defecto (lo que ya tenés), Curated (A) y Freestyle (B).
Pasos 1 → 6 son idénticos para los tres outputs. El paso 7 es donde diverge.
/tmp/leadforge_dom/<slug>.toon--with-screenshot para alimentar el Analyzer-vision. Por defecto: off./tmp/leadforge_screens/<slug>.pngbrand_profile JSONsections: Section[]{ schema_version, slug, source_url, brand_profile, sections, meta }. Valida.payload.jsongenerate_independent.py copia el cf-worker-template, inyecta el payload, hace tsc, deja proyecto wrangler standalone listo./home/meg4/generated/<slug>/index.html servido por WorkerMismo payload.json entra, tres HTML distintos salen.
Lo que el pipeline produce hoy. Lo que motivó esta discusión.
landing.ts de 1004 líneas--bg --fg --primary --accent --muted)Tu plan original recuperado: N renderers, uno por aesthetic.
renderer_brutalist.ts, renderer_editorial.ts, etc.Designer-mode. Sin schema, sin renderer. Opus pinta libre.
Lo mismo, lado a lado.
| Atributo | Default | A · Curated | B · Freestyle |
|---|---|---|---|
| ¿Qué decide el LLM? | Copy + variantes | Copy + variantes + aesthetic class | Todo (HTML, CSS, layout, motion) |
| ¿Modelo en render? | ninguno | ninguno | Opus 4.7 |
| Identidad visual | genérica | fuerte por aesthetic | única por marca |
| Replicable | sí | sí (post-build) | no |
| Coste por landing | $0 | $0 | ~$0.50–$2 + validación |
| Riesgo de slop | visual slop alto | cero | moderado (necesita gates) |
| Esfuerzo inicial | Hecho | ~3 días/aesthetic × 6 = ~3 semanas | ~1 día (prompt + validators) |
| Tier de precio | — | $1k – $3k | $5k – $15k |
| Volumen viable | infinito | infinito | ~10–50/día (rate-limit) |
Lo que ves en los previews fue producido por este pipeline real, sin intervención manual sobre los datos.
python3 scripts/demo_pipeline.py --url https://okastore.net --force
Playwright Docker baja la imagen oficial si no está. Carga okastore.net, espera networkidle, lee DOM, emite TOON.
Claude CLI infiere brand_profile (nombre, tagline, niche, paleta, typography_vibe).
Claude CLI elige sections + copy. Misma llamada-única.
payload.json escrito en previews/okastore-net/.
El mismo payload renderizado con el default actual, con A (curated nueva plantilla que matche aesthetic detectado), y con B (Opus libre con el mismo payload + brand info).