From 0f28908f5fb82b1bbd33cf671d32ba5976b7c572 Mon Sep 17 00:00:00 2001 From: NohDoyeon241104 Date: Tue, 30 Jun 2026 16:27:37 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20ubisam-ppt-make=20=E2=86=94=20ubisa?= =?UTF-8?q?m-deliverables=20=EC=97=AD=ED=95=A0=20=EA=B2=BD=EA=B3=84=20?= =?UTF-8?q?=EB=AA=85=ED=99=95=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 역할 분리 원칙 확립: - ubisam-ppt-make: PPTX 렌더링 엔진 (build_deck.py). 레이아웃·디자인 토큰 SSoT. When to use에 deliverables 위임 케이스 추가 + 역할 경계 명시. - ubisam-deliverables: 산출물 오케스트레이터. PPTX 직접 생성 금지 명시. Step C를 "ubisam-ppt-make에 위임" 구조로 재작성. - 09-pptx-integration.md: 역할 분리 원칙 헤더 추가, build_deck.py 경로·SSoT 명시. Co-Authored-By: Claude Sonnet 4.6 --- .claude/skills/ubisam-deliverables/SKILL.md | 15 ++++++++++----- .../references/09-pptx-integration.md | 10 +++++++--- .claude/skills/ubisam-ppt-make/SKILL.md | 4 ++++ 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.claude/skills/ubisam-deliverables/SKILL.md b/.claude/skills/ubisam-deliverables/SKILL.md index ae590c2..12b2c4c 100644 --- a/.claude/skills/ubisam-deliverables/SKILL.md +++ b/.claude/skills/ubisam-deliverables/SKILL.md @@ -56,11 +56,16 @@ LGPRI 제공 양식을 프로젝트 내용으로 채워 관리한다. - 양식의 시트·컬럼 골격은 [05-form-schemas.md](references/05-form-schemas.md) 참조(ref 불필요). - 상태/유형 값은 [02-enums.md](references/02-enums.md) enum만 사용(임의 신규값 금지). -### C. PPTX 생성 (ubisam-ppt-make 연동) -[09-pptx-integration.md](references/09-pptx-integration.md) 절차를 따른다. -- **2.설계 채움 완료** → `SW_설계서.pptx` (선택): `set PYTHONUTF8=1 && py .claude/skills/ubisam-deliverables/references/build_02설계_pptx.py` 한 줄 실행 -- **5.양산 채움 or 명시 요청** → `<설비명>_HMI_매뉴얼.pptx` (필수): MD 내용 → JSON spec → `build_deck.py` -- 마스터 배경(#F4F7FA + accent 바)은 `build_deck.py`가 자동 적용. 표 높이 상한 5.3" — 푸터 비침범 보장. +### C. PPTX 생성 — ubisam-ppt-make 스킬에 위임 (직접 생성 금지) +> **이 스킬은 PPTX를 직접 생성하지 않는다.** +> PPTX 렌더링은 반드시 `ubisam-ppt-make` 스킬의 `build_deck.py`를 통해서만 수행한다. +> 이 스킬의 역할은 ① 슬라이드 spec JSON 준비 ② `build_deck.py` 호출 ③ 결과 슬롯 배치. + +상세 절차 → [09-pptx-integration.md](references/09-pptx-integration.md) + +- **2.설계 완료** → `SW_설계서.pptx`: `set PYTHONUTF8=1 && py .claude/skills/ubisam-deliverables/references/build_02설계_pptx.py` +- **5.양산 완료 or 명시 요청** → `<설비명>_HMI_매뉴얼.pptx`: MD → spec JSON → `ubisam-ppt-make/build_deck.py` +- 레이아웃·디자인 토큰은 **ubisam-ppt-make/SKILL.md 기준**. 이 스킬에서 재정의 금지. ## 불변 규칙 (항상 지킴) - **MD 200줄 상한**: 새 문서가 길어지면 분할하고 상호 링크(`[[...]]`/상대경로)로 매핑. diff --git a/.claude/skills/ubisam-deliverables/references/09-pptx-integration.md b/.claude/skills/ubisam-deliverables/references/09-pptx-integration.md index 2d3af09..2e86527 100644 --- a/.claude/skills/ubisam-deliverables/references/09-pptx-integration.md +++ b/.claude/skills/ubisam-deliverables/references/09-pptx-integration.md @@ -1,8 +1,12 @@ # 09 · PPTX 통합 — ubisam-ppt-make 연동 -> `ubisam-deliverables` Step C에서 호출. MD 산출물 데이터를 JSON spec으로 변환해 -> `ubisam-ppt-make/build_deck.py`로 PPTX를 생성한다. -> 디자인 시스템은 build_deck.py 마스터 배경 포함 자동 적용. +> **역할 분리 원칙** +> - `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` 내부에서 보장. --- diff --git a/.claude/skills/ubisam-ppt-make/SKILL.md b/.claude/skills/ubisam-ppt-make/SKILL.md index d4d3262..d7fec08 100644 --- a/.claude/skills/ubisam-ppt-make/SKILL.md +++ b/.claude/skills/ubisam-ppt-make/SKILL.md @@ -15,6 +15,10 @@ via python-pptx. - The user types `/ubisam-ppt-make` - Requests like "Ubisam 설계서 PPT 만들어줘" / "유비삼 스타일 덱" / "this format으로" - New design-document presentations that must keep Ubisam branding +- **`ubisam-deliverables` 스킬이 PPTX 생성을 위임할 때** — deliverables는 spec JSON만 준비하고 렌더링은 반드시 이 스킬의 `build_deck.py`로 위임한다 + +> **역할 경계**: `ubisam-ppt-make`는 PPTX 렌더링 엔진. JSON spec → `.pptx` 변환만 담당. +> 산출물 구조·MD·xlsx 관리는 `ubisam-deliverables` 스킬이 담당. ## Design system (fixed)