Agent skill
npm-publish
用于本仓库的 npm 发布流程。当用户提到发布到 npm、发包、npm publish、发布 latest、验证 npm 包版本或准备 npm release 时使用。优先复用仓库现有的 publish.sh 与 package.json 配置,而不是临时手写发布步骤。
Install this agent skill to your Project
npx add-skill https://github.com/friuns2/codexUI/tree/main/.agents/skills/npm-publish
SKILL.md
NPM Publish
仅用于本仓库 npm 包 @nervmor/codexui 的发布与发布前检查。
目标
基于仓库当前配置,安全完成以下其中一种任务:
- 仅检查当前包是否可发布
- 准备一次 npm 发布并说明将发布的版本
- 实际发布到 npm
- 发布后验证 npm registry 上的版本与 dist-tag
触发条件
当用户提到以下意图时使用:
- 发布到 npm
- 发 npm 包
- npm publish
- 发布 latest
- 检查当前版本能否发布
- 验证 npm 上的最新版本
固定上下文
- 包名来自
package.json,当前仓库应为@nervmor/codexui - 发布脚本为仓库根目录的
publish.sh publish.sh会:- 校验当前分支存在 upstream tracking branch,并先
fetch远端最新状态 - 如果本地分支落后于 tracking branch,则先 fast-forward 到最新;若已分叉则拒绝发布
- 如果同步完成后工作区没有未提交改动,则拒绝发布
- 读取本地
package.json的name与version - 读取 npm registry 上的
dist-tags.latest - 取本地版本与已发布版本中的较大者,再自动递增 patch
- 在版本号写回后执行
git add -A、创建 release commit,并打 release tag - 执行
npm run build - 执行
npm publish --access public
- 校验当前分支存在 upstream tracking branch,并先
默认必须通过仓库现有脚本发布:
bash publish.sh
不要手动拼装 npm version、npm run build、npm publish 来替代该脚本。
也不要手动补做 commit 或 tag 来替代脚本内建的 release 提交流程。
只有两种情况允许不直接调用 publish.sh:
- 用户明确要求修改发布流程本身
publish.sh已失效,且必须先修复流程才能完成任务
执行流程
1. 先确认当前意图
区分用户是要:
- 只做发布前检查
- 真正执行发布
- 发布后做 registry 验证
如果用户表达不清,但明显提到“发布”,默认按“实际发布”处理。
2. 发布前检查
至少检查以下内容:
git status --short
sed -n '1,220p' package.json
sed -n '1,220p' publish.sh
npm view "$(node -p "require('./package.json').name")" dist-tags.latest version 2>/dev/null || true
检查重点:
- 当前分支是否配置 upstream tracking branch
- 当前分支是否已经同步到远端最新提交,且没有落后或分叉
- 工作区是否有未提交改动
package.json中的name、version、files、bin、publishConfig.accesspublish.sh是否仍与当前发布策略一致- npm registry 上是否已有更高版本
- 当前 release tag 是否已存在
如果用户只要求“检查”或“准备发布”,到这里可以先汇报结论,不要擅自真正发布。
3. 实际发布
发布时默认直接执行:
bash publish.sh
除非命中上面的两个例外,否则不要改用手动 npm publish 流程。
如果 publish.sh 明显失效,应先修复脚本或修复它依赖的发布配置,再重新执行 bash publish.sh。
脚本当前的实际发布顺序应理解为:先改版本,再提交并打 tag,然后 build,最后 npm publish。
在进入改版本之前,脚本还会先同步 tracking branch 的远端状态;如果本地落后且无法安全 fast-forward,或同步后没有待发布改动,都会直接终止。
4. 发布后验证
发布完成后至少验证:
npm view "$(node -p "require('./package.json').name")" dist-tags.latest version
必要时补充:
npm pack --dry-run
用于确认最终发布内容与入口文件是否合理。
结果汇报要求
结果中应明确说明:
- 本次是“仅检查”、“准备发布”还是“已实际发布”
- 发布使用的是仓库现有
publish.sh,还是对流程做了修复后再发布 - 发布前的分支同步结果(up to date / fast-forward / 因落后或分叉被阻止)
- 发布前本地版本、registry 最新版本、最终发布版本
- 本次生成的 release commit 和 tag
- 发布后
latest是否已指向预期版本
如果发布失败,要说明失败命令、失败阶段和下一步阻塞点。
与仓库规则的关系
- 如果为了发布修改了仓库代码或发布脚本,完成后仍要遵循仓库默认收口:
npm run build,并重启4173的tmux会话 - 如果用户要求验证
npx行为,先发布,再验证已发布的@latest包;不要用本地未发布结果代替 - “push” 在本仓库语境下不等于推送远端;除非用户明确要求,否则不要执行远端推送
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
codex-app-parity
Use when implementing or changing user-visible behavior/UI in this repository and parity with the installed Codex desktop app must be validated before coding.
github-pr-acceptance
upstream-sync-curator
用于这个仓库中“先分析 upstream 提交与代码变更,再按功能主题选择性引入 upstream 变更;所有操作在临时 worktree 中完成,并在难解冲突时优先保留当前 fork 实现”。当用户提到 upstream sync、同步源仓库、选择性合并 upstream、分析上游提交、挑功能合并等意图时使用。仅适用于 nervmor/codexui 与其上游 friuns2/codexUI。
obsidian-clipper-template-creator
Guide for creating templates for the Obsidian Web Clipper. Use when you want to create a new clipping template, understand available variables, or format clipped content.
claude-code-expert
Especialista profundo em Claude Code - CLI da Anthropic. Maximiza produtividade com atalhos, hooks, MCPs, configuracoes avancadas, workflows, CLAUDE.md, memoria, sub-agentes, permissoes e integracao com ecossistemas.
lex
Centralized 'Truth Engine' for cross-jurisdictional legal context (US, EU, CA) and contract scaffolding.
Didn't find tool you were looking for?