# 스킨 공유하기
스킨은 플러그인과 비슷하게 **재사용 가능한 단위**이고, 지금은 HQ에서 `community 제출 -> 리뷰 -> 승인 -> 스토어 노출` 까지 다룰 수 있습니다. 여전히 zip bundle/install 직접 공유도 같이 지원합니다.
지금 단계의 공유 방식은 다음입니다.
```text
HQ curated 스킨
-> /admin/skins/store 에서 설치
-> 또는 skin:install -- --id <skin-id>
-> dev 서버 재시작
-> /admin/design 에서 선택
로컬 스킨을 HQ 커뮤니티 스토어에 공유
-> skin:check
-> skin:submit
-> HQ /admin/skins/review
-> 승인 후 /admin/skins/store 노출
로컬 스킨 제작
-> skin:check
-> skin:bundle
-> zip 전달
-> 받는 쪽에서 skin:install
-> /admin/design 에서 선택
```
즉, HQ는 이제 **카탈로그 + curated bundle + community submission/review** 를 제공합니다.
---
## 언제 스킨을 공유하나요?
- 같은 브랜딩 톤을 다른 설치본에도 쓰고 싶을 때
- 특정 병원용으로 만든 프리셋을 템플릿처럼 복제하고 싶을 때
- 플러그인보다 가볍게 디자인 계층만 공유하고 싶을 때
---
## 공유 전 체크리스트
- `manifest.json` 의 `id`, `name`, `version`, `description` 이 채워져 있는가
- `extends` 대상이 실제로 존재하는가
- `skin.css`, `sections/**` 경로가 실제 파일과 맞는가
- `skin:check` 에 error 가 없는가
- `/admin/design` preview pack 에서 홈/상세 surface 가 모두 정상인가
- 실제 퍼블릭 페이지에서 관리자 데이터(병원명, 연락처, 운영시간)가 계속 잘 반영되는가
---
## 번들 만들기
```bash
npm run skin:bundle -- --id editorial-clinic --source local --dry-run --json
npm run skin:bundle -- --id editorial-clinic --source local
```
zip 안에는 스킨 파일만 들어갑니다.
- `manifest.json`
- `skin.css`
- `sections/**`
- `README.md`
- `skin-package.json`
---
## 받는 쪽 설치
```bash
npm run skin:install -- --file dist-skins/editorial-clinic-skin-v1.0.0.zip --dry-run --json
npm run skin:install -- --file dist-skins/editorial-clinic-skin-v1.0.0.zip
```
설치 전 dry-run으로 꼭 확인해야 하는 것:
- 이미 같은 ID의 코어 스킨이 있는가
- 같은 ID의 `local` 스킨이 있는가
- 같은 ID의 `store` 설치본이 있는가
충돌이 있으면 먼저 이유를 정리하고, 정말 의도한 경우에만 `--force` 재설치를 검토합니다.
---
## 플러그인 스토어와의 차이
플러그인:
- HQ에 제출 가능
- 리뷰/승인 가능
- 스토어 공개 가능
- 설치/다운로드 이력 관리 가능
스킨:
- HQ 공개 라이브러리 + curated install + community submission/review 제공
- 승인/리뷰 큐는 있음
- 평점/사용자 리뷰/심층 telemetry 는 아직 얕음
- 공유는 community submit 또는 zip bundle/install 기준
즉, 스킨도 이제 **승인형 HQ 스토어 아티팩트**로 올라갈 수 있지만, 운영 데이터 측면에서는 아직 플러그인보다 가볍습니다.
---
## 지금 HQ에서 할 수 있는 것
- [스킨 라이브러리](/skins) 에서 코어 프리셋 확인
- 로컬 관리자 `/admin/skins/store` 에서 HQ curated/community 스킨 설치
- 에이전트가 `skin:install -- --id <skin-id>` 로 curated/community 스킨 설치
- 에이전트가 `skin:submit -- --id <skin-id> --source local` 로 community 스킨 제출
- [에이전트 드리븐 스킨 작업](/guide#vibe-skins) 읽기
- 로컬에서 에이전트에게 제작/검증/번들/설치 요청하기
---
## 커뮤니티 제출 명령
```bash
npm run skin:submit -- --id editorial-clinic --source local --dry-run --json
npm run skin:submit -- --id editorial-clinic --source local
```
리뷰는 HQ 관리자 `/admin/skins/review` 에서 처리되고, 승인 후 `/api/skins`, `/skins`, `/admin/skins/store` 에 자동 노출됩니다.
아직 남은 과제는 평점/리뷰/세밀한 설치 telemetry 같은 운영 지표입니다.
---
## 관련 콘텐츠
- 🎯 **직원 투어**: 관리자 패널에서 **디자인** 투어를 시작하세요