snp-connection-monitoring/.claude/skills/version/SKILL.md
HYOJIN 38d7ac5642 feat: 프론트엔드 통합 프로젝트 초기 구조 구성
- Spring Boot 3.2.1 백엔드 (com.gcsc.connection, 포트 8042, context /snp-connection)
- React 19 + TypeScript + Vite 7 + Tailwind CSS 4 프론트엔드
- frontend-maven-plugin 통합 빌드 설정
- 팀 워크플로우 v1.6.1 동기화

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:56:10 +09:00

125 lines
3.9 KiB
Markdown

---
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 접근 토큰 (필수)