일본 컨설팅 스타일 PPTX
이 스킬은 pptx 스킬 위에 일본어 특화 레이어를 추가합니다. pptx 스킬을 사용할 수 있다면 (claude.ai: /mnt/skills/public/pptx/SKILL.md), 먼저 읽어서 pptxgenjs의 함정과 QA 명령어(validate.py, soffice → pdftoppm)를 확인하세요. 아래 내용은 이를 재정의하거나 확장합니다. 이 스킬 자체의 스크립트는 Node + pptxgenjs와 Python 3 + python-pptx만 있으면 됩니다.
존재 이유
기본 파이프라인으로 만든 일본어 슬라이드는 다음 세 가지 이유로 기계가 만든 것처럼 보이며, 가시성 순서대로 나열했습니다:
- 문체(文体) – です・ます 설명, 완곡 표현(~と言えるでしょう), 빈 단어(さまざまな/効率的に), 번역체 구문.
references/writing-style.md와 린터로 수정합니다. - 배치(配置) – 중앙 정렬 제목, 동일한 3카드 행, 악센트 줄, 고르지 않은 간격, 슬라이드 간 이동하는 제목.
references/layout-and-patterns.md와 라이브러리의 고정 레이아웃 영역으로 수정합니다. - 마무리(仕上げ) – pptxgenjs가 동아시아 폰트를 비워두므로 PowerPoint가 일본어를 游ゴシック Light로 렌더링하고, 텍스트를 en-US로 태그하며, 금칙처리를 무시합니다.
scripts/postprocess_jp.py로 수정하며, 라이브러리가 자동 실행합니다.
AI 같은 텍스트의 원인은 특정 단어가 아니라 내용의 부재입니다. 특정 표현을 금지하면 모델이 대신 유의어를 사용할 뿐입니다. 따라서 원인을 해결하세요: 구체적인 내용(누가, 무엇을, 얼마나, 언제까지)을 추가하거나 문장을 삭제하세요. writing-style.md §0에서 이를 설명하며, 세 단계 재작성(削る → 足す → 揃える)을 따르세요.
pptx 스킬 재정의
| pptx 스킬의 내용 | 여기서는 |
|---|---|
| 제목 36–44pt, 본문 14–16pt | 제목 24pt, 리드 14, 본문 14, 노트 10. 일본 컨설팅 데크는 읽는 문서입니다. 긴 일본어 제목은 36pt로 맞지 않습니다. 프로젝션용 데크인 경우에만 18pt+ 본문을 사용하세요. |
| 안전 목록의 폰트 | 라틴/숫자 Arial, 일본어 BIZ UDPゴシック (대안: 游ゴシック, メイリオ). createDeck에서 font:를 설정하세요. QA는 대체 폰트로 렌더링되므로 상자에 약 10% 여유를 두세요. |
| 모든 슬라이드에 시각 요소 필요 | 구조화된 표, 컬럼 또는 프로세스가 시각 요소로 간주됩니다. 글머리 기호만 있는 슬라이드는 피하고, 이를 충족하기 위해 장식용 아이콘을 절대 추가하지 마세요. |
| 악센트 라인, 컬러 바 없음 | 여기도 동일하며, 카드 가장자리 줄이나 전체 너비 헤더 밴드도 없습니다. |
워크플로우
- 스토리라인 우선. 모든 슬라이드의 액션 타이틀을 리스트로 작성하고 순서대로 읽어보세요. 타이틀만으로 이야기가 전달되지 않는다면 레이아웃 전에 스토리를 수정하세요(
writing-style.md§2). - 슬라이드별 카피 작성
writing-style.md§1–§5를 적용: 요소별 레지스터, 제목과 글머리 기호에 です・ます 금지, 기준과 출처를 포함한 숫자. - 슬라이드별 패턴 선택
layout-and-patterns.md§2의 표에서 선택. 인접 슬라이드는 같은 패턴을 사용하면 안 됩니다. - 빌드 라이브러리 사용(아래 참조). 제목, 리드, 노트, 페이지 번호를 수동으로 배치하지 마세요. 레이아웃이 이를 소유합니다.
- 린트:
python3 scripts/lint_jp_deck.py deck.pptx. 모든 ERROR를 수정하고 모든 WARN을 읽으세요. ERROR가 없을 때까지 다시 실행하세요. - 검증 및 렌더링:
validate.py실행 후 이미지로 변환하여 각 슬라이드를 검사하세요(beautify.md§4–§5 참조). 새로운 시선으로 슬라이드를 보고, 제목의 외톨이 줄과 0.3인치 미만 블록 간격을 확인하세요. - 보고: 린트 요약과 의도적으로 남긴 WARN을 사유와 함께 보고하세요.
사용자가 기존 일본어 슬라이드를 수정해 달라고 요청하면, 먼저 린터를 실행하여 결함 목록을 얻은 후 writing-style.md에 따라 텍스트를 편집하고, 레이아웃 규칙을 위반하지 않는 한 기존 레이아웃을 유지하세요.
라이브러리
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; // 인치 단위 영역: 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, "示唆の一文"); // 본문 영역 하단
d.note(s, ["出所:…", "注:…"]);
await d.finish("out.pptx"); // 쓰기 후 postprocess_jp.py 실행
scripts/sample_deck.js는 모든 컴포넌트를 사용하는 8슬라이드 참조 데크를 만듭니다. 새 빌드 스크립트를 작성하기 전에 읽어보세요. 선, 표, 차트의 색상 옵션은 d.THEME.colors의 16진수 값을 사용하고, 텍스트와 채우기는 스킴 색상 d.C.*를 사용합니다. postprocess_jp.py는 스킴 색상이 16진수 전용 옵션에 누출되면 큰 소리로 실패합니다.
pres.addText에 커스텀 fontFace를 사용하지 마세요. 테마 폰트가 라틴/일본어 쌍을 전달합니다. 하드코딩된 폰트는 동아시아 매핑을 깨뜨립니다.
참조 파일
references/writing-style.md– 요소별 레지스터, 액션 타이틀, AI 냄새 카탈로그(NG → OK), 숫자 표기법, 글머리 기호 규칙, 재작성 패스, 사전 점검 목록. 슬라이드 텍스트를 작성하기 전에 읽으세요.references/layout-and-patterns.md– 영역과 그리드, 콘텐츠 → 패턴 표, 정렬 원칙, 피해야 할 AI 스러운 레이아웃, 차트와 표 관례.references/beautify.md– 색상 시스템, 서체 스케일, 도형 규칙, 마무리 점검, 렌더링 주의사항.
린터
scripts/lint_jp_deck.py deck.pptx [--strict] [--json] [--ignore RULE …]는 python-pptx로 .pptx를 읽고 슬라이드별로 ERROR / WARN / INFO를 보고합니다. ERROR가 있거나 (--strict로 WARN) 있으면 종료 코드 1을 반환합니다. writing-style.md §3의 ★ 항목과 폰트, 언어 태그, 넘침 추정, 겹침, 빡빡한 간격, 여백, 제목 위치 드리프트, 중앙 정렬 본문 텍스트, 레이아웃 반복을 검사합니다. 제목이 좋은 주장인지 판단할 수는 없으므로 제목을 순서대로 읽어서 판단하세요.