pf-release
SKILL.md
PF 릴리즈 플로우
$ARGUMENTS 버전 릴리즈를 진행합니다.
릴리즈 플로우
1. 릴리즈 준비 확인
↓
2. Changeset 작성
↓
3. 버전 업데이트
↓
4. Git 태그 생성
↓
5. 배포
↓
6. 릴리즈 노트 작성
1단계: 릴리즈 준비 확인
체크리스트
# 1. main 브랜치 최신화
git checkout main
git pull
# 2. 빌드 확인
pnpm build
# 3. 린트 확인
pnpm lint
# 4. 변경사항 확인
git log --oneline $(git describe --tags --abbrev=0)..HEAD
릴리즈 가능 조건
- 모든 CI 통과
- 스테이징 테스트 완료
- 크리티컬 버그 없음
- 릴리즈 노트 준비됨
2단계: Changeset 작성
Changeset 생성
pnpm changeset
프롬프트 응답
? Which packages would you like to include?
◉ @pf-dev/ui
◉ @pf-dev/map
◯ @pf-dev/three
? Which packages should have a major bump?
(none - minor로 진행)
? Which packages should have a minor bump?
◉ @pf-dev/ui
◉ @pf-dev/map
? Summary
> feat: 새로운 Button variant 추가, Map 성능 개선
Changeset 파일 확인
cat .changeset/*.md
---
"@pf-dev/ui": minor
"@pf-dev/map": minor
---
feat: 새로운 Button variant 추가, Map 성능 개선
- Button에 'link' variant 추가
- MapViewer requestRenderMode 기본값 변경
- 성능 최적화
3단계: 버전 업데이트
# 버전 업데이트 (changeset에 따라)
pnpm bump
# 변경된 package.json 확인
git diff packages/*/package.json
버전 규칙
| 변경 유형 | 버전 업 | 예시 |
|---|---|---|
| Breaking Change | Major | 1.0.0 → 2.0.0 |
| 새 기능 | Minor | 1.0.0 → 1.1.0 |
| 버그 수정 | Patch | 1.0.0 → 1.0.1 |
4단계: Git 태그 생성
# 태그 생성
pnpm tag
# 생성된 태그 확인
git tag --list | tail -5
# 예: @pf-dev/ui@1.2.5, @pf-dev/map@0.1.2
커밋 & 푸시
# 버전 업데이트 커밋 (이슈번호 포함 필수)
git add .
git commit -m "#이슈번호 - chore(release): @pf-dev/ui@1.2.5"
# 예시
git commit -m "#204 - chore(release): @pf-dev/ui@1.2.5"
git commit -m "#205 - chore(release): @pf-dev/ui@1.2.6, @pf-dev/map@0.1.2"
[필수] 사용자 확인 후 푸시
⚠️ 반드시 사용자 승인을 받은 후 푸시할 것
# 1. 변경사항 최종 확인
git log --oneline -1
git tag --list | tail -3
# 2. 사용자 승인 대기
# → "푸시해도 될까요?" 확인 필수
# 3. 해당 릴리즈 태그만 푸시 (--follow-tags 사용 금지!)
git push
git push origin @pf-dev/ui@1.2.5
# 여러 패키지인 경우
git push origin @pf-dev/ui@1.2.5 @pf-dev/map@0.1.2
5단계: 배포
자동 배포 (main 푸시 시)
# GitHub Actions 확인
gh run list --limit 3
# 배포 상태 확인
gh run view [run-id]
수동 배포 (필요시)
# 스테이징
pnpm turbo build:staging --filter=앱이름
# scp 또는 배포 스크립트
# 프로덕션
pnpm turbo build:production --filter=앱이름
6단계: 릴리즈 노트 작성
GitHub Release 생성
gh release create @pf-dev/ui@1.2.5 \
--title "@pf-dev/ui v1.2.5" \
--notes "
## What's New
### Features
- Button에 'link' variant 추가 (#123)
- Select에 검색 기능 추가 (#124)
### Bug Fixes
- Dialog 포커스 트랩 수정 (#125)
### Breaking Changes
- 없음
## Upgrade Guide
\`\`\`bash
pnpm update @pf-dev/ui
\`\`\`
"
또는 GitHub 웹에서 작성
- Releases 탭 이동
- "Draft a new release" 클릭
- 태그 선택
- 릴리즈 노트 작성
- Publish release
버전별 태그 형식
# 패키지 태그
@pf-dev/ui@1.2.5
@pf-dev/map@0.1.2
# 앱 태그 (선택적)
yongin-platform-app@1.0.0
릴리즈 체크리스트
[ ] main 브랜치 최신화
[ ] 빌드 성공
[ ] 린트 통과
[ ] Changeset 작성
[ ] 버전 업데이트 (pnpm bump)
[ ] 태그 생성 (pnpm tag)
[ ] 커밋 & 푸시
[ ] CI/CD 통과
[ ] 스테이징 확인
[ ] 프로덕션 배포 (필요시)
[ ] GitHub Release 작성
[ ] 팀 공유
롤백 (문제 발생 시)
# 이전 버전으로 롤백
git revert HEAD
pnpm install
pnpm build
git push
# 또는 이전 태그로 체크아웃
git checkout @pf-dev/ui@1.2.4
태그 관리 대상 패키지
다음 패키지들만 태그와 버전 관리를 진행합니다:
| 패키지 | 설명 |
|---|---|
@pf-dev/ui |
UI 컴포넌트 라이브러리 |
@pf-dev/map |
CesiumJS 3D 지도 |
@pf-dev/three |
Three.js 3D 뷰어 |
@pf-dev/cctv |
영상 스트리밍 |
@pf-dev/services |
공통 서비스 (인증 등) |
태그 관리하지 않는 패키지:
@pf-dev/fonts- 폰트 패키지@pf-dev/api- API 클라이언트@pf-dev/eslint-config- ESLint 설정@pf-dev/typescript-config- TypeScript 설정
주의사항
- [필수] 푸시 전 사용자 승인 필수 - 버전/태그 확인 후 승인 받기
- [필수]
--follow-tags사용 금지 - 이번 릴리즈 태그만 명시적으로 푸시 - [필수] 커밋 메시지에 이슈번호 포함 -
#이슈번호 - chore(release): 패키지@버전 - [필수] 태그 관리 대상 패키지만 릴리즈 - 위 목록 참고
Weekly Installs
1
Repository
pluxity/pf-frontendFirst Seen
Mar 1, 2026
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
continue1
kimi-cli1