Write and verify package release changesets, registry changelog entries, and the PR’s managed auto-release choice. Use before deciding whether a package edit needs a changeset, including skipping one.
72
90%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Release notes document user-visible changes: package changesets for published packages, and registry changelog entries for copied registry code under apps/www/src/registry/**. Concise bullets, imperative voice, user impact only.
Core principle: one action verb + one impact statement = one bullet.
minorForbidden: minor changesets for:
@platejs/core@platejs/slateplatejsUse patch instead. minor on those explodes version bumps across dependents.
# Wrong
---
"platejs": minor
---
# Correct
---
"platejs": patch
---Only real breaking changes get major.
Target branch by bump:
next for beta before stable promotion.main, not next.main; use next patch changes only for active
beta-lane fixes or direct-sync beta metadata.Never combine packages in one changeset.
# Wrong
---
"platejs": patch
"@platejs/code-block": patch
---
# Correct
.changeset/plate-fix-types.md
.changeset/code-block-add-option.mdNEVER write a changeset relative to the last commit, staged diff, current working tree, branch-local plan, or the change you just made. Those are agent breadcrumbs, not release truth.
The release baseline is what users already have. For a package released from
main, it is main / origin/main. For a package that does not exist on
main yet, such as one in prerelease on next, it is that package's last
published version, and .changeset/pre.json lists the changesets that already
shipped in it.
Before creating or editing a changeset, answer one question:
What will a user upgrading from the release baseline observe?
If a symbol, option, behavior, file, or bug never existed in the release baseline, do not write a removal, migration, or breaking changeset for it. Instead, describe only the final user-visible delta from the baseline, or write no changeset if there is no published package delta. Amend an unreleased changeset that already describes the change instead of adding a duplicate.
Write changesets for the user-visible delta from the release baseline. That means:
Do not write:
If a package changed internally on this branch but has no user-visible delta from the baseline, do not write a changeset for that package.
If changes are only under apps/www/src/registry/, do not write a package
changeset; add a registry changelog entry per the
registry reference. Mixed package and registry work
may need both.
sync-plate-ui is for downstream user apps consuming the generated JSON. Do not use it to produce upstream Plate changelog entries.
Use imperative voice:
Add support for XFix Y behaviorRemove deprecated ZDo not use:
Added ...We fixed ...Keep simple changes to one line:
- Fix `asChild` TypeScript error
- Add `disabled` prop to ButtonUse code examples only when needed:
// Before
import { LegacyPlugin } from 'platejs';
// After
import { ExamplePlugin } from 'platejs';Focus on user impact only. No implementation diary.
Copy API calls from the accepted, shipped source. Changesets report an API
decision; they never make one. Route unresolved shape to best-api.
Prefer this shape:
**Migration:** blockIf a sentence would sound stupid in release notes, cut it.
Breaking change:
---
"platejs": major
---
Remove `LegacyPlugin`; use `ExamplePlugin`
**Migration:** Replace `LegacyPlugin` in your plugin list:
```tsx
const plugins = [ExamplePlugin];
```For PR-body edits, preserve the existing auto-release marker block and its
checked state. tooling/scripts/auto-release-pr.mjs owns normalization;
.github/workflows/changeset-auto-release.yml supplies the default for a new
block and excludes Version Packages PRs. Do not copy that policy into another rule or
hand-toggle a release choice during prose cleanup. Creating or changing the
release choice still requires the active request's authority. Read these owners
when the task actually changes auto-release behavior.
udecode/plate
ae66aa7
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.