커밋 메시지 형식
<type>(<scope>): <변경 내용 한 줄 요약>
<선택: 구현 방식·설계 결정 이유 또는 문제 원인과 수정 방법. 개조식으로 작성>
type 목록
| type | 사용 상황 |
|---|---|
feat |
새 기능 추가 |
fix |
잘못된 동작·지침·설정 수정 |
refactor |
동작 변경 없는 구조·표현 개선 |
docs |
문서 작성·수정 |
chore |
빌드·설정 변경 |
scope 자동 감지 규칙
변경된 파일 경로를 기준으로 scope를 결정한다:
| 변경 파일 경로 | scope |
|---|---|
plugins/<name>/ 하위 |
<name> (common·design·development 등 — 디렉터리명이 곧 scope, 하드코딩하지 않는다) |
그 외 (루트, .claude/ 등) |
scope 없음 |
| 여러 플러그인 동시 변경 | 각각 별도 커밋 제안 |
작업 순서
1. 변경사항 파악
bash <현재 plugin-commit 스킬 디렉터리>/scripts/status.sh
출력 내용: 변경 파일 목록 / 스테이징 여부 / diff 통계 / 최근 커밋 5개
2. scope 감지 및 커밋 메시지 작성
변경 파일 경로를 보고 scope를 결정한다. 두 플러그인이 동시에 변경된 경우, 각 플러그인을 별도 커밋으로 나누도록 사용자에게 제안한다.
스테이징 상태에 따라 처리:
- 이미 스테이징된 파일이 있으면: 스테이징된 파일 기준으로 메시지 작성, 3단계에서
git add생략 - 스테이징된 파일이 없으면: 전체 변경사항 기준으로 메시지 작성, 3단계에서 scope에 해당하는 파일만
git add
3. 사용자 확인 [STOP]
확인 질문 기능이 있으면 구조화된 확인을 사용하고, 없으면 대화에서 같은 내용을 확인한다.
작성한 커밋 메시지와 스테이징 대상 파일 목록을 사용자에게 보여주고 반드시 여기서 멈출 것:
커밋 계획
- 메시지: <커밋 메시지>
- 스테이징 대상:
<파일 목록>
진행할까요?
수정 요청이 오면 반영한 뒤 다시 대기한다.
4. 커밋 실행
먼저 두 marketplace와 plugin manifest, README 스킬 목록의 정합성을 검사한다.
python3 scripts/check_consistency.py
검사에 실패하면 커밋하지 않고 원인을 보고한다.
스테이징되지 않은 변경사항이 있는 경우, scope에 해당하는 파일만 스테이징:
git add <해당 파일들>
커밋:
git commit -m "$(cat <<'EOF'
<커밋 메시지>
EOF
)"
커밋 완료 후 아래 형식으로 출력:
✅ 커밋 완료!
- 커밋 해시: <short hash>
- 브랜치: <현재 브랜치>
- 메시지:
<커밋 메시지 전체>
- 변경 파일: <파일 수>개
행동 원칙
- scope는 변경 파일 경로에서 자동으로 감지한다 — 사용자가 명시하지 않아도 된다
- 두 플러그인이 동시에 변경된 경우 별도 커밋을 제안한다 — 릴리즈 스킬이 플러그인별 커밋 이력으로 버전을 판단하기 때문이다
- 공유 파일과 플러그인 파일이 함께 바뀌었다면 릴리스 대상을 추적할 수 있도록 구현 커밋의 범위를 명확히 설명한다
- 커밋 전 반드시 사용자 확인을 받는다
- 이 스킬은 커밋까지만 담당한다. push 여부는 이 스킬의 관심사가 아니며, 호출한 세션의 CLAUDE.md 규칙을 따른다