diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..2b341b6 --- /dev/null +++ b/.cursorrules @@ -0,0 +1,70 @@ +# Nuxt 프로젝트 — Cursor 규칙 + +## 언어 + +- 사용자와의 대화·설명·커밋 메시지 본문은 **한국어**를 사용한다. + +## Git 커밋 메시지 (필수) + +- **제목은 한 줄**, [Conventional Commits](https://www.conventionalcommits.org/) + **이모지**를 함께 쓴다. +- 형식: `<이모지> : <한글 설명>` (이모지·타입·콜론 뒤 공백 한 칸) +- **설명(제목 본문)은 반드시 한글**로 작성한다. 영어 제목만 단독으로 쓰지 않는다. +- **명령형** 어조 (`추가`, `수정` — `추가됨`, `수정함` 지양). +- **첫 줄(제목)은 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·문서 파일은 새로 쓰거나 크게 늘리지 않는다. + diff --git a/CLAUDE.md b/CLAUDE.md index a21ddcb..2299cd0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,62 +1,39 @@ -# CLAUDE.md +# 팀 공통 Claude 지침 (fe-common-rules) -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. +이 파일은 팀 전체에서 공통으로 사용하는 Claude 작업 지침의 **엔트리 포인트**입니다. +각 프로젝트의 `CLAUDE.md`에서 `@.claude/common/CLAUDE.md` 형태로 참조하여 사용합니다. -## Project Overview +## 적용 범위 -- **Type**: Game service frontend agent (submodule-based monorepo) -- **Stack**: Nuxt 3/4, TypeScript (strict), pnpm -- **Language**: Korean (코드 리뷰, 커밋 메시지, 문서) +- 팀 내 모든 프론트엔드 프로젝트 +- Claude Code / Claude 기반 자동화 작업 전반 -## Commands +## 포함된 지침 -### Development -```bash -pnpm install # Install dependencies -pnpm dev # Run dev server -pnpm build # Production build -pnpm preview # Preview build -``` +아래 문서들은 Claude가 이 파일을 읽을 때 자동으로 함께 로드됩니다. -### Validation -```bash -pnpm build # Verify no build errors -pnpm typecheck # Verify TypeScript (if configured) -``` +@rules/coding-conventions.md -### Submodules -```bash -git submodule update --init --recursive # Initialize -git submodule update --remote --recursive # Update all -``` +@rules/framework-rules.md -## Git Workflow +@rules/commit-pr.md -### Branches -- `release` - Production (verified) -- `dev` - Development/testing -- Feature branches from `dev` +@rules/claude-workflow.md -### MR Guidelines -- **Title**: `[Category] Description` (Feature, Fix, Refactor, Docs) -- **Target**: `dev` first, then `release` after verification -- **Review**: 1+ team member approval required +## 우선순위 -## Context Files +1. 프로젝트 `CLAUDE.md`에 명시된 **프로젝트 지침**이 최우선입니다. +2. 이 공통 지침은 프로젝트 지침과 충돌하지 않는 범위 내에서 항상 적용됩니다. +3. 충돌이 발생하면 프로젝트 지침을 따르되, 차이를 사용자에게 알려주세요. -Additional context in `.claude/` directory: -- `contexts/` - Nuxt patterns, TypeScript conventions -- `skills/` - code-review, test-generator, refactor-component -- `agents/` - debugger, refactor, performance-optimizer +## 공통 Skill -## Project-Specific Patterns +공통 저장소는 `skills/` 폴더에 팀 공용 Claude skill 들을 함께 관리합니다. +프로젝트는 `scripts/link-skills.sh` 로 `.claude/skills/` 에 심볼릭 링크하여 사용합니다. +자세한 내용은 `skills/README.md` 를 참고하세요. -### Common Nuxt Issues -- Hydration mismatch → Use `` -- useFetch infinite loop → Check watch/immediate/key options +## 업데이트 -### Key Conventions -- Use Composition API with `