# Claude 설정 최적화 계획

**날짜**: 2026-02-03
**목적**: 토큰 효율성 개선 + 규칙 분리 + 자동화 강화

---

## 배경 (왜 이 작업을 하는가?)

### 문제 발견
- `~/.claude/` 에 **16개 MD 파일 (3,549줄, ~119KB)** 가 매 대화마다 전부 로드됨
- SAM 프로젝트 전용 규칙이 글로벌에 있어 다른 프로젝트에도 불필요하게 전파
- 비즈니스 분석용 파일(BUSINESS_PANEL, RESEARCH_CONFIG 등)이 일상 개발에도 로드
- type-check 같은 프로세스가 MD 규칙으로만 존재 → 강제성 없음

### 기대 효과
- 매 대화 토큰 사용량 감소 (불필요한 ~1,500줄 절약)
- SAM 규칙과 범용 규칙의 명확한 분리
- type-check 자동화로 실수 방지 강화

---

## 작업 계획

### 1단계: 프로젝트 CLAUDE.md 분리
**상태**: 🔄 진행 중

**작업 내용**:
- `~/.claude/RULES.md`에서 SAM 전용 규칙 추출
- 프로젝트 루트에 `CLAUDE.md` 생성 (SAM 전용 규칙)
- 글로벌 `RULES.md`는 범용 규칙만 남김

**SAM 전용으로 분류된 규칙들** (프로젝트 CLAUDE.md로 이동):
| 섹션 | 이유 |
|------|------|
| Common Table Standards | SAM ERP 테이블 패턴 |
| Document Table Merging | SAM 성적서/보고서 전용 |
| Page Layout Standards | SAM AuthenticatedLayout 구조 |
| Design Popup Policy | SAM Radix UI 스택 |
| Build Policy | SAM 빌드 정책 |
| Client Component 사용 원칙 | SAM 폐쇄형 ERP 특성 |
| SAM Project Structure | SAM 경로 구조 |
| Backend API Analysis Policy | SAM 백엔드 연동 |
| Test URL Documentation Rules | SAM 테스트 URL |
| User Environment Knowledge | 사용자 환경 특화 |
| HttpOnly Cookie API Communication | SAM 인증 패턴 |
| Radix UI Select Bug | SAM 기술 스택 이슈 |
| React → Next.js Migration | SAM 마이그레이션 |
| Large File Migration Workflow | SAM 마이그레이션 |
| Component Pattern Reuse | SAM 컴포넌트 패턴 |
| 기획서/스크린샷 기반 UI 구현 | SAM 기획서 프로세스 |

**글로벌에 남는 규칙들** (범용):
| 섹션 | 이유 |
|------|------|
| Priority System | 모든 프로젝트 공통 |
| Scope Discipline (일반 부분) | 모든 프로젝트 공통 |
| Implementation Completeness | 모든 프로젝트 공통 |
| Failure Investigation | 모든 프로젝트 공통 |
| Professional Honesty | 모든 프로젝트 공통 |
| Safety Rules | 모든 프로젝트 공통 |
| Workflow & Session | 모든 프로젝트 공통 |
| File & Code Organization | 모든 프로젝트 공통 |
| Workspace Hygiene | 모든 프로젝트 공통 |
| Git Rules | 모든 프로젝트 공통 |
| Claude-Specific Rules | 모든 프로젝트 공통 |
| Quick Reference | 모든 프로젝트 공통 |

---

### 2단계: 가끔 쓰는 MD 파일 임포트 해제
**상태**: ⏳ 대기

**작업 내용**:
- `~/.claude/CLAUDE.md`에서 `@` 임포트 줄 제거 (파일 자체는 유지)

**제거 대상 임포트** (일상 SAM 개발에 불필요):
| 파일 | 줄 수 | 용도 |
|------|-------|------|
| @BUSINESS_PANEL_EXAMPLES.md | 278줄 | /sc:business-panel 전용 |
| @BUSINESS_SYMBOLS.md | 211줄 | /sc:business-panel 전용 |
| @MODE_Business_Panel.md | 334줄 | /sc:business-panel 전용 |
| @RESEARCH_CONFIG.md | 445줄 | /sc:research 전용 |
| @MODE_DeepResearch.md | 57줄 | /sc:research 전용 |
| @MODE_Brainstorming.md | 43줄 | 가끔 사용 |
| @MODE_Introspection.md | 38줄 | 거의 안 씀 |
| @MODE_Token_Efficiency.md | 74줄 | 컨텍스트 압박 시만 |
| **합계** | **~1,480줄** | **절약** |

**유지 대상 임포트**:
| 파일 | 이유 |
|------|------|
| @PRINCIPLES.md | 핵심 엔지니어링 원칙 |
| @RULES.md | 범용 행동 규칙 |
| @GIT_POLICY.md | Git 워크플로우 |
| @FLAGS.md | 모드 활성화 플래그 |
| @MODE_Task_Management.md | 멀티스텝 작업 관리 |
| @MODE_Orchestration.md | 도구 선택 최적화 |

---

### 3단계: Hooks 추가
**상태**: ⏳ 대기

**작업 내용**:
- `.claude/settings.local.json`에 PostToolUse hook 추가
- Write/Edit 후 자동 `npx tsc --noEmit` 실행

---

### 4단계: 중복 제거
**상태**: ⏳ 대기

**작업 내용**:
- RULES.md의 "Git Rules" 섹션과 GIT_POLICY.md 간 중복 정리
- RULES.md에는 "git 올려줘" 단축 명령 + 기본 원칙만 남김
- 상세 브랜치 전략/커밋 규칙은 GIT_POLICY.md로 통합
- COMPLEX_TASK_PROTOCOL.md는 RULES.md의 Checklist-Driven Development와 중복 → 정리

---

## 진행 기록

| 단계 | 상태 | 완료일 | 비고 |
|------|------|--------|------|
| 1단계: 프로젝트 CLAUDE.md 분리 | ✅ | 2026-02-03 | SAM 전용 16개 섹션 이동 |
| 2단계: MD 임포트 해제 | ✅ | 2026-02-03 | 9개 파일 임포트 해제 (~1,759줄) |
| 3단계: Hooks 추가 | ✅ | 2026-02-03 | PostToolUse typecheck hook |
| 4단계: 중복 제거 | ✅ | 2026-02-03 | GIT_POLICY.md에서 87줄 중복 제거 |

---

## 최종 결과

### 토큰 절약 수치
```
변경 전: 3,549줄 (전부 글로벌, 매 대화 로드)
변경 후: 1,193줄 (글로벌 916 + 프로젝트 277)
절약량:  2,356줄 (~66% 감소)
```

### 다른 프로젝트에서의 효과
```
변경 전: 3,549줄 (SAM 규칙 포함)
변경 후:   916줄 (범용 규칙만)
절약량:  2,633줄 (~74% 감소)
```

### 변경된 파일 목록
| 파일 | 작업 |
|------|------|
| `프로젝트/CLAUDE.md` | 신규 생성 (SAM 전용 규칙) |
| `~/.claude/CLAUDE.md` | 임포트 9개 해제 |
| `~/.claude/RULES.md` | SAM 규칙 제거 (1017→258줄) |
| `~/.claude/GIT_POLICY.md` | 중복 섹션 제거 (394→307줄) |
| `.claude/hooks/typecheck-after-edit.sh` | 신규 생성 |
| `.claude/settings.local.json` | hooks 설정 추가 |

### Hook 동작 방식
- **트리거**: Write/Edit 도구 사용 후
- **대상**: .ts/.tsx 파일만
- **실행**: `npx tsc --noEmit` (30초 타임아웃)
- **에러 시**: Claude에 타입 에러 피드백 → 자동 수정 시도
