# Write Changelog

> Generate a changelog from git history. Use when user wants to write a changelog, generate release notes, document what changed between versions, or summarize recent commits for a release.

- Skill: `rockclaver/write-changelog` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add rockclaver/write-changelog`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rockclaver/write-changelog/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: rockclaver (https://skillmd.com/u/rockclaver)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/rockclaver/write-changelog

---


# Write Changelog
From git history, Keep a Changelog format by default.
### 1. Determine the range
From/to: tag, commit, or date (`HEAD` default); pick a version label. `scripts/collect_commits.py --list-tags` suggests a base tag.
### 2. Collect commits
```
python <skill-dir>/scripts/collect_commits.py --from <base> [--to <target>]
```
Outputs hash, date, author, subject.
### 3. Filter noise
Exclude unless asked: merges, CI-only, dep bumps (unless CVE/breaking)
### 4. Categorize
| Section | Prefixes |
|---|---|
| Added | `feat:` |
| Changed | `refactor:`, `perf:` |
| Deprecated | `deprecate:` |
| Removed | `remove:` |
| Fixed | `fix:` |
| Security | `fix(security):`, `sec:` |
No Conventional Commits → infer from subject wording.
### 5. Write & prepend
```md
## [1.x.0] - YYYY-MM-DD

### Added
- Short description (#PR or hash)

### Fixed
- Short description (#PR or hash)
```
Prepend below `# Changelog` (create if missing); never edit existing entries.

## Output Formats
Default: Keep a Changelog. On request: GitHub Release notes or Conventional Commits summary.

