Communitygithub.com

Aumnertic/scene-ppt

Projeta apresentações em PPT / slides / decks em chinês com base no cenário de uso: primeiro pergunta o contexto, o público e o propósito, depois seleciona o estilo com base no material do usuário, renderiza páginas estilosas com HTML/SVG e exporta para PNG e PDF.

O que é scene-ppt?

Esta skill é especializada em criar apresentações (PPT, slides, decks) em chinês de forma contextualizada e profissional. Diferente de geradores genéricos que produzem slides com aspecto 'de IA' — cartões, gradientes roxos, pouca personalidade — ela segue um fluxo estruturado de 6 etapas: (00) diagnóstico do cenário, (01) organização do material, (02) definição do esqueleto, (03) escolha de formas visuais, (04) renderização com HTML/SVG via Playwright e Google Chrome no macOS, (05) verificação automática e manual, e (06) entrega em PNG/PDF. Possui quatro ramos de estilo pré-definidos — `roadshow-cn` (competições universitárias), `course-report` (trabalhos acadêmicos), `school-event` (atividades escolares) e `curve-minimal` (design minimalista) — mas também permite derivar novos estilos a partir de tokens CSS (cores, fontes, formas) quando nenhum ramo se encaixa. A skill usa fontes do sistema macOS, exige Google Chrome e `uv` para executar o script de renderização, e ainda não oferece exportação para PPTX editável. Ideal para desenvolvedores, estudantes e profissionais que precisam de apresentações visualmente impactantes e adaptadas ao público-alvo.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Aumnertic/scene-ppt/tree/HEAD

Perguntar na sua IA favorita

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

Documentação

Design de Apresentação Contextualizada

Esta skill oferece duas coisas:

  1. Referência de modelos: styles/<branch>/exemplar/ e samples/ com exemplares prontos.
  2. Guia de design: guide/ com explicações sobre "como organizar, quais formas usar".

Princípio central: o estilo segue o cenário e o material, não é fixo. Os exemplares servem para definir o padrão de qualidade e demonstrar técnicas, não para serem copiados. Novos decks devem recompor o layout com base no próprio conteúdo. Copiar o layout dos exemplares ou fazer todos os decks parecerem iguais é exatamente o "aspecto de IA" que esta skill visa evitar.

Requisitos de ambiente

  • macOS, Google Chrome, uv. A renderização usa o Chrome do sistema, não requer download de navegador.
  • As fontes são do sistema macOS e não podem ser empacotadas com a skill. As espessuras das fontes chinesas devem ser especificadas pelo nome PostScript, ex.: STSongti-SC-Black, FZLTTHK--GBK1-0. Usar apenas o nome da família com font-weight resulta em queda para a espessura regular.

Fluxo

00 Diagnóstico do cenário

Leia primeiro o material fornecido pelo usuário. Não faça perguntas que o material já responde. Em seguida, faça apenas perguntas cujas respostas alteram decisões de design, no máximo 3 a 4 por vez. Use ferramenta de perguntas se disponível.

PerguntaO que decide
Para qual ocasião? Ex.: competição/apresentação, aula/acadêmico, reunião escolar/atividade, trabalho, outroQual ramo de estilo escolher
Será projetado ao vivo ou enviado como arquivo para leitura individual? Duração?Densidade de informação e número de páginas. Projetado: letras grandes e poucas, ~1 minuto por página. Arquivo: pode ser mais denso
O que o público deve lembrar e sentir? Ex.: profissionalismo confiável, ideias criativas, calor divertido, paixãoQual tema dentro do ramo
Há cores, logotipos ou modelos obrigatórios? Ex.: brasão da universidade, cores da turma, regras da competiçãoVariável de cor principal

Cenário → ramo e tema

CenárioRamoComo escolher o temaDensidade
Desafio Cup, Internet+, competição de startups, defesa de projetoroadshow-cnTema único; se a competição for comercial, tons dourados claros com ciano tecnológicoCheio (acima de 70%)
Relatório final de curso, relatório de leitura, pesquisa em grupocourse-reportHumanidades/sociais escolhem paper; exatas, design, dados escolhem swissPode ter espaços em branco, contraste grande de tamanho de fonte
Reunião de turma, revisão de meio/final de período, jogos escolares, clubes, formaturaschool-eventMemórias, agradecimento escolhem handbook; competição, mobilização escolhem popPode ter espaços em branco, cada página tem um "objeto físico"
Precisa destacar senso de design e estilo pessoal: portfólio, autoapresentação para emprego/pós-graduação, palestra de design, discurso temático pessoalcurve-minimalQuer contido, racional, como um design, ou enviar arquivo/imprimir, escolha pen (fundo claro); quer mais expressivo e pessoal, apresentação ao vivo, escolha ribbon (fundo escuro)Muito pouco, muito espaço em branco; cada página tem um único ponto focal
Nenhum se encaixaCriar novo tema ou ramo, veja abaixo——

Quando não houver ramo adequado, não force o mais próximo. Derive um novo conjunto de tokens.css seguindo a ordem: "caráter → fontes → linguagem de formas → cores". A divisão entre variáveis obrigatórias e opcionais está descrita no início de styles/roadshow-cn/tokens.css. Fontes devem ser verificadas com scripts/fontcheck.py para confirmar que o Chrome as está usando.

As cores principais devem ser extraídas principalmente do material do usuário, como cores oficiais da escola, cores da turma, cores relacionadas ao tema.

01 Organização do material

Liste fotos, números-chave, citações originais e arquivos de certificados do material do usuário. A quantidade de fotos afeta diretamente o layout: com menos de 3 fotos, não crie mural de fotos. Atualmente esta etapa é feita manualmente, sem scripts.

02 Esqueleto

Defina primeiro os capítulos, depois atribua a cada página um papel: capa, página de capítulo, página de conteúdo, página de dados, encerramento. Os papéis típicos de cada ramo estão em styles/<branch>/style.md.

03 Escolha de formas por página

Para cada página, identifique sua relação de informação (hierarquia, sequência, contraste, ordenação, proporção, número-chave, paralelismo, foto ao vivo...), depois consulte guide/shapes.md para encontrar formas candidatas correspondentes, escolhendo uma com base nos critérios de seleção e no ramo atual. Se não conseguir explicar "por que esta forma", a escolha está errada. A decoração é adicionada por último, escolhida com base na função de composição (seção 4 do mesmo documento).

04 Renderização

  1. Escreva o arquivo com base na estrutura de arquivo do exemplar exemplar/deck.html do ramo escolhido, mas não copie o layout dele:
    • A primeira linha de <head> deve conter o script do tema: <script>{const t=new URLSearchParams(location.search).get('theme');if(t)document.documentElement.dataset.theme=t}</script>. Se faltar, render.py passará o nome do tema mas renderizará silenciosamente no tema padrão;
    • Em seguida, referencie tokens.css, lib/base.css, components.css do ramo. O ramo roadshow-cn é monotemático e não inclui lib/base.css, siga seu próprio modelo;
    • No final da página, referencie lib/shapes.js;
    • Cada página é uma <section class="slide">, tamanho 1920×1080.
  2. No <style> da página, escreva apenas coordenadas e dimensões. Use var(--c-*) para cores, ou leia com Shapes.T('nomeDoPapel') em JS.
  3. Posições de foto use <div class="photo" data-label="…">. Quando houver foto real, coloque <img> dentro.
  4. Comando de renderização:
uv run --with playwright python scripts/render.py <deck.html> <diretório de saída> [nome do tema]

05 Verificação

  • render.py verifica automaticamente: transbordamento de caixa de texto (apenas elementos com .fit), erros de JS, reticências, variáveis de tema ausentes.
  • Veja cada PNG página por página. A verificação automática não detecta sobreposição de elementos, bloqueios ou linhas com palavra única no final. Páginas novas quase sempre apresentam esses problemas na primeira renderização.
  • Compare com guide/anti-patterns.md: apenas cartões, gradientes rosa-roxo, emoji substituindo ilustração são considerados falhas.
  • Títulos grandes com fontes caligráficas, manuscritas ou decorativas não devem receber .fit, senão a verificação gerará falso positivo.

06 Entrega

Entregue os PNGs e PDFs (já gerados por render.py) ao usuário para que ele mesmo veja o resultado. Atualmente não é suportada exportação para PPTX editável; para alterações, edite o HTML e renderize novamente.

Índice de arquivos

CaminhoConteúdoQuando ler
guide/shapes.mdRelação de informação → forma, com justificativa, variações por cenário, implementação, dependências de variáveisEtapa 03, usar a cada página
guide/anti-patterns.mdCaracterísticas típicas de PPT gerado diretamente por IAEtapa 05
styles/<branch>/style.mdCenários de aplicação, técnicas de design, papéis de página, critérios de seleção de tema do ramoApós escolher o ramo
styles/<branch>/tokens.cssVariáveis de cores, fontes, tamanhos; diferentes temas usam [data-theme] para sobrescritaAo alterar cor principal ou criar novo tema
styles/<branch>/components.cssComponentes HTML do ramoEtapa 04
styles/<branch>/exemplar/4 páginas de exemplo com capturas de cada temaEtapa 04, para ver técnicas
styles/school-event/samples/banhui-full/Exemplo completo de 12 páginas de reunião de turma (tema handbook, bem avaliado)Ao criar deck completo, como referência de ritmo
lib/shapes.js19 geradores SVG (estrutura, dados, decoração, desenho à mão)Etapa 04
lib/base.cssReset de estilos, canvas, posições de fotoEtapa 04
scripts/render.pyRenderização, verificação, exportação PNG e PDFEtapas 04 e 05
scripts/pixeldiff.pyComparação pixel a pixel para testes de regressãoApós alterar lib/
scripts/fontcheck.pyVerifica fontes realmente usadas pelo ChromeAo criar novo tema ou trocar fontes

Não implementado

  • As etapas 01 a 03 ainda não possuem scripts; são feitas manualmente conforme as instruções acima.
  • guide/organization.md (esqueleto de capítulos, papéis de página, ritmo) ainda não foi escrito.
  • Não suporta exportação para PPTX editável.
  • Fontes não são portáveis entre máquinas: ao mudar para ambiente não-macOS, é necessário usar fontes web open-source empacotáveis.

Habilidades Relacionadas