Remix make-change-file
Create or update Remix repo change files under `packages/*/.changes`. Use when a user asks for release notes, a change file, a missing changelog entry, a prerelease note, or an update to existing unpublished release notes.
install
source · Clone the upstream repo
git clone https://github.com/remix-run/remix
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/remix-run/remix "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/make-change-file" ~/.claude/skills/remix-run-remix-make-change-file && rm -rf "$T"
manifest:
.agents/skills/make-change-file/SKILL.mdsource content
Make Change File
Overview
Write release notes that match this repository's
.changes conventions. Use it for both new change files and edits to existing unpublished ones.
Workflow
- Read the package's
,package.json
directory, and any relevant PR diff or commit range before writing anything..changes/ - Check whether an unpublished change file already exists for the same work. If it does, update it in place instead of creating a duplicate note.
- Choose the bump type from the package version and the user-facing impact.
- Write concise, user-facing release notes that describe shipped behavior, APIs, or exports.
- Run
to verify the rendered changelog output.pnpm changes:preview - Run
before finishing.pnpm run lint
Naming
- Use
.packages/<package>/.changes/[major|minor|patch].short-description.md - Keep the slug short, specific, and stable.
- Reuse existing deterministic names when the repo already has a pattern for that class of note.
- For Remix export-only changes, update
in place.packages/remix/.changes/minor.remix.update-exports.md - For brand-new package releases, prefer
.minor.initial-release.md
Bump Rules
- For
packages: use0.x
for new features and breaking changes,minor
for bug fixes.patch - Do not use
formajor
packages unless explicitly instructed.0.x - For
packages: use standard semver.1.x+ - Breaking changes are relative to
, not relative to earlier commits in the same PR.main - In
, breaking change notes must start with0.x
.BREAKING CHANGE: - For
prerelease mode, the bump type mostly controls changelog categorization while the prerelease counter advances.remix
Content Rules
- Document user-visible behavior, public API changes, exports, migrations, or upgrade work.
- Do not write release notes for internal refactors unless they surface as real API or behavior changes.
- Prefer a small number of logically grouped notes over many tiny files.
- If one package changes internally and another package re-exports the new surface, add notes for both when users can consume the change from both package entrypoints.
- Do not manually hard-wrap prose in
files. Keep each paragraph or bullet on a single source line and let rendered changelogs wrap naturally..changes/*.md - Use flat bullets only when they add clarity. Short paragraphs are usually better.
Remix-Specific Rules
re-export files are generated. Do not hand-edit them unless the task explicitly requires generated output.packages/remix/src/*- When
gains or changes public exports, capture that inpackages/remix/package.json
instead of inventing a one-off filename.minor.remix.update-exports.md - If the change exposes another package's new APIs through
, describe the surfacedremix/...
entrypoints, not just the underlying workspace package name.remix/...
Checklist
- Did you inspect existing unpublished
files first?.changes - Is the bump type correct for the package version?
- Did you reuse any deterministic filename the repo already expects?
- Does the note describe user-facing changes instead of implementation details?
- Does each paragraph or bullet stay on one source line without manual hard wrapping?
- Did
render the expected changelog entry?pnpm changes:preview