skills/changelog-automation/SKILL.md
Use this skill when generating or maintaining release changelogs from merged work, including version scope, grouped changes, breaking-change notes, formatting consistency, and verification checks.
npx skillsauth add chatandbuild/skills-repo Changelog AutomationInstall 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.
Automate changelog creation while keeping release notes accurate and auditable.
Define release scope. Use git-log-based range detection: git log <last-tag>..HEAD --oneline or git log --since="YYYY-MM-DD". Prefer tag-to-HEAD for versioned releases. For date-based ranges, ensure the range is inclusive and timezone-consistent.
Collect and classify changes. Parse conventional commits (feat:, fix:, docs:, refactor:, perf:, chore:, BREAKING CHANGE:) from commit messages. When PRs are the source of truth, use PR labels (e.g., type:feature, type:fix, type:breaking) for grouping. Prefer PR metadata over raw commits when squash merges flatten history.
Draft changelog sections. Use impact-focused language: describe what changed and why it matters to users, not implementation details. Group entries under standard headers: Added, Changed, Fixed, Deprecated, Removed, Security, Breaking Changes.
Handle breaking changes. Every breaking change must appear under a dedicated "Breaking Changes" section with a clear migration note: what was removed or changed, what to do instead, and any required code updates.
Apply semantic version bumping rules. Map change types to version bumps: breaking -> major; new features -> minor; fixes and patches -> patch. Validate that the proposed version matches the collected change set.
Run verification. Ensure no duplicate entries, no empty sections, correct date and version formatting, and that all referenced PRs/commits exist. Flag any entries that look auto-generated but lack human review.
Conventional Commits (for commit-based changelogs):
feat(scope): description -> Addedfix(scope): description -> Fixeddocs(scope): description -> Documentationrefactor(scope): description -> Changedperf(scope): description -> Performancechore(scope): description -> omit or ChoreBREAKING CHANGE: description -> Breaking ChangesPR labels (for PR-based changelogs):
changelog:added, type:feature -> Addedchangelog:fixed, type:bugfix -> Fixedchangelog:changed, type:refactor -> Changedchangelog:breaking, type:breaking -> Breaking Changeschangelog:skip -> exclude from changelogStandardize on one scheme per repo and document it in CONTRIBUTING.md.
## [X.Y.Z] - YYYY-MM-DD
### Added
- Short, user-facing description of the change. (#PR or commit hash)
### Changed
- Description of behavioral or API changes.
### Fixed
- Bug fix description with impact.
### Deprecated
- What is deprecated and when it will be removed.
### Removed
- What was removed and why.
### Security
- Security-related changes.
### Breaking Changes
- **Component/API name:** What broke. Migration: what to do instead. (#PR)
### Migration Notes
- Step-by-step upgrade instructions if non-trivial.
### Contributors
- @username (contributions)
Include contributor attribution from PR authors or commit authors when available. Link PR numbers and commit hashes for traceability.
Mixing human-written and auto-generated entries. Avoid editing the same changelog section by hand and by automation; pick one source of truth. If humans add entries, ensure automation does not overwrite them or duplicate.
Missing breaking change callouts. Breaking changes buried in "Changed" or omitted entirely cause upgrade surprises. Always surface them in a dedicated section with migration guidance.
Stale changelogs from squash merges. Squash merges replace branch commits with a single merge commit. If changelog generation reads commits, it may miss individual PRs. Prefer PR-based collection when using squash merge.
Vague or implementation-heavy entries. Entries like "Refactored X" or "Updated dependencies" are unhelpful. Write for end users: "Improved login performance by 40%" or "Upgraded React to v18 for concurrent features."
Inconsistent version or date format. Stick to one format (e.g., [SemVer] - ISO date) and apply it everywhere.
documentation
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
development
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
devops
Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.
tools
Use this skill when designing and building durable command-line tools from API docs, OpenAPI specs, SDKs, curl examples, admin tools, web apps, or local scripts, especially when the CLI should expose composable commands, stable JSON output, auth/config handling, install-on-PATH behavior, and a companion skill.