| name | generate-changeset |
| description | Generate a changeset file for the current changes following the changesets pattern used in the project. |
Rule: Generating a Changeset
Goal
To guide an AI assistant in creating a changeset file that follows the @changesets/cli format. Changesets are markdown files with YAML frontmatter that describe what changed and will be used to generate changelogs and version bumps.
Process
Check for existing changesets: Look for a
.changesetdirectory in the project to confirm the project uses changesets. If it doesn't exist, inform the user that the project doesn't appear to use changesets.Analyze existing changesets: Read 1-2 existing changeset files in
.changeset/to understand the project's changeset pattern and style.Determine packages to include:
- In a monorepo: Identify which package(s) were modified by checking
git statusor analyzing the changes - In a single-package repo: Use the package name from
package.json
- In a monorepo: Identify which package(s) were modified by checking
Generate changeset content:
- Create a markdown file with YAML frontmatter
- IMPORTANT: AI tools should ONLY generate
patchbump types, neverminorormajor - Write a single, clear sentence summary of the changes following the project's existing changeset style
Save the changeset:
- Generate a unique filename using the pattern:
[adjective]-[noun]-[verb].md(e.g.,happy-lions-jump.md) - Save to
.changeset/directory - Inform the user that the changeset has been created and should be committed with their changes
- Generate a unique filename using the pattern:
Changeset File Format
---
"package-name": patch
---
Brief summary of the change in present tense
For monorepos with multiple packages:
---
"@scope/package-one": patch
"@scope/package-two": patch
---
Brief summary of the change
Rules
- ALWAYS use
patchfor bump type - Never generateminorormajorchangesets - Follow existing style - Match the tone and format of existing changesets in the project
- Be concise - Keep the summary brief but informative
- Use present tense - Write summaries in present tense (e.g., "Fixes bug" not "Fixed bug")
- One changeset per logical change - If there are multiple unrelated changes, create multiple changesets
Example Changeset
---
"@myapp/ui": patch
---
Fixes button hover state in dark mode
The button component now correctly displays the hover state when the application is in dark mode. Previously, the hover state was using the light theme colors.
Output
- Format: Markdown with YAML frontmatter
- Location:
.changeset/ - Filename:
[adjective]-[noun]-[verb].md
Final Instructions
- Check if project uses changesets before generating
- Follow the project's existing changeset pattern
- Only use
patchbump type - Generate a unique, descriptive filename
- Keep the summary clear and concise
- Remind user to commit the changeset file with their changes