CommunityEscrita e Ediçãogithub.com

Noise to Blog

Transforma notas brutas, listas de tópicos, transcrições de voz ou threads de tweets em posts de blog polidos e prontos para publicação. Opcionalmente enriquece o conteúdo com pesquisa Tavily para adicionar dados de suporte e credibilidade às afirmações.

O que é Noise to Blog?

Noise to Blog é uma skill de agente de IA projetada para converter qualquer entrada desorganizada — como notas fragmentadas, transcrições de ditado, sequências de tweets ou rascunhos curtos — em um post de blog profissional e pronto para publicação. Ela é especialmente útil para desenvolvedores, criadores de conteúdo e profissionais que precisam transformar ideias brutas em artigos coerentes sem perder tempo com estruturação manual. A skill suporta os principais modelos de linguagem (Gemini, via chave de API) e plataformas de publicação (Ghost, dev.to, Substack, Hashnode). Seu fluxo de trabalho inclui detecção automática do tipo de entrada (notas, transcrição, etc.), seleção de estilo de post (tutorial técnico, estudo de caso, artigo de opinião ou texto explicativo), enriquecimento opcional com pesquisa Tavily para verificar fatos e adicionar fontes, e geração de um post seguindo regras rígidas de estilo: voz ativa, parágrafos curtos, sem jargões proibidos, sem dados inventados. Um passo de auto-QA integrado garante que o resultado final atenda a padrões editoriais antes da apresentação ao usuário.

Funciona com✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/noise2blog

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

Noise to Blog (Do Ruído ao Post)

Pegue qualquer entrada confusa (lista de tópicos, transcrições de voz, threads de tweets ou rascunhos curtos) e produza um post de blog polido e pronto para publicação. Cada afirmação tem origem no material de origem ou em pesquisa verificada pelo Tavily.


Regra crítica: NÃO INVENTE DETALHES. Cada afirmação, métrica e exemplo no post de blog deve vir da entrada bruta ou de um resultado de pesquisa do Tavily. Nunca fabrique dados, citações ou resultados.


Etapa 1: Verificação de Configuração

Confirme que as variáveis de ambiente necessárias estão definidas:

echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+definida}"
echo "TAVILY_API_KEY: ${TAVILY_API_KEY:-não definida, o enriquecimento Tavily será ignorado}"

Se GEMINI_API_KEY estiver faltando: Pare. Informe ao usuário: "GEMINI_API_KEY é obrigatório. Obtenha uma em aistudio.google.com → Obter chave de API. Adicione-a ao seu arquivo .env."

Se TAVILY_API_KEY estiver faltando: Continue. Anote que o enriquecimento Tavily será ignorado. O post de blog será baseado inteiramente no conteúdo fornecido. Isso é aceitável para histórias pessoais, tutoriais baseados em experiência ou artigos de opinião.

Confirme que a entrada está presente. O usuário deve fornecer um dos seguintes:

  • Texto colado (lista de tópicos, notas confusas, transcrição, thread de tweets, rascunho curto)
  • Uma URL para buscar

Se não houver entrada, pergunte: "Compartilhe suas notas confusas, lista de tópicos ou transcrição. Cole-os diretamente ou forneça uma URL para buscar a fonte."


Etapa 2: Ler e Analisar a Entrada

Se a entrada for uma URL: Busque o conteúdo da página usando WebFetch. Extraia: título, autor, data de publicação, todo o texto do corpo, estatísticas principais, listas numeradas, subtítulos, citações.

Se a entrada for texto colado: Leia diretamente. Identifique o tipo de entrada:

  • Lista de tópicos ou notas confusas: ideias fragmentadas, frases incompletas, fluxo de consciência
  • Transcrição de voz: conversacional, repetitiva, palavras de preenchimento (hum, é, tipo, sabe), frases divagantes
  • Thread de tweets: fragmentos curtos, @menções, hashtags, numeração "1/8"
  • Rascunho curto: estruturado, mas superficial, precisa de expansão e polimento

Ponto de verificação de QA: Declare antes de continuar:

  1. Tipo de entrada detectado
  2. Tese central ou argumento principal em uma frase
  3. Os 3-5 insights, fatos ou ideias mais fortes do conteúdo bruto
  4. Quaisquer afirmações que precisem de verificação externa (benchmarks, estatísticas, comparações de produtos, resultados de pesquisa)

Se você não conseguir identificar uma tese central, pergunte: "Qual é a coisa mais importante que você quer que os leitores levem deste post?"


Etapa 3: Escolher o Estilo do Post de Blog

Quatro estilos. Detecção automática a partir dos sinais do conteúdo. A substituição pelo usuário é sempre respeitada.

EstiloQuando usarSinais
Tutorial TécnicoGuia passo a passo, instruções, explicação de códigoEtapas numeradas, comandos, trechos de código, "como fazer" no conteúdo
Estudo de CasoHistória de antes/depois, registro de construção, lições aprendidasResultados específicos, cronogramas, jornada em primeira pessoa
Liderança de PensamentoOpinião, argumento, afirmação contraintuitiva"Eu acho", "o problema com X", posição contrária, enquadramento de debate
ExplicadorO que é X, por que importa, como funcionaFoco no conceito, muitas comparações, "a maioria das pessoas não sabe"

Lógica de detecção:

  • Conteúdo com etapas numeradas ou comandos → Tutorial Técnico
  • Conteúdo com antes/depois, métricas específicas ou arco narrativo → Estudo de Caso
  • Conteúdo que argumenta contra o senso comum ou faz uma forte afirmação de opinião → Liderança de Pensamento
  • Conteúdo que explica um conceito, ferramenta ou tendência para pessoas não familiarizadas → Explicador

Declare o estilo escolhido e a justificativa. Se for ambíguo, escolha um e anote a escolha.


Etapa 4: Enriqueça com Pesquisa Tavily

Pule esta etapa silenciosamente se TAVILY_API_KEY não estiver definida.

Pesquise evidências de apoio para afirmações no conteúdo bruto que possam se beneficiar de verificação ou dados. Bons candidatos:

  • Benchmarks de produtos ou números de desempenho
  • Estatísticas de mercado ou tendências do setor
  • Comparações técnicas ("X é mais rápido que Y")
  • Qualquer número que o usuário mencionou de memória, em vez de uma fonte citada

Execute uma pesquisa Tavily por afirmação que precise de verificação. Limite a no máximo 3 pesquisas para evitar excesso de fontes:

curl -s -X POST "https://api.tavily.com/search" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "'"$TAVILY_API_KEY"'",
    "query": "AFIRMAÇÃO_OU_TÓPICO_ESPECÍFICO",
    "search_depth": "advanced",
    "max_results": 5,
    "include_answer": true
  }'

Mantenha os resultados com score >= 0.65. Extraia: título, url, trecho de conteúdo.

Regras para usar os resultados do Tavily:

  • Use-os para apoiar ou verificar afirmações já presentes na entrada bruta. Nunca introduza novas afirmações a partir dos resultados da pesquisa.
  • Atribua fontes naturalmente no texto: "de acordo com [Fonte]", "dados de [X] mostram"
  • Se nenhum resultado do Tavily confirmar uma afirmação, deixe a afirmação não verificada em vez de substituir por um resultado não relacionado

Etapa 5: Gerar o Post de Blog

Leia references/blog-format.md na íntegra. Selecione o modelo correspondente em references/output-template.md. Internalize todas as regras antes de gerar.

Escreva a requisição Gemini em um arquivo temporário para lidar com caracteres especiais com segurança:

cat > /tmp/noise2blog-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "Você é um escritor de tecnologia que soa como uma pessoa real. Regras: Apenas voz ativa. Parágrafos curtos, de 1 a 3 linhas no máximo, depois uma linha em branco. Use contrações naturalmente (não, vou, é, não posso, você é, eles são). Sem travessões — use uma vírgula ou ponto final. Sem ponto e vírgula. Cada frase precisa de um detalhe concreto: um número, um nome de ferramenta, um nome de arquivo, um comando, um resultado. Sem frases de preenchimento: sem 'No mundo atual em rápida evolução', sem 'Vamos mergulhar', sem 'Vale a pena notar', sem 'Para concluir', sem 'Espero que tenha sido útil'. Sem palavras proibidas: incrível, impressionante, alavancar, sinergizar, revolucionário, inovador, transformador, disruptivo, desbloquear, abrangente, acionável, crucial, fundamental. O título não deve começar com Eu, Meu ou Nós. Abra com um parágrafo de gancho que não anuncie o tópico. Termine com algo acionável. Não invente afirmações, métricas ou resultados que não estejam presentes no material de origem."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "CONTEÚDO_BRUTO_E_INSTRUÇÕES_AQUI"
    }]
  }],
  "generationConfig": {
    "temperature": 0.7,
    "maxOutputTokens": 4096
  }
}
ENDJSON

Substitua CONTEÚDO_BRUTO_E_INSTRUÇÕES_AQUI por:

  • O conteúdo bruto de entrada
  • As instruções de estilo e estrutura do post de blog (do modelo selecionado)
  • Quaisquer resultados de pesquisa Tavily coletados na Etapa 4
  • Alvo de palavras: 800 a 1.800 palavras

Faça a requisição:

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/noise2blog-request.json \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"

Produza também:

  • (B) Uma meta descrição de 1 a 2 frases para preview de SEO
  • (C) Um título alternativo usando um ângulo de gancho diferente

Etapa 6: Auto-QA

Execute cada verificação e corrija violações antes de apresentar:

  • O título não começa com "Eu", "Meu" ou "Nós"
  • O título é específico e coloquial (não "Um Guia Abrangente para X" ou "O Guia Definitivo para Y")
  • O parágrafo de abertura prende a atenção sem anunciar o tópico ("Neste post eu vou...")
  • Sem travessões em nenhuma linha
  • Sem ponto e vírgula
  • Nenhum parágrafo com mais de 3 linhas antes de uma linha em branco
  • Sem palavras proibidas: incrível, impressionante, alavancar, sinergizar, revolucionário, inovador, transformador, disruptivo, desbloquear, abrangente, acionável, crucial, fundamental
  • Nenhum dado inventado: toda afirmação tem origem na entrada bruta ou em um resultado Tavily
  • O post não termina com "Para concluir", "Em resumo" ou "Espero que tenha ajudado"
  • 800 a 1.800 palavras (declare a contagem de palavras)
  • Fluxo lógico: abertura → problema/contexto → seções do corpo → encerramento acionável

Corrija qualquer violação antes de apresentar. Declare a contagem final de palavras.


Etapa 7: Saída

Apresente o post de blog completo em um bloco de código.

Apresente a meta descrição e o título alternativo abaixo do post principal.

Pergunte: "Pronto para copiar para seu editor? Se for publicar em uma plataforma específica, me avise e posso formatar o frontmatter."

Solicitação específica de plataforma:

Ghost:

---
title: "TÍTULO_DO_POST"
date: YYYY-MM-DD
tags: [tag1, tag2]
status: draft
---

dev.to:

---
title: TÍTULO_DO_POST
description: META_DESCRIÇÃO
tags: [tag1, tag2, tag3]
published: false
---

Substack: Apresente como Markdown simples. O editor do Substack importa markdown diretamente.

Hashnode:

---
title: TÍTULO_DO_POST
subtitle: META_DESCRIÇÃO
tags: [tag1, tag2]
---

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