Changelog GeneratorSAFE
Overview
An agent skill published by revfactory.
459e1bb8f76eOBSERVED · 2026-10-12What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
name: changelog-generator
description: "릴리스 관리를 에이전트 팀이 협업하여 수행하는 풀 파이프라인. '릴리스 노트 만들어줘', 'CHANGELOG 생성', '체인지로그 작성', '버전 릴리스 준비', '마이그레이션 가이드', '릴리스 공지문', '변경사항 정리', '새 버전 발표' 등 릴리스 관리 전반에 이 스킬을 사용한다. 단, CI/CD 파이프라인 구축, 자동 배포 설정, 버전 관리 정책 수립은 이 스킬의 범위가 아니다."
---
# Changelog Generator — 릴리스 관리 파이프라인
git 이력분석→변경분류→릴리스노트→마이그레이션가이드→공지문을 에이전트 팀이 협업하여 생성한다.
## 실행 모드
**에이전트 팀** — 5명이 SendMessage로 직접 통신하며 교차 검증한다.
## 에이전트 구성
| 에이전트 | 파일 | 역할 | 타입 |
|---------|------|------|------|
| commit-analyst | `.claude/agents/commit-analyst.md` | git 이력 분석 | general-purpose |
| change-classifier | `.claude/agents/change-classifier.md` | 변경 분류, 영향도 평가 | general-purpose |
| release-note-writer | `.claude/agents/release-note-writer.md` | 릴리스 노트 작성 | general-purpose |
| migration-guide-writer | `.claude/agents/migration-guide-writer.md` | 마이그레이션 가이드 | general-purpose |
| announcement-writer | `.claude/agents/announcement-writer.md` | 공지문 작성 (블로그/SNS/이메일) | general-purpose |
## 워크플로우
### Phase 1: 준비 (오케스트레이터 직접 수행)
1. 사용자 입력에서 추출한다:
- **버전 범위**: 이전 버전 태그 ~ 현재 커밋/태그
- **프로젝트 정보**: 프로젝트명, 저장소 URL, 언어/프레임워크
- **릴리스 유형**: 정규/핫픽스/프리릴리스
- **공지 채널**: 블로그/SNS/이메일/Slack 중 필요한 채널
- **기존 CHANGELOG** (선택): 기존 형식을 따를 CHANGELOG.md
2. `_workspace/` 디렉토리를 프로젝트 루트에 생성한다
3. 입력을 정리하여 `_workspace/00_input.md`에 저장한다
4. git 저장소를 확인하고 버전 범위를 확정한다
5. 기존 파일이 있으면 `_workspace/`에 복사하고 해당 Phase를 건너뛴다
6. 요청 범위에 따라 **실행 모드를 결정**한다
### Phase 2: 팀 구성 및 실행
| 순서 | 작업 | 담당 | 의존 | 산출물 |
|------|------|------|------|--------|
| 1 | 커밋 분석 | analyst | 없음 | `_workspace/01_commit_analysis.md` |
| 2 | 변경 분류 | classifier | 작업 1 | `_workspace/02_change_classification.md` |
| 3a | 릴리스 노트 | note-writer | 작업 2 | `_workspace/03_release_notes.md` |
| 3b | 마이그레이션 가이드 | migration-writer | 작업 2 | `_workspace/04_migration_guide.md` |
| 4 | 공지문 작성 | announcement | 작업 3a, 3b | `_workspace/05_announcement.md` |
작업 3a(릴리스 노트)와 3b(마이그레이션 가이드)는 **병렬 실행**한다.
**팀원 간 소통 흐름:**
- analyst 완료 → classifier에게 커밋 목록·diff 전달
- classifier 완료 → note-writer에게 분류 결과 전달, migration-writer에게 Breaking Changes 상세 전달
- note-writer 완료 → announcement에게 하이라이트·버전번호 전달
- migration-writer 완료 → announcement에게 마이그레이션 핵심 요약 전달, note-writer에게 가이드 링크 전달
### Phase 3: 통합 및 최종 산출물
1. 모든 산출물의 버전 번호 일관성을 확인한다
2. Breaking Change 정보가 릴리스 노트 ↔ 마이그레이션 가이드 ↔ 공지문 간에 일치하는지 검증한다
3. 기존 CHANGELOG.md가 있으면 새 버전을 맨 위에 추가한다
4. 최종 요약을 사용자에게 보고한다
## 작업 규모별 모드
| 사용자 요청 패턴 | 실행 모드 | 투입 에이전트 |
|----------------|----------|-------------|
| "릴리스 준비 전체", "체인지로그 + 공지문" | **풀 파이프라인** | 5명 전원 |
| "CHANGELOG만 만들어줘" | **노트 모드** | analyst + classifier + note-writer |
| "마이그레이션 가이드만" | **마이그레이션 모드** | analyst + classifier + migration-writer |
| "릴리스 공지문만 써줘" (노트 완료) | **공지 모드** | announcement 단독 |
| "이 커밋들 분류해줘" | **분류 모드** | analyst + classifier |
## 데이터 전달 프로토콜
| 전략 | 방식 | 용도 |
|------|------|------|
| 파일 기반 | `_workspace/` 디렉토리 | 주요 산출물 저장 및 공유 |
| 메시지 기반 | SendMessage | 실시간 핵심 정보 전달 |
| git 명령 | bash 실행 | 커밋 로그, diff, 태그 정보 추출 |
## 에러 핸들링
| 에러 유형 | 전략 |
|----------|------|
| git 저장소 없음 | 사용자에게 커밋 목록/변경 내역 직접 입력 요청 |
| 태그 없음 | 최근 N개 커밋 또는 날짜 범위로 대체 |
| Conventional Commits 미사용 | 커밋 메시지+diff 기반 LLM 분류 |
| Breaking Change 없음 | migration-writer는 "불필요" 확인 문서만 작성 |
| 에이전트 실패 | 1회 재시도 → 실패 시 해당 산출물 없이 진행 |
## 테스트 시나리오
### 정상 흐름
**프롬프트**: "v1.2.0에서 v2.0.0까지 릴리스 노트 전체를 만들어줘"
**기대 결과**:
- 커밋 분석: 두 태그 사이 모든 커밋 추출, PR/이슈 매핑
- 변경 분류: MAJOR 릴리스이므로 Breaking Changes 식별, SemVer 검증
- 릴리스 노트: Keep a Changelog 형식, 하이라이트 3~5개
- 마이그레이션: before/after 코드 예시, 단계별 절차
- 공지문: 블로그 + SNS + 이메일 형식
### 기존 파일 활용 흐름
**프롬프트**: "이 릴리스 노트가 있는데 공지문만 써줘" + 릴리스 노트 첨부
**기대 결과**:
- 기존 릴리스 노트를 `_workspace/03_release_notes.md`로 복사
- 공지 모드: announcement 단독 투입
- analyst, classifier, note-writer, migration-writer는 건너뜀
### 에러 흐름
**프롬프트**: "릴리스 노트 만들어줘" (git 저장소 없음)
**기대 결과**:
- git 저장소 부재 감지
- 사용자에게 변경사항 목록 직접 입력 요청
- 입력 받은 내용으로 분류 → 릴리스 노트 생성
## 에이전트별 확장 스킬
에이전트의 도메인 전문성을 강화하는 확장 스킬:
| 스킬 | 파일 | 대상 에이전트 | 역할 |
|------|------|-------------|------|
| semver-analyzer | `.claude/skills/semver-analyzer/skill.md` | change-classifier, release-note-writer | SemVer 규칙, Breaking Change 판정 매트릭스, Conventional Commits 매핑 |
| commit-parser | `.claude/skills/commit-parser/skill.md` | commit-analyst, change-classifier | 커밋 파싱 정규식, 비정형 커밋 분류, PR/이슈 매핑, 영향도 점수 |Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
459e1bb8f76efull audit observations/trust-audit/skill/revfactory__changelog-generator.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 459e1bb8f76e | SAFE | B | 89 | first audit |
Questions
Is Changelog Generator safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Changelog Generator access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (459e1bb8f76e), read on 2026-10-12. The repository is watched, and a new audit runs when it changes — this is the first audit.