Communitygithub.com

bg-szy/TOP-SKILLS

Use esta habilidade sempre que um arquivo .pptx ou .potx estiver envolvido — como entrada, saída ou ambos. Isso inclui: criar, editar, ler, combinar, dividir ou trabalhar com modelos, layouts, anotações do apresentador ou comentários.

O que é TOP-SKILLS?

Esta habilidade especializada permite que agentes de IA criem, editem, analisem e convertam apresentações PowerPoint (.pptx/.potx) programaticamente. Ela suporta plataformas como Claude Code, Cursor e Codex, fornecendo scripts Python e Node.js pré-instalados para tarefas como gerar slides com pptxgenjs, extrair texto com markitdown, gerar miniaturas visuais e validar a integridade do arquivo. A habilidade detalha abordagens específicas para diferentes tarefas: usar pptxgenjs para criar novas apresentações (com uma lista abrangente de armadilhas comuns), descompactar/editar/compactar manualmente o XML do OOXML para modificações precisas, e scripts para duplicar slides, limpar referências órfãs e validar contra esquemas. Ela também inclui diretrizes de design para evitar slides monótonos, com paletas de cores temáticas, dicas de tipografia e layout, e recomendações de fontes seguras para garantir a renderização fiel. A validação pós-geração é obrigatória para detectar corrupção de arquivo antes da entrega.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bg-szy/TOP-SKILLS/tree/HEAD/skills/skills/pptx

Perguntar na sua IA favorita

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

Documentação

Criação, edição e análise de PPTX

Um .pptx é um arquivo ZIP de arquivos XML. Escolha sua abordagem por tarefa:

TarefaAbordagem
Criar uma nova apresentaçãoEscreva um script pptxgenjs — veja as armadilhas abaixo
Editar uma apresentação existente, ou construir a partir de um modelodescompactar → editar ppt/slides/slideN.xml → compactar
Ler conteúdomarkitdown deck.pptx (um bloco por slide sob os marcadores <!-- Slide number: N -->); grade visual: python scripts/thumbnail.py deck.pptx

Scripts

Os caminhos são relativos ao diretório desta habilidade. Todo o resto é Python puro, node ou shell.

ScriptO que faz
scripts/thumbnail.py deck.pptx [prefixo]Grade legendada de cada slide, para escolher layouts de modelo. Apenas .pptx. Passe prefixo — o padrão é thumbnails, que sobrescreve as grades de qualquer outra apresentação feita no mesmo diretório
scripts/add_slide.py unpacked/ slide2.xml [--after slideN.xml]Duplica um slide (ou um slideLayoutN.xml) com toda a contabilidade do pacote. Também aceita um .pptx diretamente com -o out.pptx
scripts/clean.py unpacked/Exclui slides, mídia e rels não referenciados. Execute após o <p:sldIdLst> estar final
scripts/office/validate.py deck.pptx [--original src.pptx]Verificações de esquema, relacionamento, tipo de conteúdo, gráfico e slide; cada falha nomeia sua correção. Passe --original para qualquer apresentação derivada de modelo — isso alinha as verificações de esquema com o modelo, para que os erros XSD do modelo não apareçam como seus
scripts/office/soffice.py --headless --convert-to pdf deck.pptxWrapper do LibreOffice — soffice simples trava neste ambiente

Criando com pptxgenjs — armadilhas

pptxgenjs está pré-instalado — não execute npm install primeiro; escreva o script e use require('pptxgenjs') diretamente. Apenas se esse require falhar: npm install pptxgenjs. O modelo conhece a API; estas são as armadilhas:

  • Defina pres.layout antes de adicionar slides. A tela padrão é LAYOUT_16x9 = 10" × 5,625", não 13,3" de largura. Coordenadas além da borda são escritas, não limitadas — a forma simplesmente não está no slide. (LAYOUT_WIDE é 13,3" × 7,5".)
  • Cores hexadecimais: nunca #, nunca 8 dígitos. color: "FF0000". Tanto "#FF0000" quanto alfa incorporado no hex ("00000020") corrompem o arquivo. Para transparência: transparency: 0-100 em preenchimentos e imagens, opacity: 0.0-1.0 em sombras — cada um é ignorado silenciosamente no outro.
  • pptxgenjs modifica objetos de opções no local (converte valores para EMU no primeiro uso). Nunca compartilhe um objeto shadow/options entre duas chamadas add* — crie um novo objeto a cada vez.
  • offset da sombra deve ser ≥ 0 — um offset negativo corrompe o arquivo. Para projetar uma sombra para cima, use angle: 270 com um offset positivo.
  • letterSpacing é ignorado silenciosamente — a opção real é charSpacing.
  • Listas: bullet: true em cada item, nunca um • literal (renderiza balas duplas). Defina breakLine: true em cada item do array, exceto o último. Espaçamento de parágrafos com marcadores usando paraSpaceAfter, não lineSpacing (espaços enormes).
  • Um new pptxgen() por arquivo de saída — nunca reutilize uma instância.
  • rectRadius só funciona em ROUNDED_RECTANGLE, não em RECTANGLE.
  • Preenchimentos gradientes não são suportados — use uma imagem gradiente como fundo.
  • Caixas de texto têm preenchimento interno embutido — defina margin: 0 sempre que o texto precisar alinhar com uma forma, linha ou ícone no mesmo x.
  • Anotações do apresentador vão em slide.addNotes("...") (texto simples, uma vez por slide), nunca em uma caixa de texto no slide.
  • Mantenha os gráficos nativos. Use addChart() para tudo que o PowerPoint pode criar (passe um array de {type, data, options} para combos). Para recursos nativos do PowerPoint que a biblioteca não expõe (linhas de tendência, barras de erro), calcule a série extra você mesmo ou pós-processe o OOXML gerado — não recorra a uma imagem renderizada. Apenas tipos de gráfico que o PowerPoint não tem forma nativa (Sankey, rede, chord) vão como imagens.
  • Gráficos padrão renderizam nus — sem título, sem rótulos de dados, paleta datada. Defina showTitle + title, showValue: true + dataLabelPosition, chartColors: [...] da sua paleta, e silencie o quadro (catAxisLabelColor/valAxisLabelColor, valGridLine: { color, size }, catGridLine: { style: "none" }, showLegend: false para uma única série).
  • Em um gráfico de barras ou colunas empilhadas, dataLabelPosition deve ser ctr, inEnd ou inBase. outEnd corrompe o arquivo.
  • Uma série combo usando secondaryValAxis/secondaryCatAxis precisa de ambos valAxes e catAxes nas opções do gráfico, duas entradas cada. Sem eles, o pptxgenjs escreve ids de eixo que nunca declara, e o PowerPoint descarta esse gráfico e informa que o arquivo está corrompido. Fornecer apenas valAxes não é suficiente.
  • Após writeFile(), execute python scripts/office/validate.py deck.pptx. Ele relata as duas falhas de gráfico acima e os defeitos de slide-XML que o PowerPoint recusa, e nomeia a correção para cada um. Corrija-os em seu gerador, não editando manualmente o XML compactado.
  • Nunca reordene os filhos de <p:presentation>. pptxgenjs escreve <p:notesMasterIdLst> logo após <p:sldIdLst> e aponta ambos os mestres para uma parte de tema. O PowerPoint lê isso felizmente — mova o elemento e a mesma apresentação se torna inabriível.
  • Ícones: renderize react-icons para SVG (ReactDOMServer.renderToStaticMarkup), rasterize com sharp em ≥256px, e insira via addImage({ data: "image/png;base64," + buf.toString("base64") }) — o prefixo image/png;base64, é obrigatório (react-icons, react, react-dom e sharp estão pré-instalados — npm install react-icons react react-dom sharp apenas se um require falhar).

Editando apresentações e modelos existentes

Escolha os layouts primeiro: python scripts/thumbnail.py modelo.pptx modelo-thumbs escreve uma grade legendada de cada slide e imprime o(s) arquivo(s) que criou — modelo-thumbs.jpg, dividido em modelo-thumbs-N.jpg após 12 slides. Sempre passe esse segundo argumento, nomeado após a apresentação. O padrão é thumbnails, então duas apresentações com miniaturas em um diretório sobrescrevem silenciosamente as grades uma da outra — as grades da primeira apresentação simplesmente desaparecem (apenas análise de modelo — a QA visual precisa das renderizações em resolução máxima de Convertendo para Imagens; só aceita .pptx, então copie um .potx para um nome .pptx primeiro). Use com markitdown para mapear cada seção de conteúdo para um slide do modelo, e varie os layouts — não coloque toda seção no mesmo slide de título e marcadores.

python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall('unpacked')" deck.pptx
python scripts/add_slide.py unpacked/ slide2.xml --after slide2.xml   # duplica um slide (ou slideLayoutN.xml); imprime o caminho do novo slide
# reordenar / excluir slides = editar <p:sldIdLst> em ppt/presentation.xml
python scripts/clean.py unpacked/                                     # após exclusões: remove slides, mídia e rels órfãos
# editar conteúdo do slide em ppt/slides/slideN.xml
(cd unpacked && rm -f ../out.pptx && zip -Xr ../out.pptx .)           # zip a partir de DENTRO do diretório; rm primeiro ou partes excluídas sobrevivem
python scripts/office/validate.py out.pptx --original deck.pptx
  • Faça todo o trabalho estrutural — adicionar, excluir, reordenar — antes de editar o conteúdo de qualquer slide. add_slide.py copia um arquivo de slide literalmente, então duplicar após a edição clona o conteúdo editado; e clean.py exclui qualquer slide ausente de <p:sldIdLst>, incluindo um que você acabou de escrever.
  • Nunca copie um arquivo de slide manualmente — add_slide.py faz todo o registro que um novo slide precisa e informa o que criou (Created ppt/slides/slide17.xml from slide2.xml). Também funciona diretamente em um arquivo: add_slide.py deck.pptx slide2.xml -o out.pptx — passe -o, ou ele reescreve a apresentação de entrada no lugar. Um slide duplicado ainda referencia as partes de gráfico/SmartArt/objeto incorporado de sua fonte em vez de cloná-las, então editar o gráfico de um slide altera o do outro.
  • Se você usar python-pptx, três coisas que ele não faz: duplicar um slide (seu único ponto de entrada é add_slide(layout)), preservar formatação através de text_frame.text = "..." (isso colapsa o parágrafo em uma única execução sem estilo — atribua run.text em vez disso), ou ler o SVG/EMF que a maioria das artes de modelo usa (add_picture levanta UnidentifiedImageError).
  • .ppt legado deve ser convertido primeiro: python scripts/office/soffice.py --headless --convert-to pptx file.ppt. Modelos .potx descompactam e compactam de forma idêntica — mantenha a extensão .potx na saída.
  • Para reutilizar um ícone ou imagem de modelo, duplique um slide ou layout que já o contenha.

Ao preencher um modelo:

  • Se você criar um script de transformação XML, analise com defusedxml.minidom — passar OOXML por xml.etree.ElementTree reescreve prefixos de namespace e corrompe a apresentação.
  • Slots do modelo ≠ itens de origem. Se o modelo mostra 4 membros da equipe e você tem 3, exclua o grupo inteiro do 4º membro (imagem + caixas de texto), não apenas seu texto — depois verifique se há visuais órfãos na QA.
  • Um <a:p> por item de lista — nunca concatene itens em um único parágrafo. Copie o <a:pPr> irmão para preservar espaçamento, e coloque b="1" no <a:rPr> de títulos, cabeçalhos de seção e rótulos inline (Status:, Owner:).
  • Deixe os marcadores herdarem do layout; apenas adicione <a:buChar>, <a:buAutoNum> (numerado) ou <a:buNone> para sobrescrever — nunca um • literal no texto.
  • Texto com espaços à esquerda ou à direita precisa de xml:space="preserve" em seu <a:t>.

Ideias de Design

Não crie slides chatos. Marcadores simples em fundo branco não impressionam ninguém. Considere ideias desta lista para cada slide.

Antes de Começar

  • Escolha uma paleta de cores ousada e informada pelo conteúdo: A paleta deve parecer projetada PARA ESTE tópico. Se trocar suas cores em uma apresentação completamente diferente ainda "funcionar", você não fez escolhas suficientemente específicas.
  • Dominância sobre igualdade: Uma cor deve dominar (60-70% de peso visual), com 1-2 tons de suporte e um acento forte. Nunca dê a todas as cores peso igual.
  • Contraste escuro/claro: Fundos escuros para slides de título e conclusão, claros para conteúdo (estrutura "sanduíche"). Ou comprometa-se com escuro em toda parte para uma sensação premium.
  • Comprometa-se com um motivo visual: Escolha UM elemento distinto e repita-o — molduras de imagem arredondadas, ícones em círculos coloridos. Carregue-o em cada slide. Não use uma barra de cor ou faixa de acento como motivo (veja lista de evitar).

Paletas de Cores

Escolha cores que combinem com seu tópico — não use azul genérico como padrão. Use estas paletas como inspiração:

TemaPrimáriaSecundáriaAcento
Executivo Meia-Noite1E2761 (marinho)CADCFC (azul gelo)FFFFFF (branco)
Floresta e Musgo2C5F2D (floresta)97BC62 (musgo)F5F5F5 (creme)
Energia CoralF96167 (coral)F9E795 (dourado)2F3C7E (marinho)
Terracota QuenteB85042 (terracota)E7E8D1 (areia)A7BEAE (sálvia)
Gradiente Oceânico065A82 (azul profundo)1C7293 (verde-azulado)21295C (meia-noite)
Minimalista Carvão36454F (carvão)F2F2F2 (off-white)212121 (preto)
Confiança Verde-Azulada028090 (verde-azulado)00A896 (espuma do mar)02C39A (menta)
Bagas e Creme6D2E46 (baga)A26769 (rosa empoeirado)ECE2D0 (creme)
Calma Sálvia84B59F (sálvia)69A297 (eucalipto)50808E (ardósia)
Cereja Ousada990011 (cereja)FCF6F5 (off-white)2F3C7E (marinho)

Para Cada Slide

Cada slide precisa de um elemento visual — imagem, gráfico, ícone ou forma. Slides só com texto são esquecíveis.

Opções de layout:

  • Duas colunas (texto à esquerda, ilustração à direita)
  • Linhas de ícone + texto (ícone em círculo colorido, cabeçalho em negrito, descrição abaixo)
  • Grade 2x2 ou 2x3 (imagem de um lado, grade de blocos de conteúdo do outro)
  • Imagem sangrada (lado esquerdo ou direito completo) com sobreposição de conteúdo

Exibição de dados:

  • Destaques de estatísticas grandes (números grandes 60-72pt com pequenos rótulos abaixo)
  • Colunas de comparação (antes/depois, prós/contras, opções lado a lado)
  • Linha do tempo ou fluxo de processo (etapas numeradas, setas)

Polimento visual:

  • Ícones em pequenos círculos coloridos ao lado de cabeçalhos de seção
  • Texto de acento em itálico para estatísticas-chave ou slogans

Tipografia

Nomes de fontes que você escreve no .pptx são renderizados pelo PowerPoint do usuário, não por este ambiente. Sua QA visual renderiza via LibreOffice, que substitui fontes que não possui — e para algumas fontes, o substituto tem larguras diferentes, então sua prévia de QA pode mostrar estouro de texto (ou ajuste) que a apresentação real não terá. Para manter sua QA confiável:

  • Fontes seguras (renderizam fielmente em QA e vêm com o Office): Arial, Calibri, Cambria, Times New Roman, Courier New, Bookman Old Style, Century Schoolbook. Use estas para texto do corpo e qualquer coisa onde o ajuste importe.
  • Cabeçalhos com personalidade com risco zero de QA: combine um cabeçalho serifado da lista segura (Cambria, Bookman Old Style, Century Schoolbook) com um corpo sem serifa da lista segura (Calibri ou Arial). Você obtém contraste visual sem abrir mão de verificações confiáveis de estouro.
  • Se o usuário solicitar uma fonte fora da lista segura (por exemplo, Georgia ou Trebuchet MS): use-a onde o usuário pediu, mas dimensione esses contêineres com folga extra (~10%) e não confie na QA de ajuste de texto nesses elementos — a prévia dessa fonte é aproximada. Se o usuário não especificou, prefira fontes da lista segura para texto do corpo.
  • Fontes não confiáveis para QA (substituto tem larguras diferentes — verificações de estouro podem estar erradas): Georgia, Trebuchet MS, Impact, Arial Black, Garamond, Consolas, Palatino Linotype. A substituição do Calibri Light varia por ambiente; trate como não confiável para QA. Bom para títulos/acessórios com folga; não confie na QA de ajuste de texto nestes.
  • Nunca use Aptos como padrão — o padrão pós-2023 do Office não tem substituto métrico-compatível aqui e está ausente em instalações mais antigas do Office, então não é confiável em ambos os lados.
ElementoTamanho
Título do slide36-44pt negrito
Cabeçalho de seção20-24pt negrito
Texto do corpo14-16pt
Legendas10-12pt suave

Individual skills in this repo

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

bg-szy/TOP-SKILLS

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

bg-szy/TOP-SKILLS

Fill out Microsoft Azure Landing Zone (ALZ) Accelerator checklists by interviewing the user, mapping their Azure subscriptions, integrating IP addressing documentation, and applying Microsoft Cloud Adoption Framework best practices. Produces a completed Excel checklist (.xlsx) ready for ALZ deployment. Use this skill whenever the user mentions Azure Landing Zone, ALZ checklist, landing zone accelerator, platform landing zone configuration, ALZ bootstrap, hub-and-spoke setup, Azure network topology planning, or wants to fill out any ALZ-related checklist or configuration file. Also trigger when the user uploads an Excel file that contains tabs like "Accelerator - Bootstrap", "Accelerator - Bicep", or "Accelerator - Terraform".

bg-szy/TOP-SKILLS

Compose a premium, animated landing page section by section in Next.js + Tailwind + Motion (Framer Motion) — built on a real design system, with editorial copy and motion that feels human-crafted, not template-generated. Use when building or rebuilding a landing page, marketing site, or hero/feature/pricing/CTA sections that need to look production-ready and bespoke from day one.

bg-szy/TOP-SKILLS

Write high-converting landing page copy using proven frameworks like PAS (Problem-Agitate-Solution), AIDA, and StoryBrand. Creates headlines, value propositions, CTAs, and full page sections optimized for conversion. Use when users need landing page copy, sales page content, or marketing website text.

bg-szy/TOP-SKILLS

Optimize landing pages for conversions, performance, and SEO. Use when improving landing pages, increasing conversions, or optimizing page performance.

bg-szy/TOP-SKILLS

Review investment portfolios for risk, diversification, fees. Asset allocation recommendations, tax-loss harvesting, rebalancing.

bg-szy/TOP-SKILLS

Beads Viewer - Graph-aware triage engine for Beads projects. Computes PageRank, betweenness, critical path, and cycles. Use --robot-* flags for AI agents.

bg-szy/TOP-SKILLS

CI red? Call us. Pipeline fire brigade deploys. Use when user mentions CI failures, build errors, test failures, or pipeline issues. Do NOT load for: local builds, standard implementation work, reviews, or setup.

bg-szy/TOP-SKILLS

CASS Memory System - procedural memory for AI coding agents. Three-layer cognitive architecture with confidence decay, anti-pattern learning, cross-agent knowledge transfer, trauma guard safety system. Bun/TypeScript CLI.

bg-szy/TOP-SKILLS

Mandatory entry point: read this first for any request to make, create, edit, animate, or render a video, animation, or motion graphic, including a promo, explainer, captioned clip, title card, overlay, slideshow or interactive deck, Remotion port, or any HyperFrames HTML composition. Also use it to inspect, diagnose, validate, preview, publish, or batch-render an existing HyperFrames project. Inputs may be a website URL, GitHub PR, Figma design or URL, text or brief, existing footage, or music. It resumes project state, captures intent when applicable, selects and installs the owning workflow, and routes domain capabilities. HyperFrames is the default output framework unless the user explicitly chooses another framework for the deliverable or asks only to record a browser session.

bg-szy/TOP-SKILLS

Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios, and portfolios that convert visitors into opportunities.

bg-szy/TOP-SKILLS

Use when the user asks to "pre-launch check the landing page", "run a Quality-Score preflight", or "verify ad-to-page message match before launch"; produces an ad↔page continuity report — message-match gaps, above-the-fold check, page-speed read, form-friction count, mobile-render flags — as a pass/fix punch list. Not for redesigning or rewriting the page — use landing-optimizer; not for scoring the account or the RQS — use ad-account-auditor. 落地页体验预检/广告落地页一致性检查

bg-szy/TOP-SKILLS

Use when the user asks to "optimize our landing page for influencer traffic", "fix our promo-code landing page", or "improve conversion from a creator campaign"; produces a message-match audit, page-structure and social-proof recommendations, a promo-code/CTA conversion plan, and an A/B test roadmap. Not for measuring campaign results after launch — use performance-analyzer.

bg-szy/TOP-SKILLS

Audit a landing page, sales page or checkout page for conversion leaks and return a fix list ordered by expected revenue impact. Use when asked to review, critique or improve a landing page, sales page, opt-in page, product page or checkout flow, when conversion rate is low, when paid traffic is not converting, or when someone asks "why isn't this page converting" or wants a CRO / landing page review.

bg-szy/TOP-SKILLS

Landing page conversion optimization with layout rules, hero section design, and CTA psychology. Covers above-the-fold formula, social proof placement, mobile design, and F-pattern reading. Use for: startup landing pages, product pages, SaaS marketing, conversion optimization. Triggers: landing page, hero section, above the fold, conversion optimization, landing page design, cta button, hero image, landing page layout, saas landing page, product page design, conversion rate, landing page best practices

bg-szy/TOP-SKILLS

Create high-converting, visually distinctive landing pages. Use when building marketing pages, product launches, SaaS homepages, or any single-page conversion-focused website. Guides section-by-section composition with anti-AI-slop principles.

bg-szy/TOP-SKILLS

Landing page conversion optimization with layout rules, hero section design, and CTA psychology. Covers above-the-fold formula, social proof placement, mobile design, and F-pattern reading. Use for: startup landing pages, product pages, SaaS marketing, conversion optimization. Triggers: landing page, hero section, above the fold, conversion optimization, landing page design, cta button, hero image, landing page layout, saas landing page, product page design, conversion rate, landing page best practices

bg-szy/TOP-SKILLS

Account assets, equity and fund positions, P&L, cash flow records, account statements, margin ratios, buy-power estimates, order management, and DCA recurring investments via Longbridge (most require Trade permission). Frameworks: portfolio diagnosis, rebalancing, asset allocation, risk analysis (VaR/CVaR), performance attribution, and tax-loss harvesting. Triggers: "持仓", "账户", "盈亏", "资产", "对账单", "下单", "买入", "卖出", "撤单", "定投", "组合诊断", "再平衡", "资产配置", "风险分析", "绩效归因", "税损收割", "持倉", "賬戶", "盈虧", "對賬單", "下單", "買入", "賣出", "組合診斷", "再平衡", "稅損收割", "positions", "portfolio", "P&L", "order", "buy", "sell", "DCA", "statement", "risk analysis", "rebalancing", "tax harvesting", "我的风险", "持仓风险", "风险敞口", "資產", "資產配置", "風險分析", "績效歸因", "撤單

bg-szy/TOP-SKILLS

Auto-loaded context for Portfolio Buddy 2 development. Use for ANY task involving: React 19 development, TypeScript, portfolio analysis features, metrics calculations, trading strategy comparison, or working with the Portfolio Buddy 2 codebase. Contains tech stack, known issues, and architectural constraints.

bg-szy/TOP-SKILLS

Process video files with audio extraction, format conversion (mp4, webm), and Whisper transcription. Use when user mentions video conversion, audio extraction, transcription, mp4, webm, ffmpeg, or whisper transcription.

Habilidades Relacionadas