| name | commit |
| description | Формирование текста git-коммита в формате Conventional Commits с gitmoji на русском языке. Используй этот скилл всегда, когда пользователь просит создать коммит или сформулировать сообщение коммита. |
Формирование коммита
Формат заголовка
<type>: <:gitmoji:> <описание в инфинитиве>
<type> — английский, из таблицы ниже
<:gitmoji:> — в формате shortcode (с двоеточиями), из таблицы ниже
- описание — на русском, глагол в инфинитиве («добавить», «исправить», «обновить»)
- без scope (
feat(xxx): не использовать)
- максимум 72 символа на весь заголовок
- без точки в конце
Таблица типов
| type | gitmoji | когда |
|---|
feat | :sparkles: | новая функциональность |
fix | :bug: | исправление бага |
refactor | :recycle: | рефакторинг без изменения поведения |
test | :white_check_mark: | добавление или правка тестов |
docs | :memo: | документация (AGENTS.md, README, комментарии) |
chore | :wrench: | конфиги, зависимости, инструменты |
perf | :zap: | оптимизация производительности |
revert | :rewind: | откат предыдущего коммита |
Body
Отделяется от заголовка пустой строкой.
Обязателен, если:
- изменение затрагивает больше одного модуля
- меняется поведение (не просто рефакторинг)
- нужно объяснить, почему принято такое решение
Опционален для мелочей: правка фикстуры, опечатка, переименование.
В body пиши почему и контекст, не пересказ diff. Если пунктов несколько — списком через -.
Breaking changes
Ломающее изменение маркируется обоими способами:
! после типа в заголовке: feat!: :sparkles: изменить сигнатуру rules.ts
- Футер
BREAKING CHANGE: <что сломалось и как мигрировать> — обязателен.
Ссылки на issues
- В заголовок
(#N) не писать — GitHub сам добавит при squash-merge.
- В футере:
Closes #N (закрывает) или Refs #N (связан).
Revert
revert: :rewind: отменить <что именно>
<причина отката>
Reverts <hash>
Co-Authored-By
Не добавлять футер Co-Authored-By: Codex ... — в этом проекте он не используется.
Примеры
Простой:
fix: :bug: исправить round-trip xsi:nil в DCSParameter
С body:
refactor: :recycle: упростить обработку null в fromYAML
Логика определения null/undefined дублировалась в трёх местах.
Вынесено в общий helper для консистентности между XML- и YAML-циклами.
Breaking:
feat!: :sparkles: изменить формат правил rules.ts
BREAKING CHANGE: поле `exportNil` переименовано в `exportNilValue`.
Миграция: заменить все вхождения в пользовательских rules.ts.
С issue:
fix: :bug: исправить round-trip dataParameters в DynamicList
Closes #25