Communitygithub.com

Brian-LEE0/jp-consulting-pptx

일본 컨설팅 펌 스타일의 파워포인트 데크(.pptx)를 AI 생성 슬라이드 특유의 인공적인 느낌 없이 제작합니다. 문체, 레이아웃, 마무리까지 모두 다룹니다.

jp-consulting-pptx란 무엇인가요?

이 스킬은 개발자가 일본어 비즈니스 PPT 데크를 컨설팅 펌 스타일로, AI가 만든 듯한 인공적인 느낌 없이 생성할 수 있도록 지원합니다. `pptx` 스킬을 기반으로 일본어 특화 레이어를 추가하여, 문체(です・ます 혼용 및 번역체 제거), 레이아웃(그리드 및 패턴 선택), 그리고 마무리(폰트, 색상, 여백)의 세 가지 측면에서 문제를 해결합니다. Claude Code, Cursor 등 다양한 AI 에이전트 환경에서 사용할 수 있으며, Node.js + pptxgenjs와 Python 3 + python-pptx를 필요로 합니다. 워크플로우는 스토리라인 작성 → 카피 작성 → 패턴 선택 → 라이브러리로 빌드 → 린트 → 검증 및 이미지 확인의 순서로 진행되며, `lint_jp_deck.py` 스크립트가 오류를 잡아내고 `postprocess_jp.py`가 동아시아 폰트와 금칙 처리를 자동으로 수행합니다. 기존 일본어 슬라이드를 개선할 때도 유용합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Brian-LEE0/jp-consulting-pptx/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

일본 컨설팅 스타일 PPTX

이 스킬은 pptx 스킬 위에 일본어 특화 레이어를 추가합니다. pptx 스킬을 사용할 수 있다면 (claude.ai: /mnt/skills/public/pptx/SKILL.md), 먼저 읽어서 pptxgenjs의 함정과 QA 명령어(validate.py, soffice → pdftoppm)를 확인하세요. 아래 내용은 이를 재정의하거나 확장합니다. 이 스킬 자체의 스크립트는 Node + pptxgenjs와 Python 3 + python-pptx만 있으면 됩니다.

존재 이유

기본 파이프라인으로 만든 일본어 슬라이드는 다음 세 가지 이유로 기계가 만든 것처럼 보이며, 가시성 순서대로 나열했습니다:

  1. 문체(文体) – です・ます 설명, 완곡 표현(~と言えるでしょう), 빈 단어(さまざまな/効率的に), 번역체 구문. references/writing-style.md와 린터로 수정합니다.
  2. 배치(配置) – 중앙 정렬 제목, 동일한 3카드 행, 악센트 줄, 고르지 않은 간격, 슬라이드 간 이동하는 제목. references/layout-and-patterns.md와 라이브러리의 고정 레이아웃 영역으로 수정합니다.
  3. 마무리(仕上げ) – 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% 여유를 두세요.
모든 슬라이드에 시각 요소 필요구조화된 표, 컬럼 또는 프로세스가 시각 요소로 간주됩니다. 글머리 기호만 있는 슬라이드는 피하고, 이를 충족하기 위해 장식용 아이콘을 절대 추가하지 마세요.
악센트 라인, 컬러 바 없음여기도 동일하며, 카드 가장자리 줄이나 전체 너비 헤더 밴드도 없습니다.

워크플로우

  1. 스토리라인 우선. 모든 슬라이드의 액션 타이틀을 리스트로 작성하고 순서대로 읽어보세요. 타이틀만으로 이야기가 전달되지 않는다면 레이아웃 전에 스토리를 수정하세요(writing-style.md §2).
  2. 슬라이드별 카피 작성 writing-style.md §1–§5를 적용: 요소별 레지스터, 제목과 글머리 기호에 です・ます 금지, 기준과 출처를 포함한 숫자.
  3. 슬라이드별 패턴 선택 layout-and-patterns.md §2의 표에서 선택. 인접 슬라이드는 같은 패턴을 사용하면 안 됩니다.
  4. 빌드 라이브러리 사용(아래 참조). 제목, 리드, 노트, 페이지 번호를 수동으로 배치하지 마세요. 레이아웃이 이를 소유합니다.
  5. 린트: python3 scripts/lint_jp_deck.py deck.pptx. 모든 ERROR를 수정하고 모든 WARN을 읽으세요. ERROR가 없을 때까지 다시 실행하세요.
  6. 검증 및 렌더링: validate.py 실행 후 이미지로 변환하여 각 슬라이드를 검사하세요(beautify.md §4–§5 참조). 새로운 시선으로 슬라이드를 보고, 제목의 외톨이 줄과 0.3인치 미만 블록 간격을 확인하세요.
  7. 보고: 린트 요약과 의도적으로 남긴 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의 ★ 항목과 폰트, 언어 태그, 넘침 추정, 겹침, 빡빡한 간격, 여백, 제목 위치 드리프트, 중앙 정렬 본문 텍스트, 레이아웃 반복을 검사합니다. 제목이 좋은 주장인지 판단할 수는 없으므로 제목을 순서대로 읽어서 판단하세요.

관련 스킬