mcpField
C
ce-update

ce-update

github.com/everyincAgent 工作流25.8k1.8k 次安装今天更新
代码仓库

关于 ce-update

ce-update 是面向 Claude Code 的技能,用于比对已安装的 compound-engineering 插件与上游 main 分支版本,并在需要时给出更新命令。

主要功能

  1. 01比对已安装版本与上游版本
  2. 02从 main 分支的 plugin.json 读取版本
  3. 03根据技能路径识别 marketplace
  4. 04处理版本获取失败及非 marketplace 情况

适用场景

  1. 01检查 marketplace 插件是否为最新版本
  2. 02为过期插件查找更新命令

安装

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

$npx skills add https://github.com/everyinc/compound-engineering-plugin --skill ce-update

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

包含的文件

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

scripts/
currently-loaded-version.sh
marketplace-name.sh
upstream-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 使用的其他名称)。

评论

支持 Markdown