.agents/skills/add-changeset/SKILL.md
Add one Markdown file under .changeset/ whose front matter lists every changed publishable Rust crate in the PR, plus swc_core when any Rust crate changes.
Find the PR base and changed files.
gh pr view --json baseRefName,headRefName,body when the branch has a GitHub PR.git diff against the PR merge base; include staged and unstaged local changes when preparing an unpushed PR.scripts/changed-rust-crates.mjs from this skill to get a first pass of directly touched Rust crates.Read the code, not only the helper output.
Cargo.toml, Cargo.lock, rust-toolchain, .cargo/, and release tooling manually; they may affect crates without changing files inside the crate directory.publish = false crates.Classify every changed publishable Rust crate.
major for every crate whose public API, behavior contract, feature semantics, serialized output, CLI-visible behavior, or documented compatibility is breaking.major for a crate when one of its runtime dependencies changed in a breaking way. Check that crate's [dependencies], target-specific runtime dependencies, and relevant Cargo.lock changes; do not apply this rule to dev-only or build-only dependencies.major through SWC's reverse internal dependency graph just because another crate depends on a breaking crate; SWC's bump command handles that internal propagation after reading the changeset.minor for non-breaking new public functionality, new supported syntax, new options, new public exports, or meaningful user-visible capability.patch for bug fixes, performance work, refactors, internal-only changes, tests, fixtures, documentation, or dependency bumps that do not add a non-breaking capability.major.Check swc_core exposure explicitly.
swc_core or exposed through a swc_core feature, list swc_core: major.swc_core exposes, list swc_core: minor.swc_core files or feature mappings changed directly and the change is not breaking or additive, list swc_core: patch.swc_core bump is required, include swc_core: patch even when swc_core files did not change.Write the changeset.
.changeset/<short-kebab-summary>.md.fix(es/parser): ..., feat(es/parser): ..., perf(es/parser): ..., or refactor(es/parser): ....---
swc_core: minor
swc_ecma_parser: minor
---
perf: Optimize es parser comment finalization
Run this helper from the repository root:
node .codex/skills/add-changeset/scripts/changed-rust-crates.mjs
Useful options:
node .codex/skills/add-changeset/scripts/changed-rust-crates.mjs --base origin/main
node .codex/skills/add-changeset/scripts/changed-rust-crates.mjs --json
node .codex/skills/add-changeset/scripts/changed-rust-crates.mjs --include-private
Treat the helper as an inventory aid. It does not decide breaking changes, does not understand public API exposure, and cannot fully interpret workspace-level changes.