원클릭으로
release-bibixx-workoutkit
Build, publish to npm, tag, and create a GitHub release for the SDK.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Build, publish to npm, tag, and create a GitHub release for the SDK.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | Release @bibixx/workoutkit |
| description | Build, publish to npm, tag, and create a GitHub release for the SDK. |
| allowed-tools | ["Bash","Read","Edit"] |
End-to-end release: pre-flight → pack preview → bump → publish → tag → GitHub release. Publish happens before tag+push, so a failed publish never leaves an orphan tag pointing at a version that isn't on npm.
Lint, format, typecheck, test, and build all run automatically on
npm publish via sdk/package.json's prepublishOnly script, which
delegates to lefthook run prepublish (see lefthook.yml).
A failing check aborts the publish — no special pre-step needed in this
skill.
npm publish succeeds.--force and never skip git hooks.npm publish from the agent — the account has WebAuthn 2FA
(YubiKey) and the prompt needs a TTY the agent doesn't have. Hand the
command to the user at step 6.git push fails, surface both the published
version and the push error clearly — the user has to resolve manually.Run each and stop on any failure:
git status --porcelain # must be empty
git rev-parse --abbrev-ref HEAD # must print "main"
git fetch origin && git status -sb # must be up to date with origin/main
npm whoami # must be logged in; if not, tell user to run `npm login` and stop
gh auth status # must be authenticated
sdk/package.json.patch / minor / major / explicit
x.y.z. Default suggestion: patch.NEW (the new version) but do not write it yet.Run:
gh api repos/bibixx/workoutkit/releases/generate-notes \
-f tag_name=vNEW -f target_commitish=main -f previous_tag_name=vPREV
(vPREV = the most recent v* tag; run git describe --tags --abbrev=0 to
find it.) If no previous tag exists, fall back to:
git log --pretty=format:'- %s (%h)'
Show the generated notes to the user and capture the approved body as
$NOTES. The user may edit before approving.
npm pack --dry-run -w @bibixx/workoutkit
Show the file list to the user for final review — catches anything
accidentally shipped or missing. (Checks + build run automatically in
step 6 via prepublishOnly; no need to run them here.)
npm version NEW --workspace @bibixx/workoutkit --no-git-tag-version
git add sdk/package.json package-lock.json
git commit -m "Release @bibixx/workoutkit vNEW"
--no-git-tag-version matters: we control tagging ourselves (step 7) so
publish can happen first.
npm publish -w @bibixx/workoutkit
The account has WebAuthn 2FA (YubiKey). The tap prompt needs a real TTY,
which the agent's non-interactive shell can't provide. Stop here, hand
off the exact command above, and wait for the user to confirm it
succeeded (e.g. npm view @bibixx/workoutkit version now prints the
new version). Then resume at step 7.
Uses publishConfig.access: "public" from sdk/package.json.
prepublishOnly runs lefthook run prepublish (lint / fmt / typecheck /
test, in parallel) then tsup before the upload — a failure here aborts
publish cleanly. The prepack script copies README.md + LICENSE into
sdk/; postpack cleans them back up so git status stays clean.
On failure: do NOT push commit or tag. Surface the error and stop.
Use an annotated tag — lightweight tags are rejected when
tag.gpgSign=true is set (it is in this repo).
git tag -a vNEW -m "Release @bibixx/workoutkit vNEW"
git push origin main --follow-tags
gh release create vNEW --title "vNEW" --notes "$NOTES"
Use the approved body from step 3.
Print:
https://www.npmjs.com/package/@bibixx/workoutkit/v/NEWgh release create output).git rev-parse vNEW.