# Claude Code 프로젝트 설정 ## Git 커밋 규칙 (최우선 필수 규칙) > **경고: 이 규칙은 절대 누락되어서는 안 됩니다!** ### 적용 범위 `/home/aweso/sam/` 하위의 모든 폴더에 적용: - `/home/aweso/sam/mng` - 관리자 웹 (Laravel) - `/home/aweso/sam/api` - API 서버 (Laravel) - 기타 sam 하위 폴더 **각 폴더는 독립적인 Git 저장소입니다. 해당 폴더에서 git 명령을 실행해야 합니다.** ### 필수 수행 절차 **모든 코드 작업 완료 후 반드시 다음을 수행:** 1. 변경된 파일이 있는 폴더로 이동 2. `git status`로 변경사항 확인 3. `git add <파일들>` 로 스테이징 4. `git commit -m "type:메시지"` 로 커밋 ### 커밋 메시지 형식 (필수) | Prefix | 사용 시점 | 예시 | |--------|----------|------| | `feat:` | 새로운 파일/기능 생성 | `feat:재무 대시보드 추가` | | `fix:` | 버그 수정, 코드 수정 | `fix:HTMX 리다이렉트 오류 수정` | | `refactor:` | 코드 리팩토링 | `refactor:서비스 클래스 구조 개선` | | `docs:` | 문서 수정 | `docs:README 업데이트` | | `chore:` | 설정, 빌드 관련 | `chore:CLAUDE.md 설정 추가` | ### 커밋 예시 ```bash # mng 폴더 작업 후 cd /home/aweso/sam/mng git add app/Http/Controllers/SomeController.php git add resources/views/some-view.blade.php git commit -m "feat:새로운 기능 추가" # api 폴더 작업 후 cd /home/aweso/sam/api git add app/Http/Controllers/Api/SomeApiController.php git commit -m "fix:API 응답 오류 수정" ``` ### Claude Code 설정 파일도 커밋 대상 다음 파일들이 변경되면 반드시 커밋: | 파일/폴더 | 설명 | 커밋 예시 | |-----------|------|----------| | `CLAUDE.md` | 프로젝트 설정 | `docs:CLAUDE.md 규칙 업데이트` | | `claudedocs/` | Claude 관련 문서 | `docs:기능 분석 문서 추가` | | `.claude/settings.json` | Claude 설정 | `chore:Claude 설정 변경` | | `agents/`, `skills/` | 커스텀 에이전트/스킬 | `feat:새 스킬 추가` | ```bash # CLAUDE.md 변경 시 git add CLAUDE.md git commit -m "docs:CLAUDE.md 규칙 업데이트" # claudedocs 문서 추가 시 git add claudedocs/new-feature.md git commit -m "docs:새 기능 분석 문서 추가" ``` ### 체크리스트 (작업 완료 시 확인) - [ ] mng 폴더 변경사항 확인 → git add → git commit - [ ] api 폴더 변경사항 확인 → git add → git commit - [ ] **CLAUDE.md, claudedocs/, agents/, skills/ 변경 확인 → git commit** - [ ] 커밋 메시지에 적절한 prefix 사용 (feat:/fix:/refactor:/docs:/chore:) - [ ] 한글로 명확한 커밋 메시지 작성 --- ## 프로젝트 기술 스택 - **Backend**: Laravel 11 (PHP 8.3) - **Frontend**: Blade + HTMX + Tailwind CSS - **React 페이지**: React 18 + Babel (브라우저 트랜스파일링) - **Database**: MySQL 8 --- ## Tailwind CSS 레이아웃 규칙 (필수) > **경고: 이 프로젝트는 Tailwind CSS 빌드 시점에 포함되지 않은 유틸리티 클래스가 런타임에 적용되지 않습니다.** ### 반응형 클래스 대신 inline style 사용 Tailwind 반응형 클래스(`sm:`, `md:`, `lg:`)가 빌드에 누락될 수 있으므로, **레이아웃 관련 속성은 inline style을 사용**한다. ``` ❌ class="w-full sm:w-1/3 sm:flex-nowrap" ✅ style="flex: 1 1 250px; max-width: 400px;" ``` ### flex 레이아웃 패턴 | 항목 유형 | 사용 방법 | 예시 | |----------|----------|------| | 가변 너비 | inline style flex | `style="flex: 1 1 250px; max-width: 400px;"` | | 고정 너비 | `shrink-0` + inline width | `class="shrink-0" style="width: 140px;"` | | 줄바꿈 방지 | `whitespace-nowrap` | `class="whitespace-nowrap"` | ### flex 컨테이너 직계 자식에서 `w-full` 금지 `flex-wrap` 컨테이너에서 `w-full`은 항목이 한 줄 전체를 차지하여 **줄바꿈을 유발**한다. flex 자식 요소의 너비는 flex 속성이나 inline style로 제어한다. ``` ❌