# Changelog

> Use when the user wants a changelog, release notes, or asks what changed since the last release.

- Skill: `majiayu000/changelog-15` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/changelog-15`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/changelog-15/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/changelog-15

---


Generate a changelog from git history.

## Steps

1. **Find the last tag**
   ```
   git describe --tags --abbrev=0 2>/dev/null || echo "no-tags"
   ```

2. **Get commits since last tag**
   ```
   git log [last-tag]..HEAD --oneline --no-merges
   ```
   If no tags, get last 50 commits.

3. **Categorize commits by prefix:**

   | Category | Prefixes |
   |----------|---------|
   | Features | feat:, feature:, add: |
   | Bug Fixes | fix:, bugfix:, hotfix: |
   | Performance | perf: |
   | Refactoring | refactor: |
   | Documentation | docs:, doc: |
   | Testing | test:, tests: |
   | CI/CD | ci:, cd:, build: |
   | Chores | chore:, deps:, bump: |
   | Breaking Changes | any commit with BREAKING CHANGE in body |

   If commits don't use conventional prefixes, categorize by content.

4. **Generate CHANGELOG.md entry:**

   ```markdown
   ## [version] - YYYY-MM-DD

   ### Features
   - Description ([commit-hash])

   ### Bug Fixes
   - Description ([commit-hash])

   ### Performance
   - Description ([commit-hash])

   ### Breaking Changes
   - Description ([commit-hash])
   ```

5. **If CHANGELOG.md exists**, prepend the new entry at the top (after the title).
   If it doesn't exist, create it.

6. **Show the generated changelog** to the user.

<!-- Skill by Huzefa Nalkheda Wala | github.com/huzaifa525 | claude-code-optimizer -->

