home / skills / reactive / data-client / changeset
This skill analyzes code changes, generates changesets, updates docs, drafts blog entries, and prepares PR descriptions for user-facing releases.
npx playbooks add skill reactive/data-client --skill changesetReview the files below or copy the command above to add this skill to your agents.
---
name: changeset
description: Create changesets for version bump, release notes, changelog, PR description, semver patch/minor/major, breaking changes, and documentation updates after code changes
disable-model-invocation: true
---
# Create Changesets and PR
## Overview
Generate changesets, update documentation, draft blog entries, and prepare PR description for user-facing changes.
## Steps
1. **Analyze changes**
- Compare current branch to `master` to identify modified packages
- Group changes by impact type (feature, fix, breaking)
- Identify transitive dependencies that expose the change
2. **Determine affected packages**
- Include directly modified packages
- Add transitive dependents when interfaces/behaviors are exposed:
- `@data-client/endpoint` → also select `@data-client/rest`, `@data-client/graphql`
- `@data-client/core` or `@data-client/normalizr` → also select `@data-client/react`, `@data-client/vue`
3. **Run changesets**
- Run `yarn changeset` once per distinct change
- Select all affected packages (direct + transitive)
- Choose appropriate version bump (patch/minor/major)
- For packages under 1.0, use minor for breaking changes
4. **Update documentation**
- Update primary docs in `docs/` for any changed public APIs
- Search for all usages of changed APIs across `docs/`, `packages/*/README.md`, and root `README.md`
- Update all found references to reflect new behavior, signatures, or deprecations
- For new exports: add to relevant API reference pages
5. **Update release blog**
- Find the latest draft blog post in `website/blog/` (has `draft: true` in frontmatter)
- Add the change following `@website/blog/.cursor/rules/blog-posts.mdc`:
- Place in appropriate conceptual category section
- Include code example if applicable
- Link to PR/commit and relevant docs
- For breaking changes: add to summary's Breaking Changes section with anchor link
6. **Generate PR description**
- Output a PR description for the user to copy/paste using @.github/PULL_REQUEST_TEMPLATE.md format
- Fill in the sections based on the analyzed changes
- Link related issues if known
- Summarize motivation from changeset descriptions
- Describe solution at a high level first (not implementation details)
- Include any mermaid diagrams that might help convey key concepts, especially if one was present in a plan.md
- Drop 'Open questions' section if no relevant content
- Keep in mind you are a chat agent talking in markdown, so cannot start a markdown block without escaping the contents.
## Changeset Format
- **First line**: Action verb ("Add", "Fix", "Update", "Remove")
- **Breaking**: Prefix with `BREAKING CHANGE:` or `BREAKING:`
- **Body**: 1–3 lines describing outcome, not implementation
- **New exports**: Use "New exports:" with bullet list
## Code Examples in Changesets
- Fixes: `// Before: ... ❌` `// After: ... ✓`
- Breaking changes: Use `#### Before` and `#### After` headers
- Multiple use cases: Separate with brief labels
## Markdown Formatting
Follow `@.cursor/rules/markdown-formatting.mdc` for all markdown content including the PR desc.
This skill automates producing changesets, release notes, changelog entries, and PR descriptions after code changes. It identifies affected packages (including transitive dependents), recommends semver bumps (patch/minor/major), and scaffolds documentation and blog updates. The output is a ready-to-copy PR body and changeset files following the repository’s conventions.
It compares the current branch to master to detect modified packages and groups edits by impact type: feature, fix, or breaking change. The skill expands selection to transitive dependents when public interfaces are changed, guides a single run of yarn changeset per distinct change, and suggests the correct semver bump (with special rules for <1.0 packages). It also locates and updates docs, finds draft blog posts to append release notes, and generates a formatted PR description consistent with the repo’s template and markdown rules.
How do you decide which transitive packages to include?
Include directly modified packages and add dependents that consume exported interfaces or behavior. Use the provided map (example: endpoint → rest, graphql) and inspect imports to catch additional dependents.
What version bump should I pick for packages below 1.0?
Treat breaking changes as a minor bump for packages under 1.0. For non-breaking fixes use patch; for new features use minor.