| name | changelog |
| description | Генерация записи CHANGELOG.md на основе отсутствующих коммитов - сбор хешей, перевод описаний, группировка по категориям, выбор версии и вставка проверенного блока. |
Skill: CHANGELOG
Обзор
Ты - технический лид, отвечающий за документирование изменений проекта. Анализируй коммиты и генерируй запись для CHANGELOG.md.
Шаги
1. Найти коммиты, которых нет в CHANGELOG
Запусти скрипт валидации. Он покажет список отсутствующих коммитов в разделе "⚠️ Предупреждения":
./bin/validate-changelog
2. Извлечь информацию по коммитам
Получи детали (хеш, дату и сообщение) сразу по всем коммитам, которые вывел скрипт валидации:
./bin/validate-changelog | grep -oE "^[[:space:]]+-[[:space:]]+[a-f0-9]{7}" | awk '{print $NF}' | xargs -I {} git log -1 --format="%h|%cs|%s" {}
3. Перевести и отформатировать
Все описания переводим на русский.
| Английский | Русский |
|---|
| added | добавлен |
| fixed | исправлен |
| refactored | рефакторинг |
| updated | обновлен |
| implemented | реализован |
| removed | удален |
| optimized | оптимизирован |
Правила оформления строки
- Регистр: описание начинается строго с маленькой буквы (после
#ID -).
- Скобки: перечисления внутри скобок тоже с маленькой буквы (кроме аббревиатур типа API, UI, DB).
- Пример:
- ✅
#42 - реализована поддержка PostgreSQL (индексы, миграции)
- ❌
#42 - Реализована поддержка PostgreSQL (Индексы, Миграции)
4. Сгруппировать по категориям
- 🚀 Новые функции и возможности - added, implemented, introduced, created
- 🐛 Исправления - fixed, resolved, patched, handled
- 🛠 Рефакторинг и архитектура - refactored, optimized, simplified, standardized
- 🧪 Тестирование - tests, coverage, assertions
- 📝 Документация - README, docs, CHANGELOG
- ⚙️ Инфраструктура - CI, Docker, Makefile, config
5. Определить версию
Посмотреть текущую версию в CHANGELOG:
grep -m1 "## \[" CHANGELOG.md
По умолчанию: коммиты добавляются в последнюю существующую версию (НЕ создаётся новый патч). Дата версии обновляется на дату самого свежего коммита.
Новая версия создаётся только если пользователь явно указал номер версии. В этом случае увеличить:
- Major (X.0.0) - breaking changes, несовместимые изменения API
- Minor (0.X.0) - новые функции, расширения функционала
- Patch (0.0.X) - исправления, мелкие улучшения
6. Сформировать запись
Формат:
## [X.Y.Z] - YYYY-MM-DD - "Кодовое имя релиза"
> Краткое summary релиза на русском языке. Опиши главные достижения, архитектурные сдвиги и важные фичи. Сделай это вдохновляюще, но обезличенно - без я/мы.
### 🚀 Новые функции и возможности
- **#ID** - описание на русском ([короткий_хеш](https://github.com/WarLikeLaux/yii2-book-catalog/commit/короткий_хеш))
### 🧪 Тестирование
- **#ID** - описание на русском ([короткий_хеш](https://github.com/WarLikeLaux/yii2-book-catalog/commit/короткий_хеш))
### 🛠 Рефакторинг и архитектура
- **#ID** - описание на русском ([короткий_хеш](https://github.com/WarLikeLaux/yii2-book-catalog/commit/короткий_хеш))
### 📝 Документация
- **#ID** - описание на русском ([короткий_хеш](https://github.com/WarLikeLaux/yii2-book-catalog/commit/короткий_хеш))
Пример записи:
## [0.9.0] - 2025-12-28
### 🚀 Новые функции и возможности
- **#18** - реализована **HTTP Idempotency** через заголовок `Idempotency-Key` ([2e3eff4](https://github.com/WarLikeLaux/yii2-book-catalog/commit/2e3eff4))
### 🧪 Тестирование
- **#18** - достигнуто **100% покрытие кода тестами** (238 тестов, 517 assertions) ([2e3eff4](https://github.com/WarLikeLaux/yii2-book-catalog/commit/2e3eff4))
7. Вставить в CHANGELOG.md
Вставить запись после строки "Формат основан на [Keep a Changelog]..."
8. Проверить результат
Запустить скрипт валидации для проверки структуры и наличия коммитов:
./bin/validate-changelog
Если скрипт нашёл ошибки - исправить их.
Важные правила
| Правило | Описание |
|---|
| Язык | Все описания на русском |
| Дата | Обновляется на дату самого свежего коммита в версии |
| Ссылки | Каждая запись должна иметь ссылку на GitHub коммит |
| Дубликаты | НЕ добавлять коммиты, которые уже есть в CHANGELOG |
| Пустые секции | НЕ включать секции без записей |
Строгие запреты
- ⛔️ NO Английские описания - только русский
- ⛔️ NO Дублирование коммитов из CHANGELOG
- ⛔️ NO Записи без ссылок на коммиты
- ⛔️ NO Произвольная дата - используй дату самого свежего коммита в версии
- ⛔️ NO Пустые секции категорий
- ⛔️ NO Title Case