PowerPoint 기본 활성

.pptx 생성, 편집, 분석 — 단일 슬라이드 수정부터 모프 전환과 데이터 기반 생성을 갖춘 투자자 발표자료까지.

이 스킬은 기본 활성 상태이며, 요청에 PowerPoint, PPTX, 프레젠테이션, 슬라이드, 발표자료 등이 언급되면 자동으로 트리거됩니다. 수동 로딩이 필요 없습니다.

트리거 키워드

PowerPoint PPTX presentation slides deck

빠른 참조

작업방법
기존 발표자료 서식 따르기cp source.pptx target.pptx && officecli open target.pptx — 테마/레이아웃/마스터 상속
내용 읽기 / 분석officecli viewofficecli get 명령어
기존 프레젠테이션 편집참조 기반 편집 워크플로우 (복사 → 수정)
처음부터 새로 만들기officecli create → 슬라이드 추가 → 요소 추가
피치덱 (Seed / Series)서브스킬: officecli-pitch-deck
모프 전환 애니메이션서브스킬: morph-ppt
3D 모프 효과서브스킬: morph-ppt-3d
JS 프로그래밍 방식 대안50개 이상의 데이터 기반 슬라이드에 pptxgenjs
색상 팔레트 / 타이포그래피디자인 시스템: 20개 팔레트, 8개 폰트 조합
썸네일 그리드 / 시각적 QApython3 scripts/thumbnail.py deck.pptx grid.png
압축 해제 / 복구python3 scripts/pptx_cli.py {open|save|validate|repair}
실행 모델: 명령어를 하나씩 실행하세요. 다음으로 넘어가기 전에 종료 코드를 확인하세요. 0이 아니면 = 멈추고 수정하세요. 같은 .pptx 파일에 대해 병렬 명령어를 실행하지 마세요.

"~해줘" 예시

이 스킬을 활성화하는 자연어 요청입니다. 한국어, 영어, 혼합 모두 가능합니다.

"회사 소개 PPT 만들어줘 — 10장짜리, 우리 브랜드 컬러(네이비+화이트) 써줘"
네이비 + 화이트 색상 팔레트를 사용한 10장짜리 회사 소개 발표자료를 생성합니다. 스킬이 적절한 디자인 시스템 팔레트를 선택하고, 슬라이드 마스터를 설정한 후, 다양한 레이아웃(히어로, 분할, 그리드, 차트)으로 슬라이드를 생성합니다.
"이 PPTX 파일 분석해줘 — 어떤 내용인지 요약하고 디자인 문제 있으면 알려줘"
officecli view text로 모든 슬라이드 내용을 읽고, officecli view issues로 디자인 문제를 확인하며, 검증을 실행한 후 요약과 문제점(오버플로우, alt 텍스트 누락, 낮은 대비)을 보고합니다.
"기존 템플릿(Brand.pptx) 기반으로 Q4 실적 보고서 만들어줘"
테마/레이아웃/마스터를 상속받기 위해 원본 파일을 복사하고, 샘플 슬라이드를 제거한 후, 기존 브랜드 레이아웃을 사용하여 새 콘텐츠 슬라이드를 구성합니다. 테마를 처음부터 다시 만들지 않습니다.
"이 데이터로 차트 슬라이드 추가해줘 — 월별 매출 바 차트"
officecli add에 차트 속성을 지정하여 컬럼 차트 요소가 포함된 새 슬라이드를 추가합니다. 데이터는 인라인으로 전달되며 차트는 적절한 여백으로 배치됩니다.
"발표자료 만들어줘 — 모프 전환 효과 넣고, 다크 테마로"
morph-ppt 서브스킬을 활성화합니다. 48개의 큐레이션된 스타일 정의에서 다크 스타일을 선택하고, 슬라이드 간 모프 전환을 적용하며, 썸네일로 시각적 QA를 수행합니다.

주요 도구: OfficeCLI

officecli는 PPTX 작업의 약 80%를 처리합니다: 슬라이드 추가/설정/제거, 검증, 쿼리, 시각적 검사. 이것이 주요 인터페이스이며 — 다른 도구로 에스컬레이션하기 전에 항상 OfficeCLI를 먼저 시도하세요.

탐색 규칙

요소나 속성 이름을 임의로 만들지 말고, 항상 officecli --helpofficecli help pptx ... --json을 먼저 실행하세요. CLI가 사용 가능한 속성과 구문의 기준점입니다.
officecli --help
officecli help pptx
officecli help pptx add slide --json       # 정확한 속성 목록
officecli help pptx add shape --json
officecli help pptx set slide --json
officecli help pptx set shape --json
officecli view --help                      # 모든 보기 모드
officecli help pptx query

핵심 워크플로우

읽기 & 분석

# 텍스트 추출
officecli view slides.pptx text
officecli view slides.pptx text --start 1 --end 5

# 구조적 보기
officecli view slides.pptx outline
officecli view slides.pptx annotated
officecli view slides.pptx stats

요소 검사 (PATH 구문)

경로는 1부터 시작합니다: /slide[1], /shape[1]. zsh에서 glob 확장을 방지하려면 항상 경로를 따옴표로 감싸세요.

officecli get slides.pptx '/slide[1]' --depth 1
officecli get slides.pptx '/slide[1]/shape[1]'
officecli get slides.pptx '/slide[1]/chart[1]'
officecli get slides.pptx '/slide[1]/table[1]' --depth 3

CSS 유사 쿼리

officecli query slides.pptx 'shape:contains("Revenue")'
officecli query slides.pptx "picture:no-alt"
officecli query slides.pptx 'shape[fill=#4472C4]'
officecli query slides.pptx "shape[width>=10cm]"

시각적 검사

officecli view slides.pptx html --browser    # 권장
officecli view slides.pptx svg --start 1 --end 1 --browser

상주 모드

상주 모드는 더 빠른 순차 편집을 위해 파일을 백그라운드 데몬으로 열어둡니다. open 명령어는 즉시 반환됩니다 — 백그라운드 셸 작업으로 실행하지 마세요.

officecli open slides.pptx      # 즉시 반환; 데몬이 백그라운드에서 실행
officecli add slides.pptx ...
officecli set slides.pptx ...
officecli close slides.pptx     # 항상 명시적으로 닫기
경고: officecli open을 백그라운드 셸 작업으로 실행하지 마세요. 즉시 반환되며 데몬이 자동으로 백그라운드에서 실행됩니다. 백그라운드 셸 생성은 좀비 프로세스와 파일 잠금을 유발합니다.

배치 모드

JSON을 사용하여 단일 호출로 여러 작업을 실행합니다. 셸 구문이 JSON에 유입되는 것을 방지하려면 작은따옴표 구분자가 있는 heredoc을 사용하세요.

cat <<'EOF' | officecli batch slides.pptx
[
  {"command":"add","parent":"/slide[1]","type":"shape","props":{"text":"Title","x":"2cm","y":"2cm","width":"20cm","height":"3cm","size":"36","bold":"true"}},
  {"command":"add","parent":"/slide[1]","type":"shape","props":{"text":"Body","x":"2cm","y":"6cm","width":"20cm","height":"10cm","size":"16"}}
]
EOF

배치 지원 명령어: add, set, get, query, remove, move, swap, view, raw, raw-set, validate.


참조 기반 편집

사용자가 원본 파일을 제공하거나 "X.pptx처럼 서식 맞춰줘"라고 하면 — 항상 원본에서 시작하세요. 테마를 처음부터 다시 만들지 마세요.

이것이 중요한 이유

슬라이드 마스터와 테마 정의(폰트, 색상, 플레이스홀더 geometry)는 문서마다 다릅니다. 처음부터 다시 만들면 슬라이드 간 일관된 브랜딩이 깨지고, 기존 플레이스홀더 위치가 틀어지며, 복사본을 수정하는 것보다 5~10배 더 오래 걸립니다.

워크플로우

  1. 원본 복사: cp source.pptx target.pptx — 테마, 슬라이드 마스터, 레이아웃, 폰트, 색상 상속
  2. 열기: officecli open target.pptx — 데몬이 즉시 반환
  3. 슬라이드 내용 제거/slideMaster, /slideLayout, /theme는 유지
  4. 새 슬라이드 추가 — 기존 레이아웃 사용 (--prop layout=Title+Content) — 테마가 자동 상속됨

템플릿 소스 (우선순위 순)

우선순위소스사용 시기
1사용자 제공 원본 파일최우선 템플릿 — 항상 우선
2tests/fixtures/*.pptx스킬에 포함된 사전 제작 예시
3officecli-pitch-deck/ 템플릿피치/투자자 맥락
4morph-ppt/reference/styles/*48개 큐레이션된 스타일 정의
5officecli create 빈 파일다른 것이 해당되지 않을 때만

예시 — 기존 브랜드 상속

# 올바른 방법: 테마와 레이아웃 상속
cp CompanyBrand.pptx Q4Report.pptx
officecli open Q4Report.pptx
officecli remove Q4Report.pptx "/slide[1]"
officecli add Q4Report.pptx / --type slide --prop layout=Title
officecli add Q4Report.pptx '/slide[1]' --type textbox \
  --prop text="Q4 Report" --prop placeholder=title
officecli close Q4Report.pptx

# 잘못된 방법: 테마 재생성 (브랜드 손실)
officecli create Q4Report.pptx
# ... 모든 폰트, 색상, 마스터를 처음부터 추가 ...

생성 워크플로우

# 1. /tmp/에서 ASCII 파일명으로 작업 (한국어 파일명은 상주 모드에서 손상 유발)
officecli create /tmp/deck_work.pptx --type pptx

# 2. 슬라이드 추가, 배경 설정, 도형/텍스트박스/차트 추가
officecli add /tmp/deck_work.pptx /slide --type slide
officecli set /tmp/deck_work.pptx '/slide[1]' --prop background=1E2761
officecli add /tmp/deck_work.pptx '/slide[1]' --type textbox \
  --prop 'text=Title Here' --prop x=2cm --prop y=3cm --prop w=30cm --prop h=4cm \
  --prop fontsize=44 --prop bold=true --prop color=FFFFFF --prop fontFamily=Pretendard

# 3. 편집 후 상주 모드 명시적 닫기
officecli close /tmp/deck_work.pptx

# 4. 최종 파일명으로 복사 (최종 출력에는 한국어 파일명 사용 가능)
python3 -c "import shutil; shutil.copy2('/tmp/deck_work.pptx', 'final.pptx')"

에스컬레이션 사다리

OfficeCLI로 처리할 수 없을 때 순서대로 에스컬레이션하세요. 대부분의 작업은 L1에서 해결됩니다.

레벨상황도구
L1 officecli 고수준 일반적인 슬라이드/도형 추가/설정/제거 officecli add/set/remove/query/view
L2 officecli raw-set XML 주입 — 커스텀 애니메이션, 차트 XML, 테마 조정 officecli raw-set FILE PATH --xpath X --action A --xml ...
L3 Python 스크립트 썸네일 생성, 고아 미디어 정리, 통합 CLI 작업 python3 scripts/*.py
L4 압축 해제 → XML 편집 → 재압축 officecli 범위를 넘는 모프 전환, 커스텀 p:transition XML, 매크로 처리 scripts/pptx_cli.py open → XML 편집 → save
L5 pptxgenjs 데이터셋으로 50장 이상, 조합 가능한 팩토리, 복잡한 반복 로직 npm install pptxgenjs + JS 파이프라인

에스컬레이션 신호


요소 타입 & 명령어

OfficeCLI는 다양한 요소 타입을 지원합니다. 적극적으로 활용하세요 — 텍스트만 있는 슬라이드는 기억에 남지 않습니다.

도형을 콘텐츠 컨테이너로 사용

officecli add deck.pptx '/slide[1]' --type shape --prop geometry=roundRect \
  --prop fill=1E2761 --prop x=1cm --prop y=4cm --prop w=15cm --prop h=12cm

officecli add deck.pptx '/slide[2]' --type table \
  --prop rows=4 --prop cols=3 --prop x=1cm --prop y=3cm \
  --prop width=24cm --prop height=6cm

차트

officecli add deck.pptx '/slide[3]' --type chart \
  --prop chartType=column --prop title='Revenue' \
  --prop 'data=Q1:12,Q2:15,Q3:18,Q4:20'

이미지

officecli add deck.pptx '/slide[1]' --type picture \
  --prop path=photo.png --prop x=14cm --prop y=3cm \
  --prop width=8cm --prop height=5cm --prop alt='Team photo'

비디오 / 오디오

officecli add deck.pptx '/slide[4]' --type video --prop path=demo.mp4 \
  --prop x=2cm --prop y=3cm --prop width=20cm --prop height=12cm --prop autoplay=true

OLE 임베드 (Excel, Word, PDF)

officecli add deck.pptx '/slide[5]' --type ole --prop path=data.xlsx \
  --prop x=2cm --prop y=3cm --prop width=20cm --prop height=12cm

연결선 / 화살표

officecli add deck.pptx '/slide[2]' --type connector \
  --prop startShape=1 --prop endShape=2 --prop lineColor=4472C4 --prop tailEnd=arrow

발표자 노트

officecli add deck.pptx '/slide[1]' --type notes --prop 'text=Key talking point here.'

애니메이션

officecli set deck.pptx '/slide[1]/shape[2]' --prop animation=fadeIn --prop delay=500

테마 색상

# 테마 인식 발표자료에는 hex 대신 테마 토큰 사용
officecli set deck.pptx '/slide[1]/shape[1]' --prop fill=accent1
# 사용 가능: accent1..accent6, dk1, dk2, lt1, lt2, tx1, tx2, bg1, bg2

추가 작업

# 하이퍼링크
officecli set deck.pptx '/slide[1]/shape[2]' --prop link='https://example.com'

# 뒤집기 / 회전
officecli set deck.pptx '/slide[1]/shape[2]' --prop flipH=true
officecli set deck.pptx '/slide[1]/shape[2]' --prop rotation=45

# 슬라이드 마스터 / 레이아웃 편집
officecli set deck.pptx '/slideMaster[1]/shape[2]' --prop text='Company Name'
officecli set deck.pptx '/slideLayout[2]/shape[1]' --prop fill=1E2761

# 데이터와 템플릿 병합
officecli merge template.pptx output.pptx --data '{"title":"Q4 Report","revenue":"$5.1M"}'

# 감시 모드 (실시간 미리보기)
officecli watch deck.pptx --port 3000

# 슬라이드쇼 설정
officecli set deck.pptx / --prop show.loop=true --prop show.narration=false

디자인 시스템

디자인 다이얼

생성 전에 이 세 가지 매개변수를 결정하세요. 모호한 경우 사용자에게 제시하세요.

다이얼범위기본값의미
DESIGN_VARIANCE1–1041 = 대칭 그리드, 10 = 비대칭 아트 디렉팅
VISUAL_DENSITY1–1051 = 갤러리 여백, 10 = 대시보드 밀도
MOTION_INTENSITY1–1031 = 정적 컷, 10 = 시네마틱 모프

발표자료 유형별 프리셋

발표자료 유형변화도밀도모션
투자자 피치634
내부 리뷰371
컨퍼런스 키노트827
워크숍 / 교육462
제품 출시746

권장 팔레트

주제에 맞는 색상을 선택하세요 — 기본 파란색을 그냥 쓰지 마세요.

테마주색보조색강조색텍스트뮤트
Midnight Executive1E2761CADCFCFFFFFF3333338899BB
Slate Professional2C3E50ECF0F1E74C3C3333337A8A94
Forest & Moss2C5F2D97BC62F5F5F52D2D2D6B8E6B
Coral EnergyF96167F9E7952F3C7E3333338B7E6A
Warm TerracottaB85042E7E8D1A7BEAE3D2B2B8C7B75
Ocean Gradient065A821C729321295C2B3A4E6B8FAA
Charcoal Minimal36454FF2F2F22121213333337A8A94
Berry & Cream6D2E46A26769ECE2D03D22338C6B7A

밝은 배경에서는 본문에 텍스트 색상, 캡션/라벨/축 텍스트에는 뮤트 색상을 사용하세요. 어두운 배경(밝기 < 30%)에서는 모든 본문 텍스트를 흰색(FFFFFF) 또는 거의 흰색으로 해야 합니다. 순수 검정 대신: 000000이 아닌 0A0A0A.

피해야 할 것: 흰 배경 위 보라색 그라데이션 (AI 스타일), 무지개 다중 강조색, FFFFFF 배경 + 000000 텍스트 (개성 없음).

타이포그래피

제목 폰트본문 폰트적합한 용도
GeorgiaCalibri격식 있는 비즈니스, 금융
Arial BlackArial강렬한 마케팅, 출시
Trebuchet MSCalibri친근한 테크, 스타트업
ConsolasCalibri개발자 도구, 엔지니어링

한국어: Pretendard, Noto Sans KR, Wanted Sans. Malgun Gothic을 단독 폰트로 사용하지 마세요 — a:ea 폰트 스택에서 CJK 대체용으로만 허용됩니다.

요소크기
슬라이드 제목36–44pt 볼드
섹션 헤더20–24pt 볼드
본문 텍스트16–20pt (최소 16pt)
캡션 / 출처10–12pt 뮤트
핵심 지표60–72pt 볼드, 강조색
본문 텍스트 최소 16pt. 텍스트가 넘치면 내용을 줄이거나 슬라이드를 분할하세요 — 폰트를 절대 줄이지 마세요.

슬라이드 리듬

10장짜리 발표자료에는 최소 4가지 구별되는 레이아웃 유형이 있어야 합니다:

  1. 전면 히어로 — 제목 또는 핵심 지표
  2. 분할 레이아웃 — 텍스트 + 시각 자료
  3. 그리드 또는 비교 — 2–3개 항목
  4. 데이터 시각화 — 차트, 다이어그램 또는 인포그래픽

콘텐츠-레이아웃 가이드

콘텐츠 유형권장 레이아웃
가격 / 요금제 티어2–3열 카드 (비교)
팀 / 인물아이콘 그리드 또는 2x3 카드
타임라인 / 로드맵화살표가 있는 프로세스 플로우 / 번호 단계
핵심 지표 / KPI큰 숫자 콜아웃 (3–4개 큰 숫자)
고객 추천사 / 인용문전체 너비 인용문 + 출처
기능 비교2열 전후 비교 또는 표
아키텍처 / 시스템도형 + 연결선 다이어그램
재무 데이터차트 + 요약 표 나란히 배치

서브스킬

작업에 맞는 서브스킬 하나만 로드하세요. 전부 로드하지 마세요.

officecli-pitch-deck — 피치덱 (Seed / Series)

투자자 피치덱을 위한 특화된 템플릿과 구조. 문제/솔루션/시장/트랙션/팀/재무 흐름을 처리합니다.

morph-ppt — 모프 전환 애니메이션

슬라이드 간 시네마틱 모프 전환. 48개 큐레이션된 스타일 정의, 결정 규칙 (피라미드 원칙, SCQA), 캔버스 사양, 품질 게이트를 포함합니다.

morph-ppt-3d — 3D 모프 효과

고급 시각적 프레젠테이션을 위한 3D 모델 통합 모프 전환.

pptxgenjs — JavaScript 프로그래밍 방식 생성

조합 가능한 팩토리와 반복 로직으로 50장 이상의 데이터 기반 슬라이드를 대량 생성하는 PptxGenJS API.


참조 자료

디자인 참조

파일읽어야 할 시점포함 내용
references/design-system.md색상/폰트 선택 전20개 팔레트, 8개 폰트 조합, 4개 한국어 폰트
morph-ppt/reference/styles/INDEX.md독특한 시각적 스타일 선택 시사양 + 예시가 포함된 48개 스타일 정의
morph-ppt/reference/decision-rules.md콘텐츠가 많은 발표자료 기획 시피라미드 원칙, SCQA, 페이지 유형
morph-ppt/reference/pptx-design.md캔버스 사양, 고스트 위치 계산캔버스, 폰트, 간격 토큰
morph-ppt/reference/quality-gates.md4~5단계 QA 게이트모프 발표자료 QA 체크리스트
recipes.md빠른 수정 패턴섹션 구분선 z-order, KPI 오버플로우, 타임라인 간격

Python 스크립트 (scripts/)

스크립트용도명령어
pptx_cli.py통합 CLI: 압축 해제, 저장, 검증, 복구, 썸네일, 검색, 목차, 슬라이드 추가, 정리, PDF 내보내기python3 scripts/pptx_cli.py {open|save|validate|repair|...}
thumbnail.py시각적 QA를 위한 슬라이드 썸네일 그리드 또는 개별 PNGpython3 scripts/thumbnail.py IN.pptx grid.png
clean.py압축 해제된 PPTX에서 고아 미디어 찾기/제거python3 scripts/clean.py work/ [--delete]
add_slide.py압축 해제된 디렉토리에서 슬라이드 추가 또는 복제 (레거시 OOXML)python3 scripts/add_slide.py work/ --blank
run_tests.py스킬 회귀 테스트 실행python3 scripts/run_tests.py

QA (필수)

문제가 있다고 가정하세요. 여러분의 임무는 그것을 찾는 것입니다. 첫 번째 렌더링은 거의 항상 정확하지 않습니다. QA를 확인 단계가 아닌 버그 사냥으로 접근하세요. 첫 검사에서 문제를 하나도 발견하지 못했다면, 충분히 꼼꼼하게 보지 않은 것입니다.

1단계 — 자동 QA

officecli validate output.pptx
officecli view output.pptx issues
officecli view output.pptx text | grep -iE 'xxxx|lorem|ipsum|placeholder|TODO|click to'
officecli view output.pptx stats

2단계 — 시각적 QA

officecli view output.pptx html --browser

# 빠른 스캔을 위한 썸네일 그리드
python3 scripts/thumbnail.py output.pptx grid.png

시각적 검사에는 서브에이전트를 사용하세요 — 2~3장짜리 슬라이드라도. 여러분은 실제로 있는 것이 아니라 기대하는 것을 보게 됩니다. 새로운 시각이 더 많은 버그를 잡습니다.

시각적 QA 체크리스트

3단계 — 수정 및 재검증

officecli set으로 수정하고 QA를 다시 실행하세요. 최소 한 번의 수정-검증 사이클을 완료하기 전에는 완료를 선언하지 마세요.


납품 전 체크리스트


흔한 실수

실수올바른 접근법
zsh에서 따옴표 없는 [N]항상 따옴표 사용: "/slide[1]" 또는 '/slide[1]'
--name "foo"--prop name="foo" 사용 — 모든 속성은 --prop을 통해
속성 이름 추측officecli help pptx set shape --json을 실행하여 정확한 이름 확인
#가 포함된 hex 색상#FF0000이 아닌 FF0000 사용
--prop text=에서 $작은따옴표 사용: '$15M'
view text가 표를 놓침전체 텍스트에는 view annotated 사용
생성 후 차트 시리즈 추가추가 불가 — 차트를 삭제하고 다시 만드세요
한국어 파일명 + 상주 모드CJK가 상주 모드 UTF-8 손상을 유발. ASCII 사용 후 복사
상주 모드 좀비pkill -9 -f "resident-serve", 1초 대기 후 재시도
기존 테마/마스터를 처음부터 재생성cp source.pptx target.pptx를 먼저. 마스터/레이아웃/테마 유지
officecli open을 백그라운드 셸로포그라운드에서 실행 — 즉시 반환되며 데몬이 자동으로 백그라운드에서 실행
배치 JSON 파싱 오류셸 구문이 유입됨. heredoc 사용: cat <<'EOF' | officecli batch FILE.pptx
색상/폰트를 막연히 선택선택 전 references/design-system.md 읽기

안티패턴


접근성 (WCAG 2.1 AA)


CJK / 한국어 지원

cli-jaw 포크는 한국어 콘텐츠를 자동 감지하여 언어 태그 + 기본 폰트를 적용합니다. 상주 모드 편집 중에는 UTF-8 손상을 방지하기 위해 ASCII 파일명을 사용하세요; 최종 단계에서 한국어 파일명으로 복사하면 됩니다.


필수 조건

도구용도상태
officecli (PATH)주요 PPTX CLI필수
python3 + python-pptxL3/L4 작업용 스크립트스크립트 사용 시 필수
pptxgenjs대규모 프로그래밍 방식 생성 (L5)선택
soffice (LibreOffice)PDF 변환, QA용 썸네일선택 (필요 시 자동 설치)
# 필수 조건 확인
python3 -c "import pptx" || echo "MISSING: pip install python-pptx"
which officecli >/dev/null 2>&1 || echo "INFO: OfficeCLI not installed"
which soffice >/dev/null 2>&1 || echo "INFO: LibreOffice not installed (optional)"