Skip to content
Agentmart
Submit a tool

pptx-generator

Converte Markdown ou HTML em arquivos PowerPoint (.pptx).

Skill by rovanni

IndexedMIT★ 1
Write a review

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.

We use your email only for this newsletter. Privacy

About

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.

Use cases: documents, presentations, frontend, writing

No 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.

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from rovanni

Cite this page

pptx-generator skill. Agent Mart. https://agentmart.dev/skills/rovanni-pptx-generator (last updated 2026-10-24)