FeaturesHQ (본사)HQ Surface Matrix (본사 표면 매트릭스)

HQ Surface Matrix — 본사 모드(HQ_MANAGER) 화면별 구현 현황

기획 원문 docs/planning/11-prd-client-admin-mode.md(Page 1~22) 대비 현재 구현 현황 추적표. 코드 현황 기준이며, 신규 기능 정의가 아니라 갭 가시화용이다. 본사 모드는 apps/space (space.linkmusic.io)의 /admin/* 라우트로 구현된다(점장 모드와 한 앱).

Overview

본사(HQ_MANAGER) PRD 는 22 페이지(Page 1~21 + Page 22 LLM 자동멘트 v1 신규)다. 현재 구현은 읽기 영역(대시보드·산하 매장 조회·플레이리스트 조회·라이브러리 목록+상세 조회) + TTS 안내방송 콘텐츠 생성·송출에서 점차 확장 중이고, 나머지는 미구현(HQSidebar enabled: false 일부)이다. 이 페이지가 PRD ↔ 시안 ↔ 구현 ↔ 후속 게이트의 대응을 한눈에 추적한다.

사이드바 현황: HQSidebar(10 항목, 시안 hq-shared.jsx §HQSidebar) 중 대시보드·안내방송· 플레이리스트·매장 4항목만 enabled, CM송·라이브러리·구독결제·고객지원·LLM 자동멘트·설정 6항목은 enabled: false(“준비 중”)다. 코드: apps/space/src/components/hq-shell/hq-sidebar.tsx.

핵심 경계 — TTS 안내방송

TTS 안내방송 = 콘텐츠 생성·수정·재생·삭제 + 송출(전체 매장 ALL)까지 구현(#061 생성·#062 수정· #063 톤 프리셋·송출 슬라이스, /admin/announcements). 행 [송출] → 산하 매장 전체에 fan-out → 점장 player 가 곡 끝에 삽입 재생(dead-end 폐쇄). 스케줄·매장 개별선택(STORES)·미리듣기 게이트·더킹·우선순위·캘린더는 미구현(후속) — 시안 (hq-broadcast-new.jsx 스텝퍼·hq-schedule.jsx 캘린더)만 존재. 즉 “안내방송을 만들고 전체 매장에 보낼 수 있으며, 점장 화면에서 실제로 들린다.” 상세는 HQ Mode TTS 안내방송 참조.

표면 매트릭스

구현 상태 범례: 구현 = 동작하는 화면 / 조회만 = read-only(편집 불가) / stub = 사이드바 disabled 또는 placeholder / 없음 = 라우트·화면 자체 미존재.

화면 / 플로우PRD 근거시안(hq-*.jsx)구현 상태SPEC / 후속 게이트
대시보드Page 1hq-dashboard.jsx구현 — 산하 매장 집계 실데이터#050
안내방송 목록Page 2(목록은 시안 별도 없음, ListToolbar 관용구)구현 — 목록·검색·재생·수정·삭제#061/#062/#063
새 안내방송 등록(생성)Page 3hq-broadcast-new.jsx §Step1Content구현(콘텐츠 합성만) — 송출/대상/미리듣기 게이트 단계는 제외#061 / 송출=후속 게이트
안내방송 상세·편집Page 4hq-broadcast-new.jsx(편집 겸용)구현 — 수정(조건부 재합성)·삭제#062
안내방송 송출(전체 매장 ALL)Page 2~4 인터랙션(확인 다이얼로그 — 삭제 idiom 미러)구현(첫 슬라이스) — 행 [송출]→전체 매장 fan-out→점장 삽입 재생송출 슬라이스
안내방송 송출 고도화(매장선택·예약·미리듣기)Page 2~4 인터랙션hq-broadcast-new.jsx §Step2~없음 — STORES 개별선택·스케줄·미리듣기 게이트·더킹·우선순위 endpoint 없음후속 게이트(20-policy §3·4)
방송 스케줄(캘린더)Page 5hq-schedule.jsx없음 — 분 슬롯·캘린더·충돌검증 BE 없음후속 게이트
CM송 목록Page 6(시안 없음)stubHQSidebar CM송 disabled후속 도메인
CM송 업로드Page 7(시안 없음)없음 — BE·라우트 없음후속 도메인
CM송 빈도 설정Page 8(시안 없음)없음 — BE·라우트 없음후속 도메인
라이브러리 목록 조회Page 9(시안 없음, ListToolbar 관용구)조회만/admin/libraries 목록·검색(q)·타입 필터(AI/TRUST)·페이지네이션, 행=이름 Link·타입 배지·음원 수·PL 사용 수·수정 시각#080 / 편집=운영사 전용
라이브러리 상세 조회Page 9(시안 없음, hq-playlist 상세 idiom 미러)조회만/admin/libraries/[id] 메타 카드(음원 수·PL 사용·수정일)·트랙 테이블(제목·길이 mm:ss·추가일)·페이지네이션. 메타 server fetch(404→notFound), 트랙 client query. read-only(음원 추가/제거·편집 없음)#107(#080 §F1 마감) / 음원 할당=운영사 전용
플레이리스트 조회Page 10hq-playlist.jsx조회만 — read-only, 기본 PL 배지(#058)·상태 파생 배지(#060)#057 / 편집=운영사 전용(본사 미편집)
플레이리스트 편집Page 10hq-playlist.jsx없음 — 본사는 조회만, 편집은 운영사(apps/admin)비대상(정책상 운영사 편집)
매장 목록Page 11hq-stores.jsx조회만 — 산하 매장 목록·검색·페이지네이션#051
매장 상세Page 14hq-stores.jsx없음 — 본사 매장 상세 라우트 없음(운영사 상세만)후속
신규 매장 등록(단일)Page 12(시안 부재 — atom-grounded)구현/admin/stores/new 단일 단계 폼(5 필드) createHqStore#106(#084 F2 마감)
매장 CSV 일괄 등록Page 13(시안 부재 — atom-grounded, design-debt §2)구현(MVP)/admin/stores/bulk 파일 업로드 + 부분 실패 결과 리포트 bulkCreateHqStores(multipart, 5필드). 점장 발급·영업시간·2단계 미리보기는 후속#111(#084 F3 마감)
구독/결제·이력·방식변경Page 15~17(시안 없음)stubHQSidebar 구독·결제 disabled후속 도메인(토스/팝빌 외부연동)
고객지원 목록·작성·상세·댓글Page 18~20(시안 없음, ListToolbar+운영자 /tickets idiom 합성)구현/admin/support 목록·검색·필터·작성·상세·댓글(read+create+comment)#086 / #101(audit)
고객지원 상태/우선순위 변경(상세 인터랙션)(운영자 tickets/[id] ActionCard idiom 미러)구현 — F1 상태(제한적: RESOLVED→CLOSED·IN_PROGRESS, CLOSED→IN_PROGRESS; OPEN/IN_PROGRESS 는 운영자 전담) · F2 우선순위(LOW/NORMAL/HIGH, URGENT 제외)#108(#086 F1·F2 마감)
계정 설정Page 21(시안 없음)stubHQSidebar 설정 disabled후속
LLM 자동멘트Page 22 (v1 신규)(시안 없음)stubHQSidebar LLM 자동멘트 disabled, BE 없음후속 게이트(가드레일·외부 LLM)
긴급 즉시 송출(송출 인터랙션)(시안 없음)없음 — 송출 백본 미존재송출 후속 게이트
본인 프로필(getHqMe)(셸 공통)hq-shared.jsx구현 — 임퍼소네이션 배너·본인 프로필#050
온보딩 — 비밀번호 변경 강제(계정 공통)ops-change-password.jsx (본사·점장 공용)구현/onboarding/change-password 본사·점장 공용 관문(login + /admin layout 가드가 me.passwordMustChange 로 강제). 변경 완료 후 /admin#050 / 자기-변경·reset 후속

정리 — 구현 영역 4 + 1

현재 본사 모드에서 실제 동작하는 표면은 다음뿐이다.

  1. 대시보드(#050) — 산하 매장 집계 실데이터.
  2. 산하 매장 조회(#051) — 목록·검색·페이지네이션(read-only).
  3. 플레이리스트 조회(#057) — read-only, 기본 PL·상태 파생 배지.
  4. TTS 안내방송 콘텐츠(#061/#062/#063) — 생성·수정·재생·삭제(송출·스케줄 제외).

(+ 본인 프로필·임퍼소네이션 배너 = 셸 공통)

나머지 PRD 17개 영역(CM송 3·매장 등록/상세/CSV·결제 3·CS 3·설정·LLM·송출·스케줄)은 미구현이며, 대부분 사이드바 disabled 또는 라우트 부재 상태다. 송출·스케줄·CM송은 방송 송출 백본(매장 큐 삽입· 분 슬롯·더킹·미리듣기 게이트) 도착에, 결제·CS·LLM 은 각 외부연동/도메인 도착에 게이트돼 있다.

References

  • 기획 원문 docs/planning/11-prd-client-admin-mode.md(Page 1~22)
  • 시안: workspace parent dir design_handoff_linkmusic/design/hq-shared.jsx · screens/hq-dashboard.jsx · hq-broadcast-new.jsx · hq-schedule.jsx · hq-playlist.jsx · hq-stores.jsx
  • 코드: apps/space/src/components/hq-shell/hq-sidebar.tsx(사이드바 enabled 현황) · apps/space/src/app/admin/*(대시보드·매장·플레이리스트·안내방송)
  • 구현 상세: HQ Mode 대시보드·산하 매장 · HQ Mode 플레이리스트 조회 · HQ Mode TTS 안내방송
  • SPEC #050(대시보드)·#051(매장)·#057(플레이리스트 조회)·#061/#062/#063(TTS 안내방송)