Genera la newsletter semanal de DevExpert recopilando contenido de X, YouTube, Postiz y bookmarks. Crea borrador en Listmonk para revisión.
Scanned 5/31/2026
Install via CLI
openskills install tools-only/X-Skills---
name: weekly-newsletter
description: "Genera la newsletter semanal de DevExpert recopilando contenido de X, YouTube, Postiz y bookmarks. Crea borrador en Listmonk para revisión."
---
# Weekly Newsletter DevExpert
Genera la newsletter semanal recopilando todo el contenido publicado y programado de la semana.
## Cuándo se usa
- Cada jueves antes de enviar la newsletter
- El rango de contenido es: **viernes anterior hasta jueves actual** (inclusive)
## Flujo de trabajo
### 1. Recopilar contenido de todas las fuentes
**X/Twitter** (bird CLI):
```bash
bird user-tweets antonioleivag -n 50 --json
```
Filtrar por fechas del rango.
**Postiz** (posts programados):
```bash
postiz posts list --start-date YYYY-MM-DD --end-date YYYY-MM-DD
```
**YouTube** (vídeos publicados o programados):
```bash
python list_videos.py --limit 10 --json
```
Usa el script `list_videos.py` incluido en la skill `youtube-publish` (carpeta `scripts/`).
El flag `--json` devuelve título, descripción, fecha, estado y URL. La descripción indica quién ha grabado el vídeo (Antonio o Nino) y de qué trata exactamente.
**Bookmarks de X** (lecturas recomendadas):
```bash
bird bookmarks -n 100
```
Usar 100 bookmarks para asegurar cobertura del rango completo. Filtrar por fechas.
### 2. Proponer lista de temas al usuario
Primero, analizar si hay un **tema dominante** en la semana:
- ¿Hay un tema que aparece en múltiples posts propios, bookmarks y conversaciones?
- ¿Se ha hablado de lo mismo desde varios ángulos (artículo, podcast, reflexiones)?
- Si la respuesta es sí, usar la estructura con "El tema de la semana"
Presentar el contenido en DOS bloques:
**BLOQUE 1: Contenido recomendado para la newsletter**
Organizado por secciones (ver estructura más abajo):
- **El tema de la semana** (si hay tema dominante) - agrupa contenido propio y de terceros sobre ese tema
- Vídeo de la semana
- Lo que ha pasado (contenido propio que no entre en el tema de la semana)
- Lecturas recomendadas (bookmarks de terceros que no entren en el tema de la semana)
- Reflexión de la semana (si hay)
- Novedades de modelos (si hay - buscar en bookmarks lanzamientos de modelos)
**BLOQUE 2: Lo que queda fuera**
Listar el contenido dentro del rango que no se ha incluido en el bloque 1, para que el usuario pueda decidir si añadir algo.
El usuario revisa y ajusta antes de generar el borrador.
### 3. Crear borrador en Listmonk
Escribir el contenido en un archivo temporal:
```
/tmp/newsletter-YYYY-MM-DD.md
```
Crear la campaña:
```bash
listmonk campaigns create \
--name "Newsletter semanal - DD mes YYYY" \
--subject "<subject atractivo>" \
--lists 3 \
--template-id 1 \
--content-type markdown \
--body-file /tmp/newsletter-YYYY-MM-DD.md
```
Tras crear el borrador, **abrir la campaña en el navegador** con:
```
open "<LISTMONK_BASE_URL>/admin/campaigns/<id>"
```
Para actualizar tras cambios:
```bash
listmonk campaigns update <id> \
--body-file /tmp/newsletter-YYYY-MM-DD.md \
--lists 3
```
### 4. Programar envío (solo con confirmación explícita)
**Regla:** No programar nunca sin confirmación explícita del usuario.
Por defecto, programar para **el jueves a las 17:15** (hora local) salvo que el usuario indique otra cosa.
```bash
listmonk campaigns schedule <id> \
--send-at "YYYY-MM-DDTHH:MM:SS+01:00"
```
## Estructura de la newsletter
### Estructura A: Con tema dominante de la semana
Usar cuando hay un tema claro que ha dominado la semana. El bloque "El tema de la semana" se escribe de forma **narrativa**, con los enlaces integrados en el texto (no al final de cada párrafo).
```markdown
¡Hola DevExpert!
[Intro 2-3 líneas contextualizando la semana y adelantando el tema principal]
**TL;DR de esta semana:**
- **Vídeo:** [Título del vídeo](URL) - Descripción corta
- **Tema de la semana:** Título del tema - Resumen en una línea
- **Nuevos modelos:** [Modelo 1](enlace) (qué hace) · [Modelo 2](enlace)
---
## El tema de la semana: [Título del tema]
[Texto narrativo que va contando la historia del tema, integrando enlaces en el propio texto. Por ejemplo:]
[Herramienta X](enlace) ha revolucionado la forma de trabajar esta semana. La idea es simple: [explicación].
El hype ha sido brutal. [Fulano contaba](enlace) cómo logró X. [Otro usuario](enlace) hizo Y.
Por mi parte, escribí [un artículo sobre Z](enlace). En [el podcast de esta semana](enlace) profundizamos en todo esto.
[El texto fluye como una narrativa, no como una lista de items separados]
---
## El vídeo de la semana: [Título]
[Descripción breve del vídeo principal]
[Ver el vídeo en YouTube](URL)
---
## Novedades de modelos (opcional)
**[Modelo 1](enlace)** - [Descripción breve]
**[Modelo 2](enlace)** - [Descripción breve]
---
## Próxima edición de AI Expert
[CTA fijo hacia devexpert.io]
[Toda la información aquí](https://devexpert.io/cursos/expert/ai)
---
Un abrazo,
Antonio.
```
### Estructura B: Sin tema dominante (semana variada)
Usar cuando no hay un tema claro y el contenido es variado.
```markdown
¡Hola DevExpert!
[Intro 2-3 líneas contextualizando la semana]
**TL;DR de esta semana:**
- **Vídeo:** [Título del vídeo](URL) - Descripción corta
- **Destacado:** Tema principal - Resumen en una línea
- **Nuevos modelos:** [Modelo 1](enlace) (qué hace) · [Modelo 2](enlace)
---
## El vídeo de la semana: [Título]
[Descripción breve del vídeo principal]
[Ver el vídeo en YouTube](URL)
---
## Lo que ha pasado esta semana
**[Tema 1]**
[Descripción + opinión]
[Enlace]
**[Tema 2]**
[...]
---
## Lecturas recomendadas
**[Título de tercero 1]**
[Por qué es interesante, puntos clave]
[Enlace]
**[Título de tercero 2]**
[...]
---
## Reflexión de la semana: [Título] (opcional)
[Reflexión personal más extensa]
[Enlace]
---
## Novedades de modelos (opcional)
**[Modelo 1](enlace)** - [Descripción breve]
**[Modelo 2](enlace)** - [...]
---
## Próxima edición de AI Expert
[CTA fijo hacia devexpert.io]
[Toda la información aquí](https://devexpert.io/cursos/expert/ai)
---
Un abrazo,
Antonio.
```
## Reglas de estilo
- **TL;DR**: Siempre después de la intro. El vídeo de la semana va primero. Usar anclas (#seccion) para enlaces internos
- **Tono**: Directo, sin rodeos, con criterio técnico
- **Emojis**: Mínimos (0-2 en todo el email)
- **Enlaces**: Alternar entre X y LinkedIn para distribuir tráfico
- **No incluir**: El vídeo de la semana anterior si ya salió en la newsletter previa
- **Bookmarks**: Usar para "Lecturas recomendadas" - contenido de terceros que aporta valor
- **Novedades de modelos**: Sección opcional (si hay esa semana) al final, antes del CTA. Interesa a un grupo reducido, por eso va abajo. Buscar en bookmarks lanzamientos de modelos nuevos
- **Saludo**: Siempre "¡Hola DevExpert!"
## Parámetros de Listmonk
- **Lista**: DevExpert (id: 3)
- **Template**: DevExpert (id: 1)
- **Content-type**: markdown
## Notas
- La newsletter se queda en estado `draft` hasta que Antonio la revise y programe
- Los enlaces a vídeos privados de YouTube funcionan una vez se publican
- Si hay vídeo programado para el jueves, incluir el enlace aunque esté privado
No comments yet. Be the first to comment!