pnpm install
pnpm typecheck
pnpm test # unit tests; the playground integration test needs that repo checked out
pnpm lint:js # oxlint; `pnpm lint:js:fix` applies what it can
pnpm format:check # oxfmt; `pnpm format` rewrites
pnpm build # rolldown -> dist/index.jsUnit tests sit next to the code in src/. Anything that needs a real repository lives in test/,
against fixtures in test/fixtures/: each shape is built once per run and copied per test, so a
test may commit and tag freely without paying to rebuild the history.
test/integration.local.test.ts drives the playground checkout and skips itself when that
repository is absent, so it runs locally and not in CI.
Every user-facing change needs a changeset — this action reads them to attribute a release, so a missing one means the PR goes unmentioned in its own comments.
pnpm changesetWrite the body as a conventional-commit title, then a short description only if the title leaves something unsaid:
---
'changesets-release-commenter': minor
---
feat: credit the action in a comment footer
Sits before the hidden marker, so a thread carrying a comment from an earlier version still
deduplicates.The title becomes the CHANGELOG entry, so it reads best in the same shape as the commit log.
dist/ is gitignored and never lives on main. A release commits it through the API as a child of
main's HEAD, so GitHub signs it, and tags that commit vX.Y.Z. Publishing the release moves the
vX tag to it, so the major ref always points at a built bundle.
pnpm bump and pnpm release drive that from CI; neither is meant to be run by hand on a clone.