About changelog
A skill for creating changelog entries for significant commits in a pull request. It filters out documentation-only and other excluded changes, then writes concise, user-facing entries using the project's file naming and type conventions.
Key features
- 01Significant change filtering
- 02Changelog type selection
- 03PR-based file naming
- 04User-facing change descriptions
- 05Breaking change marking
Use cases
- 01Recording a new user-facing feature
- 02Documenting a behavior change or bug fix
- 03Adding multiple entries for one PR
- 04Marking a breaking change
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ pipecat-ai/ pipecat --skill changelogAfter installing, type/changelogin Claude Code to confirm it loaded.
Details
From the project READMECreate changelog files for the important commits in this PR. The PR number is provided as an argument.
Instructions
-
Skip changelog for: documentation-only, internal refactoring, test-only, CI changes, and fixes to changes that have not shipped yet (the unreleased change's entry covers them — update that entry instead if the fix alters what it should say).
-
First, check what commits are on the current branch compared to main:
git log main..HEAD --oneline -
For each significant change, create a changelog file in the
changelog/folder using the format: Allowed types:added,changed,deprecated,removed,fixed,security,performance,other{PR_NUMBER}.added.md- for new features{PR_NUMBER}.added.2.md,{PR_NUMBER}.added.3.md- for additional entries of the same type{PR_NUMBER}.changed.md- for changes to existing functionality{PR_NUMBER}.fixed.md- for bug fixes{PR_NUMBER}.deprecated.md- for deprecations{PR_NUMBER}.removed.md- for removed features{PR_NUMBER}.security.md- for security fixes{PR_NUMBER}.performance.md- for performance improvements{PR_NUMBER}.other.md- for other changes
-
Each changelog file should at least contain a main single line starting with
-followed by a clear description of the change. No line wrapping. -
If the change is complicated, changelog files can have indented lines after the main line with additional details or code samples.
-
Use ⚠️ emoji prefix for breaking changes.
-
Write changes in user-facing terms first. Lead with what users of the framework will notice: new APIs, changed behavior, new parameters, fixed bugs they might have hit, etc. Implementation details (internal refactoring, how something is wired up under the hood) can be included as secondary context after the user-facing description, but should never be the only content of a changelog entry when there is a user-visible effect.
Good (user-facing first, implementation detail as context):
- Turn completion instructions now persist correctly across full context updates when using `system_instruction`. Previously they were injected as a context system message, which caused warning spam and didn't survive context updates.Bad (implementation detail only, no user-facing framing):
- Fixed turn completion instructions being injected as a context system message instead of using `system_instruction`.Ask yourself: "If I'm a developer building on Pipecat, what would I notice changed?" Start there.
-
Once the entries are written, run
/prose-review changelog/and fix anything it flags.
Example
For PR #3519 with a new feature and a bug fix:
changelog/3519.added.md:
- Added `SomeNewFeature` for doing something useful.
changelog/3519.fixed.md:
- Fixed an issue where something was not working correctly in some user-visible scenario. The root cause was an internal implementation detail.