bash scripts/release.sh <semver> 1회로 CHANGELOG·README·footer·manifest 동기화, git 태그, 원격 push·GitHub Release 발행까지 완료되는 릴리즈 자동화
Install
npx skillscat add andyko18/specops-ko/release-ko Install via the SkillsCat registry.
SKILL.md
release-ko — 릴리즈 자동화
개요
bash scripts/release.sh <X.Y.Z> 1회로 다음을 자동화한다:
- 사전 검증 — semver + 워킹트리 클린 + 태그 중복 + 버전 단조성(현재 이하 거부)
- pre-flight —
run-all.sh(validate-structure + governance + DAG) 테스트 PASS 확인 - CHANGELOG —
## [Unreleased]→## [X.Y.Z] — YYYY-MM-DD변환 + compare 링크 갱신 (멱등) - README —
(vOLD)→(vNEW)배지 + footer 최신 스탬프 갱신 - footer 스탬프 —
commands/*.mdfooter/frontmatter 버전 불일치 수정 - manifest —
plugin.json+marketplace.json버전 bump + description 토큰 갱신 - post-flight —
validate-structure.sh재실행 (FAIL 시 trap 롤백) - git —
chore: release vX.Y.Z커밋 + annotated tag - 원격 발행 (자동) — origin 존재 시
git push+ 태그 push, gh CLI 설치 시gh release create까지 자동 수행- 재귀 가드: push 는
SPECOPS_RUN_ALL=1prefix 로 실행돼pre-push훅의run-all.sh재실행을 막는다 (pre-flight 가 동일 스위트를 이미 통과 — 릴리즈당 3회 → 1회). 가드로 도달 불가해지는 origin CI-red 경고는release.sh가 push 직전check-ci-status.sh를 직접 호출해 보존한다.
- 재귀 가드: push 는
사용법
# 릴리즈 실행 — origin·gh 있으면 원격 push + GitHub Release 발행까지 자동
bash scripts/release.sh <X.Y.Z>
# 예행 연습 (변경 없음)
bash scripts/release.sh <X.Y.Z> --dry-run주의: 로컬 커밋에서 멈추지 않는다 — origin·gh 감지 시 원격 push + GitHub Release 발행까지 자동 진행. origin 부재 시에만 push/release graceful skip + 수동 명령(
git push && git push --tags) 안내.
환경변수 (테스트용)
| 변수 | 값 | 효과 |
|---|---|---|
RELEASE_PREFLIGHT_CMD |
true |
pre/post-flight 전체 PASS (스킵) |
RELEASE_PREFLIGHT_CMD |
false |
pre/post-flight 전체 FAIL (abort 트리거) |
RELEASE_PLUGIN_ROOT |
/tmp/fixture |
파일 루트 오버라이드 |
가정
CHANGELOG.md에## [Unreleased]헤딩 존재 (없으면 경고 + CHANGELOG 갱신 skip)README.md에(vX.Y.Z)패턴 1곳 존재commands/*.mdfrontmatter에specops_version:필드 존재- main 브랜치에서 실행
파일 구조
| 파일 | 역할 |
|---|---|
scripts/release.sh |
핵심 구현 (bash 3.2+) |
scripts/tests/test-release.sh |
TDD 테스트 (T1~T10) |
commands/release.md |
/release 슬래시 커맨드 진입점 |
5원칙 주입 (specops-ko 고유)
| 원칙 | 본 스킬 적용 |
|---|---|
| 1 투명성 | 각 단계(CHANGELOG·README·footer·git) 실행 결과를 콘솔에 출력 — 무엇이 변경됐는지 명시 |
| 2 문지기 | pre-flight FAIL = 릴리즈 abort. "이 정도면 괜찮다" 자의적 판단 금지 |
| 3 깊이 | pre-flight 미실행 상태에서 "릴리즈 완료" 주장 금지 |
| 4 주권 존중 | --dry-run 플래그로 변경 없이 예행 연습 가능 — 사용자가 릴리즈 내용 직접 확인 후 실행 결정 |
| 5 한계 고백 | git 자격증명 미비·브랜치 불일치 등 환경 문제 시 즉시 abort + 원인 명시 |
참조
scripts/release.sh— 핵심 구현scripts/tests/test-release.sh— TDD 테스트commands/release.md—/release슬래시 커맨드
specops-ko v1.10.0 · 2026-06-08 · release-ko skill