Skip to content
Back to skills

Semver Analyzer

ASecurity

시맨틱 버저닝(SemVer) 규칙에 따라 변경사항을 분석하고 적절한 버전 번호를 결정하는 방법론. 'SemVer 분석', '버전 번호 결정', 'Breaking Change 판정', '버전 범프 결정' 등 버전 관리 시 사용한다. 단, git 태그 자동 생성, CI/CD 릴리스 실행은 이 스킬의 범위가 아니다.

  • 1,256 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 29, 2026
documentationgitapici/cdsecurityperformancedocumentation

Works with

  • api

Security analysis

A100/100

Scanned May 29, 2026

npx -y skills add revfactory/harness-100 --skill semver-analyzer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Semver Analyzer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Semver Analyzer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/revfactory-semver-analyzer/badge)](https://www.skillsdirectory.com/skills/revfactory-semver-analyzer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: semver-analyzer
description: "시맨틱 버저닝(SemVer) 규칙에 따라 변경사항을 분석하고 적절한 버전 번호를 결정하는 방법론. 'SemVer 분석', '버전 번호 결정', 'Breaking Change 판정', '버전 범프 결정' 등 버전 관리 시 사용한다. 단, git 태그 자동 생성, CI/CD 릴리스 실행은 이 스킬의 범위가 아니다."
---

# SemVer Analyzer — 시맨틱 버저닝 분석 방법론

change-classifier와 release-note-writer의 버전 결정 역량을 강화하는 스킬.

## 대상 에이전트

- **change-classifier** — 변경사항의 SemVer 영향도를 판정한다
- **release-note-writer** — 버전 번호와 하이라이트를 결정한다

## SemVer 2.0.0 핵심 규칙

```
MAJOR.MINOR.PATCH[-prerelease][+build]

MAJOR: 호환되지 않는 API 변경 (Breaking Change)
MINOR: 하위 호환 기능 추가
PATCH: 하위 호환 버그 수정
```

## Breaking Change 판정 매트릭스

### API/라이브러리

| 변경 유형 | Breaking? | 예시 |
|----------|-----------|------|
| 공개 함수 삭제 | YES | `remove_user()` 삭제 |
| 공개 함수 시그니처 변경 | YES | 필수 매개변수 추가/제거 |
| 반환 타입 변경 | YES | `dict` → `list` |
| 예외 타입 변경 | YES | `ValueError` → `TypeError` |
| 기본값 변경 | MAYBE | 동작 변경 여부에 따라 |
| 새 선택 매개변수 추가 | NO | `def func(x, new=None)` |
| 새 공개 함수 추가 | NO | 기존 코드 영향 없음 |
| 내부 함수 변경 | NO | `_private_func()` |
| 성능 개선 | NO | 동작 동일 |

### 웹 API (REST/GraphQL)

| 변경 유형 | Breaking? |
|----------|-----------|
| 엔드포인트 삭제/이동 | YES |
| 필수 필드 추가 (요청) | YES |
| 응답 필드 삭제 | YES |
| 응답 구조 변경 | YES |
| 인증 방식 변경 | YES |
| 새 선택 필드 추가 (요청) | NO |
| 새 응답 필드 추가 | NO |
| 새 엔드포인트 추가 | NO |

### 데이터베이스

| 변경 유형 | Breaking? |
|----------|-----------|
| 테이블/컬럼 삭제 | YES |
| NOT NULL 제약 추가 | YES |
| 컬럼 타입 변경 | YES |
| 새 nullable 컬럼 추가 | NO |
| 새 인덱스 추가 | NO |

## 버전 범프 결정 알고리즘

```
입력: 변경사항 목록

1. Breaking Change 있음? → MAJOR 범프
2. 새 기능 있음? → MINOR 범프
3. 버그 수정만? → PATCH 범프

특수 규칙:
- MAJOR = 0 (개발 중): Breaking Change도 MINOR로 허용
- pre-release 붙은 경우: 0.x.y-alpha.1 → 정식 릴리스 시 MAJOR
- 여러 유형 혼합 시: 가장 높은 수준 적용
```

## Conventional Commits 매핑

| 접두사 | SemVer 영향 | 릴리스 노트 섹션 |
|--------|-----------|----------------|
| `feat:` | MINOR | Added (추가) |
| `fix:` | PATCH | Fixed (수정) |
| `feat!:` / `BREAKING CHANGE:` | MAJOR | Breaking Changes |
| `perf:` | PATCH | Performance (성능) |
| `refactor:` | - | Changed (변경) |
| `docs:` | - | Documentation |
| `test:` | - | - (노트 제외 가능) |
| `chore:` | - | - (노트 제외 가능) |
| `ci:` | - | - (노트 제외 가능) |
| `style:` | - | - (노트 제외 가능) |
| `deps:` | PATCH~MAJOR | Dependencies |

## Keep a Changelog 형식

```markdown
# Changelog

## [Unreleased]

## [2.0.0] - 2025-01-15

### Breaking Changes
- `createUser()` API가 `registerUser()`로 이름 변경 (#123)

### Added
- 팀 관리 기능 추가 (#456)
- 다크모드 지원 (#789)

### Changed
- 로그인 화면 UI 개선 (#234)

### Deprecated
- `v1` API 엔드포인트 (v3.0에서 제거 예정)

### Fixed
- 비밀번호 재설정 이메일 미발송 문제 (#567)

### Security
- XSS 취약점 패치 (#890)
```

## 프리릴리스 버전 체계

```
1.0.0-alpha.1 → 초기 알파
1.0.0-alpha.2 → 알파 수정
1.0.0-beta.1  → 베타 진입
1.0.0-beta.2  → 베타 수정
1.0.0-rc.1    → 릴리스 후보
1.0.0         → 정식 릴리스

우선순위: alpha < beta < rc < release
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.