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