| name | threads |
| description | Sincroniza posts y métricas de Threads via API oficial de Meta, analiza performance y genera borradores diarios en la voz del usuario. Usar cuando el usuario diga "/threads", pida sincronizar Threads, ver stats, sugerir temas o redactar posts. |
Threads — Rutina de contenido diario
Skill para generar posts diarios de Threads basados en data real: posts pasados, métricas, patrones de engagement.
Qué hace
- Sync — Pull incremental de posts + insights desde Threads API a JSON local
- Analyze — Detecta top performers, patrones de formato, mejores horarios
- Draft — Genera 3-5 borradores en la voz del autor listos para copy-paste
Setup (primera vez)
Si data/token.json no existe, el usuario aún no autenticó. Pasos:
- Verificar que
~/.claude/skills/threads/.env existe con THREADS_APP_ID y THREADS_APP_SECRET. Si no, leer README.md y guiar setup en Meta Dashboard
- Instalar deps:
cd ~/.claude/skills/threads && npm install (solo primera vez)
- Auth:
npm run auth — abre browser, usuario aprueba, callback guarda token
Comandos disponibles
Desde ~/.claude/skills/threads/:
| Comando | Qué hace |
|---|
npm run auth | OAuth flow inicial (una vez por sesión de 60 días) |
npm run sync | Pull posts nuevos + métricas, actualiza cache |
npm run refresh | Renueva long-lived token (correr cada ~30-50 días) |
npm run stats | Imprime resumen de métricas últimos 7/30 días |
Flujo del slash command /threads
Cuando el usuario invoca /threads (o /threads sync, /threads stats, /threads draft):
/threads (default — flow completo)
- Ejecutar
npm run sync (pull data fresca)
- Leer
data/posts.json y data/insights.json
- Análisis:
- Top 5 posts últimos 30 días por views
- Top 5 por engagement rate (likes+replies+reposts / views)
- Patrones detectados (longitud óptima, formato, horarios, temas recurrentes)
- Sugerir 3 temas del día con justificación basada en data
- Redactar 3 borradores listos en la voz del autor (leer
voice.md si existe — si no, leer voice.example.md y guiar al usuario para que lo customice)
- Output formato:
RESUMEN ÚLTIMOS 7 DÍAS
- X posts, Y views totales, Z engagement
- Top: "..." (N views, X% above media)
- Patrón: posts de [formato] tuyos = Nx engagement
TEMAS SUGERIDOS HOY
1. [tema] — [por qué basado en data]
2. ...
BORRADORES (copy-paste listos)
─────────────────────────
[Borrador 1]
...
/threads sync
Solo ejecutar npm run sync. Mostrar cuántos posts nuevos se agregaron.
/threads stats
Solo ejecutar npm run stats. Mostrar tabla de métricas.
/threads draft "tema X" o /threads draft <tema>
Saltarse análisis. Generar 3 borradores variados (formato pregunta, story corto, hot take) sobre el tema dado, en la voz del autor.
Archivos importantes
data/token.json — Long-lived token + expiry (NUNCA commit, NUNCA mostrar contenido)
data/posts.json — Cache de posts con campos id, text, timestamp, permalink, media_type
data/insights.json — Métricas por post_id (views, likes, replies, reposts, quotes, shares)
data/sync-state.json — Cursor de paginación + last_sync_at para sync incremental
voice.md — Voz del autor (copiar voice.example.md y customizar con muestras de tus mejores posts)
Reglas
- Nunca mostrar el access_token al usuario (ni en logs ni en output)
- Si el token está por expirar (<7 días), correr
npm run refresh automáticamente y avisar
- Si el sync falla por 401, el token expiró — pedir al usuario correr
npm run auth de nuevo
- Borradores deben respetar 500 chars max (límite Threads)
- NUNCA publicar posts automáticamente — solo generar borradores. El usuario copia-pega manual
- NO inventar métricas — si no hay data, decir "sin data suficiente"
Errores comunes
| Error | Causa | Fix |
|---|
Cannot find .env | Setup no hecho | Ver README.md, crear app en Meta Dashboard |
401 invalid token | Token expiró | npm run auth |
429 rate limit | Excedidos requests | Esperar 1h, sync usa límite alto |
Field 'insights' not found | App no tiene scope threads_manage_insights | Re-auth con scopes correctos |