skills/development/changelog-generator/SKILL.md
Use when the user says 'generate changelog', 'update changelog', 'what changed', 'release notes', 'write changelog', or needs a formatted CHANGELOG.md from git commit history. Do NOT use for diary entries, git log viewing, or commit message writing.
npx skillsauth add cwinvestments/memstack memstack-development-changelog-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produces a formatted CHANGELOG.md from git commit history, grouped by type and ready for release.
| Trigger | Status | |---------|--------| | User says "generate changelog" or "update changelog" | ACTIVE | | User says "what changed" or "release notes" | ACTIVE | | User says "write changelog" or "changelog since" | ACTIVE | | User wants to view git log only | NOT this skill — use git commands directly | | User wants a diary entry | NOT this skill — use Diary |
Ask the user or infer from context:
| Parameter | Default | Example |
|-----------|---------|---------|
| Since tag/date | Last tag or last 7 days | v3.3.0, 2026-03-01 |
| Until | HEAD | v3.4.0, HEAD |
| Format | Keep a Changelog | Conventional, custom |
# Find the last tag
git describe --tags --abbrev=0 2>/dev/null || echo "No tags found"
# Get commits since last tag (or date)
git log --oneline --no-merges $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~50")..HEAD
Parse each commit message and classify by prefix:
| Prefix | Category | Changelog Section |
|--------|----------|-------------------|
| feat: / feature: | Features | ### Added |
| fix: / bugfix: | Bug Fixes | ### Fixed |
| docs: | Documentation | ### Changed |
| refactor: | Refactoring | ### Changed |
| perf: | Performance | ### Changed |
| test: | Tests | (omit unless user requests) |
| chore: / build: / ci: | Maintenance | (omit unless user requests) |
| BREAKING CHANGE or !: | Breaking | ### Breaking Changes |
| No prefix | Uncategorized | ### Other |
Follow Keep a Changelog format:
## [version] - YYYY-MM-DD
### Breaking Changes
- Description of breaking change ([commit-hash])
### Added
- New feature description ([commit-hash])
### Fixed
- Bug fix description ([commit-hash])
### Changed
- Refactor/improvement description ([commit-hash])
Writing rules:
# Check if CHANGELOG.md exists
ls CHANGELOG.md 2>/dev/null
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/),
and this project adheres to [Semantic Versioning](https://semver.org/).
## [version] - YYYY-MM-DD
...
Changelog entry for [version] ([date]):
- [N] features added
- [N] bugs fixed
- [N] changes
- [N] breaking changes
Ready to write to CHANGELOG.md? (prepend / overwrite / clipboard only)
tools
Use when the user says 'save diary', 'log session', 'wrapping up', or at end of a productive session.
tools
Use when the user says 'submit to marketplace', 'publish my skill', 'share this skill', 'list on marketplace', 'submit plugin', 'publish to community', or needs to submit a skill or plugin to a community marketplace via PR. Do NOT use for building skills or writing plugin code.
development
Use when the user says 'write browser tests', 'test this page', 'playwright test', 'e2e test', 'end to end test', 'browser test', 'test the UI', or needs Playwright-based browser testing for a web application. Do NOT use for unit tests, API tests, or non-browser testing.
development
Use when the user says 'teach me', 'explain as you go', 'mentor mode', 'walk me through', 'help me learn', 'explain why', 'learning mode', or wants real-time plain language narration of decisions and tradeoffs while building. Do NOT use for code review or debugging.