# Commit

> 변경사항을 분석하여 커밋 메시지를 작성하고 git 커밋을 수행하는 스킬. 사용자가 "커밋해줘", "변경사항 정리해줘", "커밋 메시지 만들어줘", "git commit" 등의 표현을 사용할 때 반드시 이 스킬을 사용할 것.

- Skill: `gagip/commit` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add gagip/commit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gagip/commit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: gagip (https://skillmd.com/u/gagip)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/gagip/commit

---


## 작업 순서

### 1. 변경사항 파악

현재 `SKILL.md`가 들어 있는 디렉터리를 절대 경로로 해석해 그 아래
`scripts/status.sh`를 실행한다.

출력 내용: 변경 파일 목록 / 스테이징 여부 / diff 통계 / 최근 커밋 5개

### 2. 커밋 메시지 작성

커밋 메시지 가이드라인: 현재 `SKILL.md`와 같은 디렉터리의 `commit-guidelines.md`를 읽고 그 형식을 따른다.

호출과 함께 커밋 타입(`feat`/`fix`/`refactor` 등)이 주어지면 그 타입을 그대로 사용한다. 생략됐으면 변경사항을 분석해 타입을 자동 판단한다.

스테이징 상태에 따라 처리:
- **이미 스테이징된 파일이 있으면**: 스테이징된 파일 기준으로 메시지 작성, 3단계에서 `git add -A` 생략
- **스테이징된 파일이 없으면**: 전체 변경사항 기준으로 메시지 작성, 3단계에서 `git add -A` 실행

### 3. 커밋 실행

스테이징되지 않은 변경사항이 있는 경우에만:
```bash
git add -A
```

커밋:
```bash
git commit -m "$(cat <<'EOF'
<커밋 메시지>
EOF
)"
```

커밋 완료 후 아래 형식으로 완료 메시지를 출력:

```
✅ 커밋 완료!

- 커밋 해시: <short hash>
- 브랜치: <현재 브랜치>
- 메시지:
  <커밋 메시지 전체>
- 변경 파일: <파일 수>개
```

## 행동 원칙

- `git add -A`는 스테이징된 파일이 없을 때만 실행한다 — 의도치 않은 파일이 포함될 수 있으므로 주의
- 커밋 메시지는 반드시 `commit-guidelines.md` 형식을 따른다
- 이 스킬은 커밋까지만 담당한다. push 여부는 이 스킬의 관심사가 아니며, 호출한 세션의 CLAUDE.md 규칙(예: 개인 private 레포 자동 push 등)을 따른다.

