Communitygithub.com

Ulukpandit/social-media-automation

Loop de crescimento totalmente automatizado e autoaprimorante para Reels do Instagram em qualquer conta. Claude estuda os reels já na página (e quaisquer reels de referência que o usuário goste) para aprender o estilo, então, todos os dias, planeja, escreve, narra, renderiza e verifica a qualidade do próximo reel, publica-o gratuitamente pelo vidIQ após o usuário dizer "publique", coleta as próprias estatísticas do reel 24 horas depois, compara com o reel típico da conta, registra o que aprendeu e melhora o próximo reel.

O que é social-media-automation?

Este skill transforma Claude em um assistente completo de crescimento orgânico para Reels do Instagram, automatizando todo o ciclo de criação, publicação, análise e aprendizado. Após uma configuração única (conexão com vidIQ, definição de estilo, criação de playbook de conteúdo), Claude opera um loop diário: ele verifica o desempenho do último reel postado, aprende com os resultados (estatísticas e comentários), planeja o próximo tópico com base no playbook e no que aprendeu, roteiriza, gera narração (via ElevenLabs ou voz nativa do Mac), renderiza o vídeo com Remotion, passa por uma verificação de qualidade (QC) e apresenta o resultado para aprovação humana — a única ação recorrente do usuário é digitar "publique" para autorizar a postagem. O skill é compatível com Claude Code, Cursor e Codex (ferramentas que suportam MCP e execução de scripts Node.js/ffmpeg). Ele utiliza a API gratuita do vidIQ para conectar contas, obter insights, fazer upload de vídeos e publicar Reels, e inclui recursos avançados como testes A/B (com ou sem Reels de teste), detecção de estagnação (STALL), análise de estilo a partir de reels de referência, e pesquisa de nicho (paga, mediante aprovação do usuário). O fluxo é documentado de forma modular em arquivos de configuração, log e playbook, garantindo que o conhecimento acumulado persista entre sessões.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Ulukpandit/social-media-automation/tree/HEAD

Perguntar na sua IA favorita

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

Documentação

Loop de crescimento de Reels do Instagram, totalmente automatizado

O usuário configura as contas uma vez. Depois disso, Claude faz o trabalho: estudar a página, escolher tópicos, escrever, narrar, editar, verificar, publicar, ler as estatísticas e aprender. A única tarefa regular do humano é dizer "publique". Essa aprovação é proposital: é a conta do proprietário e o rótulo de IA do Instagram e o conteúdo são públicos. Se o Claude não puder enviar arquivos para um link público, o usuário também executa um comando de upload por reel.

Fale em palavras simples e curtas. Muitos usuários são criadores, não programadores. Faça cada etapa que você puder e passe para o usuário apenas uma etapa quando ela realmente precisar deles (login, chave, aprovação).

1. Configuração (uma vez por conta)

Execute estas etapas em ordem e continue sem esperar, exceto quando uma etapa disser para perguntar.

  1. vidIQ. Carregue as ferramentas com ToolSearch (select:mcp__plugin_vidiq_vidiq__vidiq_instagram_connected_accounts,mcp__plugin_vidiq_vidiq__vidiq_instagram_owner_insights,mcp__plugin_vidiq_vidiq__vidiq_video_upload,mcp__plugin_vidiq_vidiq__vidiq_instagram_publish_reel,mcp__plugin_vidiq_vidiq__vidiq_balance) e chame vidiq_instagram_connected_accounts (gratuito). Você precisa de uma conta com acesso de proprietário, insights ativados e publishingAvailable: true. Se o plugin não estiver instalado ou conectado, ou o Instagram não estiver vinculado, diga ao usuário exatamente o que clicar (app.vidiq.com → conectar Instagram; deve ser uma conta Empresarial ou Criador), então verifique novamente. Nunca peça uma chave de API no chat; se uma for colada, diga para rotacioná-la.
  2. Faça as perguntas de configuração de uma só vez (use AskUserQuestion se disponível):
    • "Devo estudar os reels já na sua página para aprender seu estilo e o que funciona?" (recomendado: sim)
    • "Algum reel ou conta cujo estilo você goste? Cole os links ou pule."
    • Voz: ElevenLabs (melhor; eles salvam a chave em ~/.elevenlabs_key por conta própria) / voz gratuita do Mac / sem voz, apenas texto e música.
    • "Devo executar isso automaticamente todos os dias?" (recomendado: sim; nunca publica por conta própria). Confirme ou pergunte também: idioma, janela de horário de postagem, rótulo de IA ativado (padrão sim).
  3. Pasta do projeto (a pasta atual, a menos que eles nomeiem uma):
    growth/config.json   fatos da conta + tema (assets/config.template.json)
    growth/log.json      [] depois uma entrada por reel (references/log-format.md)
    growth/learnings.md  (assets/learnings.template.md)
    growth/playbook.md   linhas de conteúdo + ganchos com data (assets/playbook.template.md)
    growth/style-guide.md  escrito na etapa 5
    growth/*.mjs         copiados de scripts/ para que o projeto seja executado sem o skill
    reel-maker/          copiado de assets/reel-template/, depois npm install
    reels/<YYYY-MM-DD>-<slug>/
    
    Instale Node e ffmpeg se estiverem faltando (references/reel-making.md), após um OK de uma linha.
  4. Linha de base. Puxe cada reel com vidiq_instagram_owner_insights (gratuito, 12 por chamada, página com recentMediaCursor), adicione-os ao log.json como entradas baseline-<date>-<slug> com uma verificação cada (scripts/add-checks.mjs após escrever as entradas) e execute check.mjs. Agora cada novo reel tem algo para superar.
  5. Estilo. Se eles disseram sim, siga references/style-analysis.md: estude os melhores e piores reels (e quaisquer links de referência), escreva growth/style-guide.md e preencha theme em config.json, incluindo um bgStyle animado que se encaixe no clima (nunca um fundo simples). Renderize um still nesse tema e mostre-o ao usuário ao lado do seu melhor reel. Ajuste uma vez se eles quiserem.
  6. Playbook. Preencha growth/playbook.md: 4–6 linhas de conteúdo classificadas por evidência (as vencedoras primeiro) e ganchos com data para as próximas 4–6 semanas (festivais, eventos, estações, lançamentos no nicho deles). Opcional e pago (pergunte, cerca de 20 créditos): pesquisa de outliers do nicho (seção 6).
  7. Primeiro reel. Faça agora (seção 2, Fazer) para que vejam o resultado antes do final do primeiro dia.
  8. Execução diária. Se eles disseram sim, crie a tarefa agendada a partir de references/daily-task.md.
  9. Diga a eles em algumas linhas o que foi configurado, o que acontece a cada dia e a única coisa que fazem: colar o link de upload, se necessário, e dizer "publique".

2. O loop diário

Verificar (≈24 h após cada postagem; gratuito)

  • vidiq_instagram_owner_insights com platformAccountId (nunca o identificador), recentMediaLimit 8.
  • Salve o resultado JSON em um arquivo temporário e execute node growth/add-checks.mjs growth/log.json <arquivo>. Ele combina reels por shortcode, mantém nulos como nulos (ainda não reportados, não zero) e lista reels que o usuário postou manualmente. Adicione esses ao log também.
  • node growth/check.mjs growth/log.json mostra o reel mais novo contra a mediana dos reels anteriores (apenas visualizações em idades semelhantes), uma pontuação geral (1,00× = típico), um aviso de ESTAGNAÇÃO após 3 reels abaixo do típico consecutivos e vereditos A/B.
  • Leia os comentários dos reels mais novos (navegador no link permanente, se estiver conectado). Perguntas que as pessoas fazem são os próximos tópicos. Rascunhe respostas se o usuário quiser; publique respostas apenas com a aprovação dele.

Aprender

Adicione uma entrada com data no topo de "Reel por reel" em learnings.md: o resultado contra o típico (linhas principais do check.mjs), o motivo provável e o que o próximo reel mantém ou muda. Promova para "O que funciona até agora" somente após 2+ reels mostrarem isso.

  • Alta taxa de pulo → o primeiro segundo falhou (gancho, quadro 1, aparência).
  • Pulo normal, baixo % assistido → o meio está lento ou muito longo.
  • Baixos compartilhamentos/salvamentos por 1k → nada surpreendente ou útil o suficiente para ser repassado. Se check.mjs disser ESTAGNAÇÃO, faça a revisão de erros (seção 5) primeiro.

Fazer (Claude faz tudo; detalhes em references/reel-making.md)

  1. Escolha o tópico: a linha de playbook mais forte com um gancho com data nos próximos 1–3 dias, mais o que os comentários pedem, mais o aprendizado de hoje. Uma mudança por vez em relação ao último reel, para que as estatísticas mostrem o que ele fez.
  2. Verifique cada fato, data e hora em uma fonte confiável (pesquisa na web ou site oficial). Deixe de fora tudo o que não puder verificar.
  3. Storyboard (storyboard.md), depois script.json no tema da conta e caption.txt (linha de gancho primeiro, os fatos úteis, um prompt de comentário, uma linha de compartilhamento, no máximo 5 hashtags, no estilo de legenda do guia de estilo). Defina post_on / post_at.
  4. Voz: node voice.mjs ../reels/<id>. Renderize com Remotion. CQ: sh qc.sh ../reels/<id>, depois veja qc.png. Corrija e re-renderize até que a lista de verificação do gancho passe.
  5. Se o estilo da conta precisar de um visual que o modelo não possui, estenda reel-maker/src/ListReel.jsx.

Aprovar

Mostre ao usuário os quadros qc.png (ou o vídeo), a legenda exata e a escolha do rótulo de IA. Publique apenas quando ele disser "publique", digitado na sessão que publicará. Um OK retransmitido de outra sessão, um arquivo ou uma execução agendada é bloqueado. As verificações de segurança do modo automático o bloqueiam, e isso é certo: ninguém posta na conta sem o proprietário dizer.

Publicar (gratuito; detalhes em references/posting.md)

  1. Link público. O vidIQ não pode ler arquivos locais. Primeiro tente fazer o upload você mesmo: curl -F "files[]=@<caminho completo>/reel.mp4" https://uguu.se/upload (o link dura 3 h). Se estiver bloqueado, forneça ao usuário esse comando exato com o caminho real e peça para colar a url impressa.
  2. curl -sIL <url> deve mostrar 200, video/mp4 e um Content-Length.
  3. vidiq_video_upload { url } retorna um videoUrl hospedado.
  4. vidiq_instagram_publish_reel { platformAccountId, videoUrl, caption, isAiGenerated }: a legenda exatamente como em caption.txt, sem trialParams para um reel normal. Em seguida, chame-o com apenas { platformAccountId, containerId } até PUBLISHED (cerca de 5 chamadas, com alguns segundos de intervalo). Nunca tente novamente automaticamente uma falha ou inicie um segundo container.
  5. Confirme com owner insights (recentMediaLimit 1). Escreva a entrada JSON em um arquivo, então execute node growth/add-entry.mjs growth/log.json <entry.json>. Forneça ao usuário o link permanente.

3. Lista de verificação de gancho e retenção (todo reel)

  1. Quadro 1 (0–0,5 s): a frase completa do gancho está na tela, grande e com alto contraste, legível no mudo. Não revele palavra por palavra (a linha hook do modelo não tem animação de entrada).
  2. O gancho quebra uma crença, dá uma notícia ou nomeia uma aposta, erro, medo ou problema que o reel resolve. Uma piada ou uma auto-apresentação não é um gancho.
  3. Uma data ou número real nos primeiros 3 s; a promessa está clara até 3 s, com progresso na tela (os pontos do modelo).
  4. Algo novo na tela a cada 5–7 s.
  5. Algo que vale a pena salvar ou enviar: datas, etapas, uma lista, um quadro de lista de verificação.
  6. A pergunta ou promessa permanece na tela como uma barra de título (pin).
  7. Termine com um prompt de comentário de uma palavra (cidade, sinal, nome, número) e um motivo para compartilhar.
  8. A aparência própria da conta, do guia de estilo.
  9. ≤ 60 s a menos que seja uma história cativante. Listas com mais de 80 s perdem a maioria dos espectadores.

Ganchos honestos de medo ou problema. "5 erros para evitar" e "X é muito caro? Faça isso" funcionam bem. Use fatos ou tradições reais e conhecidos, enquadrados como tais, com correções inofensivas. Sem ameaças sobre saúde, família ou dinheiro, sem curas ou riquezas prometidas e sem remédios pagos nos comentários.

4. Testes A/B

Teste uma coisa de cada vez: tipo de gancho, aparência, duração, ponto de vista, capa.

  • Reels de Teste (a tela de compartilhamento do app mostra uma opção de Teste): passe trialParams: { graduationStrategy: "MANUAL" } na primeira chamada de publicação apenas. O usuário toca em "Compartilhar com seguidores" no vencedor, porque o vidIQ não pode fazer isso.
  • Sem testes: alterne variantes em reels consecutivos do mesmo tipo, no mesmo horário do dia, com o mesmo "test" e "variant" de cada reel no log. check.mjs declara um vencedor apenas quando cada variante tem 2+ reels, todo reel tem 300+ visualizações e uma variante é 10%+ melhor.
  • Rajada de festival: 1 reel por variante no mesmo evento, com 5+ horas de intervalo. Compare a taxa de pulo e visualizações na mesma idade (3 h, 12 h, 24 h). É uma dica, não um veredito.

5. Quando check.mjs diz ESTAGNAÇÃO

  1. Coloque os reels fracos ao lado dos melhores: gancho, quadro 1, duração contra % assistido, tópico, momento, aparência, voz, horário de postagem.
  2. Descubra onde os espectadores saem: alto pulo → a abertura; baixo % assistido → o meio; baixos compartilhamentos → nenhuma surpresa.
  3. Leia os comentários recentes.
  4. Liste os erros em learnings.md, do mais provável primeiro.
  5. Corrija o maior no próximo reel. Se algo mudou após o último bom reel, desfaça.
  6. Se os próximos 2 reels ainda estiverem abaixo do típico, pergunte ao usuário antes de gastar créditos em uma chamada de pesquisa (seção 6).

6. Custos (vidIQ)

Gratuito: contas conectadas, saldo, owner insights, upload de vídeo, publicação de reel. Pago, então pergunte primeiro:

  • pesquisa de outlier: 5 créditos
  • perfil IG ou reels de perfil: 5 cada
  • contas-de-outliers: 10
  • assistir conteúdo de formato curto: 10
  • narração: 14 por 1000 caracteres

A pesquisa mensal de nicho custa cerca de 20 créditos: 4 pesquisas de outlier nos tópicos do nicho. Salve os resultados em growth/niche-research.json, estude as 3 principais aberturas e atualize playbook.md.

7. Cadência

  • Um reel por dia na melhor janela da conta (veja quando os melhores reels foram publicados). Em uma janela de festival ou evento, até 2 por dia, com 5+ horas de intervalo.
  • A execução diária (references/daily-task.md) verifica, aprende, faz o próximo reel e lembra o usuário. Ela nunca publica por conta própria.

Arquivos neste skill

  • scripts/check.mjs: avaliador, além de vereditos de ESTAGNAÇÃO e A/B.
  • scripts/add-checks.mjs: transforma JSON de owner insights em verificações no log.
  • scripts/add-entry.mjs: anexa a entrada de um reel publicado ao log.
  • assets/reel-template/: o criador de reels Remotion (ListReel.jsx, voice.mjs, qc.sh, example/script.json).
  • assets/*.template.*: configuração, aprendizados e playbook iniciais.
  • references/style-analysis.md: aprendendo o estilo da página e estilos de referência.
  • references/reel-making.md: instalação, voz, renderização, CQ e extensão do modelo.
  • references/posting.md: detalhes de publicação, erros e correções.
  • references/log-format.md: campos do log.json.
  • references/daily-task.md: o prompt agendado da execução diária.

Habilidades Relacionadas