changeset-changelog
Skill882 starsChanged 16 days agoMITView on GitHub
Use this skill whenever the user asks about changelogs, Changesets, release notes, conventional commits, commit messages for release notes, or making user-visible project changes that should appear in a future npm/GitHub release. Trigger when preparing commits or PRs that include features, fixes, docs users rely on, package behavior changes, CLI changes, install changes, or release process changes. This skill keeps CHANGELOG.md generated at release time instead of manually edited during development.
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 12 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Do not manually edit CHANGELOG.md during normal feature/fix work.
- Distinctive: line 14
Use Conventional Commit style for commit messages when committing, but do not rely on commit messages as the only changelog source.
- Distinctive: line 15
Write release notes for users, not as raw implementation logs.
- Distinctive: line 19
Create a changeset for changes that affect users, operators, package consumers, or release/install behavior, including:
- Distinctive: line 32
When in doubt, ask briefly or create a patch changeset with a clear note.
- Distinctive: line 36
Prefer the CLI when interaction is practical:
- Very specific: line 52
Use the package name from package.json.
- Distinctive: line 68
Keep entries concise and user-facing:
- Distinctive: line 70
Start with an imperative or past-tense summary of the user impact.
- Distinctive: line 72
Avoid internal-only details like file names unless they help users.
- Distinctive: line 73
Avoid vague notes like “misc fixes” or “update code”.
- Distinctive: line 97
When asked to commit, use Conventional Commit style:
- Distinctive: line 104
Keep commits and changesets aligned, but remember their audiences differ:
- Distinctive: line 106
Commit message: developer history.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Changeset changelog workflow
This project uses Changesets so release notes are collected as small per-change markdown files during development and converted into CHANGELOG.md during release prep. This avoids multiple branches editing the same CHANGELOG.md section.
Core rules
- For user-visible changes, add a
.changeset/*.mdfragment. - Do not manually edit
CHANGELOG.mdduring normal feature/fix work. Letchangeset versiongenerate or update it during release prep. - Use Conventional Commit style for commit messages when committing, but do not rely on commit messages as the only changelog source.
- Write release notes for users, not as raw implementation logs.
When a changeset is needed
Create a changeset for changes that affect users, operators, package consumers, or release/install behavior, including:
- New features or UI behavior
- Bug fixes users can observe
- CLI, package exports, install, service, or configuration changes
- Documentation users rely on for setup or usage
- Dependency/runtime requirement changes
- Release-process changes that future maintainers need to see
A changeset is usually not needed for purely internal refactors, tests, lint-only changes, or build cleanup unless the user wants them recorded.
A changeset is also not needed for changes that are not part of what a pi-web release ships to users. The release is the published npm package, and its contents are an allowlist defined by the files field in package.json (plus package.json itself). Anything outside that allowlist never reaches package consumers, so it cannot be a user-visible release change. This includes repo-only material such as agent skills under .agents/ and skills/, internal docs, CI config, and developer tooling. If you are unsure whether a path ships, check it against package.json files (or run npm pack --dry-run); when a change lives entirely outside the published files, skip the changeset unless the user explicitly wants it recorded.
When in doubt, ask briefly or create a patch changeset with a clear note.
How to create a changeset
Prefer the CLI when interaction is practical:
npm run changesetFor non-interactive agent work, create a file manually under .changeset/ with a unique kebab-case name:
---
"@jmfederico/pi-web": patch
---
Fix session command handling so browser/API restarts do not interrupt active Pi sessions.Use the package name from package.json; for this repo it is @jmfederico/pi-web.
Choosing patch/minor/major
This repo uses CalVer shaped as semver: MAJOR.YYYYMM.PATCH (for example, 1.202605.3). The semver minor position is the release month, not feature size. Because only the first component represents breaking compatibility, choose Changeset bump types this way:
patch: all non-breaking changes, including bug fixes, docs corrections, polish, release-process improvements, small compatible behavior changes, and new backward-compatible user-facing capabilities.minor: do not use for this repo. The release workflow setsYYYYMMfrom the release date.major: use only when the user explicitly requests a breaking/major release. Breaking changes can include changes to CLI, install expectations, package API, config, data formats, or supported runtime behavior.
If you believe a change is breaking but the user has not explicitly requested a major release, pause and ask the user to confirm whether to release it as a breaking major version or change the work so it remains non-breaking. Do not infer or perform a major version bump on your own.
During release prep, the npm release skill always computes the version from the release date (MAJOR.YYYYMM.PATCH) and increments PATCH only when another release already exists for that major/month. Do not ask whether to choose a patch increase or a date change for normal releases.
Writing good changeset text
Keep entries concise and user-facing:
- Start with an imperative or past-tense summary of the user impact.
- Mention the affected area when useful: sessions, web UI, CLI, install, extensions, release workflow.
- Avoid internal-only details like file names unless they help users.
- Avoid vague notes like “misc fixes” or “update code”.
Good examples:
Preserve active Pi sessions when the web/API development service restarts.Add a project-local release workflow skill that publishes npm packages through GitHub Actions instead of local publishing.Poor examples:
Changed sessionCommandService.ts.Fix stuff.Conventional Commit guidance
When asked to commit, use Conventional Commit style:
feat: add persistent session reconnect handlingfix: preserve queued commands across API restartsdocs: document systemd user serviceschore(release): v1.202605.4
Keep commits and changesets aligned, but remember their audiences differ:
- Commit message: developer history.
- Changeset text: future release notes for users.
Release prep handoff
During release prep, use the npm-release-via-github-actions skill. It should run:
npm run release:versionThat consumes .changeset/*.md, updates package.json / lockfile versions, and generates or updates CHANGELOG.md. Publishing still happens only through GitHub Actions after a GitHub Release is published.
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- code-quality-architectureSkill
- documentation-guideSkill
- npm-release-via-github-actionsSkill
- testing-guideSkill
- ux-guideSkill
- relay-runnerSkill
- relaySkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

