# 작업 현황

이 문서는 장기 계획이 아니라 현재 브랜치에서 확인해야 할 작업 목록이다. 완료 여부는 코드와 테스트로 갱신한다.

## 확인된 기반

- Central/tenant tenancy와 path tenant 라우팅
- tenant별 migration/SQLite 저장 구조
- 게시판·글·페이지·이미지·예약 발행
- Tailwind/Vite 및 동적 tenant UI
- AI 글쓰기/이미지와 공통 Credit·pricing·usage log
- tenant sitemap/SEO/canonical 정책

## 다음 작업 후보

- Tenant Header/Footer Design 선택을 Site Settings·공통 shell·visual asset에 연결 (**구현됨**)
- subdomain/custom-domain 흐름을 실제 배포 환경에서 회귀 검증 (**확인 필요**)
- 공개 Pages HTML과 safelist 범위의 운영 편집 규칙 정리 (**확인 필요**)
- AI/이미지/예약 발행의 실패·동시성·권한 우회 회귀 테스트 보강

각 항목을 시작할 때 관련 workflow 문서와 실제 코드를 다시 대조한다.

## Tenant Header/Footer Design 구현 메모

- 설정값은 tenant `site_settings.header_design`, `site_settings.footer_design`에 저장한다. 허용값은 `default`, `visual`이고 누락/잘못된 값은 default로 정규화한다.
- Header와 Footer는 독립적으로 선택되며, Pages/Board 본문과 기존 Theme 선택은 변경하지 않는다.
- visual header는 기존 tenant navigation과 `tenant-header.js`의 submenu 흐름을 재사용하고 전용 CSS/scroll JS는 선택 시 dynamic import한다.
- visual 전용 CSS는 직접 색상을 결정하지 않고 `public/assets/tenant/theme.css`의 `--color-*` token을 사용한다. 구조/spacing/blur/scroll 효과는 design CSS에 남긴다.
- 현재 메뉴 구조는 `children` 최대 3단계를 지원하므로 desktop dropdown과 mobile expandable submenu를 제공한다.
- visual footer는 기존 Site Settings의 footer/company/contact/info/socials를 기존 `x-site-footer`를 통해 렌더링한다. 회사 정보를 하드코딩하지 않는다.
- default Header/Footer 전용 CSS는 `resources/css/tenant/headers/default.css`, `resources/css/tenant/footers/default.css`로 분리하고 `themes/default.css`에는 공용 UI와 Theme 규칙만 남긴다.
- 다음 단계는 visual 메인 페이지 본문 이식이다. Header 링크가 가리킬 실제 section 콘텐츠, hero 자산/폰트/Swiper 필요 여부를 별도로 설계해야 한다.
