
Changeset
- 20 installs
- 25.5k repo stars
- Updated August 5, 2026
- biomejs/biome
Changeset (Biome skill) is a Claude skill that guides creating and writing changesets for Biome pull requests to drive CHANGELOG generation and release automation.
About
This skill guides creating and writing changesets for pull requests in the Biome codebase, which drive CHANGELOG generation and release automation. It covers choosing the patch/minor/major change type, the required file format, and writing guidelines for bug fixes, new rules, formatter, and parser changes. A developer uses it when a PR introduces user-visible changes that need a changeset entry.
- Guides writing changesets for Biome PRs that drive CHANGELOG and releases
- Explains patch/minor/major change types and target-branch rules
- Gives per-category formats for bug fixes, new rules, and formatter changes
Changeset by the numbers
- 20 all-time installs (skills.sh)
- Ranked #168 of 248 Release Management skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
changeset capabilities & compatibility
- Capabilities
- changelog · code review
- Works with
- github
- Use cases
- documentation · code review
What changeset says it does
Changesets drive CHANGELOG generation and release automation. Internal-only changes (refactors with no user-visible effect) do not need changesets.
`patch` — Bug fixes. - `minor` — New features. PR must target the `next` branch. - `major` — Breaking user API changes.
npx skills add https://github.com/biomejs/biome --skill changesetAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 20 |
|---|---|
| repo stars | ★ 25.5k |
| Last updated | August 5, 2026 |
| Repository | biomejs/biome ↗ |
What it does
Write a correctly typed and formatted changeset for a Biome PR that has user-visible changes so the CHANGELOG and release automation pick it up.
When should I use this skill?
A PR introduces user-visible changes (bug fixes, features, rule/formatter/parser changes) that need a changeset entry.
What you get
A valid, correctly typed changeset file in .changeset/ with a concise user-facing description.
- A valid changeset file in .changeset/
By the numbers
- 3 change types: patch, minor, major
- descriptions kept to 1 to 3 sentences
Files
Purpose
Use this skill when a PR introduces user-facing changes that require a changeset. Changesets drive CHANGELOG generation and release automation. Internal-only changes (refactors with no user-visible effect) do not need changesets.
Create a Changeset
Do not create changeset files manually. Use:
just new-changeset-emptyThe command will create a file in .changeset/. Edit it directly to add detail.
Note that the file will not be literally empty. It will have this content:
---
---Do not simply append to the changeset description below the existing content, which creates an invalid changeset.
Requirespnpm— runpnpm ifrom repo root first.
Choose the Correct Change Type
patch— Bug fixes.minor— New features. PR must target thenextbranch.major— Breaking user API changes. PR must target thenextbranch. These are rare and strictly controlled.
Refer to the versioning page when unsure.
Changeset Format
---
"@biomejs/biome": patch
---
Description here.If you need headers inside the description, use #### or ##### only. Other header levels break the CHANGELOG tooling.
Writing Guidelines
General Rules
- Write about user-facing changes only. No changeset needed for pure refactoring. Describe how the change affects the user.
- Be concise and clear — 1 to 3 sentences. Longer entries signal to users that the change deserves attention.
- Past tense for what you did: "Added", "Fixed", "Changed".
- Present tense for Biome behavior: "Biome now supports...", "The rule now detects...".
- End every sentence with a full stop (
.).
Bug Fixes
Start with a link to the issue:
Fixed [#4444](https://github.com/biomejs/biome/issues/4444): [`useOptionalChain`](https://biomejs.dev/linter/rules/use-optional-chain/) now detects negated logical OR chains.New Lint Rules
Show an example of an invalid case. Use inline code for simple things, a code block for complex ones:
Added a new nursery rule [`noDuplicateSelectors`](https://biomejs.dev/linter/rules/no-duplicate-selectors/), that disallows duplicate selector lists within the same at-rule context.
For example, the following snippet triggers the rule:
` ` `css
.foo {}
.foo {}
` ` `Changes to Existing Rules
Clearly show what is now invalid that was not before (or vice versa). Show both sides if helpful:
Fixed [#7211](https://github.com/biomejs/biome/issues/7211): [`useOptionalChain`](https://biomejs.dev/linter/rules/use-optional-chain/) now detects negated logical OR chains. The following code is now considered invalid:
` ` `js
!foo || !foo.bar
` ` `Formatter Changes
Show the formatting diff:
Changed formatting of arrow function parameters. Example:
` ` `diff
- const fn = ( a, b ) => {};
+ const fn = (a, b) => {};
` ` `Parser Changes
Brief inline example of what can now be parsed:
Added support for parsing `using` declarations in JavaScript.Use a code block if multiline clarity helps.
Linking Rules and Assists
Always link to the website, even if the page does not exist yet (it will after merge):
- Rules: `
[useConst](https://biomejs.dev/linter/rules/use-const/)` - Assists: `
[organizeImports](https://biomejs.dev/assist/actions/organize-imports/)`
Tips
- Create the changeset before opening the PR; you can edit it after.
- Look at existing files in
.changeset/or recentCHANGELOG.mdentries for reference. - One changeset per PR is typical. Multiple changesets are allowed if the PR addresses multiple, distinct bugs.
References
- Contribution guide:
CONTRIBUTING.mdsection "Changelog" - Versioning policy: https://biomejs.dev/internals/versioning/
- Changesets documentation: https://github.com/changesets/changesets
Related skills
FAQ
Do refactors need a changeset?
No; internal-only changes with no user-visible effect do not need changesets.
How do I create the changeset file?
Run just new-changeset-empty and edit the created file in .changeset/; do not create files manually.