# Nuxt 프로젝트 — Cursor 규칙

## 언어

- 사용자와의 대화·설명·커밋 메시지 본문은 **한국어**를 사용한다.

## Git 커밋 메시지 (필수)

- **제목은 한 줄**, [Conventional Commits](https://www.conventionalcommits.org/) + **이모지**를 함께 쓴다.
- 형식: `<이모지> <type>: <한글 설명>` (이모지·타입·콜론 뒤 공백 한 칸)
- **설명(제목 본문)은 반드시 한글**로 작성한다. 영어 제목만 단독으로 쓰지 않는다.
- **명령형** 어조 (`추가`, `수정` — `추가됨`, `수정함` 지양).
- **첫 줄(제목)은 72자 미만**을 권장한다.
- **원자적 커밋**: 한 커밋에 단일 목적만 담는다. 관련 없는 변경은 분할한다.
- 커밋 생성 시 **Claude·AI 서명·Co-authored-by 등 메타 서명을 본문에 넣지 않는다.**

### 커밋 생성 프로세스 (`/commit` 등 요청 시)

1. **스테이지된 파일**이 있으면 그 파일만 대상으로 커밋한다. 없으면 사용자에게 스테이징 여부를 확인한다.
2. `git diff` 등으로 **논리적 변경 덩어리**를 분석한다.
3. 타입이 섞였거나 관심사가 다르면 **분할 커밋**을 제안한다.
4. 아래 **이모지 맵**과 타입에 맞춰 제목을 만든다.

### 타입 (type)

| type | 용도 |
|------|------|
| `feat` | 새 기능 |
| `fix` | 버그 수정 |
| `docs` | 문서 |
| `style` | 포맷팅·세미콜론 등 의미 없는 스타일 |
| `refactor` | 리팩터링 |
| `perf` | 성능 개선 |
| `test` | 테스트 |
| `chore` | 빌드·도구·잡무 |
| `ci` | CI |
| `build` | 빌드 시스템·번들러 |

### 이모지 맵 (타입·맥락에 맞게 선택)

✨ feat | 🐛 fix | 📝 docs | 💄 style | ♻️ refactor | ⚡ perf | ✅ test | 🔧 chore | 🚀 ci | 🚨 warnings | 🔒️ security | 🚚 move | 🏗️ architecture | ➕ add-dep | ➖ remove-dep | 🌱 seed | 🧑‍💻 dx | 🏷️ types | 👔 business | 🚸 ux | 🩹 minor-fix | 🥅 errors | 🔥 remove | 🎨 structure | 🚑️ hotfix | 🎉 init | 🔖 release | 🚧 wip | 💚 ci-fix | 📌 pin-deps | 👷 ci-build | 📈 analytics | ✏️ typos | ⏪️ revert | 📄 license | 💥 breaking | 🍱 assets | ♿️ accessibility | 💡 comments | 🗃️ db | 🔊 logs | 🔇 remove-logs | 🙈 gitignore | 📸 snapshots | ⚗️ experiment | 🚩 flags | 💫 animations | ⚰️ dead-code | 🦺 validation | ✈️ offline

### 분할 제안 기준

- 서로 다른 **관심사**가 한 diff에 섞인 경우
- **타입**이 혼합된 경우 (예: `feat` + `fix`)
- **파일 패턴**이 완전히 다른 영역(예: 앱 코드 vs 인프라만)인 경우
- **변경량이 크고** 커밋 단위로 나눌 수 있는 경우

### 예시

- `✨ feat: 로그인 폼 유효성 검사 추가`
- `♻️ refactor: 사용자 API 호출 로직을 composable로 분리`
- `🐛 fix: 모바일에서 헤더가 겹치는 문제 수정`

### 본문이 필요할 때

- 제목 아래 빈 줄 후 본문을 한글 bullet 또는 문단으로 적는다.

## 코드·작업 방식

- 요청 범위 밖의 리팩터·포맷 일괄 변경·무관 파일 수정을 하지 않는다.
- 기존 코드의 네이밍, import 스타일, 타입·주석 수준에 맞춘다.
- 변경 이유가 드러나는 **작고 집중된 diff**를 선호한다.

## Cursor 사용 시

- 파일을 수정하기 전에 관련 맥락(주변 코드·설정)을 읽고 일관되게 맞춘다.
- 사용자가 명시적으로 요청하지 않은 README·문서 파일은 새로 쓰거나 크게 늘리지 않는다.

