Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when writing or updating a project changelog/release notes: group and label entries using the exact Keep a Changelog vocabulary and layout, not the default 'Features/Bug Fixes' style.
.claude/skills/keep-a-changelog-format/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 83% | 7 |
| Model | Lift | Δ tokens | Δ turns | Cases | Verified |
|---|---|---|---|---|---|
| gemini-3.5-flashbest | +54% | — | 0% | 24 | 87d ago |
| gemini-3.6-flash | +22% | +218% | 0% | 23 | 54d ago |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | — | — |
| case-13 | ✗→✓ | ▲ Improved | — | — |
| case-20 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-21 | ✗→✓ | ▲ Improved | — | — |
When producing a CHANGELOG file or release notes, label and order every entry with the exact Keep a Changelog vocabulary and layout below. Apply this whenever the task is "write/update a changelog", "draft release notes", or "turn these commits into a changelog" — even if the user doesn't name the format.
Group entries under these SIX headings only, spelled EXACTLY like this, as level-3 ### headings, in THIS order. Omit a heading when it has no entries — never reorder, never rename, never invent a seventh:
### Added — new features and capabilities. NOT "Features", "New Features", "New","Additions".
### Changed — changes to existing behavior, including performance work, tuning,renames, and refactors. NOT "Updated", "Improvements", "Enhancements", "Changes", "Performance", "Renamed".
### Deprecated — features still present but marked for future removal. NOT"Deprecations", "Obsolete".
### Removed — features deleted in THIS release. NOT "Deletions", "Dropped","Deleted", "Breaking".
### Fixed — bug fixes. NOT "Bug Fixes", "Fixes", "Bugfixes", "Patches".### Security — vulnerability fixes and security hardening. NOT "Security Fixes","Vulnerabilities". Never fold a security issue under Fixed.
Each entry is a Markdown list item (- ...) under its heading.
# Changelog title (level-1). An intro line is optional.## [Unreleased] section at the very top, above every released version, formerged-but-unshipped work. When the user gives no version/date, everything goes here.
## [X.Y.Z] - YYYY-MM-DD: the version insquare brackets, then a space, a hyphen, a space, then an ISO 8601 date.
last. When inserting a new release, place it above all existing ones.
[YANKED] to its version header:## [1.5.0] - 2026-11-20 [YANKED].
Convert every date to ISO 8601 YYYY-MM-DD. This includes spelled-out, slashed, day-first, and ordinal dates:
2026-06-262026-06-262026-02-07, 2026-08-022026-01-31, 2026-10-05When the input is commit messages (feat:, fix:, perf: …), map type → section:
| Commit type | Section | |--------------------|---------------| | feat | Added | | fix | Fixed | | perf, refactor | Changed | | revert | Removed | | docs, style, test, chore, ci, build | omit (not user-facing) |
A security-relevant fix still goes under Security, not Fixed.
BEFORE:
### Features
- OAuth loginAFTER:
### Added
- OAuth loginBEFORE:
### Performance Improvements
- Search index is 3x fasterAFTER:
### Changed
- Search index is 3x fasterBEFORE:
### Deprecations
- v1 REST endpoints (removal next year)AFTER:
### Deprecated
- v1 REST endpoints (removal next year)BEFORE:
### Dropped
- Legacy XML parserAFTER:
### Removed
- Legacy XML parserBEFORE:
### Bug Fixes
- Crash on logoutAFTER:
### Fixed
- Crash on logoutBEFORE:
### Fixed
- SQL injection in the report builder
- Off-by-one in paginationAFTER:
### Security
- SQL injection in the report builder
### Fixed
- Off-by-one in paginationBEFORE:
## 2.1.0 (June 26, 2026)AFTER:
## [2.1.0] - 2026-06-26BEFORE (oldest first):
## [1.0.0] - 2026-01-01
## [1.1.0] - 2026-06-01AFTER (newest first):
## [1.1.0] - 2026-06-01
## [1.0.0] - 2026-01-01BEFORE:
## [0.0.0] - TBD
### Added
- Dark-mode toggleAFTER:
## [Unreleased]
### Added
- Dark-mode toggleBEFORE:
## [1.5.0] - 2026-11-20 (pulled — data-loss bug)AFTER:
## [1.5.0] - 2026-11-20 [YANKED]## [Unreleased]. Do not invent aversion number or a date.
Security, not Fixed. Security wins.Changed, not a new "Renamed"heading.
Changed. There is no "Performance" heading.# Changelog; pre-1.0work with no version goes under ## [Unreleased].
### Removed with nothing under it.[Unreleased] and every [X.Y.Z] — even thefirst release.
### Added; never ### Features or ### New Features.### Fixed; never ### Bug Fixes.### Changed for perf/refactor/rename; never ### Improvements or### Performance.
### Security; never fold it into ### Fixed.## [2.1.0] - ...; never bare ## 2.1.0.YYYY-MM-DD; never leave "June 26, 2026" or "06/26/2026".[YANKED]; never silently delete it.Improvements" headings instead of the six canonical ones.
Fixed.## 2.1.0 or ## v2.1.0 without brackets.2026-06-26.[Unreleased].# Changelog; ## [Unreleased] sits on top.## [X.Y.Z] - YYYY-MM-DD with brackets.[YANKED].| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-23 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.5-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +22 percentage points is the difference between those two pass rates over the 23 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.5-flash | verified | 6/26/2026 | +54% |
Other measured skills in the registry, with their headline benchmark lift.