ce-update
|
Works with
Claude CodeCursorCodex CLIGitHub CopilotGemini CLI
---
name: ce-update
description: |
license: MIT
---
# 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
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"
```
If `${CLAUDE_SKILL_DIR}` is unset or unresolved (the commands above fail with
`No such file or directory`), the harness does not expose the skill directory —
this is not a standard Claude Code session. Treat it the same as the
`__CE_UPDATE_NOT_MARKETPLACE__` case in Step 2: explain and stop.
`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 date** — `currently_loaded == upstream`:
> "compound-engineering **v{version}** is installed and up to date."
**Out of date** — `currently_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).More General & Other skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
1.5M
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
972.7k
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
828.8k

