79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
---
|
|
name: conventional-commit
|
|
description: Git 변경사항을 팀의 Conventional Commits 규칙(gameservice-fe-agent/rules/commit-pr.md)에 맞춰 커밋 메시지로 작성할 때 사용합니다. 사용자가 "커밋 메시지 만들어줘", "commit", "커밋해줘" 등을 요청하면 트리거됩니다.
|
|
---
|
|
|
|
# Conventional Commit 작성
|
|
|
|
이 skill 은 `git diff --staged` / `git status` 결과를 바탕으로 팀 규칙에 맞는 커밋
|
|
메시지를 작성합니다.
|
|
|
|
## 팀 규칙 요약
|
|
|
|
```
|
|
<type>(<scope>): <subject>
|
|
|
|
<body>
|
|
|
|
<footer>
|
|
```
|
|
|
|
### type
|
|
|
|
- `feat`: 새로운 기능
|
|
- `fix`: 버그 수정
|
|
- `refactor`: 기능 변화 없는 구조 개선
|
|
- `style`: 포맷/세미콜론 등 스타일
|
|
- `docs`: 문서
|
|
- `test`: 테스트 추가/수정
|
|
- `chore`: 빌드, 설정, 패키지
|
|
- `perf`: 성능 개선
|
|
- `ci`: CI 설정
|
|
|
|
### subject
|
|
|
|
- 50자 이내
|
|
- 명령형 현재 시제 (`add`, `fix` — `added`/`fixes` 아님)
|
|
- 끝에 마침표 금지
|
|
- 영어 소문자 시작
|
|
|
|
### body
|
|
|
|
- "무엇을"보다 **"왜"** 를 설명
|
|
- 한 줄 72자 이내
|
|
- 한 커밋 = 한 논리적 변경
|
|
|
|
## 작업 순서
|
|
|
|
1. **상태 확인**
|
|
- `git status` 로 staged/unstaged 파일 파악
|
|
- staged 변경이 없으면 사용자에게 먼저 `git add` 를 하라고 안내
|
|
2. **변경 분석**
|
|
- `git diff --staged` 로 실제 변경 내용 확인
|
|
- 변경을 한 문장으로 요약 (type + scope + subject 를 정하는 근거)
|
|
3. **메시지 작성**
|
|
- subject 는 50자 이내, 영문 명령형
|
|
- body 는 한국어로 "왜" 중심 설명 (한 줄 72자 제한)
|
|
- 이슈 번호가 있으면 `Refs: #123` footer 추가
|
|
4. **사용자 확인**
|
|
- 작성한 메시지를 보여주고 커밋 실행 여부를 물음
|
|
- 사용자가 명시적으로 "커밋해" 라고 할 때만 실제 `git commit` 실행
|
|
|
|
## 출력 예시
|
|
|
|
```
|
|
feat(user): add profile image upload
|
|
|
|
프로필 이미지 업로드 요구사항에 따라 multipart 업로드 경로를 추가했습니다.
|
|
기존 텍스트 필드 업데이트 API 는 변경하지 않았습니다.
|
|
|
|
Refs: #123
|
|
```
|
|
|
|
## 주의사항
|
|
|
|
- **논리적으로 섞인 변경**이 감지되면(예: feat + refactor 가 같이 있음) 커밋 분리를 제안한다.
|
|
- `package.json` / lock 파일이 함께 staged 되어 있으면 의존성 추가 사유를 body 에 명시한다.
|
|
- 사용자가 커밋 실행을 명시적으로 허락하기 전까지 `git commit` 명령을 직접 실행하지 않는다.
|
|
- Co-authored-by 등 footer 는 사용자가 요청할 때만 추가한다.
|