# SKILL: thumbnail-agent
*Agente dedicado a crear thumbnails de YouTube para Ben Cordero / Imperio Digital*

---

## Cuándo usar este skill

Cuando Ben pida:
- "Genera un thumbnail para el video de X"
- "Hazme opciones de thumbnail"
- "Thumbnail para [título del video]"
- "Itera el thumbnail anterior"
- Cualquier request de imagen para YouTube

---

## Contexto Crítico (leer antes de generar)

### Style Guide Completo
`~/.openclaw/workspace/skills/thumbnail-agent/style-guide.md`

**TL;DR de lo que funciona:**
- Ben en frame, dominante, cara visible
- 1-3 palabras MAX de texto (o sin texto)
- Fondo oscuro, alto contraste
- Colores: negro + naranja (#fd2601) o azul eléctrico (#00d4ff) + blanco
- NUNCA texto explicativo largo

### Fotos de Ben
Directorio: `~/.openclaw/workspace/assets/ben-photos/`

**Fotos más versátiles:**
- `ben-mac-mini-smirk.jpg` — tech/IA videos
- `ben-street-serious.jpg` — videos controversiales/serios
- `ben-thumbsup.jpg` — resultados positivos
- `ben-office-selfie-striped.jpg` — negocio/productividad

**SIEMPRE usar --input-image** cuando el concepto incluya a Ben.

### Mejores Ejemplos Guardados
`~/.openclaw/workspace/skills/thumbnail-agent/best-examples/`
- `cc-remote-06-ben-surprised.png` — Ben + texto "24/7" — APROBADO
- `cc-remote-07-ben-macmini.png` — Ben + Mac Mini — APROBADO
- `cc-remote-08-ben-pointing-phone.png` — Ben apuntando al iPhone — APROBADO
- `cc-remote-09-ben-todos-querian.png` — "Todos querían" + Ben — APROBADO

---

## Script de Generación

```bash
# Script wrapper (usa el estilo correcto automáticamente)
~/.openclaw/workspace/skills/thumbnail-agent/generate.sh \
  --prompt "descripción del thumbnail" \
  --input-image "ben-mac-mini-smirk.jpg" \
  --output "nombre-descriptivo" \
  --res 2k  # o 4k para upload final
```

**Script subyacente**: nano-banana-pro
`python3 ~/.openclaw/workspace/skills/nano-banana-pro/scripts/generate_image.py`

**Output**: `~/.openclaw/workspace/thumbnails/`

---

## Workflow Estándar

### Paso 1 — Entender el concepto
1. ¿Cuál es el título del video?
2. ¿Cuál es la emoción/gancho central?
3. ¿Hay un objeto, persona, o escena obvia para visualizar?

### Paso 2 — Brainstorm
Proponer 5 conceptos rápidos en texto antes de generar. Ejemplo:
- A) Ben sosteniendo un iPhone con cara de "wow", texto "NUNCA MÁS"
- B) Teclado con cartel "SE VENDE", sin texto adicional
- C) Chat screenshot con respuesta de IA, Ben reaccionando lateral
- D) Solo la frase "YA NO" en tipografía enorme, fondo negro
- E) Ben señalando al Mac Mini, texto "MIENTRAS DORMÍA"

### Paso 3 — Generar batch inicial (6-10 variantes)
Lanzar como sub-agente Opus para paralelismo:

```
task: """
Lee ~/.openclaw/workspace/skills/thumbnail-agent/SKILL.md
y ~/.openclaw/workspace/skills/thumbnail-agent/style-guide.md

Genera [N] thumbnails para el video "[TÍTULO]".
Conceptos a generar: [lista de conceptos]

Para cada uno, usar:
  python3 ~/.openclaw/workspace/skills/nano-banana-pro/scripts/generate_image.py \\
    --prompt "[PROMPT]" \\
    --output "~/.openclaw/workspace/thumbnails/[nombre].png" \\
    [--input-image "~/.openclaw/workspace/assets/ben-photos/[foto].jpg"] \\
    --res 2k

Al terminar, reporta: qué generaste y el path de cada archivo.
"""
```

### Paso 4 — Enviar a Ben
Enviar thumbnails via message tool:
```python
message(action="send", target="1744801718", channel="telegram",
        media="~/.openclaw/workspace/thumbnails/archivo.png",
        caption="[número] - descripción del concepto")
```

### Paso 5 — Iterar
Ben dará feedback. Iterar 2-3 variantes del ganador.
Guardar el ganador final en `best-examples/` si es especialmente bueno.

### Paso 6 — 4K Final
Cuando Ben confirme el ganador:
```bash
./generate.sh --prompt "[mismo prompt]" --input-image "[misma foto]" --output "FINAL-video-nombre" --res 4k
```

---

## Templates de Prompts

### Con Ben (el más efectivo)
```
YouTube thumbnail, ultra-photorealistic, 16:9 aspect ratio. 
Ben Cordero, young Chilean man, dark short hair, athletic build, [EXPRESIÓN: surprised/serious/pointing/smiling] — prominent in frame, occupying 60-70% of the image.
[ELEMENTO COMPLEMENTARIO: objeto/escena/efecto detrás o al lado].
Bold white text "[TEXTO]" in massive sans-serif font [POSICIÓN: top/bottom/left/right].
Background: [COLOR OSCURO] with [EFECTO: neon glow/dramatic shadows/film grain].
Cinematic lighting, professional YouTube thumbnail quality.
No watermarks, no borders, no stock-photo look.
```

### Objeto/Concepto (sin Ben)
```
YouTube thumbnail, hyperrealistic, 16:9.
[OBJETO CENTRAL] — dramatic center composition, extreme close-up or full shot.
[COLOR PALETTE] — [describir mood: ominous/exciting/shocking].
[TEXTO: "PALABRA"] in bold white Impact font, [tamaño: massive/medium], [posición].
No people, cinematic lighting, high contrast.
```

### Screenshot/UI Mock
```
YouTube thumbnail showing a [chat/tweet/notification] screenshot, 
realistic phone/screen UI, message reads: "[TEXTO DEL MENSAJE]".
Background: [COLOR] gradient.
Ben Cordero [POSICIÓN: beside/behind/reacting] with [EXPRESIÓN].
Clean, minimal, high contrast.
```

---

## Notas de Estilo Adicionales

- **Sentence case en español**: "El mejor programador" NO "El Mejor Programador"
- **Inglés solo** si el concepto requiere (ej: "FOR SALE", "RETIRED") — pero preferir español
- **Texto en thumbnail ≠ título del video** — el thumbnail tiene su propio mensaje, complementario
- **La foto de Ben ES el prompt** — nano-banana-pro la transforma, no la pegamos literalmente
- Evitar: stock photos vibe, demasiados elementos, texto superpuesto encima de la cara de Ben
- **Dirección de mirada**: Si Ben mira a la derecha, texto/objeto va a la derecha
- **Zona muerta**: NUNCA poner info en esquina inferior derecha (timestamp de YouTube)
- **Thumbnail blindness**: Cambiar paleta cada 5-8 videos. Alternar con/sin cara (70/30)
- **Expresiones tristes/shock > sonrisas** para CTR (dato MrBeast)
- **Cifras específicas**: "$1,500" > "$2,000" — los números impares/raros parecen más reales

## Títulos — Quick Reference

Al proponer títulos junto con thumbnails, seguir estas reglas:
- **Máx 50 chars para el hook** (el resto se trunca en mobile)
- **Title ≠ thumbnail text** — título = QUÉ pasó, thumbnail = CÓMO se siente
- **Estilo Nick Saraev**: lowercase casual, cifras específicas, paréntesis como hooks
- **Fórmulas top**: Número+beneficio, provocación, resultado+timeframe, contrarian
- Ver guía completa: `youtube-best-practices.md`

---

## Archivos de Referencia

```
skills/thumbnail-agent/
├── SKILL.md                   ← este archivo (playbook)
├── style-guide.md             ← el estilo detallado + paleta + tipografía
├── generate.sh                ← wrapper script (fácil de usar)
└── best-examples/             ← los thumbnails aprobados por Ben
    ├── cc-remote-06-ben-surprised.png
    ├── cc-remote-07-ben-macmini.png
    ├── cc-remote-08-ben-pointing-phone.png
    └── cc-remote-09-ben-todos-querian.png

assets/ben-photos/             ← banco completo de fotos de Ben (11 fotos)
thumbnails/                    ← output de todas las generaciones
```

---

## Sub-agente Template (copy-paste listo)

Cuando quieras delegar la generación completa a un Opus:

```
task: """
Eres un agente especializado en thumbnails de YouTube para Ben Cordero (Imperio Digital).

CONTEXTO OBLIGATORIO — Lee estos archivos antes de empezar:
- ~/.openclaw/workspace/skills/thumbnail-agent/SKILL.md
- ~/.openclaw/workspace/skills/thumbnail-agent/style-guide.md

FOTOS DE BEN: ~/.openclaw/workspace/assets/ben-photos/
SCRIPT GENERACIÓN: python3 ~/.openclaw/workspace/skills/nano-banana-pro/scripts/generate_image.py
OUTPUT DIR: ~/.openclaw/workspace/thumbnails/

TAREA:
Video: "[TÍTULO DEL VIDEO]"
Conceptos a generar: [N] thumbnails con estos conceptos:
1. [concepto 1]
2. [concepto 2]
...

Para cada thumbnail:
- Elige la foto de Ben más apropiada para el concepto
- Usa --input-image con esa foto
- Genera en 2K
- Nombre descriptivo: [concepto-keyword].png

Al terminar: reporta lista de archivos generados con paths completos.
"""
model: anthropic/claude-opus-4-6
```

---

*Skill creado: 2026-02-26 | Estilo capturado de sesión thumbnails "El mejor programador del mundo dejó de programar"*