2026-08-06 11:29:00 +09:00

4.2 KiB

09 · PPTX 통합 — ubisam-ppt-make 연동

역할 분리 원칙

  • ubisam-deliverables: spec JSON 준비 + 슬롯 배치 담당 (PPTX 직접 생성 금지)
  • ubisam-ppt-make: PPTX 렌더링 엔진 (build_deck.py) — 레이아웃·디자인 토큰 정의 소유자

PPTX 생성은 항상 .claude/skills/ubisam-ppt-make/build_deck.py를 호출한다. 레이아웃 타입·디자인 규칙은 ubisam-ppt-make/SKILL.md가 단일 진실 소스(SSoT). 표 높이 상한 _TABLE_MAX_H=5.3" 등 렌더링 규칙은 build_deck.py 내부에서 보장.


생성 타이밍

트리거 생성 PPTX 저장 슬롯
2.설계 채움 완료 SW 설계서 (선택) 02.설계/설계리뷰_DR/SW_설계서.pptx
5.양산 채움 or 명시 요청 운영매뉴얼_HMI 05.양산/운영매뉴얼_HMI/<설비명>_HMI_매뉴얼.pptx
명시 요청 ("pptx 만들어줘") 해당 단계 산출물 해당 슬롯

실행 절차

2.설계 SW 설계서 — 자동 재생산 (권장)

PYTHONUTF8=1 py .claude/skills/ubisam-deliverables/references/build_02설계_pptx.py
  • 슬라이드 스펙 내장 · 임시 JSON 자동 생성/삭제 · build_deck.py 호출 · 출력까지 자동
  • 출력: docs/[Ubisam산출물]/02.설계/설계리뷰_DR/SW_설계서.pptx

신규 단계 PPTX — 수동 절차

1. 해당 단계 MD 파일 읽기
2. 아래 매핑표로 slide 오브젝트 목록 작성
3. JSON spec 생성 → 스크래치 파일(임시)로 저장
4. 저장소 루트에서 실행 (`PYTHONUTF8=1`은 반드시 같은 줄 접두 — 별도 줄이면 적용되지 않는다):
   PYTHONUTF8=1 py .claude/skills/ubisam-ppt-make/build_deck.py \
      --input <spec>.json --output <슬롯경로>.pptx
5. 임시 spec 파일 삭제
6. _task.md 첨부 목록 갱신

A. 2.설계 → SW 설계서 (선택)

소스 MD → slide 타입 매핑:

MD 소스 slide type 비고
— cover tag="SW DESIGN DOCUMENT" (키 이름은 tag — doc_tag는 무시된다)
— history 버전/변경이력 (사용자 입력 or 빈 행)
각 산출물 목록 agenda 최대 6항목
기능명세서 §메뉴구조 table headers: 메인메뉴/권한/서브뷰/기능
기능명세서 §View별기능 table View별 1슬라이드씩
제어시퀀스_인터락_정의서.md §mermaid 노드 flow steps: 노드명+코드+kind
PLC신호정의서 §PC→PLC table headers: No/신호명/디바이스/Type/의미
PLC신호정의서 §PLC→PC table 동일 구조
모션축_IO맵 §통신구성 table
모션축_IO맵 §I/O맵 DI/DO table
TactTime §PC TactTime table
— closing

B. 5.양산 → 운영매뉴얼_HMI (필수)

MD/소스 slide type 비고
— cover tag="HMI OPERATION MANUAL"
— history
View 목록 agenda AutoRun/Recipe/Manual/Calibration/Monitoring/Alarm
각 View divider View명 섹션 구분
각 View §기능목록 screen_guide image 없으면 caption만
각 View §조작절차 procedure steps: title+desc
알람 목록 alarm rows: 코드/알람명/원인/조치
— closing

spec JSON 최소 골격

{
  "doc_title": "{설비명} SW 설계서",
  "slides": [
    {"type": "cover", "tag": "SW DESIGN DOCUMENT",
     "title": "{설비명} SW 설계서",
     "subtitles": ["{설비 설명}"],
     "team": "{조직}",
     "contacts": ["{담당자}"]},
    {"type": "history", "rows": []},
    {"type": "agenda", "items": []},
    {"type": "closing", "title": "Thank You",
     "team": "{조직}", "contacts": []}
  ]
}

캔버스 배경은 build_deck.py:55-73이 WHITE 로 고정한다(BG_SOFT는 패널·표 fill 전용). spec JSON으로 바꿀 수 없다.


불변 규칙

  • spec JSON은 임시파일로 생성 후 pptx 완성 즉시 삭제 (작업 완료 시 정리).
  • PPTX 저장 후 _task.md 첨부 목록에 파일명 추가.
  • ubisam-ppt-make/SKILL.md §Verification — PowerPoint COM 가능 시 PNG 렌더 검증, 불가 시 폰트 감사만 하고 미수행 명시.