--- name: ubisam-deliverables description: >- Ubisam 협업관리(칸반) 구조에 맞춰 프로젝트 산출물을 docs/[Ubisam산출물]/ 트리로 구성·관리한다. "산출물 구조 만들기", "Ubisam 양식으로 채우기", "설계/셋업/양산 산출물 정리", "산출물 트리 스캐폴딩" 같은 요청에 사용. 6단계(분석·설계·제작·셋업·양산·CS) 폴더·_meta enum·일감 카드·LGPRI 양식 채움 절차를 제공. 구분 — 이미 있는 타사 문서를 Ubisam 양식으로 재생산하는 것은 `ubisam-deliverable-rebuild`, PTOP 소스코드를 읽어 설계 MD를 뽑는 것은 `ptop-deliverables`, enum 조회만이면 `ubisam-format-map`, **PTOP 아키텍처·구현·빌드 분석**은 `orchestrate-ptop-harness`. 맨손 "업데이트"·"다시 실행"만으로는 이 스킬을 고르지 않는다 — 무엇을 만들지 먼저 확인한다. --- # Ubisam 산출물 관리 SKILL UBISAM 협업관리는 *프로젝트(칸반 보드 1개) → 일감(6단계) → 단계별 산출물* 로 운영된다. 이 스킬은 그 구조를 **소스 레포의 `docs/[Ubisam산출물]/` 하위 파일 트리로 미러링**하고, LGPRI 제공 양식을 프로젝트 내용으로 채워 관리한다. ## 언제 쓰나 - 새 프로젝트에 산출물 트리를 깔 때(스캐폴딩). - `docs/[Ubisam산출물]/산출물문서/양식/`에 들어온 빈 양식을 프로젝트 내용으로 채울 때. (입력 원본은 저장소 루트 `Doc/산출물문서/` — 읽기 전용이며 이 스킬이 만들지 않는다) - 단계별 일감 상태/진행률을 갱신할 때. ## 참조 맵 (모두 200줄 이내, 필요한 것만 읽기) | # | 파일 | 용도 | |---|---|---| | 0 | [references/00-harness.md](references/00-harness.md) | **하네스**: 호스트 레포 맞물림·비침습 계약 (먼저 읽기) | | 1 | [references/01-tree.md](references/01-tree.md) | 목표 트리·배치 규칙·우선순위 | | 2 | [references/02-enums.md](references/02-enums.md) | 상태 4종·유형 9종·티켓코드 규칙 | | 3 | [references/03-schema.md](references/03-schema.md) | 일감 필드·프로젝트 메타 스키마 | | 4 | [references/04-stage-deliverables.md](references/04-stage-deliverables.md) | 6단계↔산출물 슬롯 매핑 | | 5 | [references/05-form-schemas.md](references/05-form-schemas.md) | 설계 양식 시트·컬럼 스키마 | | 6 | [references/06-procedure.md](references/06-procedure.md) | 분석→채움 절차·조건서식 보존 | | 7 | [references/07-fill-mapping.md](references/07-fill-mapping.md) | 프로젝트 분석→산출물 필드 자동 채움 매핑 | | **8** | [**references/08-design-system.md**](references/08-design-system.md) | **색상 팔레트·배너·뱃지·진행률 HTML 템플릿** | | **9** | [**references/09-pptx-integration.md**](references/09-pptx-integration.md) | **PPTX 생성 — ubisam-ppt-make 연동 절차·슬라이드 매핑** | | T | [templates/](templates/) | `_task` 카드·`project.yaml` 템플릿 | ## 진입 가드 (먼저 확인) 발화에 **무엇을 원하는지**가 없으면(예: "산출물 업데이트해줘"·"다시 실행해줘"·"보완해줘") 스캐폴딩을 바로 깔지 말고 되묻는다. 이 스킬은 폴더·`_task.md`·`README.md`를 수십 개 만들므로, 오발동 시 되돌리는 비용이 크다. 되물을 것: "① 트리를 새로 깔까요, ② 소스 기준으로 설계 MD를 뽑을까요(`ptop-deliverables`), ③ 기존 문서를 Ubisam 양식으로 재생산할까요(`ubisam-deliverable-rebuild`)?" 생성할 폴더·파일 목록을 제시하고 승인을 받은 뒤 A단계를 시작한다 (`rules.md` #2). ## 실행 순서 (오케스트레이션) ### 0. 하네스 진입 (항상 먼저) [00-harness.md](references/00-harness.md)의 비침습 계약 확인 → 호스트 `CLAUDE.md`·소스에서 프로젝트 사실 읽기 → `project_code`/`project_name` 자동 추정(실패 시 질문). ### A. 스캐폴딩 (트리 생성) 0. **생성할 폴더·파일 목록을 사용자에게 제시하고 승인을 받는다** (`rules.md` #2). 이 단계는 수십 개 파일을 만들므로 되돌리는 비용이 크다. 1. 소스 레포 루트의 `.claude/`·`CLAUDE.md`·`rules.md`는 **건드리지 않는다**. 2. `docs/[Ubisam산출물]/` 아래에 [01-tree.md](references/01-tree.md)의 트리를 생성: - `_meta/`(enum·스키마) ← [02](references/02-enums.md)·[03](references/03-schema.md) 내용으로 채움. - `01.분석협의 ~ 06.CS/` 6단계 폴더 + 각 `_task.md`(템플릿: [templates/_task.template.md](templates/_task.template.md)). - 각 단계 산출물 슬롯 하위폴더 + `.gitkeep` ← [04](references/04-stage-deliverables.md). - `docs/[Ubisam산출물]/산출물문서/`(+`양식/` 드롭존), `ref/`, `[분석]/`, `[작업일지]/`. > **저장소 루트 `Doc/산출물문서/`와 다른 곳이다.** 전자는 스캐폴딩이 만드는 트리 내부, > 후자는 **입력 원본 드롭존**(스캐폴딩 대상이 아니며 읽기 전용). 3. `RULES.MD`(산출물 영역 규칙) + `README.md`(트리 한눈에 + 단계별 현황 뱃지 표)를 루트에 작성. 4. `_meta/project.yaml`의 `{...}` 토큰은 프로젝트 정보로 교체. 모르면 그대로 두고 사용자에게 질문. 5. **디자인 적용**: [08-design-system.md](references/08-design-system.md) — `_task.md`는 **§7 완성 템플릿**을 그대로 적용하고, `README.md`는 **§7 템플릿이 없으므로** §1 배너 + §2·§3 뱃지 + §4 진행률 바를 조합해 단계별 현황 표를 만든다. ### B. 양식 채움 (산출물 생성) [06-procedure.md](references/06-procedure.md) 절차를 따른다: 분석 → 타설비 잔재 식별 → 프로젝트 내용 채움(출처 명시) → 슬롯 배치 → `_task.md` 진행률 갱신 → `[작업일지]` 기록. - **자동 채움**: 호스트 분석 사실을 [07-fill-mapping.md](references/07-fill-mapping.md) 매핑으로 산출물 필드에 기입. - **디자인 적용**: 생성하는 모든 MD에 [08-design-system.md](references/08-design-system.md) 배너·뱃지·섹션헤더 삽입. - 양식의 시트·컬럼 골격은 [05-form-schemas.md](references/05-form-schemas.md) 참조(ref 불필요). - 상태/유형 값은 [02-enums.md](references/02-enums.md) enum만 사용(임의 신규값 금지). ### 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`: `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줄 상한** (`rules.md` #4): 새 문서가 길어지면 분할하고 상호 링크(`[[...]]`/상대경로)로 매핑. - **enum 고정**: 상태·유형은 회사 공통 마스터. 새 값 발견 시 `_meta/*.enum.md` 먼저 갱신. - **출처 명시**: 채운 내용은 원본 파일·코드 경로를 문서에 남긴다. - **추론 표기**: 원본을 확인하지 않고 판단으로 채운 값·해석은 문장 앞에 `[추론]` (`rules.md` #15·#16). 자동 채움 단계가 게이트 없이 값을 만들 수 있는 유일한 경로이므로 여기서 표기가 빠지면 이후 검증가가 잡을 근거가 없다. 확인 후에는 표기를 떼고 출처로 바꾼다. 검색은 **`\[추론\]`** 로 이스케이프한다(대괄호=문자클래스). - **디자인 의무**: 생성하는 모든 산출물 MD에 [08-design-system.md](references/08-design-system.md) 배너·뱃지 적용. 텍스트 단독 표기 금지. - **xlsx 재생산** (**`ptop-deliverables` 경로 한정** — rebuild 경로는 `xlsxfill` 기반 신규 스크립트): `references/build_02설계_xlsx.py` + `xlsxfill.py`로 완전 독립 생성(ref 불필요). 스타일 상수는 xlsxfill.py에 하드코딩. 저장소 루트에서 `PYTHONUTF8=1 py .claude/skills/ubisam-deliverables/references/build_02설계_xlsx.py` 한 줄 실행 (`cd` 금지 — 출력 경로가 어긋난다). - **pptx 재생산**: `references/build_02설계_pptx.py`로 완전 독립 생성(ref 불필요). 슬라이드 스펙 내장, `build_deck.py` 자동 호출. `PYTHONUTF8=1 py .claude/skills/ubisam-deliverables/references/build_02설계_pptx.py` 한 줄 실행. 이 스크립트는 `__file__` 기준 절대경로를 쓰므로 cwd와 무관하다 (xlsx 쪽은 상대경로라 반드시 저장소 루트에서 실행). - **루트 보호**: 레포 루트 `rules.md` > 본 산출물 `RULES.MD`(스코프 하위). > 단독 호출로 마무리할 때: 보고는 `rules.md` #11~13 출력 형식(수정 줄=초록 화살표, 단어=주황, 미변경=기본색)을 > 따르고, 끝에 관련 `.md`를 갱신할 부분이 있는지 묻는다(`rules.md` #6).