ce-update

Installation
SKILL.md

Check Plugin Version

Verify the installed compound-engineering plugin version matches the upstream plugin.json on main, and recommend the update command if it doesn't. Claude Code only.

The upstream version comes from plugins/compound-engineering/.claude-plugin/plugin.json on main rather than the latest GitHub release tag, because the marketplace installs plugin contents from main HEAD. Comparing against release tags false-positives whenever main is ahead of the last tag (the normal state between releases).

Step 1: Probe versions

Run these three scripts in parallel via the Bash tool. Each prints a single line of output; capture the values for the decision logic below. Use ${CLAUDE_SKILL_DIR} so the path resolves correctly in both claude --plugin-dir local-development sessions and standard marketplace-cached installs.

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"

scripts/upstream-version.sh reads plugin.json on main via gh api. It prints the version string, or the sentinel __CE_UPDATE_VERSION_FAILED__ if gh is unavailable or rate-limited.

scripts/currently-loaded-version.sh and scripts/marketplace-name.sh parse ${CLAUDE_SKILL_DIR} against the marketplace-cache layout ~/.claude/plugins/cache/<marketplace>/compound-engineering/<version>/skills/ce-update. They print the version segment / marketplace segment, or the sentinel __CE_UPDATE_NOT_MARKETPLACE__ if the path doesn't match (typical for claude --plugin-dir local development).

Step 2: Apply decision logic

Handle failure cases

If scripts/upstream-version.sh printed __CE_UPDATE_VERSION_FAILED__: tell the user the upstream version could not be fetched (gh may be unavailable or rate-limited) and stop.

If scripts/currently-loaded-version.sh printed __CE_UPDATE_NOT_MARKETPLACE__: the skill is loaded from outside the standard marketplace cache. Two cases collapse to the same handling: a claude --plugin-dir local-development session, or a non-Claude-Code platform (this skill is Claude Code-only because it relies on the plugin harness cache layout). Tell the user:

"Skill is loaded from outside the marketplace cache at ~/.claude/plugins/cache/. This is normal when using claude --plugin-dir for local development. No action for this session. Your marketplace install (if any) is unaffected — run /ce-update in a regular Claude Code session (no --plugin-dir) to check that cache."

Then stop.

Compare versions

Up to datecurrently_loaded == upstream:

"compound-engineering v{version} is installed and up to date."

Out of datecurrently_loaded != upstream:

"compound-engineering is on v{currently_loaded} but v{upstream} is available.

Update with:

claude plugin update compound-engineering@{marketplace_name}

Then restart Claude Code to apply."

The claude plugin update command ships with Claude Code itself and updates installed plugins to their latest version; it replaces earlier manual cache sweep / marketplace-refresh workarounds. The marketplace name is derived from the skill path rather than hardcoded because this plugin is distributed under multiple marketplace names (for example, compound-engineering-plugin for public installs per the README, or other names for internal/team marketplaces).

Weekly Installs
144
GitHub Stars
15.9K
First Seen
Today