New to Claude Skills? Learn how to install them →

Cmodule-federation on GitHub

Changeset PR

Free

Streamline changeset creation for your repository.

Get this skill

Free · Opens the source repo

What Changeset PR does

The Changeset PR skill simplifies the process of creating and updating changesets for your current branch or pull request in a repository. It ensures that the changeset accurately reflects the live branch diff rather than relying on outdated information, which helps maintain clarity and correctness in your release notes. By automating the inspection of the current branch state against the base branch, this skill assists developers in identifying the appropriate package scope and release type for their changes.

This skill is particularly useful when a publishable package has changed, when a pull request lacks a changeset, or when an existing changeset needs correction. It guides users through a structured workflow that includes confirming the need for a changeset, identifying the relevant package scope, creating or editing a changeset file, and validating it against the repository's configuration. The skill also provides commands to report back on the changeset's status and any potential ambiguities, ensuring that developers have a clear understanding of the changes being documented.

For teams that manage multiple packages or have complex release processes, the Changeset PR skill helps prevent common pitfalls, such as creating unnecessary changesets for non-behavioral changes or failing to document important updates. By adhering to the repository's conventions and utilizing built-in validation scripts, this skill enhances the reliability of the changeset process, making it easier for developers to maintain accurate release notes and manage their codebase effectively.

When to use it

Use this skill when you need to create or update a changeset for a branch or pull request that includes publishable package changes.

When not to use it

Avoid using this skill for purely documentation changes or non-behavioral updates where a changeset is not required.

What you can build with it

Creating a New Changeset

When you make changes to a publishable package, use the skill to create a new changeset that accurately reflects those changes.

Updating Existing Changesets

If a changeset already exists for your branch, the skill allows you to edit it rather than creating a duplicate, ensuring clarity in your release notes.

Validating Changeset Syntax

Before finalizing a changeset, use the skill to validate it against the repository's configuration, ensuring it meets all necessary criteria.

How to install Changeset PR

View source

1. Install with the skills CLI

npx skills add module-federation/core/changeset-pr --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by module-federation

Changeset PR

Overview

Create a repo-correct changeset for the current branch, or update an existing one without widening scope unnecessarily. Verify both syntax and package scope before handoff.

Ground the changeset in the live branch diff, not stale branch intent. Always inspect the current branch state against its base before choosing package scope or release type.

Workflow

  1. Confirm whether a changeset is needed.
  2. Identify the publishable package scope from the live branch diff.
  3. Create or edit one .changeset/*.md file.
  4. Validate the file against repo config and branch scope.
  5. Report the exact commands run and any ambiguity that remains.

Decide Whether A Changeset Is Needed

  • Add a changeset when a publishable package behavior changes.
  • Do not add one for docs-only or non-behavioral repo changes unless the user explicitly wants release metadata anyway.
  • If unsure whether the change is user-visible enough to merit a release note, inspect existing changesets in .changeset/ and bias toward a short patch changeset rather than skipping silently.

Read references/repo-conventions.md when you need the repo-specific fixed-group, ignore-list, or release-flow details.

Determine Scope

First inspect the live branch state:

git diff --name-status origin/main...HEAD
git diff --stat origin/main...HEAD
git log --oneline --decorate --no-merges origin/main..HEAD

Use that to separate real publishable-package behavior changes from repo-local docs, skills, tooling, or cleanup.

Start with the helper script:

python3 .codex/skills/changeset-pr/scripts/inspect_changeset_scope.py --base origin/main

Use its output to separate:

  • touched publishable packages
  • ignored packages
  • fixed groups that will affect release planning

If the branch touches multiple publishable packages, include only the packages whose behavior actually changed. Do not add app/example packages from the ignore list.

Create Or Update The Changeset

Prefer editing an existing branch changeset when one already covers the same change. Otherwise create a new file in .changeset/ with the standard format:

---
"@module-federation/pkg-name": patch
---

Brief user-facing summary of the change.

Rules:

  • Keep the summary brief and release-note oriented.
  • Avoid implementation-detail dumps and nested bullets.
  • Use patch, minor, or major unless there is a specific reason to use none.
  • Quote package names in frontmatter.
  • Keep package scope tight even if the fixed group later broadens the computed plan.

The repo has a custom helper:

pnpm run changegen

Use it only if the user explicitly wants generated changeset text or the touched package is already covered by its configured package paths. Otherwise write the file directly.

Validate

There is no dedicated changeset validate command in the official CLI. Use these checks instead:

  1. Validate branch scope against the file:
python3 .codex/skills/changeset-pr/scripts/inspect_changeset_scope.py --base origin/main --file .changeset/<file>.md
  1. Validate that Changesets can parse and plan the release:
python3 .codex/skills/changeset-pr/scripts/run_changeset_status.py --verbose
  1. When machine-readable output is useful:
python3 .codex/skills/changeset-pr/scripts/run_changeset_status.py --output /tmp/changeset-status.json

Interpretation:

  • status verifies parseability and computed release planning.
  • status does not prove the changeset is branch-local or minimal in this repo because other pending changesets may already exist.
  • Fixed-group packages can cause broader or higher bumps than the frontmatter alone suggests.
  • Prefer the helper script over direct pnpm exec changeset status in Codex runs because shell wrappers in non-TTY sessions can add /dev/tty noise or otherwise make the raw CLI output unreliable.

Update Existing Changesets

When asked to update a changeset for a branch or PR:

  • search .changeset/*.md for the affected package name first
  • prefer editing the existing file if it clearly belongs to the same branch work
  • avoid creating duplicate files for the same single change unless the branch intentionally has multiple release notes

After editing, rerun both validation steps.

Report Back

Always report:

  • whether the branch needed a changeset
  • which packages were included
  • which commands were run
  • whether changeset status succeeded
  • any fixed-group or ignored-package caveats

Frequently asked questions about Changeset PR

Similar skills