Install
openclaw skills install @formula100k/calendarizador-contenido-formula100kArma calendarios de contenido semanales (Lunes-Domingo) en CSV y XLSX con la metodología FÓRMULA 100K. Usar SIEMPRE que el usuario pida 'arma mi calendario', 'calendariza estos guiones', 'ordena estas ideas en un calendario', 'convierte esto en calendario semanal', 'haz mi calendario en Excel', 'organiza mis guiones por día', 'calendariza este lote/enlaces/TikToks/reels/carruseles'. 3 modos de entrada: (1) guiones listos; (2) ideas sueltas que desarrolla llamando a guionizacion-formula100k o carrusel-viral-formula100k; (3) enlaces de video que transcribe con transcripcion-youtube-formula100k y reescribe como referencia. 2 tipos de pieza: REELS y CARRUSELES (columnas propias, altura de fila dinámica). Distribución según propósito: Experimentación 70/30/0, Crecimiento 40/50/10, Nutrición 20/70/10, Venta 20/50/30. NO confundir con calendarizador-historias (stories) ni calendarizador-urgencias.
openclaw skills install @formula100k/calendarizador-contenido-formula100kEsta versión corre en un agente OpenClaw (servidor + Telegram), no en Claude Code. Antes de seguir, lee la skill
f100k-puente: traduce herramientas y rutas. Lo específico de esta skill:
- Las referencias virales: con
APIFY_TOKENusa Apify (TikTok/IG públicos); sin token, tu búsqueda web. Transcripciones de YouTube:transcripcion-youtube-formula100ko la que te pegue la usuaria. Nunca navegador logueado.- El script
references/generate_calendar.pycorre con python3 sin librerías extra: úsalo con--output-dir guiones/calendarios/. El XLSX solo siopenpyxlestá instalado; si no, entrega el CSV.- Entrega por Telegram: la tabla resumida en el chat y los archivos como documentos.
Esta skill enseña un método. El método es agnóstico de industria: sirve igual para formulación cosmética, nutrición, repostería, fisioterapia, finanzas o jabonería. Los ejemplos escritos aquí abajo son ilustraciones del método, nunca del tema.
Antes de escribir nada:
[TU OFERTA], [TU RESULTADO]). Nunca asumas que el rubro es marketing.El método viaja, el rubro no. El mismo molde, vestido con rubros distintos:
| Rubro | El mismo molde |
|---|---|
| Cocina | "Así es mi cena favorita para no dormir con el azúcar alta." |
| Relaciones | "5 señales de que estás forzando una relación que ya no funciona." |
| Finanzas | "La principal causa de un divorcio no es una infidelidad." |
| Formulación cosmética | "El conservante decide si tu crema dura tres meses o te da una infección. No el aceite." |
| Jabonería | "Si tu jabón se pone blando a los dos días, no fue el aceite. Fue la sosa." |
| Fisioterapia | "Ese dolor de rodilla al bajar escaleras casi nunca nace en la rodilla." |
| Repostería | "Tu bizcocho se hunde en el centro por la temperatura, no por la harina." |
| Jardinería | "Tu planta no se está muriendo de sed. Se está ahogando." |
Mismo molde en todos; ninguno menciona reels ni embudos. Haz exactamente eso.
Convierte guiones, ideas sueltas o enlaces de referencia en un calendario semanal Lunes-Domingo listo para producir, exportado a CSV y XLSX.
Soporta dos tipos de pieza con esquemas de columnas distintos:
| Columna | Qué contiene |
|---|---|
| DÍA | Lunes a Domingo |
| IDEA | Concepto/título corto del video |
| GUION | Hook + Cuerpo + Outro completo |
| LLAMADO A LA ACCIÓN | CTA específico al propósito del slot |
| FORMATO | 1 de los 40 formatos del catálogo F100K |
| REFERENCIA | URL del video referencia o "Original" |
| Columna | Qué contiene |
|---|---|
| DÍA | Día semana (LUN/MAR/MIE/…) coloreado por semana (S1 amarillo #FCE96B, S2 lila #D9CCEC) |
| FECHA | Fecha absoluta (ej. "18 MAY 2026") |
| # | Número del carrusel (01-99) |
| IDEA | Título del carrusel |
| GUION (SLIDE x SLIDE) | Texto de cada slide concatenado con saltos de línea reales. Altura de fila se ajusta automáticamente al largo del guion (wrap text activado, vertical-align top) |
| CTA | Palabra clave del CTA (ej. "MÁQUINA", "ROAST") |
| FORMATO | "Carrusel · N slides" |
El tipo CARRUSELES soporta calendarios de hasta 2 semanas (11-14 carruseles) en una sola hoja, con coloreo de la columna DÍA por semana para que visualmente se identifique el bloque S1 vs S2.
Distribución de los 7 días según el propósito del calendario (los 4 modos de la Estrategia V3.0).
Carpeta de salida según tipo de pieza:
guiones/calendarios/guiones/calendarios/carruseles/Genera 3 archivos por sesión:
calendario_[modo]_[YYYY-MM-DD].csv — CSV separado por comas, encoding UTF-8 (solo modo reels)calendario_[modo]_[YYYY-MM-DD].xlsx — Excel con header en negrita, columnas anchasPara tipo CARRUSELES el nombre por defecto es 00_CALENDARIO_CARRUSELES.xlsx (en la carpeta destino del proyecto), pero el usuario puede pedir un nombre con fecha.
Donde [modo] es uno de: experimentacion, crecimiento, nutricion, venta.
Antes que nada, determinar si lo que se va a calendarizar son reels (default) o carruseles.
Señales para detectar tipo CARRUSELES:
.md generados por la skill carrusel-viral-formula100kentregables/carruseles/Si no hay señales explícitas → asumir REELS.
Si hay ambigüedad → preguntar:
¿Estos son reels o carruseles? Cambia las columnas del calendario y el formato del guion.
El tipo de pieza determina:
QUÉ HACE arriba)CALENDARIOS/ para reels · CARRUSELES/CALENDARIO DE CARRUSELES/ para carruselesInspecciona lo que pegó el usuario y clasifica:
| Señal en el input | Modo |
|---|---|
| Bloques largos con "Hook:", "Gancho:", "Cuerpo:", "CTA:", o párrafos completos de 80+ palabras por idea | Modo A · Guiones listos |
| Líneas cortas (5-30 palabras) que describen un tema o concepto, sin estructura de guion | Modo B · Ideas sueltas |
| URLs de TikTok, Instagram Reels, YouTube Shorts/Long | Modo C · Enlaces de referencia |
| SOLO nicho/avatar/brief de cliente (sin guiones, sin ideas, sin URLs) — ej. "calendariza para mi clienta que es nutricionista de SII" | Modo D · Investigación viral por keyword ⭐ |
| Mezcla de varios | Modo Híbrido — procesa cada bloque según su tipo |
⚠️ Modo D es el default cuando solo tienes el brief del cliente. NO inventes ideas genéricas del nicho. Primero caza referencias virales reales en TikTok/IG por keyword. El calendario debe basarse en lo que ya está funcionando, no en lo que tú asumes que funciona.
Antes de calendarizar, siempre preguntar (a menos que el usuario lo haya dicho explícitamente):
¿Cuál es el propósito de este calendario? Elige uno:
- 🧪 Experimentación (70% viral / 30% valor / 0% venta) — recién empiezas o no tienes formato estrella
- 📈 Crecimiento (40% viral / 50% valor / 10% venta) — atraer audiencia fría nueva
- 🌱 Nutrición (20% viral / 70% valor / 10% venta) — pre-lanzamiento, calentar audiencia
- 💰 Venta (20% viral / 50% valor / 30% venta) — lanzamiento o promo activa en 14 días
Si el usuario duda, ofrécele hacer el mini test (5 preguntas) que está en el artifact f100k-estrategia-contenido.html.
Cada modo tiene un patrón fijo de 7 días con tipo (Viral/Valor/Venta) y formato sugerido:
Cargar la tabla de slots desde references/slots-por-modo.md. Resumen:
🧪 Experimentación (cada día un formato distinto, prioridad viralidad):
📈 Crecimiento (40/50/10):
🌱 Nutrición (20/70/10):
💰 Venta (20/50/30):
Los formatos por día son sugerencias base. Si una idea/guion del usuario calza mejor con otro formato del catálogo (ver references/catalogo-40-formatos.md) que respeta el tipo del slot, úsalo.
carrusel-viral-formula100kguionizacion-formula100ktranscripcion-youtube-formula100k para YouTube, o usar Supadata/yt-transcript-mcp si es TikTok/Reelsguionizacion-formula100k para validar estructura y CTAUsar SIEMPRE que solo tengas el brief del cliente (nicho + avatar) y NO tengas guiones, ideas ni URLs. Es el modo más común para clientes nuevos del usuario.
Pipeline:
Extraer 4-6 keywords del nicho desde el brief del cliente. Combinar:
Invocar analizador-referencias-virales-f100k con las keywords del paso 1:
formato_inferido por videoSi la skill devuelve <7 refs con +20K views → avisar al usuario que el nicho es chico y usar las mejores disponibles. NO inventar ideas genéricas.
Mapear cada viral a un slot del calendario usando el formato_inferido que la skill ya detectó:
Pizarra / Valor → slots de ValorPOV / Viral → slots de ViralTestimonio / Venta → slots de VentaReescribir cada idea con voz del cliente aplicando frameworks F100K:
guionizacion-formula100k para mantener calidad de hook + cuerpo + CTALlenar la columna REFERENCIA con la URL real del viral + las métricas (ej. https://www.tiktok.com/@dra/video/123 (458K views))
Reglas clave del Modo D:
analizador-perfiles-formula100k y solo después complementar con búsqueda de refs externas.Procesar cada bloque del input según su tipo. Mantener el orden del usuario solo si hay 7 piezas; si hay diferente cantidad, redistribuir según slots óptimos.
| Tipo de slot | CTA por defecto |
|---|---|
| Viral | "Sígueme para más" |
| Valor | "Guarda este post" o "Comenta [palabra clave] para enviarte el [recurso]" |
| Venta | "Haz clic en el enlace" / "Link en bio" / "Reserva tu lugar" |
Si el guion ya trae CTA, respétalo (solo verifica que coincida con el tipo del slot — si hay error de coherencia, corregir y avisar al usuario).
Ejecutar el script Python generate_calendar.py (ubicado en references/generate_calendar.py) pasando los datos como JSON via stdin. El argumento --tipo-pieza cambia el esquema de columnas y el layout del Excel:
Modo REELS:
python3 skills/calendarizador-contenido-formula100k/references/generate_calendar.py \
--tipo-pieza "reels" \
--modo "[modo]" \
--output-dir "guiones/calendarios/" \
--data-json '<JSON_DATA>'
Modo CARRUSELES:
python3 skills/calendarizador-contenido-formula100k/references/generate_calendar.py \
--tipo-pieza "carruseles" \
--modo "[modo]" \
--output-dir "guiones/calendarios/carruseles/" \
--output-name "00_CALENDARIO_CARRUSELES" \
--data-json '<JSON_DATA>'
JSON para REELS:
{
"modo": "crecimiento",
"fecha_inicio": "2026-05-04",
"filas": [
{"dia":"Lunes","idea":"...","guion":"...","cta":"...","formato":"Pizarra (#19)","referencia":"Original"},
{"dia":"Martes","idea":"...","guion":"...","cta":"...","formato":"POV (#3)","referencia":"https://..."}
]
}
JSON para CARRUSELES (más campos por fila):
{
"modo": "crecimiento",
"fecha_inicio": "2026-05-18",
"titulo": "CALENDARIO DE CARRUSELES — SEMANA 18 MAYO 2026",
"subtitulo": "[TU NOMBRE] · [TU MARCA] · @tuhandle",
"filas": [
{
"dia": "LUN",
"fecha": "18 MAY 2026",
"numero": "01",
"idea": "Te están viendo la cara con Claude",
"guion": "SLIDE 1 — GANCHO\n\"Te están viendo la cara con Claude\"\n\nSLIDE 2 — EL PROBLEMA\n...",
"cta": "MÁQUINA",
"formato": "Carrusel · 7 slides",
"semana": "S1"
}
]
}
Notas clave del modo carruseles:
semana con valor "S1" o "S2" colorea la celda DÍA (amarillo #FCE96B o lila #D9CCEC).guion debe traer los slides separados con \n\n o títulos SLIDE N — …. El script calcula la altura de fila automáticamente.El script genera los archivos automáticamente. Si Python no tiene openpyxl instalado, intenta pip install openpyxl --quiet antes; si falla, generar solo CSV (reels) o avisar (carruseles).
Imprimir tabla markdown con los 7 días. Truncar GUION a primeras 80 caracteres + "…" para que el preview sea legible. Después de la tabla, listar:
## 📅 Calendario [Modo] · Semana del [fecha]
| DÍA | IDEA | GUION (preview) | CTA | FORMATO | REFERENCIA |
|---|---|---|---|---|---|
| Lunes | ... | ... | ... | ... | ... |
| ... | | | | | |
📁 CSV: guiones/calendarios/calendario_[modo]_[fecha].csv
📊 XLSX: guiones/calendarios/calendario_[modo]_[fecha].xlsx
📌 Distribución real: X viral / Y valor / Z venta
✅ Listo para producir
references/slots-por-modo.md — Tabla completa de slots Lun-Dom para los 4 modosreferences/catalogo-40-formatos.md — Los 40 formatos F100K agrupados (A/B/C)references/generate_calendar.py — Script Python que produce CSV + XLSXreferences/ejemplos-cta.md — Bank de CTAs por tipo de slotUsuario: "Calendariza estos 5 guiones para mi semana de venta del lanzamiento del 12 de mayo"
Skill: