# designpaca — 모노레포

웹 디자인 파이프라인 스킬과 그 설치 CLI.
사용자용 문서는 [`packages/cli/README.md`](packages/cli/README.md) 를 봐라 — npm 페이지에 그대로 실린다.

```bash
npx designpaca
```

## 구조

```
packages/
  skill/   @designpaca/skill  — SKILL.md 와 references/. 이 저장소의 실질 가치
  core/    @designpaca/core   — 설치 엔진: 타깃 어댑터, 매니페스트, 드리프트 감지
  cli/     designpaca         — npx 진입점 + 온보딩 TUI. 유일하게 npm 에 배포되는 패키지
apps/
  site/    @designpaca/site   — 소개 페이지 (Astro → Cloudflare Pages)
build/ci/                     — CI 스크립트 (Node 검증, npm 배포, 릴리스 업로드, 스킬 검사)
research/                     — 스킬의 근거 자료. 약 250개 웹 소스 조사 결과
docs/DEPLOYMENT_PLAN.md       — 배포·릴리스 운영 절차
```

`core` 와 `skill` 은 private 이다. CLI 빌드 시 `core` 는 번들에, `skill` 은 `dist/skill/` 로 복사된다.
사용자는 `npx designpaca` 한 번으로 전부 받는다.

## 개발

```bash
pnpm install
pnpm build          # 스킬 번들 + CLI 빌드
pnpm test           # core 14 + cli 6
pnpm typecheck
pnpm dev:site       # 소개 페이지 로컬
```

### CLI 를 실제 경로로 테스트

`npx` 가 겪는 경로를 그대로 재현하려면 tarball 로 확인한다.

```bash
pnpm build
cd packages/cli && npm pack
npx ./designpaca-0.1.0.tgz --help
```

설치 왕복을 안전하게 시험하려면 홈 디렉터리를 바꿔라.

```bash
HOME=/tmp/dp USERPROFILE=/tmp/dp node packages/cli/dist/index.js install -t claude-code -s user -y
```

### 스킬 문서를 고쳤다면

```bash
node build/ci/lint-skill.mjs packages/skill
```

프론트매터 필수 필드, description 길이, 본문이 가리키는 참조 문서의 존재, 참조되지 않는 죽은 문서를 검사한다. CI 가 같은 것을 돌린다.

## 릴리스

```bash
pnpm changeset      # 변경 기록
pnpm version        # 버전 확정 (fixed 그룹이라 세 패키지가 함께 움직인다)
git tag v0.1.0 && git push origin main --tags
```

태그 푸시가 Forgejo Actions 를 발동시킨다: 검사 → 테스트 → 빌드 → npmjs 배포 + 사설 레지스트리 미러 → draft 릴리스 → Cloudflare Pages.
시크릿 등록과 러너 전제는 [`docs/DEPLOYMENT_PLAN.md`](docs/DEPLOYMENT_PLAN.md) 에 있다.

## 라이선스

MIT
