pptx-generator
Converte Markdown ou HTML em arquivos PowerPoint (.pptx).
Skill by rovanni
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/rovanni-pptx-generator
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, presentations, frontend, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pptx-generator
What's inside
- Skill name
pptx-generator- Description
- Converte Markdown ou HTML em arquivos PowerPoint (.pptx). Ativar APENAS quando o usuário pedir explicitamente .pptx, PowerPoint ou um arquivo editável no formato Office. NÃO ativar para pedidos genéricos de "slides" ou "apresentação" sem formato específico. Quando o pedido exigir texto REALMENTE editável (não apenas um .pptx que abre no PowerPoint), usar python-pptx OU pptxgenjs (Passo 0B), conforme o que o [CAPACIDADES DO AMBIENTE] indicar disponível — nunca o Marp CLI puro — ver aviso abaixo.
- License
- MIT
- Instructions
- 496 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- academico.css · themes/
SKILL.md (first lines)
# PPTX Generator Skill
Converte conteúdo em arquivos PowerPoint (.pptx) usando **Marp CLI**, **python-pptx** ou
**pptxgenjs**, dependendo do que o usuário realmente precisa (ver aviso abaixo) e do que o
ambiente atual realmente suporta (ver Passo 0B).
## REQUISITO OBRIGATÓRIO — suplemento do PowerPoint: texto nativo e editável
**Quem escreve DENTRO do PowerPoint quer texto nativo e editável.** Se o bloco
`AMBIENTE DA CONVERSA` indicar que a conversa acontece no suplemento Microsoft PowerPoint, o `.pptx`
é inserido na apresentação que o usuário está editando — então:
- O resultado DEVE ter texto nativo e editável: use **sempre o Passo 0B** (python-pptx ou
pptxgenjs, conforme o ambiente), desde o primeiro passo do plano.
- **NUNCA use o Marp CLI nesse canal** — cada slide viraria uma imagem, sem texto clicável, e não
serve a quem está editando. Não verifique nem tente instalar o Marp (Passo 0 e Passos 1-4 não se
aplicam).
- Vale mesmo que a mensagem do usuário não diga "slide", "pptx" nem "editável": pedir uma aula,
um material ou um conteúdo para apresentar dentro do PowerPoint é pedir slides editáveis.
- Não reaproveite um markdown ou um `.pptx` de uma tentativa anterior como ponto de partida do
caminho Marp; gere o conteúdo direto no script do Passo 0B.
## ⚠️ AVISO IMPORTANTE: o `.pptx` gerado pelo Marp CLI NÃO é editável
**Verificado diretamente no arquivo gerado (não é suposição):** o Marp CLI renderiza cada slide
como uma imagem PNG de página inteira e a embute como plano de fundo do slide
(`<p:bg><p:bgPr><a:blipFill>`). O `<p:spTree>` (árvore de formas) fica vazio — zero caixas de
texto, zero `<a:t>`. O arquivo abre normalmente no PowerPoint e parece correto visualmente, mas
**nenhum texto pode ser clicado ou editado** — é uma imagem por slide, não uma apresentação
nativa.
**Isso significa:**
- Se o usuário pedir só "gerar um .pptx" ou "exportar para PowerPoint" (sem enfatizar edição),
o Marp CLI (Passo 1-4 abaixo) é aceitável — é rápido e o resultado abre e projeta bem.
- Se o usuário pedir explicitamente algo **editável** ("slides editáveis", "quero poder mudar o
texto depois", "preciso editar no PowerPoint"), **use o Passo 0B desde o início** (python-pptx
ou pptxgenjs, conforme o ambiente — ver critério de escolha no Passo 0B) — não tente o Marp CLI
primeiro. Gerar via Marp e descobrir depois que não é editável só desperdiça um ciclo inteiro.
- **Se o usuário já recebeu um `.pptx` (gerado por este skill ou não) e disser que "não está
editando", "não consigo mudar o texto", ou algo equivalente**: NÃO gere de novo com Marp CLI —
o resultado será idêntico (imagem por slide). Vá direto para o Passo 0B.
## Passo 0 — Verificar Marp (apenas se for usar o caminho Marp CLI)
Antes de qualquer conversão, verificar se o Marp está disponível:
```bash
marp --version
```
Se não estiver instalado, tentar instalar silenciosamente:
```bash
npm install -g @marp-team/marp-cli 2>/dev/null && marp --version
```
**Se a instalação falhar:** não mencionar o erro ao usuário e não revelar detalhes de infraestrutura (como "no servidor", "no ambiente", caminhos internos ou comandos de instalação). Usar automaticamente o fallback via Passo 0B (python-pptx ou pptxgenjs, conforme o ambiente) sem comentários.
## Passo 0B — texto realmente editável: escolher python-pptx OU pptxgenjs conforme o ambiente
Para gerar um `.pptx` com texto nativo editável — ou quando o Marp não está disponível — usar um
script que gere o `.pptx` programaticamente. Existem DOIS caminhos equivalentes em resultado
(ambos produzem texto nativo editável, nenhum é "melhor" no output final); a escolha entre eles
NÃO é preferência de estilo, é o que o próprio ambiente relatado em
**[CAPACIDADES DO AMBIENTE — detectadas automaticamente]** permite:
- Se a linha `Ferramentas:` listar `python3` (ou `python`) como disponível **e** a linha
`Indisponíveis (não usar)` NÃO os listar → use **Passo 0B.1-Python** (`python-pptx`).
- Se `python3`/`python` aparecerem em `Indisponíveis (não usar)` (comum no Windows: o Python
"aparece" no PATH como um App Execution Alias da Microsoft Store, mas não executa nada de
verdade) → pule DIRETO para o **Passo 0B.1-Node** (`pptxgenjs`). Node.js sempre está disponível
neste ambiente (o próprio NewClaw roda sobre ele), então este caminho nunca fica bloqueado.
- Se o bloco de capacidades não estiver disponível no contexto atual, tente `python-pptx`
primeiro; se o primeiro `exec_command` relacionado a Python falhar (não apenas um erro de
conteúdo do script, mas o interpretador em si não rodar), troque para `pptxgenjs` no replan
seguinte em vez de insistir em variações do mesmo comando Python.
**REGRA CRÍTICA (vale para os dois caminhos):** escrever o script com `write` **não é o fim da
tarefa**. O arquivo `.pptx` só existe depois que o script for **executado** com `exec_command`.
Uma resposta que diz "gerei os slides" sem antes ter rodado o script é uma alucinação — o usuário
não recebeu nada. Sempre faça: `write` do script → `exec_command` para rodá-lo → confirmar que o
`.pptx` foi criado → `send_document`.
**REGRA (vale para os dois caminhos):** NUNCA usar `python3 -c "..."`/`node -e "..."` com código
multilinha — o shell trunca o conteúdo. Sempre criar o script em arquivo separado e depois
executar.
### Passo 0B.1-Python — python-pptx
Instalar a lib (se necessário):
```bash
pip install python-pptx -q 2>/dev/null || pip install --break-system-packages python-pptx -q 2>/dev/null
```
**Passo 0B.2** — Usar `write` para salvar o script com um nome **ÚNICO derivado do assunto/arquivo
de origem** — NUNCA use o nome genérico `tmp/gerar_pptx.py` nem a saída genérica
`apresentacao.pptx`. O workspace é persistente entre conversas: um script ou script
`tmp/gerar_pptx.py` de uma tarefa anterior (outro assunto, outra aula) continua no disco, e se
outro step do mesmo plano (ex: um step separado de `exec_command` que segue esta receita ao pé
da letra) rodar `python3 tmp/gerar_pptx.py` sem saber que o nome mudou, ele executa o script
ERRADO — silenciosamente gerando/enviando o arquivo da tarefa antiga. Use o mesmo padrão de nome
em todos os lugares (script E saída), ex. para uma aula sobre DHCP: `tmp/gerar_pptx_dhcp.py` →
`aula_dhcp.pptx`.
```python
from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()
# ... gerar slides a partir do conteúdo
prs.save('NOME_UNICO_DO_ASSUNTO.pptx') # ex: 'aula_dhcp.pptx' — nunca 'apresentacao.pptx'
```
**Passo 0B.3** — Executar via `exec_command`, usando o MESMO nome único do Passo 0B.2:
```bash
python3 tmp/gerar_pptx_NOME_UNICO_DO_ASSUNTO.py
```From rovanni/NewClaw, MIT.
More from rovanni/NewClaw
- 0.584score
skill-manager
rovanni
Instala, audita e gerencia skills no NewClaw.
SkillAFreshness: A★ 1Claude Code +9 - 0.547score
dependency-curator
rovanni
Pesquisa e documenta comandos de instalação cross-platform (Linux/Windows/macOS) de uma dependência de sistema, com fonte citada e grau de confiança, antes…
SkillBFreshness: B★ 1Claude Code +9 - 0.543score
Pedido de Áudio
rovanni
Gera áudio TTS com conteúdo relevante em vez de repetir o pedido do usuário.
SkillAFreshness: A★ 1Claude Code +9 - 0.543score
Salvar Memória
rovanni
Salva informações na memória persistente com formato mais consistente.
SkillAFreshness: A★ 1Claude Code +9 - 0.541score
system-provisioner
rovanni
Instala dependências e configura o ambiente (pip, npm, apt, etc.)
SkillBFreshness: B★ 1Claude Code +9 - 0.494score
skill-auditor
rovanni
Audita skills de terceiros antes da ativação, verificando prompt injection, acesso a arquivos sensíveis, exfiltração e código malicioso.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
content-validator
rovanni
Valida arquivos gerados (HTML, JS, Python, JSON) antes de enviar ao usuário, detectando erros de sintaxe e problemas comuns.
SkillCFreshness: C★ 1Claude Code +9 - 0.490score
html-pdf-converter
rovanni
Converte arquivos HTML para PDF usando o script html2pdf.sh.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 3, 2026 (26 days ago)
- Last release
- Jul 21, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/rovanni/NewClaw
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from rovanni
- 0.584score
skill-manager
rovanni
Instala, audita e gerencia skills no NewClaw.
SkillAFreshness: A★ 1Claude Code +9 - 0.547score
dependency-curator
rovanni
Pesquisa e documenta comandos de instalação cross-platform (Linux/Windows/macOS) de uma dependência de sistema, com fonte citada e grau de confiança, antes…
SkillBFreshness: B★ 1Claude Code +9 - 0.543score
Pedido de Áudio
rovanni
Gera áudio TTS com conteúdo relevante em vez de repetir o pedido do usuário.
SkillAFreshness: A★ 1Claude Code +9 - 0.543score
Salvar Memória
rovanni
Salva informações na memória persistente com formato mais consistente.
SkillAFreshness: A★ 1Claude Code +9 - 0.541score
system-provisioner
rovanni
Instala dependências e configura o ambiente (pip, npm, apt, etc.)
SkillBFreshness: B★ 1Claude Code +9 - 0.494score
skill-auditor
rovanni
Audita skills de terceiros antes da ativação, verificando prompt injection, acesso a arquivos sensíveis, exfiltração e código malicioso.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
pptx-generator skill. Agent Mart. https://agentmart.dev/skills/rovanni-pptx-generator (last updated 2026-10-24)