---
description: 현재 변경사항을 분석하여 컨벤션에 맞는 커밋 메시지를 생성하고 커밋한다. 사용법: /commit-log (변경 내용을 자동으로 분석한다)
---

사용자가 `/commit-log`를 요청하면 변경사항을 분석하여 의미 있는 커밋 메시지로 커밋한다.

## 규칙

1. **변경사항 분석**: `git diff --staged` 또는 `git diff`로 변경 내용을 파악한다.
   - 스테이징된 파일이 없으면 변경된 파일을 모두 확인한다.

2. **커밋 타입 분류**:
   - `feat`: 새 기능 추가
   - `fix`: 버그 수정
   - `refactor`: 동작 변경 없이 코드 구조 개선
   - `test`: 테스트 코드 추가/수정
   - `docs`: 문서만 변경
   - `chore`: 빌드 설정, 패키지 관리 등

3. **커밋 메시지 생성 원칙**:
   - 제목: 50자 이내, 명령형 현재 시제
   - "무엇을 했는가"가 아니라 "왜 했는가" 중심으로 작성
   - 변경이 복잡한 경우 본문 포함

4. **민감 파일 제외**: `.env`, `credentials`, `secrets` 파일은 절대 포함하지 않는다.

5. **커밋 실행**: 사용자에게 메시지를 먼저 보여주고 확인받은 후 커밋한다.
   - 단, 사용자가 "자동으로" 또는 "묻지 말고" 라고 했으면 바로 진행한다.

## 출력 형식

```
## 커밋 미리보기

### 변경된 파일
- <파일 경로> (<추가 N줄 / 삭제 N줄>)

### 제안 커밋 메시지
```
<type>(<scope>): <제목>

<본문 — 필요한 경우>
```

### 진행하시겠습니까? (y/n)
```

## 주의사항
- 여러 개의 독립적인 변경이 섞여 있으면 분리 커밋을 제안한다.
- 테스트 파일과 구현 파일을 함께 커밋하는 것이 좋다.
- 이미 커밋된 내용은 amend하지 않고 새 커밋을 생성한다.
