mcpField
N
npm-publish

npm-publish

github.com/b-open-io开发1698 次安装4 周前更新
代码仓库

关于 npm-publish

npm-publish 是引导 Agent 发布 npm 包的技能,涵盖预检、更新变更日志、发布和验证。它通过脚本处理发布与令牌设置,并规定了如何向用户传达认证状态。

主要功能

  1. 01检查注册表版本并递增
  2. 02构建与变更日志流程
  3. 03通过脚本提交和发布
  4. 04基于浏览器设置令牌
  5. 05后台验证发布结果

适用场景

  1. 01准备带版本更新的软件包发布
  2. 02记录提交变更后发布
  3. 03处理认证失败并恢复发布
  4. 04确认已发布的软件包可用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/b-open-io/prompts --skill npm-publish

安装后在 Claude Code 中输入/npm-publish确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
.clawnet/
unsigned-skill.json
scripts/
preflight.sh
publish.sh
release.sh
setup-token.sh
verify.sh

详细介绍

npm-publish

必须 — 开始前请阅读

绝不要向用户索要 OTP 代码。 身份验证由脚本和 agent-browser 处理。

绝不要手动运行 npm/bun 命令,例如 npm whoami、npm view、bun publish 或 npm publish。

必须运行这些脚本。不要跳过步骤。

第 1 步:预检

bash ${CLAUDE_SKILL_DIR}/scripts/preflight.sh

确定性地处理:与 npm 注册表核对版本,必要时升级(重置间隔),构建,并输出提交日志。传入 minor 或 major 可覆盖默认的 patch 升级。

第 2 步:编写变更日志

读取预检输出中的提交日志。如果存在 CHANGELOG.md,请按现有格式在顶部添加条目;如果不存在,则创建该文件。使用预检输出中的版本。分类如下:重大变更、新增、变更、修复、安全、弃用。

第 3 步:发布(提交 + 推送 + 发布)

bash ${CLAUDE_SKILL_DIR}/scripts/release.sh [--access public]

先提交,再推送,然后调用 publish.sh。如果 publish.sh 输出 PUBLISH_SUCCESS,则发布完成,前往第 4 步。

如果 publish.sh 输出 AUTH_FAILED

Agent 必须协调令牌设置。不要将 setup-token.sh 作为一条长命令调用。 分两个阶段运行,并在两阶段之间与用户沟通。

阶段 1 — 填写表单:

bash ${CLAUDE_SKILL_DIR}/scripts/setup-token.sh fill

状态代码:

  • FORM_READY:<username> — Chrome 中的表单已填写,告知用户后继续
  • NOT_LOGGED_IN — 告知用户:“请在 Chrome 中登录 npmjs.com,然后我会重试”
  • FORM_NOT_FOUND — 告知用户:“找不到令牌表单。页面可能已更改。”

收到 FORM_READY 后,直接告知用户(不要放在 bash 命令中):

我已在 Chrome 中打开 npm 令牌创建表单并填写完毕(cli-publish、7 天、读写权限、所有软件包)。准备好后,请向下滚动并点击 Generate token。

阶段 2 — 获取令牌:

bash ${CLAUDE_SKILL_DIR}/scripts/setup-token.sh capture

此脚本会轮询,直到令牌出现在页面上,然后点击 Copy 按钮,从剪贴板读取令牌,将其写入 ~/.npmrc,并清空剪贴板。令牌不会出现在终端输出中。

状态代码:

  • TOKEN_SAVED — 成功,重试发布
  • CAPTURE_TIMEOUT — 告知用户:“无法获取令牌。请从 Chrome 中复制令牌,我会将其写入 ~/.npmrc”

收到 TOKEN_SAVED 后,重试发布:

bash ${CLAUDE_SKILL_DIR}/scripts/publish.sh [--access public]

告知用户:“如果浏览器提示,请完成 OTP 复选框验证。”

第 4 步:验证(后台)

bash ${CLAUDE_SKILL_DIR}/scripts/verify.sh <package-name> <version>

使用 run_in_background: true 运行。采用指数退避(5 秒、10 秒、20 秒、40 秒、60 秒)。

核心架构原则

脚本输出状态代码,Agent 负责解读并与用户沟通。 脚本输出隐藏在折叠的 bash 命令中,用户看不到。所有面向用户的沟通都必须由 Agent 直接发送,且在 bash 调用之外。

评论

支持 Markdown