O que Lesson Slide Designer faz?
Transforme o conteúdo de uma aula em um deck de slides que as pessoas possam aprender e em um roteiro de vídeo para a versão narrada. Uma aula por vez, uma pasta por aula.
Saída, em slides/<curso>/<aula>/ a menos que o usuário indique outro local:
| Arquivo | O que é |
|---|---|
slides.json | A fonte única: cada slide como dados, usando 16 tipos de slide (references/slide-types.md). Edite isso e depois reconstrua |
<nome_do_arquivo>.pptx | O deck 16:9, Arial, tema de três cores; a narração de cada slide está em suas notas do apresentador |
<nome_do_arquivo>.video-script.md | O arquivo para a etapa de vídeo: um bloco por slide com texto na tela, notas de produção, narração pronta para texto-para-fala e segundos, além de uma tabela de visão geral |
_preview/slide-NN.png, _preview/contact-sheet.png | Imagens 1920x1080 de cada slide e uma folha de contato, para sua própria verificação visual e como quadros para um vídeo |
<nome_do_arquivo>.preview.mp4 (opcional) | Um slideshow silencioso nos tempos do roteiro, ou um com narração quando existem arquivos de áudio por slide |
Ferramentas que os scripts usam: Python 3.9+ com python-pptx, Pillow, lxml (e cairosvg para ícones, ou sharp-cli, rsvg-convert, Inkscape); LibreOffice e Poppler (pdftoppm) para renderizar pré-visualizações; ffmpeg para o vídeo de pré-visualização opcional. Os ícones são do conjunto Lucide (licença ISC) em assets/icons/.
Fluxo de Trabalho
Passo 0. Leia a fonte e estabeleça o briefing
- Leia todo o material da aula: objetivos, público-alvo, modo de entrega, o plano de aula com minutos, o roteiro, as perguntas com respostas, qualquer esboço de slides, apostilas. Se o usuário fornecer apenas um título, peça o conteúdo ou escreva-o primeiro (a skill complementar
lesson-content-writerfaz exatamente isso). - Leia
references/slide-standards.md(as regras e a estrutura do deck) ereferences/slide-types.md(os 16 tipos e seus limites de texto). - Estabeleça: entrega (vídeo autocadenciado, então cada vídeo é um cluster com sua própria abertura, corpo e fechamento, mais slides de pausa; ou aula ao vivo, então slides para perguntar à sala e para briefings de prática); idioma (
language, qualquer idioma funciona,eneviobtêm verificações extras); tema (padrãonavy; um tema por curso, reutilizado aula após aula); como o instrutor se dirige aos alunos (extraído do roteiro); nome e contato do instrutor para o rodapé.
Passo 1. Planeje o deck
A partir do esboço de slides da fonte, ou da sequência da aula, escreva uma tabela: # | tipo | a única ideia do slide | visual ou ícone | pergunta ou pausa | número do vídeo. Restrições:
- Estrutura completa:
title-> (question, um abridor "tente primeiro", se a aula tiver um) ->objectives->agenda-> para cada parte umasection(ou aagendanovamente comcurrent) -> 2 a 5 slides de conteúdo -> pelo menos umaquestion->summary->closing. - Uma ideia por slide. Pelo menos 4 tipos de slide por deck, nunca 3 do mesmo tipo seguidos, uma pausa ou pergunta a cada 10 a 12 minutos de narração.
- Planeje o arco emocional e coloque um quebra-ritmo nas marcas de 1/3 e 2/3; escreva os títulos como afirmações, não como rótulos (
references/rhythm-and-titles.md). Números com fonte vão parabig-numbersouchart, não em bullets. - Fatos, termos, números e exemplos vêm apenas da fonte da aula. Nunca os invente. Exemplos vêm do próprio trabalho dos alunos.
- Cursos em vídeo: siga o plano de aula, cubra cada seção, exemplo, pergunta de pausa e exemplo prático da fonte em um slide ou na narração, e declare
videoscom minutos planejados para que o roteiro possa alertar sobre vídeos finos. Um esboço de slides na fonte é um piso, não um teto. Uma aula de 100 minutos geralmente precisa de 35 a 60 slides; o modelo de 17 slides é uma demonstração técnica, não uma aula completa.
Passo 2. Escreva slides.json
Copie templates/slides.example.json e preencha a partir do plano. Para cada slide:
- O texto na tela consiste em palavras-chave e linhas curtas que cabem em 24 pt (limites por tipo em
slide-types.md). Muito longo? Divida o slide. Nunca diminua o texto. narration: a partir do roteiro da aula, reescrito para o ouvido (references/narration-and-video-script.md): uma respiração por linha, cada linha termina com.,?ou!, números escritos como são falados, o slide nunca é lido palavra por palavra, slides de pergunta dizem "pause o vídeo".notes: direções de produção (revelar um por um, apontar, circular, inserir clipe, "Silêncio 60 segundos").- Escolha ícones pelo significado (
slide-types.md, seção 4) e mantenha um ícone por conceito recorrente em todo o curso. Imagens reais (capturas de tela, fotos de produtos) ficam ao lado deslides.jsoncom sua fonte emIMAGE-SOURCES.md. Pergunte antes de baixar imagens da web e verifique a licença. - Escreva como uma pessoa, não como um folheto (
references/plain-human-voice.md).
Passo 3. Construa e verifique
python scripts/build_slides.py slides/<curso>/<aula>/slides.json
O script PARA em violações graves: mais de 6 linhas, texto que não cabe em 24 pt, uma palavra órfã que não pode ser corrigida juntando duas palavras, um ícone ou imagem faltando, um tipo desconhecido, um travessão proibido ou frase de IA genérica, um rótulo de temporizador que discorda da narração, um item que a narração nunca lê. Corrija slides.json e reconstrua até que haja 0 erros. Leia também todos os avisos (linhas longas, dígitos na narração, três slides de um tipo seguidos, nenhum quebra-ritmo, vídeos finos) e corrija ou anote por que não.
python scripts/render_slides.py slides/<curso>/<aula>/<nome_do_arquivo>.pptx
Olhe para _preview/contact-sheet.png, depois para cada slide-NN.png em tamanho real, com a lista de verificação na seção 5 de slide-standards.md: texto cortado ou sobreposto, grandes áreas vazias, desalinhamento, legível a um terço do tamanho, um ponto focal por slide. Corrija, reconstrua, olhe novamente até que uma passagem completa não mostre nada. Nunca declare concluído sem olhar a renderização mais recente.
Opcional, para verificar o ritmo ou para entregar um rascunho de vídeo:
python scripts/preview_video.py slides/<curso>/<aula>/slides.json [--audio <pasta com S01.mp3 ...>]
Aulas longas em plataformas de vídeo (um tópico por vídeo, 10 a 12 minutos): mantenha um slides.json no nível da aula com um número de video em cada slide e divida-o:
python scripts/split_videos.py slides/<curso>/<aula>/slides.json --build --render
Cada vídeo recebe sua própria pasta e deck com um slide de título ("Vídeo k/N"), seus próprios objetivos, seu corpo e um fechamento que faz a ponte para o próximo vídeo. Edite o arquivo no nível da aula, nunca os gerados.
Passo 4. Relatório
Entregue ao usuário: os caminhos do deck, do roteiro de vídeo e da folha de contato; uma pequena tabela de visão geral (# - tipo - ideia - segundos); contagem de slides e duração estimada; o tema; suas suposições (forma de tratamento, números e de onde vieram); avisos que você deixou e por quê. Mostre a folha de contato.
Várias aulas em sequência
Reutilize o tema, rodapé, forma de tratamento e o conjunto de ícones-por-conceito das aulas anteriores na mesma pasta de curso. Mantenha os slides de title e closing idênticos no layout em todo o curso, e deixe cada fechamento fazer a ponte para a próxima aula.
Princípios
- Os padrões não se movem (
slide-standards.md). O conteúdo dentro deles é onde a criatividade flui. O script é o guardião; nunca desligue uma verificação para passar adiante. - Slides são para os olhos, narração é para os ouvidos. Os dois canais somam-se um ao outro e nunca se duplicam.
- Os alunos fazem algo. Cada parte tem uma pergunta ou uma pausa; o deck termina com uma ação concreta.
- Títulos em maiúsculas por padrão (
"title_case": "upper"), o JSON permanece como escrito para que a narração e as legendas não sejam afetadas. Maiúsculas ocupam mais espaço, então mantenha os títulos curtos. - 24 pt é o mínimo para tudo, incluindo rótulos, legendas, fontes e rodapés. Muito longo significa reescrever, não encolher.
- Sem palavras órfãs. Uma palavra sozinha na última linha de um título, cartão, etapa ou bullet parece quebrada. O script junta as duas últimas palavras quando isso cabe, e para quando não cabe.
- Execute e depois entregue. Construa, renderize, olhe, meça. Nunca adivinhe.
- Para adicionar um tipo de slide, adicione um método
s_<tipo>emscripts/build_slides.py, registre-o emKINDS, documente-o emslide-types.mde construa um deck de teste antes de usá-lo.
Arquivos de referência
references/slide-standards.md- o que são slides de aprendizagem digital, as dez regras de design e como o script verifica cada uma, a estrutura do deck, princípios de aprendizagem multimídia, a lista de verificação pré-entrega.references/slide-types.md- o formatoslides.json, os 16 tipos de slide com limites de texto, temas, planejamento de vídeo, a lista de ícones.references/narration-and-video-script.md- regras de narração para texto-para-fala ou voz humana, notas de produção, ler cada item na tela, entregar para a produção de vídeo.references/rhythm-and-titles.md- o arco emocional de uma aula, quebra-ritmos em 1/3 e 2/3, títulos como afirmações, padrões de frases para aberturas, comparações, números e fechamentos.references/plain-human-voice.md- como remover a voz de IA: travessões e frases proibidos, ritmo de frase, detalhes concretos, opinião.templates/slides.example.json- uma aula de demonstração de 17 slides que usa todos os tipos principais, já construída e verificada.