Add RRSS auto-generation via the Ads Claude/Freepik/Canva pipeline.

Pipeline pieces can be created manually or enqueued with channel=rrss, using brandbook, calendar copy and RRSS history; n8n writes results back to creative_pipeline.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
4Ventures
2026-10-14 16:21:24 +02:00
parent 0c1ff3cc67
commit 9d7d799ec1
11 changed files with 1085 additions and 112 deletions

View File

@@ -0,0 +1,33 @@
# Skill de formato · Carrusel RRSS (slides 4:5)
> Carrusel orgánico: **3–5 slides** en **4:5**. Canal `rrss` → Pipeline (`slide_paths` + cover = slide 1).
## Entrega por variante
```json
{
"angle": "ángulo del carrusel",
"hook": "titular del slide 1, máx. 8 palabras",
"support": "subtítulo slide 1 o null",
"caption": "caption del post carrusel completo",
"cta": "CTA final (slide último / caption)",
"slides": [
{
"role": "hook",
"hook": "texto slide",
"support": null,
"image_prompt": "prompt EN INGLÉS 4:5 para este slide",
"composition_notes": "montaje slide"
}
],
"layout": "foto-con-franja | tipografico | dato-grande",
"rationale": "por qué esta secuencia"
}
```
## Reglas
- Slide 1 = gancho; medios = valor; último = CTA / guardado.
- Misma paleta y tono en todos los slides.
- Cada `image_prompt` termina con: `no text, no logos, no watermarks, photorealistic, vertical 4:5 with negative space for headline`.
- Si el calendario ya trae estructura de carrusel, respétala.

32
skills/formats/post.md Normal file
View File

@@ -0,0 +1,32 @@
# Skill de formato · Post RRSS (feed IG/FB 4:5)
> Se aplica junto a la skill del cliente (brandbook). Produce una pieza **orgánica** para el Pipeline RRSS, no un anuncio Meta Ads.
> Diseño base **4:5 (1080×1350)**. Una sola pieza feed (no hace falta landscape Ads).
## Contexto de entrada
El brief trae `channel: "rrss"`, pieza de calendario (`hook`, `body`, `cta`, `hashtags`, `pillar`), brandbook y, si existe, histórico de pipeline / posts orgánicos. **Respeta el calendario**: no inventes otro tema; mejora y visualiza lo planificado.
## Qué entregas por cada variante
```json
{
"angle": "ángulo corto alineado al pilar del calendario",
"hook": "titular EN la imagen, máx. 8 palabras",
"support": "línea de apoyo en imagen, máx. 12 palabras, o null",
"caption": "copy del post (hook + cuerpo + CTA + hashtags útiles), tono de marca, máx. 2200 caracteres",
"cta": "CTA suave orgánico (p. ej. 'Guarda este post', 'Escríbenos', 'Link en bio')",
"image_prompt": "prompt EN INGLÉS para Freepik, sin texto ni logo, vertical 4:5, aire para titular",
"layout": "foto-con-franja | tipografico | dato-grande",
"composition_notes": "montaje 4:5 en 3-5 líneas",
"rationale": "por qué encaja con el calendario y el ADN"
}
```
## Reglas
- Prioriza el copy del calendario; puedes pulirlo, no cambiar de pilar.
- Sin claims prohibidos del brandbook. Sin emojis si la política lo prohíbe.
- `image_prompt` termina con: `no text, no logos, no watermarks, photorealistic, vertical 4:5 composition with clear negative space for a headline`.
- Hashtags: solo si el calendario o la marca los usan; máx. 5–8, relevantes.
- Write-back: n8n guarda en `creative_pipeline` (cover + caption), no en `creatives` Ads.

24
skills/formats/reel.md Normal file
View File

@@ -0,0 +1,24 @@
# Skill de formato · Reel RRSS (cover 9:16)
> Cover/keyframe de Reel **9:16**. El motion se produce aparte; aquí entregas imagen + caption del Reel.
## Entrega por variante
```json
{
"angle": "ángulo corto",
"hook": "texto en cover, máx. 7 palabras",
"support": "subtítulo o null",
"caption": "caption del Reel (gancho + valor + CTA + hashtags), tono de marca",
"cta": "CTA orgánico",
"image_prompt": "prompt EN INGLÉS, vertical 9:16, escena con movimiento implícito / freeze frame potente",
"layout": "foto-con-franja | tipografico | dato-grande",
"composition_notes": "cover 9:16 legible en feed de Reels",
"rationale": "encaje con calendario"
}
```
## Reglas
- El cover debe leerse parado (scroll). Misma disciplina de marca que posts.
- `image_prompt` termina con: `no text, no logos, no watermarks, photorealistic, vertical 9:16 cinematic still with negative space for a short hook`.

25
skills/formats/story.md Normal file
View File

@@ -0,0 +1,25 @@
# Skill de formato · Stories RRSS (9:16)
> Pieza orgánica vertical **9:16 (1080×1920)** para Instagram/Facebook Stories. Canal `rrss` → Pipeline.
## Entrega por variante
```json
{
"angle": "ángulo corto",
"hook": "texto en story, máx. 6 palabras, muy legible",
"support": "sticker/pregunta o segunda línea, o null",
"caption": "texto opcional de acompañamiento / nota interna (Stories no siempre llevan caption largo)",
"cta": "sticker CTA (p. ej. 'Responde', 'Desliza', 'Enlace')",
"image_prompt": "prompt EN INGLÉS, vertical 9:16, zona segura superior/inferior para UI de Stories",
"layout": "foto-con-franja | tipografico | dato-grande",
"composition_notes": "safe zones 9:16, dónde va el hook",
"rationale": "encaje con calendario"
}
```
## Reglas
- Respeta la pieza del calendario (serie, interactiva, promo…).
- Aire para stickers y UI nativa. Sin claims prohibidos.
- `image_prompt` termina con: `no text, no logos, no watermarks, photorealistic, vertical 9:16 with safe margins for Instagram Stories UI`.