# Commit

> 커밋 메시지를 자동 생성하고 커밋한다. 커밋 요청 시 반드시 이 스킬을 참조한다.

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

---


# 에이전트 커밋

커밋 요청 시 아래 절차를 **반드시** 따른다.

## 절차

1. `git status`로 변경 파일 확인
2. `git add`로 관련 파일 스테이징
3. `git diff --staged` 분석 → 아래 포맷/규칙에 따라 커밋 메시지 생성
4. **[승인 게이트 — 반드시 지킬 것]** 생성한 메시지 초안을 채팅에 코드블록으로 그대로 보여주고
   **"이대로 커밋할까요? 수정할 곳 있으면 알려주세요"** 라고 물은 뒤 **거기서 멈춘다.**
   - 이 단계에서는 **절대 `git commit`을 실행하지 않는다.** 사용자의 승인 응답을 기다린다.
   - 사용자가 수정을 요청하면 메시지를 고쳐 다시 초안을 보여주고 재승인을 받는다.
   - 사용자가 승인("ok", "ㄱㄱ", "커밋" 등)하면 그때 `git commit`을 실행한다.
   - 예외: 사용자가 처음부터 "바로 커밋", "확인 없이 커밋" 등 명시적으로 게이트 생략을 요청한 경우에만 곧바로 커밋한다.

## 커밋 메시지 포맷

```
<타입>(<스코프>): <한줄 요약>

- <변경내역 1>
- <변경내역 2>
- ...
```

- 변경이 단순하면 본문(불릿) 생략하고 제목만 사용한다.
- 본문 불릿은 **3~6개** 정도가 적당. 그 이상이면 그룹화 부족 신호.

## 타입

| 타입       | 용도                                 | 예시                                     |
| ---------- | ------------------------------------ | ---------------------------------------- |
| `feat`     | 새로운 기능 추가                     | `feat: 이미지 편집 도구 추가`            |
| `fix`      | 버그 수정                            | `fix: 붙여넣기 시 테이블 병합 문제 해결` |
| `refactor` | 코드 리팩토링 (기능 변화 없음)       | `refactor: toolbar 렌더링 로직 개선`     |
| `perf`     | 성능 최적화                          | `perf: 커서 위치 복원 속도 개선`         |
| `docs`     | 문서 수정 (README, 주석 등)          | `docs: README 사용법 예시 추가`          |
| `style`    | 코드 스타일 수정 (포맷, 세미콜론 등) | `style: 들여쓰기 및 공백 정리`           |
| `test`     | 테스트 코드 추가/수정                | `test: 병합 케이스 유닛 테스트 추가`     |
| `chore`    | 빌드 설정, 패키지 관리, 기타 작업    | `chore: webpack 설정 정리`               |
| `ci`       | CI/CD 설정 관련 변경                 | `ci: GitHub Actions 배포 설정 추가`      |
| `design`   | 디자인 관련 UIUX 변경                | `버튼 전체 radius값 수정`                |
| `build`    | 빌드 시스템 변경                     | `build: babel 최신 버전으로 업데이트`    |

## 규칙

- **커밋 메시지에 어떤 서명·트레일러도 붙이지 않는다** — `Co-Authored-By`, `Claude-Session`,
  `Codex-Session`, `Generated with Claude Code/Codex` 등 자동 첨부 문구를 모두 생략한다. 오직 위 포맷의 메시지만 남긴다.
- 스코프: 생략 가능
- 한줄 요약: 50자 이내, 영문으로 작성
- 변경내역 작성 규칙:
    - 같은 성격의 변경은 **하나의 불릿으로 묶어서** 서술한다.
      (예: 여러 파일/함수의 동일한 리네이밍 → "rename X to Y across handlers")
    - 파일·함수 단위가 아니라 **의도(intent) 단위**로 작성한다.
        - ❌ "edit a.js, edit b.js, edit c.js"
        - ✅ "apply new offset logic to drag handlers"
    - 사소한 변경(주석, 포맷, import 정리 등)은 묶거나 생략한다.
    - CSS/디자인 토큰, 테스트 업데이트처럼 부수적인 변경은 한 줄로 합친다.

## 변경내역 예시

❌ 너무 잘게 쪼갠 경우

- update offset.js getOffset
- update offset.js getScroll
- update blockHandle.js position calc
- update blockHandle.js drag init
- update handler_ww_dragDrop.js drop handler
- update ui.js positioning

✅ 의도 단위로 묶은 경우

- refactor offset/positioning utilities for block handle drag
- align drag-drop and UI shell with new offset API

