---
name: npm-release-manager
description: NPM 패키지 배포 프로세스를 자동화합니다. 버전 관리, changelog 생성, npm 배포 요청 시 활성화됩니다.
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
---

# NPM Release Manager

NPM 패키지의 릴리스 프로세스를 자동화하는 스킬입니다.

## 기능

### 릴리스 워크플로우
1. **변경 사항 분석**: git diff로 변경 내용 파악
2. **버전 결정**: Semantic Versioning (major.minor.patch)
3. **Changelog 생성**: 커밋 메시지 기반 자동 생성
4. **버전 범프**: package.json 버전 업데이트
5. **Git 태그**: 버전 태그 생성
6. **NPM 배포**: npm publish 실행

### Semantic Versioning 가이드
- **Major (x.0.0)**: 호환되지 않는 API 변경
- **Minor (0.x.0)**: 하위 호환 기능 추가
- **Patch (0.0.x)**: 하위 호환 버그 수정

### Changelog 형식
```markdown
# Changelog

## [1.2.0] - 2024-01-15

### Added
- 새로운 기능 A 추가
- 새로운 기능 B 추가

### Changed
- 기존 기능 C 개선

### Fixed
- 버그 D 수정
- 버그 E 수정

### Deprecated
- 기능 F 지원 중단 예정

### Removed
- 기능 G 제거

### Security
- 보안 취약점 H 패치
```

## 릴리스 프로세스

### 1. 사전 검사
```bash
# 테스트 실행
npm test

# 린트 검사
npm run lint

# 빌드 확인
npm run build
```

### 2. 버전 업데이트
```bash
# patch 릴리스
npm version patch

# minor 릴리스
npm version minor

# major 릴리스
npm version major
```

### 3. Changelog 업데이트
- 커밋 메시지 분석
- 카테고리별 분류
- CHANGELOG.md 업데이트

### 4. 배포
```bash
# npm 로그인 확인
npm whoami

# 배포
npm publish

# 또는 스코프 패키지
npm publish --access public
```

### 5. Git 푸시
```bash
git push origin main --tags
```

## 커밋 메시지 규약

Conventional Commits 형식 권장:
- `feat:` 새로운 기능 (minor)
- `fix:` 버그 수정 (patch)
- `docs:` 문서 변경
- `style:` 코드 스타일 변경
- `refactor:` 리팩토링
- `test:` 테스트 추가/수정
- `chore:` 빌드/도구 변경
- `BREAKING CHANGE:` 호환되지 않는 변경 (major)

## 사용 예시

```
새 버전을 배포해줘
패치 릴리스를 진행해줘
changelog를 업데이트하고 npm에 배포해줘
```

## 주의사항

- npm 로그인 상태 확인 필요
- 2FA 설정 시 OTP 입력 필요
- private 패키지는 유료 계정 필요
- 배포 전 테스트 통과 필수

## 출처
Original skill from skills.cokac.com
