بنقرة واحدة
npm-release
Guides design.md npm releases through Release Please and GitHub Release publish to npm.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Guides design.md npm releases through Release Please and GitHub Release publish to npm.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | npm-release |
| description | Guides design.md npm releases through Release Please and GitHub Release publish to npm. |
Release @shanepadgett/design.md from this repo.
.github/workflows/release-please.yml runs only by manual workflow_dispatch.v* tag and opens/updates a release PR.package.json, package-lock.json, .release-please-manifest.json, and CHANGELOG.md.main but does not automatically publish GitHub Release.main; that publishes GitHub Release with tag v<version>..github/workflows/npm-publish.yml.secrets.RELEASE_PLEASE_TOKEN, a fine-grained PAT with repository Contents: Read and write and Pull requests: Read and write, so releases it creates can trigger npm publish workflow.fix: -> patch.feat: -> minor.! or BREAKING CHANGE:) -> major.v and match package.json version after release PR merge.NPM_TOKEN unless workflow changes require it.Run read-only checks:
git status --short
git branch --show-current
git remote -v
git tag --list --sort=-creatordate | head -10
git log --oneline --decorate -20
node -p "require('./package.json').name + '@' + require('./package.json').version"
node -p "require('./package-lock.json').packages[''].version"
Confirm:
main@shanepadgett/design.mdpackage.json, package-lock.json, and .release-please-manifest.json versions match current release state.github/workflows/release-please.yml exists.github/workflows/npm-publish.yml existsRELEASE_PLEASE_TOKEN repository secret exists for Release PleaseUseful read-only checks:
git log --oneline $(git describe --tags --abbrev=0)..HEAD
gh pr list --state open --search "Release Please" --json number,title,url,headRefName
gh run list --workflow "Release Please" --limit 5
Release Please does not run on every push. The skill triggers it only when the user asks to release.
If no release PR exists and commits since last tag should produce a release, ask user before state-changing commands:
Trigger Release Please on
mainto open/update the computed release PR?
Then trigger Release Please:
gh workflow run "Release Please" --ref main
Poll bounded:
for attempt in $(seq 1 20); do
RUN_ID=$(gh run list --workflow "Release Please" --limit 1 --json databaseId --jq '.[0].databaseId')
STATUS=$(gh run view "$RUN_ID" --json status,conclusion --jq '.status + " " + (.conclusion // "")')
echo "Release Please run $RUN_ID: $STATUS"
if echo "$STATUS" | grep -q '^completed success$'; then
exit 0
fi
if echo "$STATUS" | grep -q '^completed '; then
gh run view "$RUN_ID" --log-failed
exit 1
fi
sleep 15
done
echo "Timed out waiting for Release Please. Check GitHub Actions manually."
exit 2
Then inspect release PR:
gh pr list --state open --search "Release Please" --json number,title,url,headRefName
gh pr view <number> --json title,body,files,commits
Confirm PR version and changelog match intended release. If wrong, fix commit history or Release Please config before merging.
Ask user before merging.
Preferred:
gh pr merge <number> --squash --delete-branch
After merge, Release Please does not publish GitHub Release automatically because workflow only runs by workflow_dispatch. Ask user before the second state-changing command:
Run Release Please again on
mainto publish GitHub Releasev<version>?
Then trigger Release Please again:
gh workflow run "Release Please" --ref main
Poll bounded with same Release Please polling loop from "Open or update release PR".
Then confirm GitHub Release exists:
gh release view v<version> --json tagName,name,publishedAt,url
Do not create duplicate release manually.
If gh unavailable, tell user to merge release PR in GitHub UI and wait for Release Please to publish release.
After GitHub Release publish:
Publish npm.npm publish --provenance --access public succeeds.npm view @shanepadgett/design.md version
npx --yes @shanepadgett/design.md@<version> --help
Use version-pinned npx for the CLI smoke test. Unversioned npx --yes @shanepadgett/design.md --help can fail to expose the designmd bin from npm/npx cache even when the published package is valid.
No background-watch. Use bounded polling, short sleeps, clear status.
Preferred GitHub CLI polling:
for attempt in $(seq 1 20); do
RUN_ID=$(gh run list --workflow "Publish npm" --limit 1 --json databaseId --jq '.[0].databaseId')
STATUS=$(gh run view "$RUN_ID" --json status,conclusion --jq '.status + " " + (.conclusion // "")')
echo "Publish npm run $RUN_ID: $STATUS"
if echo "$STATUS" | grep -q '^completed success$'; then
exit 0
fi
if echo "$STATUS" | grep -q '^completed '; then
gh run view "$RUN_ID" --log-failed
exit 1
fi
sleep 15
done
echo "Timed out waiting for Publish npm. Check GitHub Actions manually."
exit 2
Use tool timeout around 360 seconds. If shell tool times out or polling cannot find run, give GitHub Actions page as manual next step. Do not guess result.
Auth/OIDC failure -> tell user to configure npm trusted publishing:
@shanepadgett/design.mdshanepadgett/design.md.github/workflows/npm-publish.ymlThen publish new patch version through Release Please. Do not overwrite published npm versions.
Only after user confirms Release Please cannot create/publish release:
VERSION=$(node -p "require('./package.json').version")
gh release create "v${VERSION}" --target main --title "v${VERSION}" --generate-notes
Manual release requires:
package.json version matches package-lock.json root version.release-please-manifest.json version matchesmain.