# Commit

> Create git commits following project conventions. Use this skill whenever committing changes — it enforces the project's prefix rules, message style, and commit separation policy. Triggers for any commit request, "커밋해줘", "commit this", "commit push", or when wrapping up a task that produced file changes.

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

---


# Commit

Create git commits that follow project conventions.

## Message format

```
prefix: concise imperative message
```

- Always in **Korean**
- 단, 기술적 용어(skill, hook 등)나 내부 asset/data 이름(멤버명, 파일명 등)은 영어 그대로 표기
- Keep it short — one line, no period at the end

## Prefixes

| Prefix                     | When to use                                                                                                                           |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `skills(skillname):`       | skills 관련 변경                                                                                                                      |
| `subagents(subagentname):` | subagents 관련 변경                                                                                                                   |
| `hooks:`                   | claude code hooks 관련 변경                                                                                                           |
| `data:`                    | 단순 데이터 추가 — e.g., `org-info/crew.json`에 항목 추가                                                                             |
| `docs:`                    | 마크다운 문서 — 회의록, 인터뷰, 브레인스토밍, 초안 등                                                                                 |
| `feat:`                    | 프로젝트 스캐폴딩 — 새 프로젝트 디렉토리, AGENTS.md, 설정 파일 생성 등                                                                |
| `chore:`                   | AI agent가 무시해도 되는 변경. 이 prefix가 붙은 커밋은 히스토리 조회 시 필터링됨. 포맷 수정, 의존성 업데이트, 설정 미세조정 등에 사용 |
| `experiment:`              | 텍스트 변형 실험 — 제목/CTA/원칙 등의 변형 적용, 실험 로그 기록                                                                       |

If none of the above fits, use no prefix — just write the message directly.

## Project scope

When a commit is scoped to a specific project, add the project ID in parentheses after the prefix:

```
docs(team-building): 주현우 첫 미팅 기록 추가
skills(youtube-contents): 썸네일 생성 skill 추가
```

To get the list of valid project IDs, run the bundled script:

```bash
python3 .claude/skills/commit/scripts/list_projects.py <project_root>
```

## Commit separation

Split commits by purpose. Each commit should represent one feature, or logical change. If a task produced multiple distinct changes, commit them separately.

**Example:** You created a new skill and also updated `crew.json` — that's two commits:

```
skills(new-project): skill 추가
data: joohyeonwoo member 추가
```

**Do not** bundle unrelated changes into a single commit just because they happened in the same session.

## Example prompts

When possible, include a user prompt in the commit body so that future readers can understand the context behind the change. **Use the user's actual prompt from the session as-is** — do not paraphrase or summarize.

```
docs(team-building): 주현우 첫 미팅 기록 추가

user prompt:
> 주현우님과의 첫 미팅 내용을 정리해서 기록해줘.
```

## Invariants

- 커밋 메시지는 반드시 **한국어**여야 한다 (기술 용어·asset명은 영어 허용)
- `prefix: message` 형식을 유지한다. prefix 없이 커밋하는 것도 허용된다
- 관련 없는 변경을 하나의 커밋에 묶지 않는다 — 항상 목적별로 분리한다
- 커밋 body에 포함하는 user prompt는 **원문 그대로** 기록한다. 요약하거나 의역하지 않는다
- `git commit -m "message" -- file1 file2` 순서를 깨뜨리지 않는다 (`--` 뒤에 `-m`을 두면 안 된다)

## Gotchas

- Always run `git status` before committing to verify only intended files are staged. Use `git commit -m "message" -- file1 file2` to commit specific files, or `git reset HEAD <file>` to unstage unwanted ones.
- When committing specific files with `--`, always place `-m "message"` **before** `--`. Everything after `--` is treated as a file path, so `-m` placed after it will be misinterpreted as a filename.
  ```bash
  # correct
  git commit -m "message" -- file1 file2
  # wrong — "-m" is parsed as a file path
  git commit -- file1 file2 -m "message"
  ```

