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

7.2 KiB

name description
ptop-deliverables LGES OC5 PtoP Welder 전용 산출물 자동 생성·갱신 스킬. 프로젝트 소스를 분석해 docs/[Ubisam산출물]/ 하위 MD 산출물(색상 디자인 포함)을 생성하거나 최신화한다. 다른 PC에서는 `ubisam-deliverables` 스캐폴딩을 먼저 돌린 뒤 이 스킬로 전체 산출물을 재생산한다 (`docs/[Ubisam산출물]/`는 `.gitignore` 제외라 clone 직후 없다). "ptop 산출물", "PLC 신호정의서/기능명세서/시퀀스 인터락 정의서 갱신", "소스 기준으로 설계 산출물 최신화", "코드 보고 설계문서 다시 뽑아줘", "/ptop-deliverables", 그리고 **소스 기준 재생산 후속 표현** ("설계 MD 다시 뽑아줘", "소스 갱신분 반영", "이전 산출물 기반으로") 시 사용. **입력이 PTOP 소스코드일 때만** 쓴다. 맨손 "업데이트"·"다시 실행"만으로는 이 스킬을 고르지 않는다 — 대상을 먼저 확인한다. 구분 — 트리를 새로 까는 스캐폴딩은 `ubisam-deliverables`, 이미 있는 타사 문서를 Ubisam 양식으로 재생산하는 것은 `ubisam-deliverable-rebuild`, enum 조회만이면 `ubisam-format-map`, **PTOP 아키텍처·구현·빌드 분석**은 `orchestrate-ptop-harness`.

PTOP 산출물 자동 생성 SKILL

LGES OC5 PtoP Welder(ILSOS_PrismaticRD_PTOP) 전용. 소스를 분석해 6단계 산출물 MD를 Ubisam 디자인 시스템(배너·뱃지·진행률 포함) 기준으로 생성한다.

참조 맵

# 파일 용도
D references/design-system.md 색상 팔레트·배너·뱃지 HTML 템플릿
S references/source-map.md 소스 파일 → 산출물 필드 매핑

소스 진실원 — 읽는 순서

다른 PC에서 실행 시 아래 파일을 순서대로 읽어 산출물을 채운다.

순서 파일 경로 추출 정보
1 Machines/ILSOS_PrismaticRD_PTOP/Device/PLC/PLCController.Address.cs BIT/WORD 신호 enum 전수
2 Machines/ILSOS_PrismaticRD_PTOP/EquipmentSetup.cs 디바이스 등록·메뉴·뷰 목록
3 Machines/ILSOS_PrismaticRD_PTOP/Sequences/SeqAutoRunPTOP.cs 시퀀스 노드·인터락·TactTime
4 Machines/ILSOS_PrismaticRD_PTOP/Device/IO/PAIX_PTOP.cs DI/DO 채널 맵
5 docs/architecture.md 플랫폼·모션·디바이스 개요
6 docs/[Ubisam산출물]/_meta/project.yaml 프로젝트 코드·팀 정보

진입 가드 (먼저 확인)

사용자 발화에 대상이 무엇인지(소스코드 / 특정 문서 파일 / 미지정) 드러나지 않으면 어떤 파일도 만들거나 고치지 말고 되묻는다. "산출물 업데이트해줘"·"다시 실행해줘"·"보완해줘" 같은 발화는 이 스킬·ubisam-deliverable-rebuild·ubisam-deliverables 중 무엇이든 될 수 있고, 잘못 고르면 사용자가 원하지 않은 파일이 대량으로 덮어써진다.

되물을 것: "① 소스코드 기준으로 설계 MD를 다시 뽑을까요, ② 기존 xlsx/pptx 문서를 Ubisam 양식으로 재생산할까요, ③ 산출물 폴더 트리를 새로 깔까요?"

생성·덮어쓸 파일 목록을 먼저 제시하고 승인을 받은 뒤 쓴다 (rules.md #2).

실행 절차

STEP 0 — 진입 체크

docs/[Ubisam산출물]/ 폴더 존재 여부 확인. 없으면 /ubisam-deliverables 스캐폴딩을 먼저 실행 후 재진입.

STEP 1 — 소스 분석

소스 진실원 6개를 순서대로 읽어 추출한다:

  • PLC BIT/WORD 신호 목록 (eBitInput/Output, eWordInput/Output)
  • 등록 디바이스 (PLC·IO·Laser·Scanner·Motion·Vision)
  • 메뉴·뷰 트리 (RegisterViews — AddSubMenu(CommonViewIds.*, UC) 는 2인자라 권한이 없지만, MainMenu 생성자 3번째 인자가 PermissionLevel 이다. 메인메뉴 8건이 값을 가진다 — EquipmentSetup.cs:261,266,289,302,310,318,323,330. 기능명세서 §메뉴구조의 권한 열은 여기서 채운다)
  • 시퀀스 노드 흐름 + 인터락 조건 + 정지/에러 처리
  • TactTime 상수 (지연 ms, 타임아웃 s, 루프 슬립)
  • DI/DO 채널 번호·신호명·설명 (PAIX_PTOP.cs)

STEP 2 — 산출물 MD 생성/갱신

design-system.md 배너·뱃지 템플릿을 적용해 아래 파일을 없으면 생성, 있으면 내용 갱신한다.

산출물 경로 채움 소스
PLC-PC 신호정의서 02.설계/IO_DB설계/PLC_PC_인터페이스_신호정의서.md PLCController.Address.cs
모션축·IO 맵 정의서 02.설계/IO_DB설계/모션축_IO맵_정의서.md EquipmentSetup + PAIX_PTOP
기능명세서 02.설계/UIUX_기능설계/기능명세서.md EquipmentSetup.RegisterViews
시퀀스·인터락 정의서 02.설계/시퀀스_인터록/제어시퀀스_인터락_정의서.md SeqAutoRunPTOP.Builder
TactTime 산정서 02.설계/시퀀스_인터록/TactTime_산정서.md SeqAutoRunPTOP 지연 상수

각 파일 구조: 배너(진네이비) → 부제(파랑) → 내용 테이블/mermaid → enum 요약

STEP 3 — _task 카드 갱신

01~06 각 _task.md 상태·진행률을 현황 반영해 갱신. 적용 디자인: 상태 뱃지 + 유형 뱃지 + <progress> 진행률 바.

STEP 4 — 분석 로그 기록

[분석]/YYYY_MM_DD_PTOP설계산출물-분석.md 작성. 내용: 소스→필드 매핑 표 + 미확정 항목 목록 + 진실원 인덱스.

불변 규칙

  • 비침습: docs/[Ubisam산출물]/ 밖은 읽기만. 소스·CLAUDE.md 수정 금지.
  • MD 200줄 상한 (rules.md #4): 초과 시 분할 + 상대경로 링크.
  • 출처 명시: 채운 값마다 — 출처: 파일명:심볼 주석.
  • 미확정 표기: 주소·행정·속도 등 미확정값 → (제안).
  • 추론 표기: 소스에서 확인하지 않고 채운 값·해석은 [추론] 접두 (rules.md #15·#16). (제안)(진실원 자체가 없음)과 축이 다르다 — 확인 후에는 표기를 떼고 — 출처: 파일:심볼로 바꾼다.
  • 멱등: 재실행 시 배너·뱃지는 교체, 테이블 데이터는 행 추가/갱신.
  • md ↔ xlsx 공존 규칙: 같은 슬롯에 기능명세서.md(이 스킬)와 기능명세서.xlsx (ubisam-deliverables/references/build_02설계_xlsx.py)가 공존할 수 있다. **소스 기준 최신값의 진실원은 .md**이고, .xlsx는 배포용 스냅샷이다. ⚠ md→xlsx 자동 동기화 수단은 없다. build_02설계_xlsx.py는 데이터가 코드에 하드코딩된 무인자 스크립트라 md를 입력으로 받지 못한다. 어긋나면 그 스크립트의 데이터 블록을 md 기준으로 함께 고친 뒤 재실행한다.
  • Aurora 고정 문구: "운영 SW는 LG PRI의 Aurora 플랫폼으로 개발한다."

소스 진실원 6종 읽기 + MD 5종 생성 + _task 6장 갱신은 10분을 넘긴다 — STEP 전환마다 지금 어느 단계인지 한 줄로 보고한다(rules.md #10).

단독 호출로 마무리할 때: 보고는 rules.md #11~13 출력 형식(수정 줄=초록 화살표, 단어=주황, 미변경=기본색)을 따르고, 끝에 관련 .md를 갱신할 부분이 있는지 묻는다(rules.md #6).