git-commit skill
scriptsdiff를 기반으로 conventional commit 메시지를 생성하고 git commit을 실행합니다.
- GitHub 스타
- 8
- 파일
- 4
- 마지막 커밋
- 2026년 10월 28일
- 라이선스
- MIT
- 허용된 도구
- —
git-commit skill은 무엇을 하나요?
git-commit은(는) agent skill입니다. diff를 기반으로 conventional commit 메시지를 생성하고 git commit을 실행합니다.
skill의 SKILL.md에서 생성된 요약입니다.
git-commit skill 정보
터미널 기반 환경에서 작업하는 개발자를 위해 표준화된 commit 메시지 생성과 git commit 실행을 자동화합니다. 에이전트가 변경 사항을 스테이징하거나 코드 수정을 완료해야 할 때, 이 도구를 로드하여 스테이징된 또는 스테이징되지 않은 diff를 분석합니다. conventionalcommits.org 사양을 따르는 conventional commit 메시지를 생성하여, 모든 항목에 type, 선택 사항인 scope, 그리고 명령형 설명이 포함되도록 보장합니다.
이 프로세스는 추측에 의존하지 않고 메시지가 실제 코드 변경 사항을 정확하게 반영하도록 git status와 git diff를 읽는 방식을 사용합니다. 또한 npm, ruff, flake8, golangci-lint와 같은 프로젝트별 linter를 자동으로 감지하고 실행하여 품질 검사를 통과하지 못한 commit을 차단하는 pre-commit linting 메커니즘을 포함합니다. 이 도구는 표준 개발 commit을 위해 설계되었으므로, release commit 생성이나 branch-finish 워크플로우 관리용으로 사용해서는 안 됩니다.
agent가 수행할 수 있는 작업
- 1conventional commit 메시지 생성AI 에이전트가 코드 diff에서 발견된 특정 변경 사항을 바탕으로 구조화된 commit 메시지를 작성할 수 있습니다.
- 2breaking change의 정확한 처리개발자는 이 도구를 사용하여 breaking change에 필요한 느낌표와 푸터를 자동으로 형식에 맞춰 작성할 수 있습니다.
- 3혼합된 변경 사항을 commit으로 정리에이전트가 diff에 서로 관련 없는 사항이 포함되어 있는지 식별하고, 이를 별도의 commit으로 분리하도록 제안할 수 있습니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
git-commit skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.플러그인에 git-commit skill 설치
/plugin marketplace add mgiovani/cc-arsenal /plugin install cc-arsenal@cc-arsenal-marketplace
Claude Code에 git-commit skill 설치
~/.claude/skills/git-commit/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/git-commit ~/.claude/skills/git-commitClaude Code (project)에 git-commit skill 설치
.claude/skills/git-commit/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/git-commit .claude/skills/git-commitCodex에 git-commit skill 설치
~/.agents/skills/git-commit/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/git-commit ~/.agents/skills/git-commitGemini CLI에 git-commit skill 설치
~/.gemini/skills/git-commit/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/git-commit ~/.gemini/skills/git-commitClaude.ai에 git-commit skill 설치
npx degit mgiovani/cc-arsenal/skills/git-commit git-commit && zip -r git-commit.zip git-commit # claude.ai → Customize → Skills → + → Create skill → Upload a skill → git-commit.zip
SKILL.md
GitHub에서 보기Git Commit
Generate a conventional commit message and create the commit.
Quality Guidelines
Base the message only on what the diff actually shows, not assumptions:
- Read
git statusandgit diff --staged(orgit diffif nothing is staged yet) before writing anything. - Check which files/modules changed before setting scope.
- Look for removed exports, changed signatures, deleted functions to catch breaking changes.
- If the purpose of a change is unclear, ask the user rather than guess.
Pre-commit Linting
In Claude Code, a PreToolUse hook runs before every git commit: it detects the project's
linter (Node's npm/bun/pnpm/yarn run lint, Python's ruff/flake8, make lint, rubocop,
golangci-lint) and blocks the commit if it fails. No linter configured means the commit
proceeds unblocked. Outside Claude Code (no hook support), run the project's lint command
yourself before committing. Never bypass a failing lint with --no-verify: fix the errors
and re-run the commit instead.
Workflow
- Run
git statusandgit diff --stagedto see what actually changed. - If the diff mixes unrelated concerns (e.g. a feature plus an unrelated fix plus docs),
split into separate commits by staging each group with
git add <files>and committing them one at a time. Otherwise, one commit is enough, don't force a split. - For each commit, pick the type:
feat: new featurefix: bug fixdocs: documentation onlystyle: formatting, no code meaning changerefactor: neither fixes a bug nor adds a featureperf: performance improvementtest: adding or correcting testsbuild: build system or dependency changesci: CI configuration/scriptschore: everything else that doesn't touch src or testsrevert: reverts a previous commit
- Format as
type(scope): description, scope optional, description imperative mood ("add" not "added"), max ~50 characters. Skip the body for a typo fix or a single dependency bump; add a wrapped body (why, not how) once the change alters behavior or touches multiple files. For breaking changes, append!after the scope and add aBREAKING CHANGE: ...footer.
Example formats
feat(auth): add OAuth2 login support
fix(api): resolve null pointer in user endpoint
docs: update installation instructions
chore(deps): bump lodash to 4.17.21
feat(shopping-cart)!: remove deprecated calculate method
BREAKING CHANGE: calculate has been removed, use computeTotal instead
Ask for confirmation before committing if the changes are complex or span multiple concerns; otherwise just commit.
이 스킬의 파일
4git-commit skill 질문
Claude Code에 git-commit skill을 어떻게 설치하나요?
npx degit mgiovani/cc-arsenal/skills/git-commit ~/.claude/skills/git-commit를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
git-commit skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
프로젝트에 linter가 설정되어 있으면 어떻게 되나요?
commit 전에 PreToolUse hook이 실행되어 프로젝트의 linter를 감지하며, linting 실패 시 commit을 차단합니다.
서로 관련 없는 여러 변경 사항이 포함된 diff는 어떻게 처리해야 하나요?
git add <files>를 사용하여 각 변경 그룹을 개별적으로 스테이징한 후, 하나씩 차례대로 commit하여 변경 사항을 분리해야 합니다.
breaking change commit의 형식은 무엇인가요?
breaking change의 경우 scope 뒤에 느낌표를 추가하고, 푸터에 'BREAKING CHANGE: ...'를 포함해야 합니다.