From jdeploy
Publish a jDeploy application to npm or GitHub. Creates native installers via GitHub Actions or publishes to npm registry.
How this skill is triggered — by the user, by Claude, or both
Slash command
/jdeploy:publishThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Publish a jDeploy application to npm or GitHub.
Publish a jDeploy application to npm or GitHub.
This skill publishes your application so users can install it. It supports two publish targets:
npm install -g installationThe skill remembers your preferred publish target in .jdeploy/config.json.
Look for existing publish preference:
cat .jdeploy/config.json 2>/dev/null
If .jdeploy/config.json exists and has publishTarget, use that as the default.
If no preference is saved, ask the user:
"Where would you like to publish?"
GitHub (Recommended) - Creates native installers for Windows, macOS, and Linux. Users download from your releases page.
npm - Publishes to npm registry. Users install with npm install -g <package-name>.
Create .jdeploy/config.json to remember the choice:
mkdir -p .jdeploy
{
"publishTarget": "github"
}
Write this file so future publishes use the same target automatically.
# Verify git repo
git status
# Verify remote exists
git remote -v
# Check for uncommitted changes
git status --porcelain
If there are uncommitted changes, ask the user to commit first.
ls .github/workflows/jdeploy.yml 2>/dev/null
If the workflow doesn't exist, offer to create it. Use the template from CLAUDE.md section "github-workflows".
Read version from package.json:
node -p "require('./package.json').version"
Ask user to confirm version or bump it (1.0.0 -> 1.0.1, 1.1.0, or 2.0.0).
If bumping, update package.json:
npm version patch # or minor, or major
# Ensure changes are committed
git add -A && git commit -m "Release v<version>" || true
# Push to remote
git push
# Create the release
gh release create v<version> --title "v<version>" --notes "Release v<version>"
Tell the user:
Release created: Link to https://github.com/<owner>/<repo>/releases/tag/v<version>
GitHub Actions building: The jDeploy workflow is now building native installers
Monitor progress: Link to https://github.com/<owner>/<repo>/actions
When complete: Installers will be attached to the release (typically 5-10 minutes)
Users can install from: https://github.com/<owner>/<repo>/releases/latest
# Verify npm login
npm whoami
If not logged in, instruct user:
npm login
Check that name in package.json is a valid, available npm package name:
Maven:
mvn clean package -DskipTests
Gradle:
./gradlew build -x test
npm publish
For scoped packages that should be public:
npm publish --access public
Tell the user:
Published: https://www.npmjs.com/package/<package-name>
Users can install with:
npm install -g <package-name>
Or run directly with:
npx <package-name>
If the user wants to switch targets:
# Edit .jdeploy/config.json
Change publishTarget to "github" or "npm".
Or simply delete the file to be prompted again:
rm .jdeploy/config.json
"gh: command not found": Install GitHub CLI: https://cli.github.com/
"authentication required":
gh auth login
"release already exists": Either delete the existing release or bump the version.
"workflow not found":
Create .github/workflows/jdeploy.yml using the template.
"npm ERR! 403":
npm login"npm ERR! 402 Payment Required":
npm publish --access public for public packages"ENEEDAUTH":
npm login
# Publish to GitHub (after first time)
gh release create v1.0.0 --title "v1.0.0" --notes "Initial release"
# Publish to npm (after first time)
npm publish
# Check saved preference
cat .jdeploy/config.json
# Reset preference
rm .jdeploy/config.json
Publish preferences are stored in the project at:
<project-root>/.jdeploy/config.json
Schema:
{
"publishTarget": "github"
}
Valid values for publishTarget: "github", "npm"
npx claudepluginhub shannah/jdeploy-claude --plugin jdeploy配置 npm 包通过 GitHub Actions 自动发布到 npmjs.com。使用 OIDC Trusted Publishing(无需 npm token)。 当用户提到"发布 npm"、"npm publish"、"配置 npm 自动发布"、"npm 包发布"、"设置 npm CI/CD"、 "把包发到 npm"、"npm trusted publishing"、"OIDC 发布"时使用此技能。 也适用于用户已有项目想添加 npm 自动发布流程的场景,或者 npm publish 失败需要排查的场景。
Sets up pubm in JS/TS and Rust projects: analyzes structure, installs pubm, configures registries (npm, jsr, crates.io, private), and integrates CI workflows.
Automates npm package publishing with version bumping, changelog updates, git push, and automatic token rotation via agent-browser when auth expires.