--- name: claude-guide description: Guides Claude Code setup and configuration. Use when setting up CLAUDE.md, rules, hooks, or skills structure for projects. invocable: true invocable_description: Reviews and refactors existing CLAUDE.md. Run to analyze memory structure and extract reusable patterns to skills. --- # Claude Guide Claude Code 설정 구조를 안내하고, 프로젝트별 CLAUDE.md를 리뷰합니다. ## 설정 유형 선택 가이드 Claude Code는 다양한 설정 방식을 제공합니다. **컨텍스트 소비 최소화**를 위해 적절한 유형을 선택하세요. | 유형 | 로드 시점 | 용도 | |------|----------|------| | CLAUDE.md | 항상 | 핵심 규칙, 필수 설정 | | rules/ | 자동 로드 (paths 지정 시 해당 경로만) | 상세 규칙 분리 (20줄+ 시) | | hooks/ | 이벤트 시 | 도구 호출 전후 자동 실행 | | commands/ | 호출 시만 | 반복 작업 템플릿 (/auto-dev) | | skills/ | 필요 시만 | 전문 지식 패키지 (drawio) | | agents/ | 위임 시만 | 독립 컨텍스트 작업 (code-review) | ### 어디에 넣을까? **CLAUDE.md**: 커밋 규칙, 테스트 정책, 금지 사항 (항상 적용되어야 할 것) **rules/**: 상세 규칙 (20줄+), 영역별 분리 (frontend/, backend/) **hooks/**: 도구 호출 전후 자동화 (pre-Bash, post-Edit 등) **commands/**: 반복 워크플로우 (/review, /deploy, /docs) **skills/**: 특정 주제 전문 지식 (항상 필요하지 않은 것) **agents/**: 독립 컨텍스트 필요한 작업 (코드 리뷰, 탐색) --- ## Memory 계층 구조 Claude Code는 여러 위치에서 메모리를 로드합니다. **위에서 아래로 우선순위**가 높습니다. | 우선순위 | 유형 | 위치 | 공유 범위 | |:---:|------|------|----------| | 1 | Enterprise policy | macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`
Linux: `/etc/claude-code/CLAUDE.md`
Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | 조직 전체 | | 2 | User memory | `~/.claude/CLAUDE.md` | 개인 (모든 프로젝트) | | 3 | Project memory | `./CLAUDE.md` 또는 `./.claude/CLAUDE.md` | 팀 (소스 컨트롤) | | 4 | Project rules | `./.claude/rules/*.md` | 팀 (소스 컨트롤) | | 5 | Project local | `./CLAUDE.local.md` | 개인 (현재 프로젝트만) | **동작 방식**: cwd에서 루트까지 재귀적으로 탐색하며 모든 `CLAUDE.md`, `CLAUDE.local.md` 로드 > `CLAUDE.local.md`는 자동으로 `.gitignore`에 추가됨 ### @ Import 문법 다른 파일을 import할 수 있습니다: ```markdown See @README for project overview and @package.json for available npm commands. # Additional Instructions - git workflow @docs/git-instructions.md - 개인 설정 @~/.claude/my-project-instructions.md ``` - 상대/절대 경로 모두 지원 - 최대 5단계 재귀 import - 코드 블록 내에서는 평가되지 않음 ### Path-Specific Rules `.claude/rules/` 내 파일에 YAML frontmatter로 특정 경로에만 적용: ```markdown --- paths: src/api/**/*.ts --- # API Development Rules - All API endpoints must include input validation - Use the standard error response format ``` **Glob 패턴 예시**: - `**/*.ts`: 모든 TypeScript 파일 - `src/**/*`: src/ 하위 모든 파일 - `src/components/*.tsx`: 특정 디렉토리만 - `{src,lib}/**/*.ts`: 여러 디렉토리 ### Memory 명령어 ```bash /init # CLAUDE.md 생성 /memory # 로드된 memory 파일 확인 ``` > 공식 문서: https://code.claude.com/docs/en/memory --- ## CLAUDE.md 리뷰 프로젝트별 CLAUDE.md를 리뷰하고 정리합니다. **핵심 목표**: - 프로젝트 고유 정보만 간결하게 유지 (토큰 효율성 우선) - 범용 패턴은 Skills로 분리 - 필수 항목 누락 방지 - 정해진 형식 없음, 간결하고 읽기 쉽게 - 실제 문제 해결 중심 ## Instructions ### 워크플로우: 기존 claude.md 리뷰 #### 1. 파일 확인 ```bash # 현재 디렉토리 확인 pwd # claude.md 찾기 ls claude.md 2>/dev/null || ls CLAUDE.md 2>/dev/null ``` **있으면**: 리뷰 시작 **없으면**: 생성 제안 (templates/ 참조) #### 2. Read 및 분석 ``` Read claude.md (또는 CLAUDE.md) ``` **분석 항목**: 1. **컨텍스트 효율성 체크** - 간결하고 핵심만: ✅ 적절 - 다소 장황함: ⚠️ 약간 김 - 범용 내용 많음: ❌ Skills 분리 필요 2. **Skills로 분리할 내용 감지** 키워드 패턴으로 감지: - "TypeScript", "타입", "컨벤션", "린팅" → patterns-typescript - "React", "컴포넌트", "hooks", "상태 관리" → patterns-react - "API 설계", "엔드포인트", "RESTful" → patterns-api - "테스트", "유닛", "E2E", "mocking" → test-guidelines - "에러 핸들링", "try-catch", "로깅" → patterns-error-handling **판단 기준**: - 해당 섹션이 20줄 이상 - 프로젝트 독립적인 범용 내용 - 다른 프로젝트에도 적용 가능 3. **필수 항목 체크** - [ ] 프로젝트 개요 (1-2줄 설명) - [ ] 퀵 커맨드 (build, test, dev, deploy 등) - [ ] 서비스 엔드포인트/포트 - [ ] 환경변수 필수 항목 - [ ] 프로젝트 특이사항/주의사항 #### 3. 리포트 생성 사용자에게 분석 결과 요약: ```markdown ## 📊 claude.md 리뷰 결과 ### 전체 현황 - 총 라인: XXX줄 - 상태: ✅ 간결하고 적절 / ⚠️ 약간 김 / ❌ 분리 필요 ### Skills로 분리 권장 (총 YYY줄) 1. TypeScript 컨벤션 (50줄) → patterns-typescript 2. React 패턴 (80줄) → patterns-react 3. 테스트 가이드 (40줄) → test-guidelines ### 필수 항목 누락 - [ ] 퀵 커맨드 - [ ] 서비스 엔드포인트 ### 적절한 내용 - [x] 프로젝트별 quirks - [x] 특정 서비스 설정 ``` #### 4. 사용자 확인 개선 방향 선택지 제시: **[1] Skills 분리 + 정리** - 범용 내용을 skills로 분리 - 프로젝트 고유 정보만 남김 - 누락된 필수 항목 추가 **[2] 정리만 (분리 없이)** - 현재 구조 유지 - 포맷만 정리 **[3] 새로 작성** - 기존 내용 참고하여 템플릿 기반 재작성 #### 5. 개선 실행 **[1] Skills 분리 선택 시**: 1. 각 분리 대상마다 확인: ``` "TypeScript 컨벤션(50줄)을 patterns-typescript skill로 분리하시겠습니까?" → Yes: 새 skill 생성 → No: claude.md에 유지 ``` 2. 새 skill 생성: ```bash mkdir -p skills/patterns-{name}/ Write skills/patterns-{name}/SKILL.md ``` 3. claude.md에서 해당 섹션 제거 4. claude.md에 skill 참조 추가: ```markdown ## 코딩 가이드 - TypeScript: `patterns-typescript` skill 참조 - React: `patterns-react` skill 참조 ``` **[2] 정리만 선택 시**: - 포맷 정리 - 섹션 재배치 - 필수 항목 추가 **[3] 새로 작성 선택 시**: 1. 프로젝트 유형 확인: - Web App (Next.js, React 등) - API Server (Express, Fastify 등) - Monorepo (Turborepo, Nx 등) - Minimal (기본) 2. 적절한 템플릿 선택 (`templates/{유형}.md`) 3. 사용자와 대화하며 커스터마이징: - "프로젝트명은?" - "빌드 명령어는?" - "개발 서버 포트는?" - "특별한 주의사항은?" 4. claude.md 생성 #### 6. 검증 정리 후 재확인: - 간결한가? - 필수 항목 모두 포함? - Skills 참조 명확? ## 포함/제외 기준 ### ✅ claude.md에 포함할 것 **프로젝트 고유 정보:** - 프로젝트 개요 및 목적 - 빌드/테스트/배포 명령어 - 서비스 엔드포인트 및 포트 - 환경변수 필수 항목 - 인증/테스팅 워크플로우 (프로젝트 특화) - 프로젝트별 quirks 및 주의사항 - 특정 서비스 설정 (Redis, DB 등) - 프로젝트 특화 트러블슈팅 **예시:** ```markdown # MyApp 웹 기반 사용자 관리 시스템 ## 퀵 커맨드 - Build: `npm run build` - Dev: `npm run dev` (http://localhost:3000) - Test: `npm test` - Deploy: `./scripts/deploy.sh` ## 서비스 - API: http://localhost:3000/api - Admin: http://localhost:3001 - Redis: localhost:6379 ## 환경변수 필수 - DATABASE_URL - REDIS_URL - JWT_SECRET ## 주의사항 - DB 마이그레이션은 항상 백업 후 실행 - Redis는 개발 시 docker compose로 자동 실행 ``` ### ❌ Skills로 분리할 것 **범용 패턴 및 가이드:** - 언어별 컨벤션 (TypeScript, Python 등) - 프레임워크 패턴 (React, Vue, Express 등) - API 설계 원칙 (RESTful, GraphQL) - 테스트 작성 가이드 - 에러 핸들링 패턴 - 데이터베이스 설계 원칙 - 성능 최적화 기법 **분리 대상 skill 매핑:** - TypeScript 컨벤션 → `patterns-typescript` - React 패턴 → `patterns-react` - Backend 아키텍처 → `patterns-backend` - API 설계 → `patterns-api` - 테스트 가이드 → `test-guidelines` - 에러 핸들링 → `patterns-error-handling` - 보안 → `review-security` --- ## 대규모 프로젝트 CLAUDE.md 대규모 엔터프라이즈 프로젝트는 일반 권장 범위를 초과할 수 있습니다. ### 언제 200줄+ CLAUDE.md가 필요한가? - 프로젝트 고유 규칙이 많은 경우 (REST API 표준, 로깅 표준, i18n 등) - DDD 같은 복잡한 아키텍처를 사용하는 경우 - 규제 준수 요구사항이 있는 경우 (금융, 의료 등) - 체크리스트가 필요한 경우 (새 Controller, 새 Service 등) ### 대규모 프로젝트 권장 섹션 ```markdown 1. Project Overview # 프로젝트 개요 2. Quick Commands # 개발 명령어 3. Services # 서비스 엔드포인트 4. Environment Variables # 환경변수 5. Architecture # 아키텍처 가이드라인 (패키지 구조, 계층 의존성) 6. REST API Standards # API 응답 패턴, 로깅 표준 7. Internationalization # i18n 메시지 사용법 8. Swagger Documentation # API 문서화 규칙 9. Checklists # 체크리스트 (새 컨트롤러, 새 서비스, PR) 10. Testing Strategy # 테스트 전략, 디렉토리 구조 11. Troubleshooting # 자주 발생하는 문제 해결 12. References # 상세 문서 링크 ``` ### 코드 예시 패턴 (✅/❌) 올바른 방법과 잘못된 방법을 대비하여 명확하게 가이드: ```java // ✅ 올바른 패턴: ApiResult 래퍼 사용 @PostMapping public ResponseEntity> createUser(...) { return ResponseEntity.status(HttpStatus.CREATED) .body(ApiResult.success(response, message)); } // ❌ 잘못된 패턴: ApiResult 없이 직접 반환 @GetMapping public ResponseEntity> getUsers() { return ResponseEntity.ok(service.getAll()); // 이렇게 하지 마세요 } ``` **효과**: AI가 명확한 패턴을 학습하여 일관된 코드 생성 ### 체크리스트 패턴 새 기능 구현 시 빠뜨리기 쉬운 사항을 명시적으로 나열: ```markdown ### New Controller Checklist - [ ] **ApiResult 패턴 적용**: 모든 엔드포인트가 `ResponseEntity>` 반환 - [ ] **MessageSourceService 주입**: 다국어 메시지 처리를 위해 필수 - [ ] **Swagger 문서화**: `@Tag`, `@Operation`, `@ApiResponses` 어노테이션 추가 - [ ] **로깅 표준 준수**: GET은 `debug`, POST/PUT/DELETE는 `info` 레벨 - [ ] **메시지 파일 업데이트**: messages_ko.properties에 메시지 키 추가 ``` **효과**: AI가 코드 생성 후 자체 검증 가능 ### 템플릿 대규모 프로젝트용 템플릿: `templates/enterprise.md` ## 체크리스트 ### 필수 항목 - [ ] 프로젝트 개요 (1-2줄) - [ ] 퀵 커맨드 (build, test, dev) - [ ] 서비스 엔드포인트/포트 - [ ] 환경변수 필수 항목 ### 품질 - [ ] 간결하게 유지 - [ ] Skills 참조 명확 - [ ] 프로젝트 고유 정보만 - [ ] 섹션 구조 명확 ### Skills 분리 - [ ] 코딩 컨벤션 (> 20줄) 분리 - [ ] 프레임워크 패턴 분리 - [ ] 범용 가이드 분리 ## 예시 ### 예시 1: 리뷰 후 Skills 분리 User: "claude.md 리뷰해줘" Assistant: 1. Read claude.md (250줄) 2. 분석: - TypeScript 컨벤션 (60줄) → patterns-typescript - React 패턴 (70줄) → patterns-react - 퀵 커맨드 누락 3. 리포트 제시 4. 사용자 승인 5. 실행: - skills/patterns-typescript/ 생성 - skills/patterns-react/ 생성 - claude.md에서 해당 섹션 제거 - 퀵 커맨드 추가 6. 결과: 80줄의 깔끔한 claude.md ### 예시 2: 새로 작성 User: "claude.md 만들어줘" Assistant: 1. 프로젝트 유형 확인 2. templates/web-app.md 선택 3. 커스터마이징 4. claude.md 생성 ## Technical Details 템플릿은 `templates/` 디렉토리 참조: - minimal.md: 최소 구성 - web-app.md: 웹앱 프로젝트 - api-server.md: API 서버 - monorepo.md: 모노레포 - enterprise.md: 엔터프라이즈 프로젝트 (DDD, 규제 준수)