Skip to main content

changelog

Generate release notes from git history — parses Conventional Commits over a range (default last tag..HEAD), groups by type into human sections (Features/Fixes/Performance/...), drops noise (chore/merge), and outputs a markdown CHANGELOG section that can be prepended to CHANGELOG.md. Use when user says "сгенерируй чейнджлог", "релиз-ноты", "что изменилось с прошлого релиза", "changelog", "release notes", or types /changelog.

Jump to install

Source facts

Repository
1t1sCooL/claude-skills
Last source activity
June 22, 2026 at 13:50
Detected SKILL.md language
Russian
Stars
16
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
changelog
description
Generate release notes from git history — parses Conventional Commits over a range (default last tag..HEAD), groups by type into human sections (Features/Fixes/Performance/...), drops noise (chore/merge), and outputs a markdown CHANGELOG section that can be prepended to CHANGELOG.md. Use when user says "сгенерируй чейнджлог", "релиз-ноты", "что изменилось с прошлого релиза", "changelog", "release notes", or types /changelog.
argument-hint
[v1.2.0..HEAD | --since <tag>] [--write] (по умолчанию с последнего тега до HEAD)
allowed-tools
Read Write Edit Bash(git *)
# Changelog / Release Notes Собирает релиз-ноты из git-истории: парсит Conventional Commits, группирует по типам в человекочитаемые секции, отбрасывает шум. Умеет печатать текст и допендивать новую секцию сверху в существующий `CHANGELOG.md`. ## Что на входе (`$ARGUMENTS`) - **Диапазон** `v1.2.0..HEAD` — явный git-range. - **`--since <tag>`** — от тега до `HEAD`. - **Пусто** → автоматически последний тег → `HEAD`: ```bash git describe --tags --abbrev=0 # последний тег; если тегов нет — взять всю историю ``` - Опц. `--write` — допендить в `CHANGELOG.md` (иначе только напечатать). ## Шаги 1. **Собрать коммиты** по диапазону (subject + body для footer'ов): ```bash git log <range> --no-merges --pretty=format:'%H%x09%s%x09%b%x1e' ``` 2. **Распарсить Conventional Commits** `type(scope)!: subject` и сгруппировать: - `feat` → **Features** - `fix` → **Bug Fixes** - `perf` → **Performance** - `refactor` → **Refactoring** - `docs` → **Documentation** - прочие типы (`build`, `ci`, `test`, `style`) → **Other** (по желанию). - **Пропустить шум:** `chore`, merge-коммиты, бамп версий, мелочь без смысла для читателя. - **Breaking changes** (`!` после типа или `BREAKING CHANGE:` в body) → отдельная верхняя секция **⚠ BREAKING CHANGES**. - В строке пункта: subject, scope в скобках если есть, короткий хеш. Группировать одинаковые/дублирующиеся. 3. **Сформировать markdown-секцию:** ```markdown ## <version> — YYYY-MM-DD ### ⚠ BREAKING CHANGES - ... ### Features - **scope:** описание (`abc1234`) ### Bug Fixes - ... ``` - **version**: из аргумента/целевого тега; иначе предложить по semver (feat → minor, fix-only → patch, breaking → major) или взять из `package.json`. - **дата**: сегодняшняя (или дата тега). 4. **Вывод/запись.** - Всегда напечатать готовую секцию пользователю. - При `--write`: вставить секцию **сверху** в `CHANGELOG.md` (после возможного заголовка `# Changelog`), не трогая старые записи; создать файл с заголовком, если его нет. ## Выход - Текст релиз-нот (markdown-секция, готовая к вставке). - При `--write` — обновлённый `CHANGELOG.md` (новая секция сверху) + путь к файлу. - Короткая сводка: диапазон, сколько коммитов учтено / отброшено как шум.
View on GitHub