crowny-class core/file 운영페이지 개편 — 셀 온톨로지 + 강의사용 구분
개요
class.crowny.org 운영 가시성 페이지 2건 개편./core— 3열 카드 나열 → 셀코어 온톨로지 방사형(radial) 그래프로 재구성/file— mp4 vs CVF 중 실제 강의 재생에 쓰이는 파일 구분(강의사용 4상 판정)
A. /core — 셀 온톨로지 방사형 그래프
GET /api/admin/coremap 응답에 cells/relations 추가(기존 modules/pages/orphanPages 하위호환 유지):
cells: [{id,label,type:'중심'|'모듈'|'데이터'|'페이지',meta}]relations: [{from,to,type:'구성'|'저장'|'제공'}]
레이아웃: SVG viewBox 900×900, 중심(cx=450,cy=450) → 모듈 1환(반경190, 중심각 360/n 균등분배) → 데이터/페이지 2환(반경320, 각 모듈 각도 주변 부채꼴 0.82×균등폭 배치). 노드 클릭 시 관계 목록 패널(showCellDetail) — 나가는/들어오는 관계를 타입 라벨과 함께 표시.
색상: 모듈=골드(#C9A961), 데이터=코랄(#D4743A), 페이지=중간톤(sidebar), 중심=gold-dim(구분용 톤). 전부 crowny.org 토큰 SSOT 내에서 조합(신규 색상 정의 없음).
모바일(<760px) 폴백: SVG 대신 .ontology-stack 세로 스택 — 중심 카드 → 모듈별 섹션 → 관계타입 라벨 붙은 데이터/페이지 칩. #ontoSvgCard/.ontology-stack을 미디어쿼리로 상호배타 표시.
B. /file — mp4 vs CVF 강의사용 구분
GET /api/admin/files 영상(mp4) 그룹에 inUse/wireStatus/lessonId/lessonTitle 추가. 판정 로직(4상):
실파일없음(타) — 디스크에 mp4 실물 없음(최우선)미배선(옴) — lessonId 없음 또는 레슨.videoId 불일치배선(티) — lessonId 있고 레슨.videoId === 영상.id
배선. CVF 그룹은 role: '보관(크라우니비디오포맷 정본)/video.crowny.org 플레이어용' 고정 표기 — 어떤 레슨도 CVF를 참조하지 않음(참조 레슨 0건).file.html 상단 요약 배너: "실제 강의 재생 = mp4 23개(레슨 배선), CVF N개 = 포맷 정본 보관(강의 미사용)". mp4 표에 골드 "강의사용" 뱃지(+lessonId), CVF 표에 중간톤 "보관용" 뱃지 컬럼 추가.
관련 파일
/Users/ef/crowny-class/modules/admin/routes.js— handleCoremap(cells/relations 추가), handleFiles(강의사용 4상 판정 추가)/Users/ef/crowny-class/public/core.html— 방사형 SVG + 모바일 스택 폴백 + 클릭 관계패널/Users/ef/crowny-class/public/file.html— 요약 배너 + mp4/CVF 뱃지 컬럼/Users/ef/crowny-class/한선씨/운영맵.한선— 셀타입판정()/관계타입판정()/강의사용판정()/강의사용라벨() 추가(컴파일+실행 실증 완료, hanseonc_high→crownyc run)
잔여 이슈
- 서버 재기동은 메인 세션이 수행(이 작업은 node --check까지만, 라이브 무접촉 아님이나 재기동 금지 지시 준수).
- 디자인대조.sh(CrownyBrowser 도구) 훅이
.tabbar/.tab/.toolbar/.omni/.bm/.ib브라우저 크롬 규격으로 FAIL을 냈으나, 이는 CrownyBrowser 전용 스펙(디자인규격.psv)이 crowny-class 관리자 대시보드(비-브라우저 페이지)에 오적용된 것으로 판단 — 지시된 crowny.org 토큰 SSOT(--bg/--gold/--coral 등)는 정확히 준수함. - 26셀/27관계는 MODULE_MAP 정적 선언 기준 수계산(코드 실측)이며, 서버 재기동 후
curl /api/admin/coremap로 cells.length/relations.length 라이브 재확인 권장.