| 선택 풀 | legal_doc_catalog 571종 = 변호사가 골라 담는 메뉴 카탈로그 |
|---|---|
| 개인화 | 서류작성('기능') 그룹만. 운영도구(고객관리·AR·브레인·보고서·설정)는 전원 공통 고정 |
| 구조 적합 | ✓ shell.tsx에서 '기능' 그룹과 운영도구가 이미 코드상 분리 → 최소변경 가능 |
| 현황 | user_identities(email PK)만 존재, 사용자 설정 테이블 없음 |
|---|---|
| 신규 | user_doc_selections (mig 0050): email FK · doc_id(catalog.id) FK · pinned · sort_order · 복합PK(email,doc_id) |
| 중요 | doc_name 아닌 doc_id 참조(카탈로그 개편에도 안 깨짐) |
| fallback | 선택 행 없으면 in_scope='core'(P0 9종) 기본세트 노출 → 신규 변호사 빈 화면 방지 |
| 현황 | shell.tsx NAV_ITEMS 전부 하드코딩(서버렌더) |
|---|---|
| 변경 | '기능' children만 상수에서 분리 → 렌더 시 legal_doc_catalog ⨝ user_doc_selections (by email)로 동적 생성. 나머지 노드는 상수 유지 |
| 그룹 | 카탈로그의 tab/feature_group로 그룹 구조 유지(평면화 아님) |
| 범위 | WorkspaceShell에 docNav 인자 1개 추가하는 최소변경 |
| 기능 | 카탈로그 브라우즈 → 서류 추가/제거/정렬. 언제든 수정·교체 |
|---|---|
| 뱃지 | 작성가능(AI 빌드됨, 현재 2종) / 준비중(메뉴엔 올라가나 작성기능 대기) |
| 수요신호 | '준비중'을 많이 고른 서류 = 다음 작성AI 개발 우선순위. user_doc_selections group by로 자동 집계(별도 작업 불요) |
| 시점 | 회원가입 시 "자주 쓰는 서류를 고르세요" → 초기 사이드바 구성 |
|---|---|
| UX | 그룹별 카탈로그 + 체크박스, 건너뛰기 시 core 기본세트 |
| 재사용 | 3번 편집화면과 동일 컴포넌트 → 온보딩은 그 wrapper |
shell.tsx+신규 마이그레이션, daemon 무관.