Japanese consulting-style PPTX
Este skill añade una capa específica para japonés sobre el skill pptx. Si el skill pptx está disponible (claude.ai: /mnt/skills/public/pptx/SKILL.md), léelo primero para conocer los problemas comunes de pptxgenjs y los comandos de QA (validate.py, soffice → pdftoppm). Todo lo que sigue lo reemplaza o amplía. Los scripts propios de este skill solo necesitan Node + pptxgenjs y Python 3 + python-pptx.
Por qué existe esto
Las diapositivas japonesas creadas por pipelines predeterminados parecen hechas por máquina por tres razones, en este orden de visibilidad:
- 文体 – Explicaciones en です・ます, titubeos (〜と言えるでしょう), palabras vacías (さまざまな/効率的に), sintaxis de traducción. Se corrige con
references/writing-style.mdy el linter. - 配置 – Títulos centrados, filas idénticas de tres tarjetas, franjas de acento, espacios desiguales, títulos que se mueven entre diapositivas. Se corrige con
references/layout-and-patterns.mdy zonas de diseño fijas en la biblioteca. - 仕上げ – pptxgenjs deja vacía la fuente de Asia Oriental, por lo que PowerPoint renderiza el japonés en 游ゴシック Light; etiqueta el texto como en-US; ignora kinsoku. Se corrige con
scripts/postprocess_jp.py, que se ejecuta automáticamente desde la biblioteca.
La causa del sonido a IA es el vacío, no palabras concretas. Prohibir una frase hace que el modelo la sustituya por un sinónimo. Así que corrige la causa: añade concreción (quién, qué, cuántos, para cuándo) o elimina la frase. writing-style.md §0 lo explica; sigue su proceso de tres pasos (削る → 足す → 揃える).
Reemplazos del skill pptx
| pptx skill dice | Aquí |
|---|---|
| Título 36–44pt, cuerpo 14–16pt | Título 24pt, lead 14, cuerpo 14, notas 10. Las presentaciones de consultoras japonesas son documentos para leer; los títulos largos en japonés no caben a 36pt. Usa cuerpo de 18pt+ solo si la presentación se proyecta. |
| Fuentes de la lista segura | Latín/números Arial, japonés BIZ UDPゴシック (alternativas: 游ゴシック, メイリオ). Establece font: en createDeck. QA renderiza con una fuente sustituta, así que deja ~10% de margen en las cajas. |
| Cada diapositiva necesita un elemento visual | Una tabla estructurada, columnas o un proceso cuenta como visual. Evita diapositivas solo con viñetas; nunca añadas iconos decorativos para cumplir esto. |
| Sin líneas de acento, sin barras de color | Igual aquí, y tampoco franjas en bordes de tarjetas ni bandas de encabezado de ancho completo. |
Flujo de trabajo
- Historia primero. Escribe los títulos de acción de cada diapositiva como una lista y léelos en orden. Si los títulos por sí solos no cuentan la historia, corrige la historia antes de cualquier diseño (
writing-style.md§2). - Escribe el texto por diapositiva aplicando
writing-style.md§1–§5: registro elemento por elemento, sin です・ます en títulos o viñetas, números con 基準 y 出所. - Elige un patrón por diapositiva de la tabla en
layout-and-patterns.md§2. Las diapositivas vecinas no deben usar el mismo patrón. - Construye con la biblioteca (abajo). No coloques manualmente el título, lead, notas o número de página; los diseños los gestionan.
- Lintea:
python3 scripts/lint_jp_deck.py deck.pptx. Corrige cada ERROR y lee cada WARN. Repite hasta que no quede ningún ERROR. - Valida y renderiza:
validate.py, luego convierte a imágenes e inspecciona cada diapositiva (verbeautify.md§4–§5). Mira las diapositivas con ojos frescos; revisa títulos por líneas huérfanas y bloques por espacios de menos de 0.3 pulgadas. - Informa el resumen del linter y cualquier WARN que hayas mantenido a propósito, con la razón.
Si el usuario proporciona diapositivas japonesas existentes para corregir, ejecuta primero el linter para obtener una lista de defectos, luego edita el texto según writing-style.md y mantén su diseño a menos que viole las reglas de diseño.
Biblioteca
const { createDeck } = require("<directorio del skill>/scripts/jp_deck_lib.js");
const d = createDeck({ font: "biz-ud", palette: "ink", title: "…", company: "…", footerText: "Confidential" });
const { L } = d; // zonas en pulgadas: 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, "示唆の一文"); // parte inferior de la zona de cuerpo
d.note(s, ["出所:…", "注:…"]);
await d.finish("out.pptx"); // escribe, luego ejecuta postprocess_jp.py
scripts/sample_deck.js construye una presentación de referencia de 8 diapositivas que usa todos los componentes; léelo antes de escribir un nuevo script de construcción. Las opciones de color para líneas, tablas y gráficos necesitan hex de d.THEME.colors; el texto y los rellenos toman colores de esquema d.C.*. postprocess_jp.py falla con estrépito si un color de esquema se ha filtrado en una opción solo hex.
No uses pres.addText con un fontFace personalizado; las fuentes del tema llevan el par latín y japonés. Una fuente codificada rompe el mapeo de Asia Oriental.
Archivos de referencia
references/writing-style.md– registro por elemento, títulos de acción, el catálogo de olor a IA (NG → OK), notación numérica, reglas de viñetas, pasos de reescritura, lista de verificación previa. Léelo antes de escribir cualquier texto de diapositiva.references/layout-and-patterns.md– zonas y cuadrícula, tabla contenido → patrón, principios de alineación, diseños con aspecto de IA que evitar, convenciones de gráficos y tablas.references/beautify.md– sistema de color, escala tipográfica, reglas de formas, comprobaciones de acabado, advertencias de renderizado.
Linter
scripts/lint_jp_deck.py deck.pptx [--strict] [--json] [--ignore REGLA …] lee el .pptx con python-pptx e informa ERROR / WARN / INFO por diapositiva. Código de salida 1 en cualquier ERROR (o cualquier WARN con --strict). Cubre los elementos ★ de writing-style.md §3 más fuentes, etiquetas de idioma, estimaciones de desbordamiento, superposiciones, espacios ajustados, márgenes, desviación de posición del título, texto de cuerpo centrado y repetición de diseño. No puede juzgar si un título es una buena afirmación; hazlo leyendo los títulos en orden.