Crie um deck de teleprompter
Transforme material bruto em um deck de teleprompter finalizado e bem ritmado. Você (o
agente) faz o trabalho criativo — entrevista, ingere, escreve a prosa, coloca
pausas retóricas. Uma ferramenta determinística comprometida (tools/deck.js) faz o trabalho
contratual difícil — analisa, conta palavras, estima a duração exata, monta o JSON, carimba um
id estável. Nunca escreva o JSON do deck à mão; sempre compile-o através da ferramenta para que
o contrato e o relatório de duração sejam garantidos por máquina.
Leia references/format.md para o formato exato de criação do .deck.md e a
receita de extração de pptx antes de começar a escrever.
Fluxo de Trabalho
1. Reúna a fonte
Pergunte qual é a fonte e, em seguida, ingira-a:
- Texto colado / anotações — use diretamente.
- Imagens / capturas de tela — leia os arquivos de imagem você mesmo (visão). Nenhum script.
- PDF — leia você mesmo com a ferramenta Read (suporte nativo a PDF). Nenhum script.
- PowerPoint (.pptx) — converta o deck para texto da maneira que funcionar melhor na
máquina do usuário (veja
references/format.md→ "Extraindo um .pptx"): capture o texto por slide e as notas do orador, depois verifique se a saída parece correta antes de rascunhar a partir dela. Trate o arquivo como não confiável; não confirme nenhum script de extração descartável que você escrever.
As notas do orador são o melhor material bruto para a narração — prefira-as em vez dos marcadores no slide quando ambos existirem.
2. Confirme a intenção e os metadados (pergunte, não presuma)
Proponha um esqueleto por slide a partir da fonte — número, título, type
(ex.: content, section-divider), a dica on-screen (o que o público vê),
e um target aproximado em minutos por slide — e confirme. Pergunte também:
- Duração total desejada para a palestra (orienta os alvos por slide).
- Público / propósito (ajusta registro e profundidade).
- Modo de conteúdo — narração completa (escreva a prosa falada) ou notas de sinalização
(marcadores curtos com pontos de discussão que o apresentador expande com suas próprias palavras, com
uma pausa após cada ponto para espaço de fala). Veja
references/format.md→ "Modos de conteúdo". Se o usuário já pediu por dicas / pontos de discussão / um deck resumido ou no estilo de notas, pule esta pergunta e crie no modo de notas; caso contrário, pergunte. - Estilo de fala / voz. Ofereça a skill
blacktree-voicedo próprio usuário se ele quiser no tom de seu blog pessoal, ou um registro: conversacional, formal, enérgico ou neutro. Aplique essa voz ao rascunhar. (No modo de notas, a voz molda as poucas palavras que você escreve; o apresentador fornece o resto ao vivo.) - Idioma (padrão pt-BR para corresponder ao contexto).
Use AskUserQuestion para essas escolhas ramificadas, em vez de adivinhar.
3. Rascunhe a narração
Escreva o roteiro falado por slide na voz escolhida. Coloque pausas rítmicas onde a
retórica as exigir — após uma revelação, antes de uma lista, em uma mudança brusca de tópico
— usando [[pause]] (1s) ou [[pause:1.5]] (personalizado). Este posicionamento
semântico é seu trabalho; a ferramenta apenas valida e relata.
No modo de notas, não escreva frases completas: escreva um marcador curto de ponto de discussão
por parágrafo e termine cada um com uma pausa de orçamento de fala ([[pause:20]]–
[[pause:30]] para um ponto substancial, menos para pontos menores), dimensionando as pausas para
somar ao target do slide. As poucas palavras do marcador são lidas em segundos, então as pausas
são o que atinge o alvo. Veja references/format.md → "Modos de conteúdo" para a
convenção e a nota de que a flag de ritmo do relatório é esperada e ignorada aqui.
Escreva tudo em decks/<slug>.deck.md no formato de references/format.md.
Mantenha cada parágrafo como uma batida lógica (a ferramenta colapsa a quebra suave).
4. Compile
node tools/deck.js decks/<slug>.deck.md --wpm 130
Isso escreve decks/<slug>.json e imprime um relatório de duração: por slide, as
palavras, contagem de pausas e segundos adicionados, m:ss estimado no ritmo de referência, o
wpm implícito vs. o intervalo 60–220, e o delta em relação ao alvo de cada slide; além do
total do deck. Use --wpm <n> para relatar no ritmo em que o usuário realmente lê.
Opcional: --fill-beats insere um [[pause]] estrutural no final dos parágrafos que
não possuem um (nunca no último parágrafo de um slide, nunca duplicando uma batida
existente). Desligado por padrão — use apenas se o usuário quiser espaço automático para
respirar além das suas batidas criadas.
5. Confirme a duração e itere
Mostre o relatório ao usuário. Se um slide ultrapassar ou ficar abaixo do seu alvo, revise a
prosa (aperte ou expanda) ou ajuste as pausas, depois recompile. Repita até que o
timing se ajuste. O id do deck é estável (derivado do título / meta.id), então
recompilar atualiza o mesmo deck no lugar, em vez de gerar duplicatas.
6. Finalize
Confirme o deck final e diga ao usuário:
- O deck compilado está em
decks/<slug>.json; a fonte editável édecks/<slug>.deck.md(pode ser reexecutado a qualquer momento). - Para usá-lo: abra o aplicativo → menu (canto inferior direito) → escolher arquivo e selecione o
JSON, ou arraste o
.jsonpara a zona de soltar.decks/não é listado automaticamente, então deve ser carregado uma vez; a partir daí, ele persiste nesse dispositivo e lembra sua posição.
Diretrizes
- O JSON do deck é sempre produzido por
tools/deck.js, nunca digitado manualmente. - Todo o texto do deck chega ao aplicativo via
textContent/.value; ainda assim, mantenha os scripts livres de caracteres de controle (a ferramenta eSchemasanitizam, mas mantenha limpo). - Não confirme nenhum script de extração pptx descartável; extraia, verifique, limpe.
- As pausas são tempo absoluto (não escaladas pelo ritmo); gaste-as deliberadamente.