← ClaudeAtlas

releaselisted

플러그인 릴리즈 전 과정을 수행하는 스킬. 스킬 검증 → 버전 업데이트 → CHANGELOG 작성 → 커밋 → 태그 → push 순으로 진행. "릴리즈해줘", "배포해줘", "버전 올려줘", "release 해줘", "publish 해줘", "버전 업데이트하고 배포해줘" 등의 표현이 나오면 반드시 이 스킬을 사용할 것. 중간 확인 없이 push까지 한 번에 끝낸다 — 이 스킬을 부르는 것이 곧 push 승인이다.
gagip/gagip-dev · ★ 0 · Data & Documents · score 63
Install: claude install-skill gagip/gagip-dev
## 작업 순서 ### 1. 사전 정보 수집 (자동) **먼저 원격 참조를 갱신한다** — 아래 수집이 전부 `origin/main`·로컬 태그를 기준으로 판단하므로, 참조가 낡아 있으면 릴리스 상태를 잘못 읽는다: ```bash git fetch origin --tags ``` > 이 단계를 건너뛰면 이미 릴리스·push된 버전이 "미push 커밋"으로 보인다. 실제로 로컬 `origin/main`이 낡아 릴리스 커밋 4개가 미push로 잡히고 "이전 릴리스가 태그 없이 끊겼다"고 오진한 적이 있다 — fetch 후 확인해보니 정상 릴리스 상태였고 실제 미push는 1개뿐이었다. 그다음 아래 정보를 수집한다. **플러그인 감지** — 변경된 파일 기준으로 자동 감지: ```bash git diff --name-only HEAD~1..HEAD 2>/dev/null || git diff --name-only --cached ``` - `plugins/<name>/` 파일 변경 → 해당 `<name>` 플러그인 (디렉터리명이 곧 플러그인명, 하드코딩 금지) - 여러 플러그인 동시 변경 → 각 플러그인 모두 처리 - `plugins/` 외부 파일 변경(루트 `.claude/` 등)은 릴리스 대상이 아니므로 무시한다 **버전 유형 판단** — 호출 인자로 버전 유형을 받지 않았으면 커밋 이력으로 자동 판단: ```bash git log <마지막 태그>..HEAD --oneline 2>/dev/null || git log --oneline ``` - `feat!`, `fix!`, `BREAKING CHANGE` 포함 → `major` - `feat:` 포함 → `minor` - 그 외 (`fix:`, `chore:`, `docs:` 등) → `patch` | 유형 | 변경 | 예시 | |------|------|------| | `major` | x+1.0.0 | 0.2.1 → 1.0.0 | | `minor` | x.y+1.0 | 0.2.1 → 0.3.0 | | `patch` | x.y.z+1 | 0.2.1 → 0.2.2 | | `x.y.z` | 그대로 사용 | — | 호출 인자로 `patch`·`minor`·`major`·`x.y.z`를 받았으면 자동 판단을 무시하고 그것을 쓴다. **신규 플러그인 예외** — 해당 플러그인의 기존 태그(`<name>/v*`)가 하나도 없으면 첫 릴리스다. 자동 범프하지 말고 `plugin.json`의 현재 버전을 그대로 첫 릴리스로 쓴다. 완료 보고에 "신규 플러그인 첫 릴리스 — 범프 없음"을 명시한다. **스킬·매니페스트 검증** — 대상 플러그인의 모든 SKILL.md와 공유 메타데이터를 점검: ```bash find plugins/<플러그인명>/skills -name "SKILL.md" 2>/dev/null ``` 각 SKILL.md에 대해 frontmatter 필수 필드(`name`, `description`, `allowed-tools`)와 `allowed-tools`