con un clic
release
develop을 main으로 릴리즈하는 release/x.y.z 브랜치 + PR 생성
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
develop을 main으로 릴리즈하는 release/x.y.z 브랜치 + PR 생성
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
gh 명령 직전 GitHub CLI 로그인 상태와 active account 를 확인
항공기 사후 단계 (Landing) — PR 머지 확인 후 워크트리 제거·develop 동기화
항법 단계 (Rejoin) — 워크트리 제거 + 브랜치를 develop 위로 리베이스해 메인 레포 로컬 브랜치로 보존 (원래 항로 재합류)
항공기 이륙 4단계 — develop 리베이스 → push → PR 생성 (원격 영향)
항공기 사후 단계 (Landing) — PR 머지 확인 후 워크트리 제거·develop 동기화
항법 단계 (Rejoin) — 워크트리 제거 + 브랜치를 develop 위로 리베이스해 메인 레포 로컬 브랜치로 보존 (원래 항로 재합류)
| name | release |
| description | develop을 main으로 릴리즈하는 release/x.y.z 브랜치 + PR 생성 |
develop의 변경사항을 모아 release/x.y.z 브랜치를 만들고 main으로 향하는 릴리즈 PR을 자동 생성한다.
$ARGUMENTS로 버전을 반드시 명시해야 한다 (예: /release 0.2.1). 비어 있거나 x.y.z 형식이 아니면 즉시 중단한다.
기존 PR 본문 구조 ground truth: PR #50 (gh pr view 50). 실제 PR 제목과 본문은 영어로 작성한다.
$ARGUMENTS가 비어 있거나 x.y.z 정규식 (^\d+\.\d+\.\d+$) 에 맞지 않으면 사용자에게 "버전을 /release 0.2.1 형식으로 명시해 주세요" 라고 알리고 즉시 중단.git rev-parse --show-toplevel이 Reserviano 루트인지 확인.git status --porcelain 결과가 비어 있어야 한다. uncommitted 변경이 있으면 알리고 중단 (release 작업에 의도치 않게 묶일 위험).git fetch origin main develop --tags.git rev-list --count origin/main..origin/develop이 0이면 "릴리즈할 변경사항 없음"으로 종료.git branch -a | grep release/로 진행 중인 release 브랜치가 있으면 사용자에게 알리고 진행 여부 확인.v<버전>)나 release 브랜치(release/<버전>)가 이미 존재하면 알리고 중단.main..develop 범위의 머지된 PR 메타데이터를 수집한다. 본문 생성 소스로 쓰고, 커밋 메시지 prefix는 보조 신호다.
# 직전 release 시점 (main의 가장 최근 release PR merge 시각)
gh pr list --state merged --base main --search "release in:title" --limit 1 \
--json mergedAt,title,number
# 그 시점 이후 develop으로 머지된 PR 목록
gh pr list --state merged --base develop --search "merged:>=<직전 release merge 시각>" \
--json number,title,body,mergedAt
각 PR에서 추출:
feat, fix, refactor, perf, docs, chore, style, test, ci, build)## Summary 블록이 있으면 그 첫 줄). 원문이 한국어이면 영어로 번역해 사용한다.카테고리 매핑:
feat: → New featuresfix: → Bug fixesrefactor:, perf: → 사용자 가시 변경이면 본인 판단으로 New features 또는 Bug fixes 중 더 적합한 곳에, 아니면 제외docs:, chore:, style:, test:, ci:, build: → 제외$ARGUMENTS로 받은 값을 그대로 사용한다.
PR #50 톤을 참고해 다음 템플릿으로 작성:
## <version>
### New features
- <English user-value summary extracted from feat PRs>
### Bug fixes
- <English problem-oriented summary extracted from fix PRs>
작성 원칙:
신뢰도 높은 정적 분석만 수행한다. prod DB 시뮬레이션·부하 테스트는 시도하지 않는다 (접근권 없음, 로컬 SQLite ↔ Postgres 차이로 안전 신호로 못 씀). 테스트·빌드 통과는 이 스킬의 책임 밖.
가장 중요. AGENTS.md "expand-contract 방식" 규칙 위반을 잡는다.
# main..develop 사이 신규/변경된 마이그레이션 파일
git diff --name-only origin/main..origin/develop -- API/migrations/versions/
각 파일에서 다음 패턴을 grep:
op.drop_column(op.drop_table(op.drop_constraint(op.drop_index(op.alter_column( 호출에서 nullable=False 가 들어가는데 같은 호출 내에 server_default= 가 없는 경우RENAME COLUMN / RENAME TOop.alter_column(... new_column_name=...) (rename)op.alter_column(... type_=...) (타입 변경)위험 신호 1개 이상이면 ⚠️와 함께 어느 파일·어느 패턴인지 표시.
git diff --name-only origin/main..origin/develop -- API/app/scheduler.py
변경이 있으면 ⚠️. Cloud Run 배포 중 구 revision 의 1분 스케줄러가 신규 스키마를 보고 깨질 위험.
git diff origin/main..origin/develop -- API/cloudbuild.yaml API/cloudbuild-preprod.yaml
변경 라인이 있으면 표시. AGENTS.md 의 2026-04-22~04-27 인시던트 재발 방지 — env vars 가 누락되면 컨테이너가 ephemeral SQLite 로 폴백.
릴리즈 사전 체크
✅ 마이그레이션 파괴성: 안전 (신규 파일 N개, 위험 패턴 0)
⚠️ 스케줄러 변경: app/scheduler.py 수정됨 — 구 revision 동시 구동 위험 검토
✅ cloudbuild env vars: 변경 없음
⚠️ 가 1개라도 있으면 5단계 확인 게이트에서 "그래도 진행 / 중단" 을 명시적으로 선택받는다.
확정된 버전, 생성한 본문, 사전 체크 결과를 사용자에게 함께 보여주고 AskUserQuestion으로 확인. 옵션:
버전을 바꾸려면 사용자가 명령을 다시 실행해야 한다 (스킬 내부에서 재추정하지 않는다).
확인 통과 후:
git checkout -b release/<버전> origin/develop
git push -u origin release/<버전>
gh pr create \
--base main \
--head release/<버전> \
--title "Release <version>" \
--body "<5단계에서 확정된 본문>"
생성된 PR URL을 사용자에게 보여주고 종료.
--no-verify, force push, 기타 destructive git 명령 금지.gh CLI 또는 git 명령 실패 시 root cause를 사용자에게 보고하고 멈춘다. 우회·재시도 금지.