---
name: version
description: RELEASE-NOTES.md 기반으로 버저닝 릴리즈 노트(VERSION-HISTORY.md)를 생성합니다
user-invokable: true
argument-hint: "[version: 1.0.0] (생략 시 자동 결정)"
---

`docs/RELEASE-NOTES.md`의 내부 릴리즈 노트를 기반으로
사용자 관점의 `docs/VERSION-HISTORY.md`를 생성/갱신합니다.
버전: $ARGUMENTS (생략 시 변경 타입에 따라 자동 결정)

## 수행 단계

### 0. 권한 확인

```bash
REMOTE_URL=$(git remote get-url origin)
GITEA_HOST=$(echo "$REMOTE_URL" | sed -E 's|^https?://([^/]+)/.*|\1|')
REPO_PATH=$(echo "$REMOTE_URL" | grep -oE '[^/]+/[^/]+\.git$' | sed 's/.git$//')
PERMISSIONS=$(curl -sf "https://${GITEA_HOST}/api/v1/repos/${REPO_PATH}" \
  -H "Authorization: token ${GITEA_TOKEN}")
IS_ADMIN=$(echo "$PERMISSIONS" | python3 -c "import sys,json; print(json.load(sys.stdin)['permissions']['admin'])")
```

- `IS_ADMIN`이 `False`이면: "버전 릴리즈는 프로젝트 관리자만 실행할 수 있습니다." 안내 후 종료
- `GITEA_TOKEN` 미설정: 설정 안내 후 종료

### 1. RELEASE-NOTES.md 분석

`docs/RELEASE-NOTES.md`가 없으면 종료: "RELEASE-NOTES.md가 없습니다. 먼저 /mr로 릴리즈 노트를 생성하세요."

```bash
cat docs/RELEASE-NOTES.md
```

### 2. 수집 범위 결정

- `docs/VERSION-HISTORY.md`가 있으면: 마지막 버전의 날짜를 확인
- 해당 날짜 이후의 RELEASE-NOTES.md 항목을 수집
- VERSION-HISTORY.md가 없으면: 전체 RELEASE-NOTES.md 항목 수집

### 3. 버전 결정

**인자가 있으면** ($ARGUMENTS): 해당 버전 사용

**인자가 없으면** 자동 결정:
- `feat` 포함 → minor 버전 올림 (x.Y.0)
- `fix`만 → patch 버전 올림 (x.y.Z)
- breaking change 포함 → major 버전 올림 (X.0.0)
- 이전 버전이 없으면 `1.0.0`부터 시작

### 4. 사용자 관점으로 재작성

수집된 항목을 다음 섹션으로 재구성:

| 섹션 | 포함 기준 |
|------|----------|
| **주요 변경** | 사용자가 눈에 띄게 느낄 수 있는 기능 (feat 중 UI/UX 영향 큰 것) |
| **개선** | 성능/편의성 향상 (refactor, perf, 사소한 feat) |
| **버그 수정** | 사용자 영향 있는 문제 해결 |
| **보안** | 보안 관련 수정 (해당 시) |

변환 규칙:
- 기술 용어 → 사용자 언어로 재작성
- 관련 항목 그룹핑 (여러 커밋이 하나의 기능이면 합침)
- docs, test, chore, ci 등 사용자에게 보이지 않는 변경은 제외
- 각 항목은 사용자가 "이게 뭐가 바뀐 거지?" 이해할 수 있는 수준으로

### 5. 초안 표시 + 첨삭 확인

초안을 표시하고 **AskUserQuestion**으로 확인:
- **질문**: "VERSION-HISTORY.md 초안입니다. 수정할 내용이 있으면 알려주세요."
- 옵션 1: 이대로 진행 (추천)
- 옵션 2: 수정 (Other 입력)

### 6. VERSION-HISTORY.md 갱신

파일이 없으면 새로 생성:

```markdown
# Version History

이 프로젝트는 [Semantic Versioning](https://semver.org/lang/ko/)을 따릅니다.
```

새 버전을 기존 내용 위에 추가:

```markdown
## [1.2.0] - 2026-03-01

### 주요 변경
- **해역별 조업 현황 대시보드 추가**: 지도에서 해역을 선택하면 실시간 조업 통계를 확인할 수 있습니다

### 개선
- 지도 레이어 전환 속도 향상

### 버그 수정
- 야간 배치 실행 시 타임아웃 발생하던 문제 수정

> 내부 릴리즈: 2026-02-28 ~ 2026-03-01 (3건)
```

마지막 줄에 참조한 내부 릴리즈 날짜 범위와 건수를 표시.

### 7. 커밋

```bash
git add docs/VERSION-HISTORY.md
git commit -m "docs: v$VERSION 릴리즈 노트 작성"
git push
```

### 8. 결과 출력

```
✅ 버전 릴리즈 노트 작성 완료
  버전: 1.2.0
  파일: docs/VERSION-HISTORY.md
  기반: RELEASE-NOTES.md (2026-02-28 ~ 2026-03-01, 3건)
```

## 필요 환경변수

- `GITEA_TOKEN`: Gitea API 접근 토큰 (필수)
