---
name: changelog-generator
description: >-
  Generate changelogs and release notes from git commits, with support for changelog automation,
  release workflows, and commit conventions. Use when creating user-facing changelogs, setting up
  automated changelog generation, configuring Conventional Commits, standardizing release notes,
  or implementing semantic versioning pipelines. Covers tools like semantic-release, standard-version,
  git-cliff, and commitizen. Turns technical commit history into clear, customer-friendly updates.
enabled: false
source: github:JuanJoseGonGi/skills
imported-from: github:JuanJoseGonGi/skills
---

# Changelog Generator & Automation

Transform git commits into polished changelogs and automate your entire release notes pipeline.

## When to Use This Skill

- Creating user-facing changelogs or release notes for a new version
- Setting up automated changelog generation in CI/CD
- Implementing Conventional Commits or commit linting (commitlint, husky)
- Configuring release tools (semantic-release, standard-version, git-cliff, commitizen)
- Writing app store update descriptions or email update summaries
- Maintaining a public changelog or product updates page
- Standardizing commit message formats across a team

## What This Skill Does

1. **Scans Git History** — analyzes commits from a time period or between tags/versions
2. **Categorizes Changes** — groups into features, fixes, breaking changes, security, etc.
3. **Translates Technical → User-Friendly** — converts developer commits into customer language
4. **Formats Professionally** — outputs clean, structured changelog entries
5. **Filters Noise** — excludes internal commits (refactoring, tests, CI, chores)
6. **Supports Automation** — configures tools and CI workflows for hands-off releases

## Quick Start: Generating a Changelog

From your project repository:

```
Create a changelog from commits since last release
```

```
Generate changelog for all commits from the past week
```

```
Create release notes for version 2.5.0
```

```
Create a changelog for commits between March 1 and March 15
```

## Example Output

**Input**: "Create a changelog for commits from the past 7 days"

```markdown
# Updates - Week of March 10, 2024

## ✨ New Features

- **Team Workspaces**: Create separate workspaces for different
  projects. Invite team members and keep everything organized.

- **Keyboard Shortcuts**: Press ? to see all available shortcuts.
  Navigate faster without touching your mouse.

## 🔧 Improvements

- **Faster Sync**: Files now sync 2x faster across devices
- **Better Search**: Search now includes file contents, not just titles

## 🐛 Fixes

- Fixed issue where large images wouldn't upload
- Resolved timezone confusion in scheduled posts
- Corrected notification badge count
```

## Commit Conventions (Quick Reference)

This skill understands and encourages [Conventional Commits](https://www.conventionalcommits.org/):

```
<type>[optional scope]: <description>
```

Key types: `feat` (Added), `fix` (Fixed), `perf` (Changed), `refactor` (Changed), `revert` (Removed).

Breaking changes: use `feat(api)!: ...` or add a `BREAKING CHANGE:` footer.

Versioning follows [Semantic Versioning](https://semver.org/): `MAJOR.MINOR.PATCH`.

> For the full type table, commit examples, and Keep a Changelog format, see `references/tooling-and-automation.md`.

## Automation Setup (Overview)

Choose a tool based on your ecosystem:

| Tool               | Ecosystem | Automation Level | Best For                        |
| ------------------ | --------- | ---------------- | ------------------------------- |
| **semantic-release** | Node.js   | Full             | Fully automated CI/CD releases  |
| **standard-version** | Node.js   | Semi             | Manual trigger, auto changelog  |
| **git-cliff**      | Any       | Semi             | Fast, customizable templates    |
| **commitizen**     | Python    | Semi             | Python projects, interactive    |
| **commitlint**     | Node.js   | Linting only     | Enforcing commit conventions    |

Typical automation pipeline:
1. **Enforce** commit format with commitlint + husky (or commitizen)
2. **Generate** changelog with semantic-release, standard-version, or git-cliff
3. **Publish** via GitHub Actions or GitLab CI on merge to main

> For full tool configs, CI workflow YAML, and release notes templates, see `references/tooling-and-automation.md`.

## Tips

- Run from your git repository root
- Specify date ranges or tag ranges for focused changelogs
- Use a CHANGELOG_STYLE.md for consistent formatting across your team
- Review and adjust generated changelogs before publishing
- Save output directly to CHANGELOG.md
- Combine with GitHub release notes for maximum visibility

## Related Use Cases

- Creating GitHub/GitLab release notes
- Writing app store update descriptions
- Generating email updates for users
- Creating social media announcement posts
- Setting up release automation in CI/CD
