CommunityEscrita e Ediçãogithub.com

Varnan-Tech/opendirectory

Escreve e, opcionalmente, publica um post no Reddit para qualquer subreddit, respeitando a cultura e as regras específicas da comunidade. Utiliza a regra 90/10 e o Composio Reddit MCP para postagem direta opcional.

O que é opendirectory?

Esta skill automatiza a criação e postagem de conteúdo no Reddit, garantindo que cada post esteja alinhado com a cultura e as regras específicas do subreddit alvo. Ela é ideal para desenvolvedores, criadores de conteúdo ou qualquer pessoa que queira compartilhar projetos, ferramentas ou ideias no Reddit sem correr o risco de ser banida por spam. A skill funciona em várias plataformas de agentes de IA que suportam execução de comandos e chamadas de API, como Claude Code ou Cursor. O processo começa com a verificação de dependências (como a chave da API Gemini e a conexão com o MCP do Reddit via Composio), depois coleta o contexto do usuário (subreddit, o que compartilhar, motivo da relevância), analisa as regras e o tom do subreddit através de chamadas à API do Reddit, e usa o modelo Gemini para gerar um título, corpo e primeiro comentário que sigam a 'regra 90/10' (90% de valor para a comunidade, 10% de promoção). Por fim, a skill permite a postagem direta via Composio Reddit MCP (se configurado) ou gera um rascunho para postagem manual, passando por uma rigorosa revisão contra padrões de spam e jargões de marketing.

Funciona com✓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 Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Mecanismo de Postagem no Reddit

Crie um post no Reddit que se encaixa na cultura do subreddit. Opcionalmente, publique-o via Composio.


Regra crítica: Nunca poste sem confirmar as regras do subreddit. Nunca inclua links de produtos no corpo: coloque-os apenas no primeiro comentário, se apropriado. Siga a regra 90/10: seu post deve agregar valor independentemente de qualquer menção a produto.

Regra antispam: Posts que são principalmente promocionais serão removidos e podem resultar no banimento da conta. O objetivo é contribuir primeiro com a comunidade. Menções a produtos vão no primeiro comentário, e somente se o subreddit permitir autopromoção.


Passo 1: Verificação da Configuração

echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"
# Verificar se o Composio Reddit MCP está conectado
claude mcp list 2>/dev/null | grep -i reddit || echo "Composio Reddit MCP: não conectado"

Se a GEMINI_API_KEY estiver faltando: Pare. Informe ao usuário: "GEMINI_API_KEY é necessária. Obtenha-a em aistudio.google.com. Adicione-a ao seu arquivo .env."

Se o Composio Reddit MCP não estiver conectado: Continue. A skill criará rascunhos, mas pulará a etapa de postagem. Informe o usuário: "Composio Reddit MCP não conectado: vou criar o rascunho do seu post para submissão manual. Para habilitar a postagem direta, veja as instruções de configuração no README.md."


Passo 2: Coletar Contexto

Você precisa:

  • Subreddit alvo (ex.: r/devops, r/startups, r/SideProject)
  • O que você está compartilhando (projeto, artigo, pergunta, discussão, ferramenta)
  • Descrição de uma frase do que ele faz
  • Por que é relevante para esta comunidade específica
  • Se você quer um post de texto ou de link

Se algum desses itens estiver faltando, pergunte em uma mensagem:

"Para criar seu post no Reddit, preciso de:

  1. Qual subreddit? (ex.: r/devops, r/startups)
  2. O que você está compartilhando? (projeto, artigo, ferramenta, pergunta)
  3. O que ele faz? (uma frase, técnica)
  4. Por que este subreddit se importa especificamente com isso?"

Passo 3: Buscar Regras e Cultura do Subreddit

Buscar as regras do 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'Regra: {r.get(\"short_name\", \"\")}')
    print(f'Detalhe: {r.get(\"description\", \"\")[:200]}')
    print()
"

Buscar posts recentes populares para entender o tom e o estilo:

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'Pontuação: {pd[\"score\"]} | Título: {pd[\"title\"][:100]}')
"

Observe padrões nos posts populares:

  • Os títulos são perguntas ou afirmações?
  • Eles começam com a tecnologia ou com o resultado?
  • São pessoais ("Eu construí...") ou impessoais ("Ferramenta para...")?
  • Qual formato tem maior engajamento neste subreddit?

Verificar a barra lateral do subreddit para regras de postagem:

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('Descrição pública:', data.get('public_description', '')[:300])
print('Inscritos:', data.get('subscribers', 0))
"

Identificar o tipo de subreddit:

TipoExemplosEstilo de post
Praticante técnicor/devops, r/sysadmin, r/ExperiencedDevsEspecificidades técnicas, sem rodeios, "Fiz X e aprendi Y"
Startup/construtorr/startups, r/SideProject, r/indiehackersHistória pessoal, métricas, lições aprendidas
Tecnologia geralr/programming, r/technologyÂngulo de notícia, gancho para discussão, opinião polêmica
Carreirar/cscareerquestions, r/ITCareerQuestionsFormato de pergunta, cenário específico, pedir experiência
Ferramenta de nichor/vim, r/rust, r/golangConteúdo técnico profundo, exemplos de código, benchmarks

Use as regras e os posts populares obtidos para determinar qual estilo se aplica.


Passo 4: Criar o Rascunho do Post com Gemini

Escreva o conteúdo do post em um arquivo temporário e chame o Gemini:

cat > /tmp/reddit-post-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Você é um desenvolvedor ativo na comunidade {SUBREDDIT}. Escreva um post no Reddit que se encaixe na cultura deste subreddit. Regras: (1) Escreva em primeira pessoa se for um post sobre projeto ou experiência. (2) NÃO inclua nenhum link de produto no corpo: links vão apenas no primeiro comentário. (3) O post deve agregar valor genuíno à comunidade, independentemente de qualquer produto compartilhado. (4) Combine com o tom dos posts populares neste subreddit: {SUBREDDIT_TONE_NOTES}. (5) Título no máximo 300 caracteres. (6) Corpo de 150 a 400 palavras para posts de texto. (7) Sem linguagem de marketing: sem 'revolucionário', 'poderoso', 'robusto', 'contínuo', 'inovador'. (8) Se o post for sobre uma ferramenta que o usuário construiu, use a abertura 'Eu fiz...' ou 'Eu construí...': é o que tem melhor desempenho no Reddit. (9) Saída: título na primeira linha, linha em branco, depois o corpo. Sem rótulos, sem comentários. Não use travessões."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "DETALHES_DO_POST_AQUI"
    }]
  }],
  "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'])"

Substitua DETALHES_DO_POST_AQUI por:

  • Nome e tipo do subreddit
  • Padrões observados nos posts populares
  • O que está sendo compartilhado e por que é relevante
  • Detalhes técnicos principais
  • Motivação honesta do construtor

Passo 5: Criar o Primeiro Comentário

Se o usuário tiver um link de produto ou contexto adicional para compartilhar, crie um primeiro comentário para postar imediatamente após o post ir ao ar.

O primeiro comentário serve a dois propósitos:

  1. Fornecer o link (o que mantém o corpo livre de links e parece menos promocional)
  2. Adicionar contexto que seria muito promocional no corpo do post

Regras do primeiro comentário:

  • Poste isto como a primeira resposta ao seu próprio post, imediatamente após ele ir ao ar
  • Mantenha abaixo de 100 palavras
  • Exemplo de formato: "Link para quem quiser conferir: [URL]; também estou à disposição para responder perguntas sobre [coisa técnica específica mencionada no post]."
  • Inclua o primeiro comentário apenas se o subreddit permitir autopromoção nos comentários
  • Se o subreddit tiver uma regra "Sem autopromoção", omita o link completamente

Passo 6: Autoavaliação

Verifique o rascunho antes de apresentá-lo:

Estrutura:

  • Título não excede 300 caracteres
  • Nenhum link aparece no corpo do post
  • Post abre em primeira pessoa (para posts de projeto/experiência)
  • Pelo menos um detalhe técnico específico ou número concreto incluído
  • Post combina com o tom dos posts populares observados neste subreddit (anotado no Passo 3)
  • Regras do subreddit do Passo 3 não são violadas

Detecção de clichês do Claude: verifique estas categorias de vocabulário e remova todas as ocorrências:

CategoriaPalavras a remover
Intensificadores de enchimentoincrivelmente, absolutamente, certamente, definitivamente, essencialmente, fundamentalmente, literalmente, particularmente, bastante, realmente, significativamente, simplesmente, verdadeiramente, finalmente, muito
Ressalvas de IADevo notar, vale a pena notar, é importante notar, como mencionado, como notei
Descritores de hyperevolucionário, poderoso, robusto, contínuo, inovador, melhor da classe, de ponta, inovador, notável
Abertura desnecessáriaEm conclusão, em resumo, para resumir, no geral, antes de tudo, por último mas não menos importante
Conectores desnecessáriosAlém disso, ademais, no entanto (no início da frase), portanto, por isso, consequentemente
Marcas de IAIsto garante que, Isto permite que, Isto ajuda a, Isto possibilita, mergulhar, utilizar, alavancar, fomentar

Se algum aparecer: substitua por um substantivo, verbo ou número específico. "Muito rápido" torna-se "executa em 12ms". "Ferramenta poderosa" torna-se o que ela realmente faz.

Verificação de frases de exclusão instantânea: estes padrões disparam filtros de spam do Reddit ou remoção por moderadores:

  • Qualquer frase que soe como anúncio ("Experimente [Produto] hoje", "Inscreva-se agora", "Comece grátis")
  • Frases que implicam que você não é o construtor ("Encontrei esta ferramenta incrível", "Descobri este produto fantástico")
  • Posse em primeira pessoa de usuários ("nossos usuários", "nossos clientes") em subreddits onde você não estabeleceu presença na comunidade
  • "Eu fiz X e você pode usar para..." seguido imediatamente por um link (estrutura promocional)
  • Superlativos sem qualificação ("a melhor maneira de...", "a única ferramenta que...")
  • Links externos no corpo do post (use apenas o primeiro comentário)

Se alguma frase de exclusão instantânea aparecer: revise a frase inteira, não apenas troque palavras.


Passo 7: Revisão Adversarial

Antes de apresentar o rascunho final, execute uma revisão com 3 personas. Cada persona lê o post e encontra UM problema específico, citando o texto exato que o desencadeia.

Persona 1: O Praticante Cético Esta pessoa está no r/{SUBREDDIT} há anos e já viu centenas de lançamentos de produtos disfarçados de posts. Sua leitura:

  • Alguma frase parece promocional, mesmo que não esteja vendendo explicitamente?
  • O post revela conhecimento genuíno dos problemas da comunidade, ou apenas fala sobre o produto?
  • Há alguma afirmação que faria um praticante revirar os olhos?

Indique a linha específica que eles sinalizariam e por quê.

Persona 2: O Moderador Esta pessoa aplica as regras obtidas no Passo 3. Sua leitura:

  • O post cumpre tecnicamente as regras do subreddit?
  • A proporção entre autopromoção e contribuição para a comunidade é aceitável?
  • Eles já teriam visto esta mesma estrutura de post removida antes?

Indique a regra específica que está em risco de violação, ou confirme que está limpo.

Persona 3: O Leitor Alvo Este é um membro da comunidade que não é construtor e corresponde ao perfil demográfico do subreddit. Sua leitura:

  • Eles votariam positivamente neste post mesmo que nunca usassem o produto?
  • Há algum aprendizado que possam aplicar mesmo se pularem o link no primeiro comentário?
  • A frase inicial os faz querer continuar lendo?

Indique a única coisa que os faria parar de ler, ou confirme que o post mantém sua atenção.

Depois que todas as três personas se manifestarem: aplique as correções necessárias. Se nenhuma persona encontrou um problema, indique "Revisão adversarial: limpa."


Passo 8: Postar via Composio (Opcional)

Se o Composio Reddit MCP estiver conectado e o usuário confirmar que deseja postar:

Use a ferramenta MCP reddit-composio REDDIT_CREATE_REDDIT_POST com:
- subreddit: {SUBREDDIT_SEM_r/}
- title: {TITULO}
- kind: "self"
- text: {CORPO}

Antes de postar, confirme com o usuário: "Pronto para postar em r/{SUBREDDIT}. Título do post: '{TITULO}. Posso prosseguir?"

Só prossiga após confirmação explícita.

Após postar:

  1. Anote a URL do post da resposta
  2. Se um primeiro comentário foi criado, poste-o imediatamente usando o mesmo MCP com o ID do post retornado

Se a postagem falhar (403, 429 ou outro erro): Apresente o rascunho para submissão manual. Informe ao usuário: "A postagem direta falhou (código de erro [erro]). Aqui está seu post para submissão manual. Copie e cole o título e o corpo em reddit.com/r/{SUBREDDIT}/submit."


Passo 9: Apresentar a Saída

## Post no Reddit: r/{SUBREDDIT}

### Título
{titulo}

### Corpo
{corpo}

### Primeiro Comentário (postar imediatamente depois)
{primeiro comentário, se aplicável}

---

### Notas de Submissão
- Tipo de post: {texto/link}
- Melhor horário para postar: {horários de pico para este subreddit: manhãs de dias úteis no horário dos EUA para a maioria dos subreddits de tecnologia}
- Após postar: Responda a todos os comentários na primeira hora: o engajamento inicial sinaliza qualidade para o algoritmo
- Nota sobre karma: {Se a conta for nova, observe que alguns subreddits exigem karma mínimo antes de postar}

Se o post já foi enviado via Composio, substitua o bloco de saída por:

Post enviado: {url_do_post_no_reddit}

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.

Habilidades Relacionadas