ワンクリックで
release
// Release a single @flareapp/* package to npm using release-it. Runs cross-workspace pre-flight checks, invokes release-it from the package directory, and updates the CLAUDE.md version table.
// Release a single @flareapp/* package to npm using release-it. Runs cross-workspace pre-flight checks, invokes release-it from the package directory, and updates the CLAUDE.md version table.
| name | release |
| description | Release a single @flareapp/* package to npm using release-it. Runs cross-workspace pre-flight checks, invokes release-it from the package directory, and updates the CLAUDE.md version table. |
| disable-model-invocation | true |
| allowed-tools | Bash, Read, Edit |
| argument-hint | <package-name> [version] |
Release the @flareapp/$0 package using release-it. Optional $1 is a version string (patch, minor,
major, or an explicit x.y.z). If $1 is omitted, ask the user which bump is appropriate based on recent
commits before running, then pass it to release-it.
Valid $0 values: js, react, vue, vite.
release-it is installed once at the repo root, configured per package in packages/$0/.release-it.json."release": "release-it" in its package.json scripts.release-it enforces clean working tree + main branch, bumps version, commits, tags, pushes, then publishes.prepublishOnly runs the build, so the published artifact is always fresh.before:release hook runs npm test --if-present. @flareapp/js and @flareapp/react have test
scripts today; @flareapp/vue will once PR #31 lands; @flareapp/vite has no tests.The release-it flow does not type-check, does not build other packages, and does not run cross-workspace tests.
This skill performs those checks before invoking release-it.
Confirm the working tree is clean and the branch is main:
git status
git rev-parse --abbrev-ref HEAD
If not on main or there are uncommitted changes, abort and tell the user.
Confirm the package exists by reading packages/$0/package.json. Note the current version.
Run cross-workspace validation from the repo root. Abort on any failure:
npm run typescript
npm run test
npm run build
$1 is set, use it as-is.$1 is empty, summarize the commits since the last @flareapp/$0@* tag (git log @flareapp/$0@<last>..HEAD -- packages/$0)
and propose a bump (patch / minor / major). Ask the user to confirm before continuing.$0 is js and the bump is a major bump, read packages/react/package.json, packages/vue/package.json,
and packages/vite/package.json. For each, check the peerDependencies["@flareapp/js"] range. If the new
version falls outside the range, warn the user. Do not edit those files automatically.release-it will do
(commit message, tag name, push, npm publish). Ask for explicit confirmation before continuing.Run from the package directory:
cd packages/$0 && npm run release -- $1
If the user wants a dry run first, add --dry-run:
cd packages/$0 && npm run release -- $1 --dry-run
release-it is interactive. It will prompt for npm OTP if 2FA is on. Pass through any prompts to the user.
If release-it fails:
before:release hook failure (test failed): fix the test, do not retry the release until tests pass.npm publish failure: the git commit and tag may have already been pushed. Investigate before retrying.
Do not blindly re-run npm run release because the version bump commit already exists.Update the version column in the "Monorepo structure" table in .claude/CLAUDE.md to reflect the new version
of @flareapp/$0.
Print a summary:
@flareapp/$0@flareapp/$0@<new-version>https://www.npmjs.com/package/@flareapp/$0Remind the user to run the sync-versions skill if @flareapp/js was bumped to a new major version.