pptx

Use esta habilidade sempre que um arquivo .pptx ou .potx estiver envolvido — como entrada, saída ou ambos. Inclui: criação, leitura, edição, combinação, divisão, uso de modelos, anotações do apresentador e comentários.

O que é pptx?

Esta habilidade capacita o agente a criar, editar e analisar apresentações PowerPoint (.pptx) e modelos (.potx) com controle total sobre o design e a estrutura. Ela oferece três abordagens principais: criar novos decks programaticamente com a biblioteca `pptxgenjs` (cuidando de armadilhas comuns como codificação de cores, sombras e eixos de gráficos); editar decks existentes via descompactação, manipulação direta do XML dos slides e recompactação; e ler conteúdo usando `markitdown` para extração de texto por slide ou `scripts/thumbnail.py` para gerar uma grade visual. A habilidade inclui um conjunto de scripts Python (como `add_slide.py`, `clean.py`, `validate.py`) que automatizam tarefas repetitivas de estruturação, validação e conversão. Além do aspecto técnico, ela oferece diretrizes de design para criar apresentações visualmente atraentes: paletas de cores temáticas, dicas de tipografia com fontes seguras, ideias de layout e regras para evitar erros comuns que corrompem arquivos ou geram slides genéricos. É compatível com Claude Code e outros agentes que executam scripts Python e Node.js.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/anthropics/skills/tree/main/skills/pptx

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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 conforme a tarefa:

TarefaAbordagem
Criar um novo deckEscreva um script pptxgenjs — veja as armadilhas abaixo
Editar um deck existente ou criar a partir de um modelodescompacte → edite ppt/slides/slideN.xml → compacte
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 rotulada de cada slide, para escolher layouts de modelo. Apenas .pptx. Passe prefixo — o padrão é thumbnails, que sobrescreve as grades de qualquer outro deck no mesmo diretório
scripts/add_slide.py descompactado/ 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 saida.pptx
scripts/clean.py descompactado/Exclui slides, mídia e relacionamentos não mais referenciados. Execute depois que <p:sldIdLst> estiver 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 deck derivado de modelo — ele define uma linha de base das verificações de esquema contra o modelo, para que os erros XSD do próprio modelo não sejam interpretados como seus
scripts/office/soffice.py --headless --convert-to pdf deck.pptxInvólucro do LibreOffice — soffice puro 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 cortadas — 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 embutido no hex ("00000020") corrompem o arquivo. Para translucidez: transparency: 0-100 em preenchimentos e imagens, opacity: 0.0-1.0 em sombras — cada um é ignorado silenciosamente no outro.
  • pptxgenjs altera objetos de opções no local (converte valores para EMU no primeiro uso). Nunca compartilhe um único objeto shadow/options entre duas chamadas add* — crie um objeto novo a cada vez.
  • O offset da sombra deve ser ≥ 0 — um deslocamento negativo corrompe o arquivo. Para projetar uma sombra para cima, use angle: 270 com um deslocamento positivo.
  • letterSpacing é ignorado silenciosamente — a opção real é charSpacing.
  • Listas: bullet: true em cada item, nunca um • literal (renderiza marcadores duplos). Defina breakLine: true em cada item do array, exceto o último. Espace parágrafos com marcadores usando paraSpaceAfter, não lineSpacing (cria lacunas enormes).
  • Um new pptxgen() por arquivo de saída — nunca reuse uma instância.
  • rectRadius funciona apenas 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 se alinhar com uma forma, linha ou ícone no mesmo x.
  • Notas do apresentador vão em slide.addNotes("...") (texto simples, uma vez por slide), nunca em uma caixa de texto no slide.
  • Mantenha gráficos nativos. Use addChart() para tudo que o PowerPoint pode gráfico (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 para os quais o PowerPoint não tem forma nativa (Sankey, rede, corda) devem ser inseridos 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 de combinação 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 eixos que nunca declara, e o PowerPoint descarta esse gráfico e relata o arquivo como 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 no seu gerador, não editando manualmente o XML compactado.
  • Nunca reorganize os filhos de <p:presentation>. O pptxgenjs escreve <p:notesMasterIdLst> logo após <p:sldIdLst> e aponta ambos os mestres para uma parte de tema. O PowerPoint lê isso feliz — mova o elemento e o mesmo deck se torna inabrí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 decks e modelos existentes

Escolha os layouts primeiro: python scripts/thumbnail.py modelo.pptx modelo-thumbs escreve uma grade rotulada 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 conforme o deck. O padrão é thumbnails, então dois decks com miniaturas no mesmo diretório sobrescrevem silenciosamente as grades um do outro — as do primeiro deck simplesmente desaparecem (análise de modelo apenas — a garantia de qualidade visual precisa das renderizações em resolução total de Convertendo para Imagens; aceita apenas .pptx, então copie um .potx para um nome .pptx primeiro). Use-o com markitdown para mapear cada seção de conteúdo para um slide do modelo, e varie os layouts — não coloque cada seção no mesmo slide de título e marcadores.

python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall('descompactado')" deck.pptx
python scripts/add_slide.py descompactado/ slide2.xml --after slide2.xml   # duplica um slide (ou slideLayoutN.xml); imprime o caminho do novo slide
# reordenar / excluir slides = edite <p:sldIdLst> em ppt/presentation.xml
python scripts/clean.py descompactado/                                     # após exclusões: remove slides órfãos, mídia, relacionamentos
# edite o conteúdo do slide em ppt/slides/slideN.xml
(cd descompactado && rm -f ../saida.pptx && zip -Xr ../saida.pptx .)           # compacte de DENTRO do diretório; rm primeiro ou partes excluídas sobrevivem
python scripts/office/validate.py saida.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 editar 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 relata 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 saida.pptx — passe -o, ou ele reescreve o deck de entrada no local. 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 fará: duplicar um slide (seu único ponto de entrada é add_slide(layout)), preservar a formatação através de text_frame.text = "..." (isso colapsa o parágrafo para 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).
  • O .ppt legado deve ser convertido primeiro: python scripts/office/soffice.py --headless --convert-to pptx arquivo.ppt. Modelos .potx descompactam e compactam identicamente — 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 — o arredondamento de OOXML através de xml.etree.ElementTree reescreve prefixos de namespace e corrompe o deck.
  • Slots do modelo ≠ itens de origem. Se o modelo mostra 4 membros da equipe e você tem 3, exclua todo o grupo do 4º membro (imagem + caixas de texto), não apenas seu texto — então verifique se há elementos visuais órfãos na garantia de qualidade.
  • Um <a:p> por item de lista — nunca concatene itens em um único parágrafo. Copie o <a:pPr> irmão para preservar o 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; adicione apenas <a:buChar>, <a:buAutoNum> (numerado) ou <a:buNone> para substituir — nunca um • literal no texto.
  • Texto com espaços iniciais ou finais precisa de xml:space="preserve" em seu <a:t>.

Ideias de Design

Não crie slides chatos. Marcadores simples em fundo branco não impressionarão 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 "funcionasse", você não fez escolhas específicas o suficiente.
  • Dominância sobre igualdade: Uma cor deve dominar (60-70% de peso visual), com 1-2 tons de apoio e um acento forte. Nunca dê a todas as cores peso igual.
  • Contraste claro/escuro: Fundos escuros para slides de título + conclusão, claros para conteúdo (estrutura "sanduíche"). Ou opte por escuro em toda a apresentação para uma sensação premium.
  • Comprometa-se com um motivo visual: Escolha UM elemento distintivo e repita-o — molduras de imagem arredondadas, ícones em círculos coloridos. Leve-o através de cada slide. Não use uma barra de cor ou faixa de acento como seu motivo (veja a lista de Evitar).

Paletas de Cores

Escolha cores que combinem com seu tópico — não use o padrão azul genérico. 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 (hortelã)
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 apenas com texto são esquecíveis.

Opções de layout:

  • Duas colunas (texto à esquerda, ilustração à direita)
  • Ícone + linhas de 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 com sangria parcial (lado esquerdo ou direito inteiro) 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

Os nomes de fontes que você escreve no .pptx são renderizados pelo PowerPoint do usuário, não por este ambiente. Sua garantia de qualidade 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 transbordamento de texto (ou ajuste) que o deck real não terá. Para manter sua QA confiável:

  • Fontes seguras (renderizam fielmente à largura na 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 sans da lista segura (Calibri ou Arial). Você obtém contraste visual sem abrir mão de verificações confiáveis de transbordamento.
  • Se o usuário pedir 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 nas verificações de ajuste de texto da QA 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 (o substituto tem larguras diferentes — as verificações de transbordamento 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/accentos com folga; não confie no ajuste de texto da QA nestes.
  • Nunca use Aptos como padrão — o padrão do Office pós-2023 não tem substituto metricamente 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

…

[truncado para tradução]

Individual skills in this repo

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

academy-guide

Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.

algorithmic-art

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists

anthropics/template-skill

Replace with description of the skill and when Claude should use it.

brand-guidelines

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

canvas-design

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists

claude-api

|-

discernment-nudge

After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.

docx

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.

frontend-design

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

internal-comms

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

skill-creator

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill

slack-gif-creator

Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like

theme-factory

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

web-artifacts-builder

Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.

xlsx

Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .xltx, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like "the xlsx in my downloads") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.

Habilidades Relacionadas