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
## [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.