用途:为 Elixir/Phoenix 插件执行完整、一致的版本化发布流程,属于贡献者工具,不随插件分发。
主要步骤:确认在 main 分支且工作树干净;用 git describe --tags --abbrev=0 取上次发布标签作为递增基线;按 Unreleased 内容选择 MAJOR/MINOR/PATCH。手动改五个文件的版本号:plugins/elixir-phoenix/.claude-plugin/plugin.json(基准)、plugins/ecto/.claude-plugin/plugin.json、plugins/lv/.claude-plugin/plugin.json、package.json,package-lock.json 用 npm install --package-lock-only 生成。再运行 make generated-skills-sync 与 make generated-skills-snapshots 更新并确认 targets/codex、targets/pi 清单。将 CHANGELOG 的 Unreleased 改为 [X.Y.Z] - 日期,并在顶部补新的空 Unreleased。仅在计数或版本标注变化时更新 README,必要时检查技能教程速查表。
门禁与发布:make ci(lint、test、validate、eval-all)必须为绿才提交;提交信息形如 Release vX.Y.Z — 摘要;打 git tag vX.Y.Z;推送与 gh release create 属对外操作,须先向用户确认并展示将推送/发布的内容,再执行 git push origin main、git push origin vX.Y.Z、gh release create vX.Y.Z。发布说明取自新 CHANGELOG 段落,前置升级警告,末尾附文档页脚。最后用 gh release view vX.Y.Z 与 git describe --tags --abbrev=0 验证。
硬性限制:make ci 未绿不得发布;不使用 claude plugin tag,须手动打标签;plugin.json 版本、CHANGELOG 标题、git 标签三者必须一致;发布前必须确认;仅递增 plugin.json 才能让已安装用户更新;始终保留空 Unreleased;禁止强制推送;每次发布正文需附 https://phxagents.dev 页脚;破坏性升级需以警告块开头并给出确切命令。模板与细节见 ${CLAUDE_SKILL_DIR}/references/templates.md。适用场景:插件维护者切版本发布会。未提供的收费、平台与效果信息暂未提供。