# 프로젝트 전용 컨벤션 (Sample) 공통 지침(`.claude/common/`) 외에 **이 프로젝트에서만** 적용되는 규칙을 정의합니다. 공통 지침과 충돌할 경우 이 문서가 우선합니다. ## 디렉토리 규칙 - `components/` — 재사용 컴포넌트. 도메인별 하위 폴더(`user/`, `order/`)로 분리 - `composables/` — `useXxx` 형태의 재사용 로직 - `pages/` — Nuxt 파일 기반 라우팅 - `server/api/` — 서버 라우트 핸들러 - `types/` — 전역/공통 타입 정의 ## 컴포넌트 규칙 (오버라이드) - 이 프로젝트에서는 컴포넌트 파일 길이를 **150줄**로 제한합니다. (공통 200줄보다 엄격) - 컴포넌트 당 `defineProps` 의 항목은 **최대 7개**. 초과 시 객체 props 로 묶습니다. ## Tailwind - 색상은 `tailwind.config.ts` 의 `theme.extend.colors` 에 등록된 토큰만 사용합니다. (임의 색상 사용 금지) - 다크모드 클래스 prefix 는 `dark:` 를 사용합니다. ## 네트워크 - API 호출은 반드시 `composables/api/` 의 래퍼를 통해 수행합니다. - 직접 `$fetch` / `fetch` 사용은 금지 (테스트 목적 제외). ## 테스트 - Vitest 를 기본 테스트 러너로 사용합니다. - 테스트 파일은 소스 옆에 `*.spec.ts` 로 배치합니다. - 공통 유틸과 composable 은 테스트 커버리지 80% 이상을 유지합니다.