CommunityImagemgithub.com

carrossel

Cria um carrossel de imagens no estilo Fringe Lines (Instagram/LinkedIn, slides PNG 1080x1350 + PDF) — slides de fotos com manchetes condensadas em maiúsculas e palavras de destaque, slides somente com texto em fonte grande, slides de gráficos/capturas de tela, slides de gráficos explicativos e um CTA de acompanhamento. Use quando for solicitado um carrossel, post de slides ou post 'deslize' a partir de um episódio ou tópico.

O que é carrossel?

Esta skill gera um carrossel de imagens no estilo 'Fringe Lines', otimizado para Instagram (1080x1350) e LinkedIn (formato documento PDF). Ela combina slides de fotografia com manchetes em caixa alta condensada e palavras de destaque em cor de acento, slides somente com texto em tipografia grande, slides de gráficos e capturas de tela, slides de gráficos explicativos e um slide final de call-to-action. A skill é ideal para transformar episódios de podcast ou tópicos específicos em posts de carrossel que geram engajamento. Ela suporta os tipos de slide: 'cover', 'photo', 'text', 'graphic', 'cta' e 'image', e é construída usando Remotion para renderização de slides estáticos e Python para o pipeline de build. O fluxo de trabalho inclui: planejamento da história em 7–10 slides, criação de visuais sem rostos de pessoas (apenas texto, gráficos próprios e imagens não-pessoais), escrita do arquivo 'carousel.json' com a estrutura de slides, renderização via script Python, e verificação de qualidade. A skill também oferece suporte a postagens no YouTube com formato quadrado (1080x1080) usando a flag '--youtube'.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qdevery/fringe-lines-video/tree/main/.agents/skills/carousel

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

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

Documentação

Carrossel de imagens

O estilo vem dos carrosséis de referência:

  • Sem apresentadores: carrosséis nunca usam imagens ou fotos dos apresentadores. Eles usam apenas texto, gráficos que construímos e imagens não-pessoais, como gráficos e capturas de tela.
  • Slides de foto: imagem em sangria total escurecida na parte inferior, com uma manchete condensada em CAIXA ALTA pesada. As palavras-chave estão na cor de acento.
  • Capa: uma regra fina com um identificador da marca.
  • Slides somente texto: gradiente escuro, título na cor de acento, subtítulo em branco e negrito, corpo de texto regular. O tipo é deliberadamente maior que o de referência (título 92, subtítulo 60, corpo 52 px a 1080 de largura).

Peças:

  • Template: pipeline/remotion/src/Carousel.tsx, a composição Carousel do Remotion, renderizada como imagens estáticas.
  • Build: pipeline/build_carousel.py.
  • Cada carrossel vive em sua própria pasta carousels/<slug>/ com um carousel.json e uma subpasta images/.
  • Saída: out/carousels/<slug>/01.png … mais <slug>.pdf, que está pronto para upload como um post de documento do LinkedIn.

1. Planeje a história (7–10 slides)

  1. Capa: uma promessa ou uma lacuna de curiosidade, por exemplo, "5 sinais de IA desta semana que a maioria das equipes está perdendo" ou "Boas notícias de todo o mundo sobre as quais ninguém está falando". Escreva em 8–14 palavras.
  2. Uma ideia por slide: um fato, uma conclusão ou um passo. A manchete deve fazer sentido sem legenda.
  3. Misture os tipos de slide. Não coloque três fotos ou três slides de texto em sequência. Padrão típico: capa → foto → foto/gráfico → gráfico → texto → foto → texto → CTA.
  4. CTA no final: "Siga Fringe Lines", "Salve isto para sua próxima reunião de planejamento".

Destaques: envolva 1–4 palavras por manchete em *…*, geralmente o assunto ou o número. Use no máximo dois grupos de destaque por slide.

2. Visuais: sem apresentadores, nunca

Os carrosséis nunca mostram os apresentadores ou convidados. Isso significa sem quadros de câmera, sem fotos de rosto e sem "foto da pessoa falando", mesmo que desfocada. Cada slide é construído a partir de texto, gráficos que criamos e imagens não-pessoais.

As imagens vão em carousels/<slug>/images/. Fontes, em ordem de preferência:

  • Gráficos que construímos:
    • slides graphic (estatística / pessoas / linhas / citação / manchete / lista de Graphics.tsx);
    • uma cover tipográfica, que não precisa de imagem;
    • uma cover com um cartão graphic;
    • um infográfico PNG finalizado colocado como slide image (veja a skill de infográfico).
  • Compartilhamentos de tela do episódio: gráficos, slides e telas de produtos, nunca a câmera.
    • Capture com ffmpeg -ss <seg> -i "<raw>/Tela da Quinn-3.mp4" -frames:v 1 -vf "crop=iw:ih*0.895:0:ih*0.105" images/grafico.png; o corte remove a borda do navegador.
    • Corte para a parte relevante, mostre com fit: "contain" e credite o publicador original do gráfico.
    • Para um post comercial, considere redesenhar gráficos de terceiros como nossos próprios gráficos lines ou stat a partir dos números subjacentes.
  • Imagens não-pessoais do usuário: capturas de tela de produtos, logotipos, fotos de lugares ou objetos que eles fornecerem.
  • Imagens geradas por IA ou de banco de imagens: apenas quando o usuário solicitar.
    • Sem pessoas reais (incluindo os apresentadores) e sem "fotos" falsas de eventos reais.
    • Credite imagens de banco de imagens e use apenas as licenciadas.

Citações são aceitáveis como texto (gráfico quote, atribuído por nome). Apenas não as combine com a imagem do falante.

3. Escreva carousels/<slug>/carousel.json

{
  "brand": "Fringe Lines",
  "accent": "#FF5A1F",
  "slides": [
    {"type": "cover", "kicker": "Fringe Lines · 30 Out",
     "headline": "*5 sinais de IA* desta semana que a maioria das equipes está perdendo"},
    {"type": "cover", "kicker": "Fringe Lines", "headline": "Receita subiu. *Headcount estável.*",
     "graphic": {"type": "lines", "series": [{"label": "Receita", "shape": "up"}, {"label": "Headcount", "shape": "flat"}]}},
    {"type": "photo", "image": "images/cavalos.jpg", "focus": [0.4, 0.4], "credit": "Foto: …",
     "headline": "*Cavalos de Przewalski* retornaram à natureza após décadas de *conservação*"},
    {"type": "photo", "image": "images/grafico.png", "fit": "contain", "credit": "Gráfico: …",
     "headline": "A *receita da Microsoft continuou subindo* enquanto o headcount ficou estável"},
    {"type": "graphic", "headline": "S-1 da Anthropic, *em um número*",
     "graphic": {"type": "stat", "kicker": "Retenção de receita líquida", "value": 900, "suffix": "%", "label": "…"}},
    {"type": "text", "number": "04", "title": "Faça uma Revisão Pós-Ação",
     "subtitle": "O Exército dos EUA encerra todo exercício com quatro perguntas:",
     "body": "O que deveria ter acontecido, o que realmente aconteceu, por que e o que mudar na próxima vez."},
    {"type": "cta", "headline": "Siga *Fringe Lines*", "sub": "Novos episódios toda semana"}
  ]
}
tipocamposnotas
coverheadline, kicker?, graphic?, image?, focus?O kicker fica entre duas regras; "SWIPE →" no canto inferior direito. Sem image: uma capa escura com brilho de acento que é apenas texto (manchete maior) ou tem um cartão graphic acima da manchete. image é apenas para fotos não-pessoais
photoimage, focus?, fit?, headline, credit?Sem pessoas. focus = [x, y] 0–1, a parte da imagem a manter. Use fit: "contain" para gráficos e capturas de tela (imagem inteira sobre uma cópia desfocada de si mesma)
texttitle, subtitle?, body?, number?Tipo grande. O corpo do texto deve ter 20–45 palavras; texto mais longo encolhe ligeiramente, então divida-o em vários slides
graphicgraphic, headline?, credit?Qualquer tipo de Graphics.tsx, mostrado totalmente animado; manchete serifada. Para números reais use bars: {"type":"bars","kicker","signed":true,"suffix":"%","rows":[{"label","value","from?","note?","hi?"}]} (negativos crescem para a esquerda em azul; linhas hi em acento). Prefira redesenhar gráficos de terceiros como bars em vez de capturas de tela
ctaheadline, sub?Fundo tinta, logotipo da marca
imageimageUma imagem 4:5 finalizada (por exemplo, um PNG de infográfico) mostrada como está
  • Cor de acento: accent padrão é laranja Fringe Lines. "#E2A85A" dá o visual dourado da referência.
  • Números dos slides: slides de foto e texto mostram n/total no canto superior direito automaticamente.

Honestidade:

  • Fatos e números devem vir do episódio ou de uma fonte que você possa nomear. Coloque a fonte em credit.
  • Escreva "conforme citado no programa" quando os apresentadores não nomearam a fonte.
  • Não invente estatísticas. Se um número precisar de verificação, informe o usuário.

4. Renderize

~/.shorts-skill/bin/python pipeline/build_carousel.py carousels/<slug>

Isso leva cerca de 30–60 s para 8–10 slides e escreve PNGs mais um PDF em out/carousels/<slug>/.

Posts do YouTube: adicione --youtube para renderizar quadrados 1080×1080 em out/carousels/<slug>-youtube/. O YouTube mostra imagens de post em formato quadrado, então slides 4:5 são cortados. O mesmo carousel.json funciona; o template v1 ajusta seus layouts para o quadrado. Ainda não suportado para "template": "v2".

5. QA

Faça uma folha de contato e observe-a:

ffmpeg -v error -y -pattern_type glob -i "out/carousels/<slug>/*.png" -vf "scale=360:-1,tile=4x3" -frames:v 1 /tmp/folha.png

Verifique:

  • Nenhum slide mostra um apresentador, convidado ou qualquer pessoa real.
  • Nenhuma manchete ultrapassa 5 linhas ou colide com o crédito.
  • Rostos e assuntos não são cortados. Ajuste focus se estiverem.
  • Gráficos são legíveis. Use fit: "contain" e corte a captura de tela mais apertado se necessário.
  • Destaques aparecem como cor, nunca como * literal.
  • Slides de texto não têm palavra órfã na última linha. Reformule ou divida se tiverem.

Relate ao usuário:

  • a lista de slides;
  • de onde cada imagem veio (compartilhamento de tela, fornecida ou construída por nós);
  • qualquer número que precise de verificação.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

editorial-short

Make a Fringe Lines vertical short in the "editorial" style (paper background, speaker that morphs between full-bleed / card / round PiP, explainer graphics, word-by-word serif captions, hook + end card, SFX). Use when asked to make, restyle or fix a short from an episode.

engaging-monologue

Make a 16:9 FringeLines "engaging monologue" video from a solo talking-head take — jump cuts with punch-ins, the speaker shrinking into a portrait picture-in-picture while serif kinetic text, diagrams (pyramid stack, compare, roadmap, steps, big stat) and b-roll cards build on a paper canvas, plus callout cards, lower thirds, chips, a CTA pill and a green end card, all synced word by word to the speech. Use for YouTube explainers, solo commentary, newsletter-to-video and "one idea, told well" pieces.

infographic

Make a single-image editorial infographic (1080x1350) that explains one idea at a glance — two-tone headline, one-sentence dek, a hero visual with 2–4 numbered callouts and leader lines, an optional side note, a three-column "why it matters" row with icons, byline and sources. Use for "explain X in one graphic" posts about a company move, a framework, an architecture or a trend; the PNG can also be a carousel slide.

podcast-intro

Build the cold open for a long-form Fringe Lines episode — a 35–60 s highlight reel of the episode's best lines with explainer-graphic cutaways, keyword captions, whip transitions + SFX, ending on a title card with the topic list. Use when making or revising the intro of a full episode.

Habilidades Relacionadas