Communitygithub.com

Varnan-Tech/opendirectory

Agrège les flux RSS de la semaine, synthétise les meilleures histoires avec Gemini et publie un digest de newsletter sur Ghost CMS. Optionnellement, produit un Markdown formaté pour Substack ou toute autre plateforme.

Qu'est-ce que opendirectory ?

Cette compétence automatise la création d'un digest hebdomadaire à partir de flux RSS. Elle est conçue pour les développeurs, les créateurs de contenu et les marketeurs qui souhaitent gagner du temps en synthétisant automatiquement les actualités pertinentes de la semaine. La compétence supporte trois formats de digest : le récapitulatif hebdomadaire, le focus thématique approfondi et la sélection curatoriale. Elle utilise l'API Gemini (gemini-2.0-flash) pour synthétiser les articles en un texte cohérent et bien structuré, en respectant des règles strictes de style (voix active, phrases courtes, pas de mots interdits). Ensuite, elle peut publier le digest sur Ghost CMS via leur API Admin, ou produire une sortie Markdown formatée pour d'autres plateformes comme Substack (qui n'a pas d'API publique). La compétence effectue un auto-contrôle de qualité rigoureux avant de présenter le résultat, vérifiant que toutes les affirmations proviennent des articles sources, qu'aucun mot interdit n'est utilisé et que la mise en page est correcte. Elle nécessite une clé API Gemini et, optionnellement, les identifiants Ghost pour la publication automatique.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Digest de Newsletter

Agrégez le contenu de flux RSS, synthétisez les meilleures histoires de la semaine avec Gemini et publiez un digest sur Ghost CMS. Prend en charge les formats de digest hebdomadaire, de focus thématique et de sélection curatoriale.

Style d'écriture

Appliquer à tout contenu de digest généré :

  • Voix active uniquement
  • Phrases courtes, une idée par phrase
  • Pas de tirets cadratins — utilisez un point ou une virgule à la place
  • Pas de points-virgules
  • Pas de markdown ni d'astérisques dans le corps final de la newsletter
  • Pas de hashtags

Mots interdits — n'utilisez aucun de ces mots dans le digest : incroyable, étonnant, exploiter, synergiser, révolutionnaire, qui change la donne, plonger, exploiter, débloquer, révolutionnaire, de pointe, remarquable, paradigme, révolutionner, perturbateur, transformateur, ravi, heureux de partager, puissant, innovant, complet, actionnable, crucial, vital, central, élucider, utiliser, plonger en profondeur, tapisserie, illuminer, révolutionner

RÈGLE CRITIQUE

Chaque affirmation, statistique et résumé dans le digest doit provenir des articles récupérés. Ne jamais inventer de points de données, de citations ou de faits. Si un article source n'a pas de contenu significatif, passez-le.


Étape 1 : Vérifier la configuration

1a. Vérifier que les flux sont configurés

Vérifiez si le fichier feeds.json existe dans le répertoire de la compétence :

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

S'il est manquant, demandez à l'utilisateur : « Quels flux RSS dois-je surveiller ? Partagez une liste d'URLs et je créerai feeds.json. »

Le format est :

[
  { "url": "https://example.com/feed", "name": "Nom de la source" },
  { "url": "https://another.com/rss", "name": "Autre source" }
]

1b. Vérifier les variables d'environnement requises

Vérifiez que celles-ci sont définies :

  • GEMINI_API_KEY (obligatoire) : pour la synthèse
  • GHOST_URL et GHOST_ADMIN_KEY (obligatoires pour la publication Ghost, facultatives si sortie uniquement)

Si GEMINI_API_KEY est manquante, arrêtez-vous et demandez à l'utilisateur de la définir.

La configuration GHOST est facultative. Si elle n'est pas définie, la compétence produit un Markdown formaté au lieu de publier.

1c. Vérifier les dépendances du script

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

Si manquant :

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

Étape 2 : Récupérer et analyser les flux

Exécutez le script de récupération :

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

Le script :

  • Lit feeds.json pour la liste des flux
  • Récupère chaque flux en utilisant rss-parser
  • Filtre les articles publiés au cours des 7 derniers jours
  • Déduplique par URL
  • Trie par date de publication, du plus récent au plus ancien
  • Sauvegarde les résultats dans /tmp/newsletter-digest-articles.json

Si le script génère une erreur sur un flux spécifique, il enregistre un avertissement et continue. Un mauvais flux n'arrête pas l'exécution.

Une fois le script terminé, vérifiez la sortie :

node -e "
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('/tmp/newsletter-digest-articles.json', 'utf8'));
console.log('Total articles:', data.articles.length);
console.log('From feeds:', data.feedsSummary.map(f => f.name + ': ' + f.count).join(', '));
console.log('Date range:', data.dateRange.from, 'to', data.dateRange.to);
"

Si moins de 3 articles sont trouvés, avertissez l'utilisateur et demandez-lui s'il souhaite étendre la plage de dates à 14 jours. Passez --days=14 au script pour élargir la fenêtre.


Étape 3 : Lire les règles de format

Lisez references/digest-format.md en entier avant de générer du contenu. Intériorisez :

  • Les trois formats de digest (Récapitulatif hebdomadaire, Focus thématique approfondi, Sélection curatoriale) et quand les utiliser
  • La structure des sections et les exigences de longueur par format
  • Les règles d'attribution (chaque affirmation renvoie à une source)
  • Les consignes de ton et de voix

Lisez references/output-template.md et sélectionnez le modèle correspondant au format demandé.

Si l'utilisateur n'a pas spécifié de format, choisissez par défaut le Récapitulatif hebdomadaire.


Étape 4 : Synthétiser avec Gemini

Lisez /tmp/newsletter-digest-articles.json et construisez une invite de synthèse.

Structure de l'invite :

Vous êtes un rédacteur de newsletter qui rédige un digest des meilleures histoires de la semaine.

Sources (utilisez UNIQUEMENT celles-ci — n'inventez pas de faits) :
[Pour chaque article : Titre | Source | Date | Résumé]

Tâche :
Rédigez un digest [FORMAT] suivant cette structure :
[Collez le modèle sélectionné depuis references/output-template.md]

Règles :
- Chaque affirmation, statistique et citation doit provenir des sources ci-dessus
- Écrivez à la voix active, phrases courtes, contractions autorisées
- N'utilisez pas : incroyable, étonnant, exploiter, qui change la donne, plonger, de pointe, révolutionner
- Pas de tirets cadratins, pas de points-virgules, pas de hashtags
- Incluez une attribution [Source : Nom](URL) après chaque affirmation importante
- Produisez du texte brut avec uniquement des balises HTML de titre (pas d'astérisques markdown)

Appelez Gemini avec cette invite. Modèle cible : gemini-2.0-flash ou le plus récent disponible.

Si la réponse contient des mots interdits ou des statistiques inventées qui ne figurent pas dans les articles sources, régénérez avec une invite plus stricte.


Étape 5 : Auto-contrôle qualité

Effectuez chaque vérification avant de présenter le résultat. Corrigez d'abord les violations.

  • Chaque affirmation, statistique et citation provient d'un article source
  • Aucun mot interdit dans aucune section
  • Pas de tirets cadratins dans le texte
  • Pas de points-virgules dans le texte
  • Chaque section contient au moins une attribution de source avec URL
  • Le nombre de mots se situe dans la plage cible du format (voir references/digest-format.md)
  • Aucune section ne répète la même histoire deux fois
  • Le titre est spécifique (inclut la plage de dates ou le numéro d'édition, pas seulement « Digest hebdomadaire »)
  • La sortie HTML est valide (pas de balises non fermées en cas de publication sur Ghost)

Corrigez toutes les violations avant de présenter le résultat à l'utilisateur.


Étape 6 : Formater et prévisualiser

Présentez le digest à l'utilisateur dans cet ordre :

  1. Titre — Plage de dates du numéro ou sujet
  2. Contenu du digest — Texte complet formaté
  3. Liste des sources — Tous les articles utilisés, avec URLs
  4. Nombre de mots et nombre d'articles

Demandez : « Prêt à publier sur Ghost en tant que brouillon, ou souhaitez-vous d'abord modifier ? »


Étape 7 : Publier sur Ghost ou produire la sortie

Si GHOST_URL et GHOST_ADMIN_KEY sont définis et que l'utilisateur confirme :

Exécutez le script de publication :

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

Le script lit /tmp/newsletter-digest-output.json (écrit par l'agent à l'étape 6) et le publie sur Ghost.

Après publication, le script renvoie l'URL d'administration Ghost du brouillon. Présentez-la à l'utilisateur : « Brouillon sauvegardé à : [URL]. Révisez et publiez depuis votre tableau de bord Ghost. »

Si l'utilisateur souhaite publier immédiatement, passez --status "published" au script.

Si Ghost n'est pas configuré ou que l'utilisateur dit « sortie uniquement » :

Produisez le digest dans trois formats :

  1. HTML — prêt à coller dans n'importe quel CMS
  2. Markdown — pour Substack, Notion ou Hashnode
  3. Texte brut — pour les clients de messagerie

Ajoutez : « Substack n'offre pas d'API publique. Copiez la version Markdown directement dans votre éditeur Substack. »


Notes sur Substack

Substack n'a pas d'API publique. La publication programmatique est impossible sans rétro-ingénierie des points de terminaison internes, ce qui viole leurs conditions d'utilisation. La compétence produit un digest Markdown formaté prêt à coller dans l'éditeur Substack. C'est l'approche correcte.

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 associés