Communitygithub.com

Varnan-Tech/opendirectory

Agrega feeds RSS de la última semana, sintetiza las historias principales con Gemini y publica un resumen de boletín en Ghost CMS. Opcionalmente, genera Markdown formateado para Substack u otras plataformas.

¿Qué es opendirectory?

Esta habilidad automatiza el proceso de creación de un boletín semanal a partir de múltiples fuentes RSS. Primero, recopila y analiza artículos de feeds configurados, filtrando los publicados en los últimos 7 días. Luego, utiliza el modelo Gemini de Google para sintetizar las historias más relevantes en un resumen coherente y atractivo, siguiendo estrictas reglas de estilo (voz activa, sin palabras prohibidas, atribución a cada fuente). El resultado final se puede publicar directamente como borrador en Ghost CMS (si las credenciales están configuradas) o exportarse en formatos HTML, Markdown y texto plano para plataformas como Substack, Notion o Hashnode. La habilidad está diseñada para evitar la invención de datos, asegurando que cada afirmación y estadística provenga de los artículos originales. Es compatible con entornos que tengan Node.js y las variables de entorno GEMINI_API_KEY (obligatoria) y GHOST_URL/GHOST_ADMIN_KEY (opcionales para publicación en Ghost). Su uso está optimizado para agentes como Claude Code, Cursor o Codex, donde se puede invocar con frases como 'genera un boletín', 'resumen semanal' o 'publica en Ghost'.

Compatible con✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/newsletter-digest

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Resumen de Boletín

Agrega contenido de fuentes RSS, sintetiza las historias principales de la semana con Gemini y publica un resumen en Ghost CMS. Admite formatos de resúmenes semanales, de inmersión en temas y de selecciones curadas.

Estilo de Redacción

Aplicar a todo el contenido generado del resumen:

  • Solo voz activa
  • Frases cortas, una idea por frase
  • Sin guiones largos — usa un punto o una coma en su lugar
  • Sin punto y coma
  • Sin markdown ni asteriscos en el cuerpo final del boletín
  • Sin hashtags

Palabras prohibidas — no usar ninguna de estas en el resumen: increíble, asombroso, apalancamiento, sinergizar, innovador, cambio de juego, adentrarse, aprovechar, desbloquear, innovador, de vanguardia, notable, paradigma, revolucionar, disruptivo, transformador, emocionado, emocionado de compartir, potente, innovador, integral, procesable, crucial, vital, fundamental, dilucidar, utilizar, sumergirse, tapiz, iluminar, revolucionar

REGLA CRÍTICA

Cada afirmación, estadística y resumen en el boletín debe provenir de los artículos obtenidos. Nunca inventes puntos de datos, citas o hechos. Si un artículo de origen no tiene contenido significativo, omítelo.


Paso 1: Verificar Configuración

1a. Verificar que los feeds estén configurados

Comprueba si feeds.json existe en el directorio de la habilidad:

ls /Users/ksd/Desktop/Varnan_skills/newsletter-digest/feeds.json 2>/dev/null

Si falta, pregunta al usuario: "¿Qué feeds RSS debo monitorear? Comparte una lista de URLs y crearé feeds.json."

El formato es:

[
  { "url": "https://ejemplo.com/feed", "name": "Nombre de la Fuente" },
  { "url": "https://otro.com/rss", "name": "Otra Fuente" }
]

1b. Verificar las variables de entorno requeridas

Comprueba que estén configuradas:

  • GEMINI_API_KEY (obligatoria): para la síntesis
  • GHOST_URL y GHOST_ADMIN_KEY (obligatorias para publicar en Ghost, opcionales si solo se genera la salida)

Si falta GEMINI_API_KEY, detente y pide al usuario que la configure.

La configuración de GHOST es opcional. Si no está configurada, la habilidad genera Markdown formateado en lugar de publicar.

1c. Verificar las dependencias del script

ls /Users/ksd/Desktop/Varnan_skills/newsletter-digest/node_modules 2>/dev/null | head -1

Si faltan:

cd /Users/ksd/Desktop/Varnan_skills/newsletter-digest && npm install

Paso 2: Obtener y Analizar Feeds

Ejecuta el script de obtención:

node /Users/ksd/Desktop/Varnan_skills/newsletter-digest/scripts/fetch-feeds.js

El script:

  • Lee feeds.json para la lista de feeds
  • Obtiene cada feed usando rss-parser
  • Filtra los elementos publicados en los últimos 7 días
  • Elimina duplicados por URL
  • Ordena por fecha de publicación, del más nuevo al más antiguo
  • Guarda los resultados en /tmp/newsletter-digest-articles.json

Si el script da error en un feed específico, registra una advertencia y continúa. Un feed defectuoso no detiene la ejecución.

Después de que el script se complete, verifica la salida:

node -e "
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('/tmp/newsletter-digest-articles.json', 'utf8'));
console.log('Total de artículos:', data.articles.length);
console.log('De los feeds:', data.feedsSummary.map(f => f.name + ': ' + f.count).join(', '));
console.log('Rango de fechas:', data.dateRange.from, 'hasta', data.dateRange.to);
"

Si se encuentran menos de 3 artículos, advierte al usuario y pregúntale si desea extender el rango de fechas a 14 días. Pasa --days=14 al script para ampliar la ventana.


Paso 3: Leer las Reglas de Formato

Lee references/digest-format.md en su totalidad antes de generar cualquier contenido. Internaliza:

  • Tres formatos de resumen (Resumen Semanal, Inmersión en un Tema, Selecciones Curadas) y cuándo usar cada uno
  • Estructura de las secciones y requisitos de extensión por formato
  • Reglas de atribución (cada afirmación enlaza a una fuente)
  • Pautas de tono y voz

Lee references/output-template.md y selecciona la plantilla que coincida con el formato solicitado.

Si el usuario no especificó un formato, usa por defecto Resumen Semanal.


Paso 4: Sintetizar con Gemini

Lee /tmp/newsletter-digest-articles.json y construye un prompt de síntesis.

Estructura del prompt:

Eres un editor de boletines que escribe un resumen de las historias principales de esta semana.

Fuentes (usa SOLO estas — no inventes hechos):
[Para cada artículo: Título | Fuente | Fecha | Resumen]

Tarea:
Escribe un resumen [FORMATO] siguiendo esta estructura:
[Pega la plantilla seleccionada de references/output-template.md]

Reglas:
- Cada afirmación, estadística y cita debe provenir de las fuentes anteriores
- Escribe en voz activa, frases cortas, se permiten contracciones
- No uses: increíble, asombroso, apalancamiento, innovador, adentrarse, de vanguardia, revolucionar
- Sin guiones largos, sin punto y coma, sin hashtags
- Incluye [Fuente: Nombre](URL) como atribución después de cada afirmación principal
- Genera texto plano solo con etiquetas HTML de encabezado (sin asteriscos de markdown)

Llama a Gemini con este prompt. Modelo objetivo: gemini-2.0-flash o el último disponible.

Si la respuesta contiene palabras prohibidas o estadísticas inventadas que no están en los artículos de origen, vuelve a generar con un prompt más estricto.


Paso 5: Autoverificación

Ejecuta cada verificación antes de presentar. Corrige las infracciones primero.

  • Cada afirmación, estadística y cita se remonta a un artículo de origen
  • No hay palabras prohibidas en ninguna sección
  • Sin guiones largos en el texto
  • Sin punto y coma en el texto
  • Cada sección tiene al menos una atribución de fuente con URL
  • El recuento de palabras está dentro del rango objetivo del formato (ver references/digest-format.md)
  • Ninguna sección repite la misma historia dos veces
  • El título es específico (incluye el rango de fechas o el número de edición, no solo "Resumen Semanal")
  • La salida HTML es válida (sin etiquetas no cerradas si se publica en Ghost)

Corrige todas las infracciones antes de presentar al usuario.


Paso 6: Formatear y Vista Previa

Presenta el resumen al usuario en este orden:

  1. Título — Rango de fechas de la edición o tema
  2. Contenido del resumen — Texto completo formateado
  3. Lista de fuentes — Todos los artículos utilizados, con URLs
  4. Recuento de palabras y de artículos

Pregunta: "¿Listo para publicar en Ghost como borrador, o prefieres editar primero?"


Paso 7: Publicar en Ghost o Generar Salida

Si GHOST_URL y GHOST_ADMIN_KEY están configurados y el usuario confirma:

Ejecuta el script de publicación:

node /Users/ksd/Desktop/Varnan_skills/newsletter-digest/scripts/ghost-publish.js \
  --title "TITULO_DEL_RESUMEN" \
  --status "draft"

El script lee /tmp/newsletter-digest-output.json (escrito por el agente en el Paso 6) y lo publica en Ghost.

Después de publicar, el script devuelve la URL de administración de Ghost para el borrador. Preséntala al usuario: "Borrador guardado en: [URL]. Revisa y publica desde tu panel de Ghost."

Si el usuario quiere publicar inmediatamente, pasa --status "published" al script.

Si Ghost no está configurado o el usuario dice "solo salida":

Genera el resumen en tres formatos:

  1. HTML — listo para pegar en cualquier CMS
  2. Markdown — para Substack, Notion o Hashnode
  3. Texto plano — para clientes de correo

Agrega: "Substack no ofrece una API pública. Copia la versión Markdown directamente en tu editor de Substack."


Notas sobre Substack

Substack no tiene una API pública. La publicación programática no es posible sin ingeniería inversa de endpoints internos, lo que viola sus términos. La habilidad genera un resumen en Markdown formateado listo para pegar en el editor de Substack. Este es el enfoque correcto.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch checklist", or "make my repo shareable".

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.

Skills relacionados