Communitygithub.com

Varnan-Tech/opendirectory

Gera um slide deck HTML profissional a partir de um resumo ou conteúdo. Produz uma apresentação em arquivo único + PDF opcional. Suporta 13 tipos de layout e 8 presets de estilo.

O que é opendirectory?

Esta skill de agente de IA é um gerador profissional de apresentações em HTML a partir de entradas simples, como resumos, notas ou arquivos existentes. O resultado é um único arquivo HTML auto-contido, que abre em qualquer navegador sem necessidade de ferramentas de build, além de suporte opcional para exportação em PDF e deploy em URL. A ferramenta é indicada para a criação de pitch decks, apresentações de vendas, palestras ou apresentações internas, oferecendo 13 tipos de layout pré-definidos e 8 presets de estilo (como midnight-editorial, clean-slate e brutalist). O fluxo de trabalho é estruturado em etapas: na primeira, o agente coleta informações básicas (propósito, público e tópico); na segunda, detalhes de conteúdo, design e formato; depois planeja a sequência de slides, define uma estrutura, gera o conteúdo textual e, por fim, cria o HTML. Regras críticas incluem garantir que cada slide caiba em 100vh, sem scroll, usar `clamp()` para tamanhos de fonte e espaçamento, evitar palavras proibidas e gerar um slide inesquecível com máximo peso visual. A skill referencia arquivos locais de design, layout, presets de estilo e animação para garantir consistência profissional.

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

Perguntar na sua IA favorita

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

Documentação

Slide Deck Gráfico

Gere um slide deck HTML profissional a partir de um resumo, notas de conteúdo ou um arquivo existente. A saída é um único arquivo HTML auto-contido — abre em qualquer navegador, sem ferramentas de build.


Regras críticas — não negociáveis:

  1. Cada slide DEVE caber em 100vh. Sem rolagem dentro dos slides. Se o conteúdo transbordar → divida em dois slides.
  2. TODOS os tamanhos de fonte e espaçamento DEVEM usar clamp(). Nunca px/rem fixos em elementos que escalam.
  3. HTML auto-contido único: todo CSS/JS inline. Zero dependências externas, exceto link CDN de fontes.
  4. Nunca despeje HTML no chat. Salve em arquivo, mostre apenas o resumo.
  5. Sem estética genérica de IA — verifique a lista 'NÃO USAR' em references/style-presets.md.

Passo 1: Coleta de Resumo

Preciso de três coisas para começar. Se todas as três estiverem presentes na mensagem: pule para o Passo 2.

Se alguma estiver faltando, pergunte exatamente:

"Para começar, preciso de três coisas:

  1. Propósito — para que serve este deck? (pitch de investidor / chamada de vendas / palestra / apresentação interna / onboarding / outro)
  2. Público — quem o verá? (VCs, prospects, sua equipe, executivos, sala de conferência, LinkedIn)
  3. Tópico ou conteúdo — cole notas, uma URL, uma breve descrição ou faça upload de um arquivo"

Aguarde os três antes de continuar.


Passo 2: Coleta Completa

Faça todas as perguntas em uma mensagem, agrupadas por categoria. O usuário pode pular qualquer uma — os padrões se aplicam.

"Algumas perguntas antes de começar:

Conteúdo

  1. Mensagem-chave — uma única frase que o público deve lembrar ao sair
  2. Quantidade de slides — Curta (5-10) / Média (10-20) / Longa (20+)?
  3. Fonte do conteúdo — Conteúdo totalmente pronto / Notas brutas (estruturarei) / Apenas tópico (redigirei)?
  4. Recursos existentes — Alguma imagem, captura de tela ou logotipo para incluir? (sim + caminhos / não)

Design 5. Estilo — midnight-editorial / matt-gray / clean-slate / brutalist / mint-pixel-corporate / product-minimal / magazine-red / soft-cloud / "mostrar opções" 6. Proporção — 16:9 (1920×1080, padrão) / 1:1 (1080×1080, LinkedIn) 7. Edição inline — o texto deve ser editável no navegador após exportação? (Sim / Não)

Saída 8. Formato de saída — Apenas HTML / HTML + PDF / HTML + PDF + implantar em URL 9. Nome do deck — slug para nomeação de arquivo/pasta (ex.: "q2-investor-pitch"); derivarei se for pulado"

Padrões se pulados:

PerguntaPadrão
Mensagem-chavederivada do propósito + tópico
Quantidade de slides12
Fonte do conteúdoapenas tópico
Recursos existentesnenhum
Estiloclean-slate
Proporção16:9
Edição inlineNão
Formato de saídaHTML + PDF
Nome do deckderivado do slug do tópico

Se estilo = "mostrar opções": Gere 3 pré-visualizações HTML de slide único (uma para cada 3 presets de estilo diferentes que se encaixem no propósito do deck). Salve em .claude-design/previews/style-a.html, style-b.html, style-c.html. Abra cada: open .claude-design/previews/style-a.html etc. Peça ao usuário para escolher antes do Passo 3.


Passo 2.5: Direção de Design Interna (não mostrada ao usuário)

Das respostas do Passo 2, determine antes do Passo 3:

Caráter visual (derivado do estilo, ou inferido se não especificado):

  • midnight-editorial ou magazine-red → dark-editorial
  • clean-slate ou product-minimal → light-minimal
  • matt-gray → neutral-professional
  • brutalist → bold-expressive
  • mint-pixel-corporate ou soft-cloud → fresh-corporate
  • Estilo não especificado: pitch de investidor → midnight-editorial; vendas → clean-slate; palestra → brutalist ou midnight-editorial; interno → matt-gray

UM slide inesquecível — identifique antes do Passo 3:

  • Pitch de investidor → destaque-de-estatística (slide de tração/métricas)
  • Deck de vendas → destaque-de-estatística (slide de ROI/resultados)
  • Palestra → citação-em-destaque ou destaque-de-estatística (insight-chave)
  • Apresentação interna → CTA-de-encerramento (slide de decisão/recomendação)

Viés de seleção de layout — anote os 2-3 layouts mais relevantes para este tipo de deck para priorizar no Passo 3.

Nunca pergunte ao usuário por direção de design — derive-a inteiramente de suas respostas.


Passo 3: Estrutura do Design

Leia references/layout-library.md antes de planejar.

Planeje a sequência completa de slides. Atribua um tipo de layout dos 13 em references/layout-library.md para cada slide.

Tipo de deck → estrutura típica:

Pitch de investidor (12 slides):

  1. [titulo-heroi] Empresa + slogan
  2. [divisor-de-secao] O Problema
  3. [texto-completo] Detalhe do problema
  4. [texto-esquerda-imagem-direita] Visão geral da solução
  5. [imagem-completa] Captura de tela do produto
  6. [destaque-de-estatistica] Tração — slide inesquecível
  7. [tabela-comparativa] vs. concorrentes
  8. [linha-do-tempo] Roadmap
  9. [texto-completo] Equipe
  10. [destaque-de-estatistica] Tamanho do mercado
  11. [texto-esquerda-imagem-direita] Modelo de negócio
  12. [CTA-de-encerramento] A solicitação

Deck de vendas (8-10 slides):

  1. [titulo-heroi]
  2. [citacao-em-destaque] Ponto de dor do prospect
  3. [texto-esquerda-imagem-direita] Solução
  4. [grade-de-imagens] Capturas de tela do produto
  5. [destaque-de-estatistica] ROI/resultados — inesquecível
  6. [tabela-comparativa] vs. alternativas
  7. [texto-completo] Implementação / próximos passos
  8. [CTA-de-encerramento]

Palestra (15-20 slides): titulo-heroi → divisores-de-secao → slides de texto-completo → imagem-completa → destaque-de-estatistica ou citacao-em-destaque (inesquecível) → linha-do-tempo → CTA-de-encerramento

Apresentação interna (8-12 slides): titulo-heroi → texto-completo (contexto) → destaque-de-estatistica (estado atual) → texto-duas-colunas (opções) → tabela-comparativa → texto-completo (recomendação) → CTA-de-encerramento (a decisão — inesquecível)

Saída da estrutura proposta como uma lista numerada com [tipo-de-layout] entre colchetes. Exemplo:

Estrutura proposta (12 slides, estilo midnight-editorial):

1. [titulo-heroi] DataPulse — Decisões de receita em 5 minutos
2. [divisor-de-secao] O Problema
...
12. [CTA-de-encerramento] A solicitação + [email protected]

Essa estrutura funciona, ou devo ajustar algum slide?

Aguarde confirmação antes do Passo 4.


Passo 4: Rascunho de Conteúdo

Escreva o texto de cada slide em sequência. Apenas texto simples — ainda sem HTML.

Regras de texto por layout:

  • titulo-heroi: manchete (máx. 6 palavras) + subtítulo (1 frase) + texto opcional de selo
  • divisor-de-secao: apenas rótulo de seção de 2 a 4 palavras
  • texto-completo: título (máx. 5 palavras) + 4 a 6 tópicos OU 2 parágrafos (nunca ambos no mesmo slide)
  • texto-esquerda-imagem-direita / imagem-esquerda-texto-direita: título + 3 a 4 tópicos + [IMAGEM: descrição]
  • texto-duas-colunas: 2 títulos de coluna + máx. 3 tópicos cada
  • imagem-completa: [IMAGEM: descrição] + legenda opcional (máx. 10 palavras)
  • grade-de-imagens: até 6 placeholders [IMAGEM: descrição] com legendas curtas
  • destaque-de-estatistica: 2 a 4 métricas escritas como NÚMERO | rótulo (ex.: 3× | fechamento mais rápido). ZERO texto corrido.
  • citacao-em-destaque: citação (máx. 30 palavras) + atribuição (nome, cargo)
  • tabela-comparativa: cabeçalhos de coluna (máx. 3) + 4 a 6 rótulos de linha + conteúdo da célula (1 a 3 palavras cada)
  • linha-do-tempo: 3 a 6 marcos (rótulo + data + descrição de 1 linha)
  • CTA-de-encerramento: manchete (máx. 5 palavras) + texto da ação de CTA + informações de contato (e-mail + URL — ambos obrigatórios)

Palavras proibidas (em todo texto, sem exceções): "poderoso", "perfeito", "revolucionário", "alavancar", "inovador", "revolucionário", "transformar", "de ponta", "robusto", "desbloquear", "escalável" (como adjetivo genérico).

Filosofia de texto: Fragmentos são aceitáveis. Números superam adjetivos. Cada palavra merece seu lugar.


Passo 5: Geração de HTML

Leia TUDO antes de gerar qualquer HTML:

Referências desta skill:

  • references/design-system.md
  • references/layout-library.md
  • references/style-presets.md
  • references/animation-guide.md

Referências cruzadas do frontend-slides (leia estes arquivos exatos):

  • /Users/ksd/Desktop/Varnan_skills/frontend-slides/viewport-base.css — inclua o conteúdo COMPLETO literalmente dentro do bloco <style>
  • /Users/ksd/Desktop/Varnan_skills/frontend-slides/html-template.md — classe SlidePresentation, navegação por teclado, sistema de edição inline
  • /Users/ksd/Desktop/Varnan_skills/frontend-slides/animation-patterns.md — animações de entrada, efeitos de fundo, efeitos interativos

Regras de geração:

  1. HTML auto-contido único. Todo CSS e JS inline. O link CDN de fontes é a única referência externa.
  2. Inclua o conteúdo COMPLETO literalmente de viewport-base.css dentro do bloco <style> — não parafraseie ou encurte.
  3. Fontes apenas do Google Fonts ou Fontshare. As escolhas de fontes vêm do preset escolhido em references/style-presets.md.
  4. Use a classe SlidePresentation de html-template.md. Implemente navegação completa por teclado (setas, espaço, page up/down), toque/deslize, barra de progresso e pontos de navegação. navDotsContainer.innerHTML = "" antes de construir os pontos de navegação — nunca pule isso.
  5. Se a edição inline foi optada: implemente o sistema completo de edição inline de html-template.md, incluindo exportFile(). A função exportFile() DEVE remover contenteditable, body.edit-active e as classes .active/.show antes de capturar outerHTML.
  6. Proporção:
    • 16:9 (padrão): slides têm width: 100vw; height: 100vh
    • 1:1 (LinkedIn): adicione a propriedade personalizada CSS --slide-height: min(100vh, 100vw) e use-a em .slide
  7. Cada seção de slide DEVE usar class="slide" — obrigatório para a detecção de slides do export-pdf.sh.
  8. Adicione um comentário antes de cada slide: /* === SLIDE N: TIPO-DE-LAYOUT === */
  9. Aplique o slide inesquecível do Passo 2.5 com peso visual máximo — maior tipografia, mais animação, o elemento característico do preset de estilo em intensidade total. Todos os outros slides são composicionalmente mais silenciosos.
  10. Nenhuma imagem fornecida → use visuais gerados por CSS (malhas de gradiente, formas geométricas, padrões de grade de animation-patterns.md). Este é um caminho de primeira classe, não um fallback.

Disciplina tipográfica:

  • Números de estatística: clamp(3.5rem, 12vw, 9rem) — uma métrica que preenche um terço do slide parece autoritária
  • Manchete do herói: clamp(2.5rem, 8vw, 6rem) no mínimo. Nunca reduza o tamanho por segurança.
  • Nunca use px/rem fixos em qualquer elemento que o usuário verá. Use clamp em tudo.

Pegadinha de CSS do viewport-base.css: Nunca escreva -clamp(), -min(), -max() diretamente no CSS. Embrulhe em calc(-1 * clamp(...)).


Passo 6: Auto-QA

Verifique cada item. Corrija cada falha — não pule.

Viewport e renderização:

  • Cada .slide tem height:100vh; height:100dvh; overflow:hidden
  • TODOS os tamanhos de fonte e espaçamento usam clamp() — sem px fixos em elementos de escala
  • Nenhum slide transborda no viewport de 1280×720 (verifique os limites de densidade de layout-library.md)
  • Imagens usam max-height: min(50vh, 400px)
  • Breakpoints para alturas de viewport de 700px, 600px, 500px presentes (de viewport-base.css)
  • Media query prefers-reduced-motion presente
  • Nenhum -clamp(), -min(), -max() no CSS — embrulhado em calc(-1 * ...) se necessário negativo

Estrutura:

  • Contagem de slides corresponde ao plano do Passo 3
  • Cada slide usa class="slide"
  • Cada tipo de layout implementado corretamente por references/layout-library.md
  • Classe SlidePresentation presente com navegação por teclado, toque, barra de progresso, pontos de navegação
  • navDotsContainer.innerHTML = "" antes de construir os pontos de navegação
  • Se a edição inline foi optada: exportFile() remove o estado de edição antes de capturar outerHTML

Qualidade do design:

  • Um slide inesquecível visualmente dominante — não enterrado entre slides de peso igual
  • Hierarquia tipográfica clara: exibição >> título >> corpo (proporção de tamanho de pelo menos 2:1 entre níveis)
  • Tokens do preset de estilo aplicados consistentemente (cores, fontes de references/style-presets.md)
  • Nenhum padrão de má qualidade (verifique a lista NÃO USAR em references/style-presets.md)

Conteúdo:

  • Nenhuma palavra proibida em nenhum texto de slide
  • Manchete de titulo-heroi tem 6 palavras ou menos
  • destaque-de-estatistica tem ZERO texto corrido competindo com os números
  • CTA-de-encerramento tem ação específica + informações de contato (não apenas "Obrigado")

Se alguma verificação falhar: corrija inline e execute novamente a lista mentalmente antes de prosseguir.


Passo 7: Saída

Salve o HTML principal primeiro:

mkdir -p deck/[nome]-slides

Escreva em: deck/[nome]-slides/index.html

Abra: open deck/[nome]-slides/index.html

Arquivos HTML por slide (sempre gere estes):

Extraia cada <section class="slide"> do HTML principal. Para cada um, crie um arquivo autônomo com:

  • O bloco <style> completo do HTML principal (copiado literalmente)
  • A <section class="slide"> individual embrulhada em um shell HTML mínimo
  • Nenhum JS de SlidePresentation (visualização estática por slide, sem navegação necessária)

Escreva em: deck/[nome]-slides/slide-001.html, slide-002.html, etc. (preenchidos com zeros até 3 dígitos).

Se PDF for solicitado:

bash /Users/ksd/Desktop/Varnan_skills/frontend-slides/scripts/export-pdf.sh \
  deck/[nome]-slides/index.html \
  deck/[nome].pdf

Nota: a primeira execução instala Playwright automaticamente (~30-60 segundos). Informe o usuário.

Se deploy for solicitado:

bash /Users/ksd/Desktop/Varnan_skills/frontend-slides/scripts/deploy.sh \
  deck/[nome]-slides/

Limpeza: Delete .claude-design/previews/ se arquivos de pré-visualização de estilo foram gerados no Passo 2.


Passo 8: Resumo (sem HTML no chat)

Apresente no chat:

## Slide Deck: [nome do deck]
Data: [hoje] | Estilo: [estilo] | Slides: [N] | Proporção: [16:9 ou 1:1]
Propósito: [propósito] | Público: [público]

---

### Arquivos
Principal:      deck/[nome]-slides/index.html
Por slide: deck/[nome]-slides/slide-001.html → slide-0NN.html
PDF:       deck/[nome].pdf  [se gerado]
URL ao vivo:  [url]  [se implantado]

---

### Navegação
Teclas de seta / Espaço / Page Up/Down — avançar slides
Clique nos pontos de navegação — pule para qualquer slide
Toque / deslize — funciona em dispositivos móveis

---

### Personalizar
Edite as variáveis CSS em :root no topo do arquivo para alterar cores
Troque a URL de fonte @import para mudar a tipografia
Remova a classe .reveal de elementos para desabilitar animações de entrada

---

### Checklist do Deck
- [ ] Substitua placeholders [IMAGEM: descrição] por imagens reais
- [ ] Verifique se a métrica/citação no slide [N] está precisa (o slide inesquecível)
- [ ] Teste no tamanho de tela alvo ([1920×1080 ou 1080×1080])
- [ ] Se apresentar ao vivo: teste a navegação por teclado em tela cheia

[truncado para tradução]

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