name: changeset description: Use when the user asks to create, generate, write, or apply a Changesets release note/version bump from current code changes (for example "make a changeset", "add a changeset", "apply changesets", or "version packages"). metadata: version: 1.0.0
Changeset
Use this skill to create and optionally apply Changesets based on the code changes in the current session.
What this skill does
- Detects what changed in the working tree.
- Maps changed files to affected packages in a monorepo or single-package repo.
- Proposes appropriate semver bump levels (
patch,minor,major) with rationale. - Creates a changeset markdown file in
.changeset/. - Applies pending changesets (
changeset version) when requested.
Preconditions
- Repository uses
@changesets/cli(or has an equivalentchangesetscript). .changeset/exists or can be created.- The user requested changeset creation and/or application.
Safety rules
- Do not apply changesets unless the user asked to apply them.
- Do not invent package names; only use workspace package names found in
package.jsonfiles. - Exclude private/internal packages unless the repo convention explicitly versions them.
- If bump type is ambiguous, default to
patchand explain why. - Never include unrelated files or speculative release notes.
Workflow
- Inspect repo state:
git status --shortgit diff --name-only(and staged diff when relevant)
- Detect package manager and scripts from root
package.json. - Identify affected packages:
- For monorepos, map changed files to nearest package root.
- For single-package repos, use root package name.
- Decide bump level per package:
patch: bug fixes, internal refactors, non-breaking behavior changes.minor: new backwards-compatible functionality.major: breaking changes.
- Draft concise release note text focused on user impact.
- Create changeset file in
.changeset/*.mdwith frontmatter package bumps. - If user asked to apply it, run one of:
pnpm changeset versionnpm run changeset version(if script exists)bunx changeset version
- Report exactly what was created/changed.
Changeset template
---
"@scope/package-a": minor
"@scope/package-b": patch
---
Short, concrete summary of what changed and why users should care.
Command selection
Prefer project-native tooling in this order:
- Existing script in
package.json(for examplepnpm changeset,npm run changeset). - Package-manager exec (
pnpm changeset,bunx changeset,npx changeset).
Output format
Return:
Affected PackagesBump DecisionsChangeset FileApplied(yes/no, and command used)Notes(ambiguities, assumptions, or follow-ups)