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:
33
skills/formats/carrusel.md
Normal file
33
skills/formats/carrusel.md
Normal 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
32
skills/formats/post.md
Normal 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
24
skills/formats/reel.md
Normal 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
25
skills/formats/story.md
Normal 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`.
|
||||
Reference in New Issue
Block a user