关于 ce-update
ce-update 是面向 Claude Code 的技能,用于比对已安装的 compound-engineering 插件与上游 main 分支版本,并在需要时给出更新命令。
主要功能
- 01比对已安装版本与上游版本
- 02从 main 分支的 plugin.json 读取版本
- 03根据技能路径识别 marketplace
- 04处理版本获取失败及非 marketplace 情况
适用场景
- 01检查 marketplace 插件是否为最新版本
- 02为过期插件查找更新命令
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ everyinc/ compound-engineering-plugin --skill ce-update安装后在 Claude Code 中输入/ce-update确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/currently-loaded-version.shmarketplace-name.shupstream-version.sh详细介绍
检查插件版本
验证已安装的 compound-engineering 插件版本是否与 main 上游的 plugin.json 一致;若不一致,则推荐更新命令。
仅适用于 Claude Code。
上游版本来自 main 上的 plugins/compound-engineering/.claude-plugin/plugin.json,而不是最新的 GitHub 发布标签,因为 Marketplace 会从 main HEAD 安装插件内容。若 main 领先于上一个标签(发布间的常态),与发布标签比较就会产生误报。
第 1 步:探测版本
使用 Bash 工具并行运行以下三个脚本。每个脚本都会输出一行;请捕获这些值,以供下方的决策逻辑使用。使用 ${CLAUDE_SKILL_DIR},确保路径在 claude --plugin-dir 本地开发会话和标准 Marketplace 缓存安装中都能正确解析。
bash "${CLAUDE_SKILL_DIR}/scripts/upstream-version.sh"
bash "${CLAUDE_SKILL_DIR}/scripts/currently-loaded-version.sh"
bash "${CLAUDE_SKILL_DIR}/scripts/marketplace-name.sh"
如果 ${CLAUDE_SKILL_DIR} 未设置或无法解析(上述命令失败并显示 No such file or directory),则说明运行环境未提供技能目录——这不是标准的 Claude Code 会话。按第 2 步中的 __CE_UPDATE_NOT_MARKETPLACE__ 情况处理:说明原因并停止。
scripts/upstream-version.sh 会通过 gh api 读取 main 上的 plugin.json。它会输出版本字符串;如果 gh 不可用或受到速率限制,则输出哨兵值 __CE_UPDATE_VERSION_FAILED__。
scripts/currently-loaded-version.sh 和 scripts/marketplace-name.sh 会根据 Marketplace 缓存布局解析 ${CLAUDE_SKILL_DIR}:
~/.claude/plugins/cache/<marketplace>/compound-engineering/<version>/skills/ce-update。
它们会输出版本段 / Marketplace 段;如果路径不匹配(claude --plugin-dir 本地开发的典型情况),则输出哨兵值 __CE_UPDATE_NOT_MARKETPLACE__。
第 2 步:应用决策逻辑
处理失败情况
如果 scripts/upstream-version.sh 输出了 __CE_UPDATE_VERSION_FAILED__:告知用户无法获取上游版本(gh 可能不可用或受到速率限制),然后停止。
如果 scripts/currently-loaded-version.sh 输出了
__CE_UPDATE_NOT_MARKETPLACE__:该技能从标准 Marketplace 缓存之外加载。有两种情况会按相同方式处理:claude --plugin-dir 本地开发会话,或非 Claude Code 平台(此技能仅适用于 Claude Code,因为它依赖插件运行环境的缓存布局)。告知用户:
“技能从 Marketplace 缓存
~/.claude/plugins/cache/之外加载。使用claude --plugin-dir进行本地开发时,这是正常情况。本次会话无需采取任何操作。 你的 Marketplace 安装(如果有)不受影响——请在常规 Claude Code 会话中(不带--plugin-dir)运行/ce-update,以检查该缓存。”
然后停止。
比较版本
已是最新 — currently_loaded == upstream:
“compound-engineering v{version} 已安装且为最新版本。”
已过期 — currently_loaded != upstream:
“compound-engineering 当前为 v{currently_loaded},但已有 v{upstream} 可用。
使用以下命令更新:
claude plugin update compound-engineering@{marketplace_name}然后重启 Claude Code 以应用更新。”
claude plugin update 命令由 Claude Code 自身提供,可将已安装的插件更新到最新版本;它取代了早期手动清理缓存 / 刷新 Marketplace 的变通做法。Marketplace 名称根据技能路径推导,而非硬编码,因为此插件会通过多个 Marketplace 名称分发(例如,README 中所述面向公开安装的 compound-engineering-plugin,或供内部 / 团队 Marketplace 使用的其他名称)。