Conventional Commit Message — скилл для агентов
Conventional Commit Message
Скилл пишет сообщения коммитов в формате Conventional Commits: выбирает тип по влиянию на релиз, область по пакетам и проверяет текст через commitlint
- 8 525 ★ репозитория
- Последний коммит
- ISC
Минимальный доступ
Почему такой уровень
- Скилл состоит из текстовых правил и ничего не запускает сам, а агенту разрешено читать git и локальные файлы настроек
- Проверка запускает локальный commitlint, который читает текст сообщения и конфигурацию проекта
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/conventional-commit-messageОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- Скилл состоит из текстовых правил и ничего не запускает сам, а агенту разрешено читать git и локальные файлы настроек
- Проверка запускает локальный commitlint, который читает текст сообщения и конфигурацию проекта
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Скилл conventional-commit-message лежит в папке skills репозитория conventional-changelog, где живут инструменты для выпуска версий и журнала изменений. Когда вы просите агента написать, исправить или проверить сообщение коммита, он сначала смотрит состав изменений: `git diff --staged --name-only`, затем `git diff --name-only` и ищет файлы настроек commitlint и `package.json`. Если в проекте настроен commitlint, агент читает его конфигурацию, чтобы узнать допустимые типы, области, регистр и длину. Тип выбирается по влиянию на релиз, путь к файлу его не определяет. Новое поведение для пользователей получает `feat` и повышает минорную версию, исправление получает `fix` или `perf`, а `docs`, `refactor`, `test`, `build`, `ci` и `chore` скрыты из журнала изменений и версию не повышают. Скилл отдельно предупреждает: правка метаданных или настроек, из-за которой поднимается минимальная версия Node.js, убираются экспорты или ужесточаются зависимости, считается видимой и требует `!` с подписью `BREAKING CHANGE`. В монорепозитории областью служит имя пакета, при общей причине допустимо несколько областей через запятую. Готовое сообщение скилл проверяет локальным `./node_modules/.bin/commitlint`, подавая текст через `echo` или `printf`. Если команда не проходит, агент правит тип, область, регистр или длину и повторяет. Пользователю по умолчанию возвращается только само сообщение, а при сомнении по поводу релиза два варианта с пояснением последствий.
Для кого. Для разработчиков и сопровождающих проектов, которые ведут журнал изменений и версии по Conventional Commits и хотят получать от агента сообщения коммитов без правки формата.
Подходит, если
- Проект собирает журнал изменений и номера версий из коммитов, и сообщение агента должно попадать в нужный раздел
- В репозитории настроен commitlint, и сообщение нужно проверить до коммита по реальным правилам
- В монорепозитории изменение затрагивает несколько пакетов, и надо выбрать область
- Нужно решить, чем считать обновление зависимостей или смену минимальной версии Node.js: правкой, исправлением или ломающим изменением
- Нужно переписать уже готовое сообщение так, чтобы оно читалось как строка журнала изменений
Не подходит, если
- В проекте принят другой формат сообщений, например свободный или со смайлами: правила скилла ему не подходят
- Нужно сгенерировать сам журнал изменений из истории: скилл пишет сообщения, а журнал собирают пакеты conventional-changelog
- Нужна автоматическая публикация версий в CI: для нее в README репозитория названы другие инструменты
- Сообщения вы пишете вручную по тексту командного соглашения, и правила скилла будут лишними
Пример запроса к агенту
Посмотри, что у меня в индексе, и напиши сообщение коммита по Conventional Commits, проверь его через commitlintОграничения
- Скилл ориентирован на проекты с пресетом `conventional-changelog-conventionalcommits` и совместимыми инструментами выпуска версий. В остальных репозиториях набор скрытых и видимых типов может не совпасть с правилами команды.
- Для проверки нужен локальный commitlint. Если его нет в `node_modules`, скилл допускает запуск через `pnpm`, `npm exec` или `npx`, но только когда это разрешено в вашем окружении, а если запустить нельзя, агент сообщает об этом.
- Скилл запрашивает у git и файловой системы данные о ваших правках, в том числе список изменяемых файлов, чтобы выбрать область. Содержимое индекса агент видит так же, как при обычной работе в проекте.
- Сам скилл только задает правила и ничего не коммитит: сделать коммит или пересоздать сообщение решает пользователь или агент по вашей просьбе.
- В репозитории пока один скилл, и он касается только сообщений коммитов. Генерации журнала изменений и подъема версий в нем нет.
- Репозиторий распространяется под лицензией ISC, а в шапке самого скилла указана MIT.
Как отключить. Удалите папку conventional-commit-message из каталога скиллов агента (например, из `.claude/skills` проекта или домашней папки). Больше скилл ничего в проекте не меняет: конфигурация commitlint и история коммитов остаются прежними.
Частые вопросы
Какой тип коммита скилл выберет для обновления зависимостей?
Обновление зависимостей из раздела `dependencies` скилл относит к `fix`: оно меняет граф зависимостей опубликованного пакета и должно вызвать релиз даже без правок кода. Если обновление убирает поддержку прежнего поведения, добавляются `!` и подпись `BREAKING CHANGE`. Для инструментов разработки вроде линтера берется `build` или область `dev-deps`.
Как скилл решает, что изменение ломающее?
Он ищет признаки в файлах настроек, экспортах и зависимостях: рост минимальной версии среды выполнения или Node.js, удаление или сужение экспортов, флагов командной строки и пресетов, ужесточение допустимых версий зависимостей, смена результата генерации. Для примера в скилле: переход на Node.js 22 пишется как `feat!: require Node.js 22`.
Что делать, если commitlint не установлен локально?
Сначала скилл ищет `./node_modules/.bin/commitlint`, потому что он использует ту версию и конфигурацию, что стоят в репозитории. Запасной путь — `pnpm commitlint`, `npm exec commitlint` или `npx commitlint`, но только если запуск разрешен в вашей среде. Если команда недоступна, агент сообщает об этом.
Как скилл оформляет ссылки на задачи?
Для исправления, которое должно закрыть задачу, в нижнюю часть сообщения ставится подпись вроде `Fixes #123.`, а для контекста без закрытия `Refs #123.`. Ссылки добавляются, когда работа связана с задачей, обращением или адресом, который назвал пользователь.
Как скилл обращается с именами в тексте сообщения?
Имена функций, параметров, флагов, типов и файлов в описании берутся в обратные кавычки. Так же оформляются токены со знаком `@`, например `@types/node`, иначе GitHub примет их за упоминание пользователя и пришлет ему уведомление.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл дисциплины финализации: агент описывает итог по принятому финалу и не тащит отклоненные варианты в заголовки, коммиты и PR
skill-creator — скиллы из OpenAPI, GraphQL и MCP
@asnd/skill-creator
Команда /skill-creator превращает ссылку на OpenAPI, GraphQL или MCP-сервер в готовый скилл с обертками и справочными файлами.
Скиллы GitHub CLI
GitHub CLI skills (gh, gh-skill)
Официальные скиллы GitHub CLI: как агенту правильно вызывать gh и как управлять скиллами командой gh skill
Скилл для ревью кода по многим языкам и фреймворкам: архитектура, производительность, безопасность, антипаттерны и типичные ошибки
Скилл запускает цикл экспериментов: вы задаете метрику, агент пробует по одной правке в своей ветке и оставляет только улучшения
Скилл /improve: сильная модель проверяет репозиторий и пишет самодостаточные планы правок, а исполнение отдаете более дешевой модели
Коротко о README
Главная страница репозитория начинается с описания проекта как генератора журнала изменений по данным git и рекомендует три внешних инструмента для автоматизации версий и выпуска. Раздел о скиллах называет один скилл и дает две команды установки, для pnpm и npm. Дальше идут перечень ключевых модулей экосистемы, включая commitlint и commitizen, и таблица всех пакетов репозитория. Отдельная страница сайта проекта объясняет, что скилл делает и что устанавливается в папку скиллов агента.
Бейдж для README
Исходный SKILL.md
---
name: conventional-commit-message
description: Generate high-quality Conventional Commit messages for repositories using conventional-changelog-conventionalcommits.
license: MIT
compatibility:
- Claude Code
- Codex
- Cursor
- Gemini CLI
- GitHub Copilot
- Windsurf
- Cline
- Roo Code
- Goose
- Continue
- OpenCode
- Amp
- universal
metadata:
author: dangreen
tags:
- conventional-commits
- conventional-changelog
- commit-message
- changelog
- release
- monorepo
---
# Conventional Commit Message
Use this skill when writing, amending, reviewing, or suggesting commit messages for repositories that use the `conventional-changelog-conventionalcommits` preset or compatible Conventional Commits release tooling.
## Commit Shape
Use the Conventional Commits 1.0.0 message structure:
```text
<type>[optional scope][optional !]: <description>
[optional body]
[optional footer(s)]
```