CommunityRédaction et éditiongithub.com

Moteur de Posts Reddit

Rédige et publie optionnellement un post Reddit pour n'importe quel subreddit, en respectant sa culture et ses règles spécifiques. S'inspire de la règle 90/10 et utilise le MCP Composio Reddit pour la publication directe.

Qu'est-ce que Moteur de Posts Reddit ?

Ce skill (compétence) est un assistant spécialisé dans la rédaction et la publication de contenu sur Reddit. Il est conçu pour les développeurs et les créateurs qui souhaitent partager leurs projets, articles ou questions sur Reddit de manière à la fois authentique et efficace, en minimisant les risques de suppression ou de bannissement. Le skill analyse d'abord les règles et la culture d'un subreddit cible en consultant ses règles officielles, ses publications récentes les plus populaires et sa description. Il utilise ensuite Gemini (via une clé API) pour rédiger un titre, un corps de post et un premier commentaire, en suivant strictement la règle des 90/10 : le post doit apporter une valeur à la communauté, indépendamment de toute mention de produit. Les liens promotionnels sont systématiquement relégués au premier commentaire. Le skill intègre également une phase de relecture adversarial (contradictoire) avec trois personae (praticien sceptique, modérateur, lecteur cible) pour garantir la qualité et la conformité du post. Il supporte la publication automatique via l'outil MCP Composio Reddit, mais peut aussi simplement fournir un brouillon pour une soumission manuelle si cet outil n'est pas connecté.

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

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

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

Documentation

Que fait Moteur de Posts Reddit ?

Rédige un post Reddit adapté à la culture du subreddit. Publie-le optionnellement via Composio.


Règle critique : Ne jamais poster sans avoir confirmé les règles du subreddit. Ne jamais inclure de liens vers un produit dans le corps du message : placez-les uniquement dans le premier commentaire, si approprié. Suivez la règle 90/10 : votre post doit apporter une valeur indépendamment de toute mention de produit.

Règle anti-spam : Les posts principalement promotionnels seront supprimés et peuvent entraîner le bannissement du compte. L'objectif est de contribuer d'abord à la communauté. Les mentions de produits vont dans le premier commentaire, et uniquement si le subreddit autorise l'auto-promotion.


Étape 1 : Vérification de la configuration

echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"
# Vérifier si le MCP Composio Reddit est connecté
claude mcp list 2>/dev/null | grep -i reddit || echo "Composio Reddit MCP : non connecté"

Si GEMINI_API_KEY est manquante : Stop. Dites à l'utilisateur : "GEMINI_API_KEY est requise. Obtenez-la sur aistudio.google.com. Ajoutez-la dans votre fichier .env."

Si le MCP Composio Reddit n'est pas connecté : Continuez. Le skill rédigera des posts mais ignorera l'étape de publication. Informez l'utilisateur : "MCP Composio Reddit non connecté : je vais rédiger votre post pour une soumission manuelle. Pour activer la publication directe, consultez les instructions de configuration dans README.md."


Étape 2 : Recueillir le contexte

Vous avez besoin :

  • Du subreddit cible (par ex. r/devops, r/startups, r/SideProject)
  • De ce que vous partagez (projet, article, question, discussion, outil)
  • D'une description en une phrase de ce que ça fait
  • De pourquoi c'est pertinent pour la communauté spécifique de ce subreddit
  • De si vous voulez un post textuel (self-post) ou un post avec un lien

Si l'un de ces éléments manque, demandez en un message :

"Pour rédiger votre post Reddit, j'ai besoin de :

  1. Quel subreddit ? (ex. r/devops, r/startups)
  2. Que partagez-vous ? (projet, article, outil, question)
  3. Qu'est-ce que ça fait ? (une phrase, technique)
  4. Pourquoi ce subreddit s'y intéresse-t-il spécifiquement ?"

Étape 3 : Récupérer les règles et la culture du subreddit

Récupérez les règles du subreddit :

curl -s \
  -H "User-Agent: varnan-skills/1.0" \
  "https://www.reddit.com/r/{SUBREDDIT}/about/rules.json" \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
rules = d.get('rules', [])
for r in rules:
    print(f'Règle : {r.get(\"short_name\", \"\")}')
    print(f'Détail : {r.get(\"description\", \"\")[:200]}')
    print()
"

Récupérez les posts récents les plus populaires pour comprendre le ton et le style :

curl -s \
  -H "User-Agent: varnan-skills/1.0" \
  "https://www.reddit.com/r/{SUBREDDIT}/top.json?t=week&limit=10" \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
for p in d['data']['children'][:10]:
    pd = p['data']
    print(f'Score : {pd[\"score\"]} | Titre : {pd[\"title\"][:100]}')
"

Notez les schémas dans les posts les plus populaires :

  • Les titres sont-ils des questions ou des affirmations ?
  • Commencent-ils par la technologie ou par le résultat ?
  • Sont-ils personnels (« J'ai construit... ») ou impersonnels (« Outil pour... ») ?
  • Quel format obtient le plus d'engagement dans ce subreddit ?

Vérifiez la barre latérale du subreddit pour les règles de publication :

curl -s \
  -H "User-Agent: varnan-skills/1.0" \
  "https://www.reddit.com/r/{SUBREDDIT}/about.json" \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
data = d.get('data', {})
print('Description publique :', data.get('public_description', '')[:300])
print('Abonnés :', data.get('subscribers', 0))
"

Identifiez le type de subreddit :

TypeExemplesStyle de post
Praticien techniquer/devops, r/sysadmin, r/ExperiencedDevsSpécificités techniques, sans blabla, « J'ai fait X et j'ai appris Y »
Start-up/créateurr/startups, r/SideProject, r/indiehackersHistoire personnelle, métriques, leçons apprises
Technologie généraler/programming, r/technologyAngle d'actualité, amorce de discussion, avis controversé
Carrièrer/cscareerquestions, r/ITCareerQuestionsFormat question, scénario spécifique, demande d'expérience
Outil de nicher/vim, r/rust, r/golangContenu technique approfondi, exemples de code, benchmarks

Utilisez les règles et les posts les plus populaires récupérés pour déterminer le style applicable.


Étape 4 : Rédiger le post avec Gemini

Écrivez le contenu du post dans un fichier temporaire et appelez Gemini :

cat > /tmp/reddit-post-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Vous êtes un développeur actif dans la communauté {SUBREDDIT}. Rédigez un post Reddit qui correspond à la culture de ce subreddit. Règles : (1) Écrivez à la première personne s'il s'agit d'un projet ou d'une expérience. (2) N'incluez AUCUN lien produit dans le corps : les liens vont uniquement dans le premier commentaire. (3) Le post doit apporter une valeur réelle à la communauté, indépendamment de tout produit partagé. (4) Respectez le ton des posts les plus populaires de ce subreddit : {SUBREDDIT_TONE_NOTES}. (5) Titre de 300 caractères maximum. (6) Corps de 150 à 400 mots pour les posts textuels. (7) Pas de langage marketing : pas de 'révolutionnaire', 'puissant', 'robuste', 'fluide', 'innovant'. (8) Si le post parle d'un outil que l'utilisateur a construit, utilisez l'accroche 'J'ai fait...' ou 'J'ai construit...' : c'est ce qui fonctionne le mieux sur Reddit. (9) Sortie : titre sur la première ligne, ligne vide, puis corps. Pas d'étiquettes, pas de commentaires. N'utilisez pas de tirets cadratins."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "POST_DETAILS_HERE"
    }]
  }],
  "generationConfig": {
    "temperature": 0.7,
    "maxOutputTokens": 1024
  }
}
ENDJSON

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d @/tmp/reddit-post-request.json \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"

Remplacez POST_DETAILS_HERE par :

  • Le nom et le type du subreddit
  • Les schémas des posts les plus populaires observés
  • Ce qui est partagé et pourquoi c'est pertinent
  • Les détails techniques clés
  • La motivation honnête du créateur

Étape 5 : Rédiger le premier commentaire

Si l'utilisateur a un lien vers un produit ou un contexte supplémentaire à partager, rédigez un premier commentaire à publier immédiatement après la mise en ligne du post.

Le premier commentaire sert deux objectifs :

  1. Fournir le lien (ce qui garde le corps du post sans lien et moins promotionnel)
  2. Ajouter un contexte qui serait trop promotionnel dans le corps du post

Règles pour le premier commentaire :

  • Publiez-le en tant que première réponse à votre propre post, immédiatement après sa mise en ligne
  • Gardez-le sous 100 mots
  • Exemple de format : "Lien pour ceux qui veulent voir : [URL] ; je réponds volontiers aux questions sur [sujet technique spécifique mentionné dans le post]."
  • N'incluez le premier commentaire que si le subreddit autorise l'auto-promotion dans les commentaires
  • Si le subreddit a une règle « Pas d'auto-promotion », omettez complètement le lien

Étape 6 : Auto-vérification (QA)

Vérifiez le brouillon avant de le présenter :

Structure :

  • Le titre ne dépasse pas 300 caractères
  • Aucun lien n'apparaît dans le corps du post
  • Le post commence à la première personne (pour les posts de projet/expérience)
  • Au moins un détail technique spécifique ou un nombre concret est inclus
  • Le post correspond au ton des posts les plus populaires observés dans ce subreddit (noté à l'étape 3)
  • Les règles du subreddit de l'étape 3 ne sont pas violées

Détection des « claudismes » : parcourez ces catégories de vocabulaire et supprimez toutes les occurrences :

CatégorieMots à supprimer
Intensificateurs videsincroyablement, absolument, certainement, définitivement, essentiellement, fondamentalement, littéralement, particulièrement, assez, plutôt, vraiment, significativement, simplement, véritablement, finalement, très
Hédges IAje dois noter, il convient de noter, il est important de noter, comme mentionné, comme je l'ai noté
Descripteurs de hyperévolutionnaire, puissant, robuste, fluide, innovant, meilleur de sa catégorie, de pointe, révolutionnaire, remarquable
Introduction de conclusionen conclusion, pour résumer, pour récapituler, globalement, tout d'abord, en dernier lieu mais non des moindres
Connecteurs inutilesen outre, de plus, par ailleurs, cependant (en début de phrase), ainsi, donc, par conséquent
Indices IAcela garantit que, cela permet de, cela aide à, cela facilite, approfondir, utiliser, tirer parti, favoriser

Si l'un d'eux apparaît : remplacez-le par un nom, un verbe ou un nombre spécifique. « Très rapide » devient « s'exécute en 12ms ». « Outil puissant » devient ce qu'il fait réellement.

Vérification des expressions à supprimer instantanément : ces schémas déclenchent les filtres anti-spam de Reddit ou la suppression par les modérateurs :

  • Toute phrase qui ressemble à une publicité (« Essayez [Produit] dès aujourd'hui », « Inscrivez-vous maintenant », « Commencez gratuitement »)
  • Phrases qui laissent entendre que vous n'êtes pas le créateur (« Je suis tombé sur ce super outil », « J'ai trouvé ce produit étonnant »)
  • Possession à la première personne des utilisateurs (« nos utilisateurs », « nos clients ») dans des subreddits où vous n'avez pas établi de présence communautaire
  • « J'ai fait X et vous pouvez l'utiliser pour... » suivi immédiatement d'un lien (structure promotionnelle)
  • Superlatifs sans qualification (« la meilleure façon de... », « le seul outil qui... »)
  • Liens externes dans le corps du post (utilisez uniquement le premier commentaire)

Si l'une de ces expressions à supprimer immédiatement apparaît : révisez la phrase entièrement, ne vous contentez pas d'échanger les mots.


Étape 7 : Relecture adversarial (contradictoire)

Avant de présenter le brouillon final, effectuez une relecture avec 3 personae. Chaque persona lit le post et trouve UN problème spécifique, en citant le texte exact qui le déclenche.

Persona 1 : Le Praticien Sceptique Cette personne est sur r/{SUBREDDIT} depuis des années et a vu des centaines de lancements de produits déguisés en posts. Sa lecture :

  • Est-ce qu'une phrase semble promotionnelle même si elle ne vend pas explicitement ?
  • Le post révèle-t-il une connaissance réelle des problèmes de la communauté, ou parle-t-il simplement du produit ?
  • Y a-t-il une affirmation qui ferait lever les yeux au ciel à un praticien ?

Citez la ligne spécifique qu'il signalerait et pourquoi.

Persona 2 : Le Modérateur Cette personne applique les règles récupérées à l'étape 3. Sa lecture :

  • Le post respecte-t-il techniquement les règles du subreddit ?
  • Le ratio auto-promotion / contribution à la communauté est-il acceptable ?
  • Ont-ils déjà vu ce schéma de post exact être supprimé auparavant ?

Citez la règle spécifique qui risque d'être violée, ou confirmez qu'elle est propre.

Persona 3 : Le Lecteur Cible Il s'agit d'un membre de la communauté qui n'est pas créateur et correspond à la démographie du subreddit. Sa lecture :

  • Upvoterait-il ce post même s'il n'utilise jamais le produit ?
  • Y a-t-il un point à retenir qu'il peut appliquer même s'il ignore le lien dans le premier commentaire ?
  • La première phrase lui donne-t-elle envie de continuer à lire ?

Citez la chose précise à laquelle il arrêterait de lire, ou confirmez que le post retient son attention.

Après que les trois personae ont fait leur rapport : appliquez les corrections nécessaires. Si aucun persona n'a trouvé de problème, indiquez « Relecture adversarial : propre. »


Étape 8 : Publier via Composio (Optionnel)

Si le MCP Composio Reddit est connecté et que l'utilisateur confirme qu'il souhaite publier :

Utilisez l'outil MCP reddit-composio REDDIT_CREATE_REDDIT_POST avec :
- subreddit : {SUBREDDIT_SANS_r/}
- title : {TITRE}
- kind : "self"
- text : {CORPS}

Avant de publier, confirmez avec l'utilisateur : « Prêt à publier sur r/{SUBREDDIT}. Titre du post : '{TITRE}'. Dois-je continuer ? »

Ne procédez qu'après confirmation explicite.

Après la publication :

  1. Notez l'URL du post à partir de la réponse
  2. Si un premier commentaire a été rédigé, publiez-le immédiatement en utilisant le même MCP avec l'ID du post renvoyé

Si la publication échoue (403, 429 ou autre erreur) : Présentez le brouillon pour une soumission manuelle. Dites à l'utilisateur : « La publication directe a échoué ([code d'erreur]). Voici votre post pour une soumission manuelle. Copiez-collez le titre et le corps sur reddit.com/r/{SUBREDDIT}/submit. »


Étape 9 : Présenter le résultat

## Post Reddit : r/{SUBREDDIT}

### Titre
{titre}

### Corps
{corps}

### Premier commentaire (à publier immédiatement)
{premier commentaire, le cas échéant}

---

### Notes de soumission
- Type de post : {textuel/lien}
- Meilleur moment pour poster : {heures de pointe pour ce subreddit : matins en semaine heure US pour la plupart des subreddits techniques}
- Après la publication : Répondez à chaque commentaire dans la première heure : un engagement précoce signale la qualité à l'algorithme
- Note sur le karma : {Si le compte est nouveau, notez que certains subreddits exigent un karma minimum avant de poster}

Si le post a déjà été soumis via Composio, remplacez le bloc de sortie par :

Post soumis : {reddit_post_url}

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