Apresentações PowerPoint no Estilo de Consultoria Japonesa
Este skill adiciona uma camada específica para o japonês sobre o skill pptx. Se o skill pptx estiver disponível (claude.ai: /mnt/skills/public/pptx/SKILL.md), leia-o primeiro para conhecer as armadilhas do pptxgenjs e os comandos de QA (validate.py, soffice → pdftoppm). Tudo abaixo substitui ou estende esse conteúdo. Os scripts próprios deste skill precisam apenas de Node + pptxgenjs e Python 3 + python-pptx.
Por que isso existe
Slides japoneses feitos por pipelines padrão parecem produzidos por máquina por três motivos, nesta ordem de visibilidade:
- 文体 (Estilo de escrita) – Explicações em です・ます, rodeios (〜と言えるでしょう), palavras vazias (さまざまな/効率的に), sintaxe de tradução. Corrigido com
references/writing-style.mdmais o linter. - 配置 (Layout) – Títulos centralizados, linhas idênticas de três cartões, faixas de destaque, gaps irregulares, títulos que se movem entre slides. Corrigido com
references/layout-and-patterns.mde zonas de layout fixas na biblioteca. - 仕上げ (Acabamento) – pptxgenjs deixa a fonte do Leste Asiático vazia, então o PowerPoint renderiza japonês em 游ゴシック Light; marca o texto como en-US; ignora kinsoku. Corrigido por
scripts/postprocess_jp.py, executado automaticamente pela biblioteca.
A causa do texto com som de IA é o vazio, não palavras específicas. Banir uma frase faz o modelo substituir por um sinônimo. Então corrija a causa: adicione especificidades (quem, o quê, quantos, até quando) ou remova a frase. writing-style.md §0 explica isso; siga sua reescrita em três passos (削る – cortar, 足す – adicionar, 揃える – alinhar).
Substituições do skill pptx
| O que o skill pptx diz | Aqui |
|---|---|
| Título 36–44pt, corpo 14–16pt | Título 24pt, lead 14, corpo 14, notas 10. Decks de consultoria japonesa são documentos lidos; títulos longos em japonês não cabem em 36pt. Use corpo 18pt+ apenas se o deck for projetado. |
| Fontes da lista segura | Latim/números Arial, japonês BIZ UDPゴシック (alternativas: 游ゴシック, メイリオ). Defina font: em createDeck. O QA renderiza com uma fonte substituta, então deixe ~10% de folga nas caixas. |
| Todo slide precisa de um elemento visual | Uma tabela estruturada, colunas ou processo conta como visual. Evite slides só com bullets; nunca adicione ícones decorativos para satisfazer isso. |
| Sem linhas de destaque, sem barras coloridas | O mesmo aqui, e também sem bordas de cartão ou faixas de cabeçalho de largura total. |
Fluxo de Trabalho
- História primeiro. Escreva os action titles para cada slide como uma lista e leia-os em ordem. Se os títulos sozinhos não contarem a história, corrija a história antes de qualquer layout (
writing-style.md§2). - Escreva o texto por slide aplicando
writing-style.md§1–§5: registro elemento por elemento, sem です・ます em títulos ou bullets, números com 基準 (base) e 出所 (fonte). - Escolha um padrão por slide da tabela em
layout-and-patterns.md§2. Slides vizinhos não devem usar o mesmo padrão. - Construa com a biblioteca (abaixo). Não coloque manualmente o título, lead, notas ou número da página; os layouts são responsáveis por eles.
- Linte:
python3 scripts/lint_jp_deck.py deck.pptx. Corrija todo ERROR e leia todo WARN. Reexecute até não restar nenhum ERROR. - Valide e renderize:
validate.py, depois converta para imagens e inspecione cada slide (vejabeautify.md§4–§5). Olhe os slides com olhos frescos; verifique títulos com linhas órfãs e blocos com gaps menores que 0,3in. - Relate o resumo do lint e qualquer WARN que você manteve propositalmente, com a justificativa.
Se o usuário fornecer slides japoneses existentes para corrigir, execute o linter primeiro para obter uma lista de defeitos, depois edite o texto conforme writing-style.md e mantenha o layout deles, a menos que viole as regras de layout.
Biblioteca
const { createDeck } = require("<skill dir>/scripts/jp_deck_lib.js");
const d = createDeck({ font: "biz-ud", palette: "ink", title: "…", company: "…", footerText: "Confidential" });
const { L } = d; // zonas em polegadas: L.body, L.note, …
d.cover({ title, subtitle, meta });
const s = d.content({ title: "結論を言い切るタイトル", lead: "対象・条件", section: "章名" });
d.bullets(s, ["体言止めの行", { t: "補足", lv: 1 }], { x: L.body.x, y: L.body.y, w: 6, h: 3 });
d.barChart(s, { labels, series: [{ name, values }] }, rect, { hi: 0 });
d.table(s, rows, rect, { numCols: [1, 2], hlRow: 2 });
d.columns(s, [{ head, items, foot, hl }], rect);
d.chevrons(s, [{ head, items, out, hl }], rect);
d.takeaway(s, "示唆の一文"); // fundo da zona de corpo
d.note(s, ["出所:…", "注:…"]);
await d.finish("out.pptx"); // escreve, depois executa postprocess_jp.py
scripts/sample_deck.js constrói um deck de referência de 8 slides que usa todos os componentes; leia-o antes de escrever um novo script de construção. Opções de cor para linhas, tabelas e gráficos precisam de hex de d.THEME.colors; texto e preenchimentos aceitam cores do esquema d.C.*. postprocess_jp.py falha alto se uma cor do esquema vazar para uma opção apenas hex.
Não chame pres.addText com um fontFace personalizado; as fontes do tema carregam o par latim/japonês. Uma fonte codificada quebra o mapeamento do Leste Asiático.
Arquivos de Referência
references/writing-style.md– registro por elemento, títulos de ação, catálogo de cheiro de IA (NG → OK), notação numérica, regras de bullet, passos de reescrita, lista de verificação pré-voo. Leia antes de escrever qualquer texto de slide.references/layout-and-patterns.md– zonas e grade, tabela conteúdo → padrão, princípios de alinhamento, layouts com aparência de IA a evitar, convenções de gráficos e tabelas.references/beautify.md– sistema de cores, escala tipográfica, regras de formas, verificações de acabamento, observações de renderização.
Linter
scripts/lint_jp_deck.py deck.pptx [--strict] [--json] [--ignore RULE …] lê o .pptx com python-pptx e relata ERROR / WARN / INFO por slide. Código de saída 1 em qualquer ERROR (ou qualquer WARN com --strict). Ele cobre os itens ★ em writing-style.md §3 mais fontes, tags de idioma, estimativas de overflow, sobreposições, gaps apertados, margens, desvio de posição do título, texto do corpo centralizado e repetição de layout. Ele não pode julgar se um título é uma boa afirmação; faça isso lendo os títulos em ordem.