---
name: claude-refactoring
description: "CLAUDE.md 메모리 파일 리팩토링 및 정리 스킬. 기존 CLAUDE.md 분석, 구조 개선, 컨텍스트 효율성 최적화를 수행합니다. 트리거: CLAUDE.md 리팩토링, CLAUDE.md 정리, 메모리 파일 개선, 프로젝트 가이드 최적화, CLAUDE.md 분석, 클로드 가이드 작성, CLAUDE.md 작성 도와줘."
---

# CLAUDE.md Refactoring Skill

CLAUDE.md 파일 분석, 구조화, 최적화를 통해 Claude Code의 프로젝트 이해도와 작업 효율성을 극대화합니다.

## Workflow Decision Tree

```
사용자 요청 분석
├─ 새 CLAUDE.md 작성
│   └─ 템플릿 기반 생성 → references/template.md 참조
├─ 기존 CLAUDE.md 리팩토링
│   ├─ 1단계: 현재 파일 분석
│   ├─ 2단계: 문제점 식별
│   ├─ 3단계: 구조 재설계
│   └─ 4단계: 컨텍스트 최적화
└─ CLAUDE.md 검토/평가
    └─ 품질 메트릭 기반 분석
```

---

## Step 1: 분석 (Analysis)

### 현재 CLAUDE.md 평가 체크리스트

```markdown
□ 필수 섹션 포함 여부
  - [ ] Header (프로젝트명 + 설명)
  - [ ] Technical Stack & Conventions
  - [ ] Path Aliases
  - [ ] Critical Development Rules
  - [ ] NOT TO DOs

□ 컨텍스트 효율성
  - [ ] 토큰 예산 효율적 사용
  - [ ] 중복 정보 없음
  - [ ] 코드 예제 > 장황한 설명

□ 오류 방지 패턴
  - [ ] ✅/❌ 패턴 사용
  - [ ] Common Mistakes 테이블
  - [ ] 구체적 필드명/경로명

□ 아키텍처 문서화
  - [ ] 레이어 구조 다이어그램
  - [ ] Forbidden Patterns
  - [ ] 파일/디렉토리 구조
```

### 문제점 식별 패턴

| 문제 유형 | 증상 | 해결책 |
|----------|------|--------|
| **정보 부족** | Claude가 스키마/타입을 자주 물어봄 | Database Schema 섹션 추가 |
| **모호한 규칙** | 같은 실수 반복 | ✅/❌ 코드 예제로 구체화 |
| **과도한 정보** | 토큰 낭비, 핵심 놓침 | 테이블/코드로 압축 |
| **구조 혼란** | 필요 정보 찾기 어려움 | 섹션 재구성, 목차 추가 |

---

## Step 2: 구조화 (Structure)

### 필수 섹션 순서

1. **Header** - 프로젝트명 + 1-2문장 설명
2. **Technical Stack & Conventions** - 프레임워크, UI, 상태관리
3. **Path Aliases** - `@/` 경로 매핑
4. **Database Schema Overview** - 테이블 요약 + 주의사항
5. **Critical Development Rules** - ✅/❌ 패턴
6. **Architecture Patterns** - 레이어 다이어그램
7. **Workflow Notes** - 작업 전 체크리스트
8. **NOT TO DOs** - 금지 사항 목록
9. **Reference Documentation** - 상세 문서 링크

### 상세 가이드

- **[Implementation Guide](references/guide.md)** - 전체 구현 가이드
- **[Template](references/template.md)** - 복사 가능한 템플릿
- **[Design Patterns](references/patterns.md)** - 고급 패턴 모음

---

## Step 3: 최적화 (Optimization)

### 컨텍스트 압축 기법

**Before (72 tokens):**
```markdown
When you need to get students from the database, you should always use the service layer functions that are located in the /lib/services directory. Never import the Supabase client directly into your components.
```

**After (28 tokens):**
```markdown
### Data Access - Use Service Layer

// ✅ CORRECT
import { getStudents } from '@/lib/services/students'

// ❌ WRONG
import { createClient } from '@/lib/supabase/client'
```

**61% 토큰 절감, 정보 밀도 증가**

### 테이블 vs 산문

**산문 (비효율적):**
```markdown
users.center_id 필드는 존재하지 않습니다. 대신 center_users 조인 테이블을 사용해야 합니다. 또한 students.name은 잘못된 필드명입니다. 올바른 필드명은 students.full_name입니다.
```

**테이블 (효율적):**
```markdown
| ❌ Mistake | ✅ Correct |
|------------|-----------|
| `users.center_id` | `center_users` junction table |
| `students.name` | `students.full_name` |
```

---

## Step 4: 검증 (Validation)

### 품질 메트릭

CLAUDE.md 품질 검증 질문:

1. "**[자주 틀리는 필드명]**의 올바른 이름은?" → 즉시 답변 가능해야 함
2. "Supabase 쿼리는 어디에 작성해야 하나요?" → 정확한 경로 응답
3. "사용자 권한은 어떻게 확인하나요?" → 정확한 패턴 응답
4. "**[타입명]**은 어디서 import하나요?" → 정확한 경로 응답

**성공 기준:** 코드베이스 탐색 없이 CLAUDE.md만으로 정확한 답변

### 유지보수 체크리스트

```markdown
## 업데이트 트리거
- [ ] 같은 패턴 3회 이상 위반 시
- [ ] 새 아키텍처 결정 시
- [ ] 데이터베이스 스키마 변경 시
- [ ] 새 규칙/패턴 확립 시

## 버전 추적
**Last Updated**: YYYY-MM-DD
**Major Changes**:
- YYYY-MM-DD: [변경 사항] due to [이유]
```

---

## Quick Reference

### 필수 포함 항목 ✅
1. 자주 발생하는 실수 (필드명 오류)
2. 비직관적인 컨벤션 (파일 명명 규칙)
3. 아키텍처 가드레일 (레이어 분리)
4. 타입 시스템 패턴 (중앙화된 import)
5. 도메인별 규칙 (역할 계층)

### 제외 항목 ❌
1. 일반 언어 문서 (Claude는 JS/TS 알고 있음)
2. 라이브러리 API 레퍼런스
3. 자주 변경되는 코드
4. 당연한 베스트 프랙티스
5. 기능 백로그 (이슈 트래커 사용)

---

## Resources

### references/
- **[guide.md](references/guide.md)** - CLAUDE.md 구현 전체 가이드
- **[template.md](references/template.md)** - 복사 가능한 템플릿
- **[patterns.md](references/patterns.md)** - 고급 디자인 패턴 모음
