mcpField
C
claude-code-plugin-release

claude-code-plugin-release

github.com/thedotmack开发104.0k4.2k 次安装今天更新
代码仓库

关于 claude-code-plugin-release

用于 claude-code-plugin 的发布工作流技能,指导版本更新、构建验证、提交、打标签、移交发布及后续处理。

主要功能

  1. 01判断版本变更类型
  2. 02更新版本清单
  3. 03构建并同步产物
  4. 04提交、打标签并推送
  5. 05移交 npm 发布
  6. 06创建发布并更新变更日志

适用场景

  1. 01准备插件版本发布
  2. 02验证各清单中的版本一致
  3. 03完成需要维护者操作的发布步骤

安装

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

$npx skills add https://github.com/thedotmack/claude-mem --skill claude-code-plugin-release

安装后在 Claude Code 中输入/claude-code-plugin-release确认已加载。

附带文件scripts/generate_changelog.js

详细介绍

版本升级与发布工作流

重要: 开始前,请规划并撰写详细的发布说明。

关键: 提交所有内容(包括构建产物)。此工作流结束时,不得有任何未提交或未推送的内容。最后运行 git status 进行确认。

准备工作

  1. 分析:判断此次变更属于 PATCH(错误修复)、MINOR(功能)还是 MAJOR(破坏性变更)。

  2. 环境:通过 git remote -v 确定仓库所有者和名称。

  3. 路径 — 每个包含版本字符串的文件:

    • package.json — npm/npx 发布的版本(npx [email protected] 从此处解析版本)
    • plugin/package.json — 打包的插件运行时依赖
    • .claude-plugin/marketplace.json — plugins[0].version 中的版本
    • .claude-plugin/plugin.json — 顶层 Claude 插件清单
    • plugin/.claude-plugin/plugin.json — 打包的 Claude 插件清单
    • .codex-plugin/plugin.json — Codex 插件清单
    • plugin/.codex-plugin/plugin.json — 打包的 Codex 插件清单
    • openclaw/openclaw.plugin.json — OpenClaw 插件清单

    编辑前确认覆盖范围:git grep -l "\"version\": \"<OLD>\"" 应列出全部八个文件。如果自本文档上次更新后新增了清单,请更新此列表。

工作流

  1. 更新:更新上述每个路径中的版本字符串。不要修改 CHANGELOG.md — 它会重新生成。
  2. 验证:运行 git grep -n "\"version\": \"<NEW>\"",确认八个文件中的版本均已更新。运行 git grep -n "\"version\": \"<OLD>\"",结果应为空。
  3. 构建并同步:运行 npm run build-and-sync,以重新生成构建产物、同步本地市场副本、重启工作进程并清空队列。发布验证时不要使用普通的 npm run build,因为它可能导致本地市场或工作进程未同步。
  4. 提交:git add -A && git commit -m "chore: bump version to X.Y.Z"。
  5. 打标签:git tag -a vX.Y.Z -m "Version X.Y.Z"。
  6. 推送:git push origin main && git push origin vX.Y.Z。
  7. 发布到 npm — 移交人工处理。 人类维护者提出了 npm 安全问题,因此现在发布需要他们才能提供的凭据或 2FA。Agent 不得自行运行 npm publish(或 np / npm run release:*,这些命令也会执行发布)。现在将 npm 发布移交给人工处理: 停止操作,并告知维护者版本已提交、打标签并推送,且他们必须发布到 npm,才能使 npx [email protected] 正常解析。提供以下命令:
    npm publish   # 由 HUMAN 运行 — prepublishOnly 脚本会重新构建软件包
    
    等待维护者确认已发布,然后验证发布是否成功:
    npm view [email protected] version   # 应输出 X.Y.Z
    
    如果发布构建修改了本地构建产物,之后再次运行 npm run build-and-sync。
  8. GitHub 发布:gh release create vX.Y.Z --title "vX.Y.Z" --notes "RELEASE_NOTES"。
  9. 变更日志:通过项目的变更日志脚本重新生成:
    npm run changelog:generate
    
    (运行 node scripts/generate-changelog.js,该脚本会从 GitHub API 获取发布记录并重写 CHANGELOG.md。)
  10. 同步变更日志:提交并推送更新后的 CHANGELOG.md。
  11. 通知:从 ~/Scripts/claude-mem/ 运行 Discord 通知命令;其中存有包含 Discord webhook 详情的 .env:
    cd ~/Scripts/claude-mem/ && npm run discord:notify vX.Y.Z
    
    即使发布工作区中没有本地 .env,也要执行此操作。
  12. 完成:运行 git status — 工作区必须干净。

检查清单

  • 八个配置文件的版本号均一致
  • 使用 git grep 搜索旧版本号,结果为零
  • npm run build-and-sync 已成功运行
  • Git 标签已创建并推送
  • 已将 NPM 发布交由人工处理(Agent 不会运行 npm publish——人工提出了安全方面的顾虑);人工完成发布后,npm view [email protected] version 会确认发布成功(因此 npx [email protected] 可以解析)
  • 已创建附有说明的 GitHub 发布版本
  • CHANGELOG.md 已更新并推送
  • 已从 ~/Scripts/claude-mem/ 发送 Discord 通知
  • git status 显示工作区干净

评论

支持 Markdown