Навык git-commit
scriptsГенерация conventional commit сообщений на основе diff и выполнение git commit.
- Звёзды на GitHub
- 8
- Файлы
- 4
- Последний коммит
- 28 окт. 2026 г.
- Лицензия
- MIT
- Разрешённые инструменты
- —
Что делает навык git-commit?
git-commit — это Agent Skill. Генерация conventional commit сообщений на основе diff и выполнение git commit.
Сводка сгенерирована из SKILL.md навыка.
О skill git-commit
Этот SKILL позволяет разработчикам, работающим в терминальных средах, автоматизировать создание стандартизированных сообщений коммитов и выполнение git commit. Когда агенту необходимо подготовить изменения к коммиту или завершить модификацию кода, он загружает этот инструмент для анализа подготовленных (staged) или неподготовленных (unstaged) diff. Инструмент генерирует сообщения в формате conventional commits согласно спецификации conventionalcommits.org, гарантируя, что каждая запись содержит тип, необязательную область (scope) и описание в повелительном наклонении.
Процесс основан на чтении git status и git diff, что позволяет сообщению точно отражать реальные изменения в коде, а не строить предположения. В инструмент встроен механизм pre-commit линтинга, который автоматически обнаруживает и запускает специфичные для проекта линтеры, такие как npm, ruff, flake8 или golangci-lint, чтобы блокировать коммиты, не прошедшие проверку качества. Этот инструмент предназначен именно для стандартных рабочих коммитов и не должен использоваться для генерации релизных коммитов или управления процессами завершения веток (branch-finish workflows).
Что агент может делать с ним
- 1Генерация conventional commit сообщенийAI-агент может составлять структурированные сообщения коммитов на основе конкретных изменений, найденных в diff кода.
- 2Корректная обработка breaking changesРазработчики могут использовать инструмент для автоматического форматирования breaking changes с необходимым восклицательным знаком и футером.
- 3Разделение смешанных изменений на коммитыАгент может определить, когда diff содержит несвязанные правки, и предложить разделить их на отдельные коммиты.
Написано на основе skill SKILL.md. Каждый сценарий использования проверен по цитате из него.
Как установить навык git-commit
Каждая команда копирует папку навыка в каталог навыков клиента. Перезапустите клиент или начните новую сессию, чтобы загрузить его.Установка навыка git-commit в Плагин
/plugin marketplace add mgiovani/cc-arsenal /plugin install cc-arsenal@cc-arsenal-marketplace
Установка навыка git-commit в Claude Code
~/.claude/skills/git-commit/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/git-commit ~/.claude/skills/git-commitУстановка навыка git-commit в Claude Code (project)
.claude/skills/git-commit/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/git-commit .claude/skills/git-commitУстановка навыка git-commit в Codex
~/.agents/skills/git-commit/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/git-commit ~/.agents/skills/git-commitУстановка навыка git-commit в Gemini CLI
~/.gemini/skills/git-commit/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/git-commit ~/.gemini/skills/git-commitУстановка навыка git-commit в Claude.ai
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
Открыть на GitHubGit 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.
Файлы в этом навыке
4Вопросы о навыке git-commit
Как установить навык git-commit в Claude Code?
Выполните npx degit mgiovani/cc-arsenal/skills/git-commit ~/.claude/skills/git-commit. Claude Code загружает навыки из ~/.claude/skills (все проекты) или .claude/skills (один проект) и использует навык, когда его описание соответствует задаче.
Какие клиенты могут использовать навык git-commit?
Любой клиент, который читает формат Agent Skills: Claude Code, Codex, Gemini CLI и claude.ai (загрузить как ZIP). Скрипты в навыке выполняются только там, где клиент разрешает выполнение кода.
Что произойдет, если в проекте настроен линтер?
Перед коммитом запускается хук PreToolUse, который обнаруживает линтер проекта и блокирует коммит, если проверка не пройдена.
Как поступить, если diff содержит несколько несвязанных изменений?
Вам следует разделить изменения на отдельные коммиты, поочередно добавляя каждую группу файлов через git add <files> и фиксируя их по одному.
Какой формат используется для коммитов с breaking change?
Для breaking changes после области (scope) нужно добавить восклицательный знак и включить футер 'BREAKING CHANGE: ...'.