From skillstack
Use when the user wants to check for plugin updates, upgrade to a newer version, or encounters stale npm cache issues with SkillStack plugins.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skillstack:update-pluginsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manages updates for npm-sourced plugins from SkillStack storefronts. Does NOT cover the buyer or creator plugins — those are git-based and use `/plugin update` natively.
Manages updates for npm-sourced plugins from SkillStack storefronts. Does NOT cover the buyer or creator plugins — those are git-based and use /plugin update natively.
Run the discovery script to find all installed SkillStack storefront plugins:
node <this-skill-dir>/../../../scripts/discover-plugins.mjs --plugin-dir ~/.claude/plugins
Output is a JSON array of { slug, currentVersion, marketplace, pluginName }.
If the script returns empty or produces no output:
/skillstack:install-plugin to browse and install pluginsCall skillstack_check_updates with the slugs and current versions from Step 1.
The response has four parts — handle each; do not treat an empty updates_available as "all up to date" unless archived and unknown are also empty (a renamed/pulled plugin must never read as a silent all-clear):
updates_available[]: plugins with a newer version. List them and ask which to update, then apply in Step 3 under the same slug the buyer has installed.
renamed_from / canonical_slug, the creator renamed the plugin. Tell the user (e.g. "old-name was renamed to new-name"); the update still applies in place under the installed slug — no reinstall needed.archived[]: the creator pulled the plugin from sale. Tell the user they keep their installed version (frozen_version) and there are no new updates — this is expected, not an error, and their access is retained. Do NOT try to update these.unknown[]: the slug isn't on SkillStack (removed, or never registered). Show the per-entry message (recourse: re-resolve with /skillstack:activate-license using their key, or contact the creator). Never drop these silently.Tailor update messaging by license type (from skillstack_list):
Also check for:
/plugin uninstall then /plugin installFor each plugin the user wants to update, run the update script:
node <this-skill-dir>/../../../scripts/update-plugin.mjs \
<slug> <new-version> <marketplace-name> <plugin-name> \
--plugin-dir ~/.claude/plugins
The script handles all phases automatically:
npm install (reads ~/.npmrc for auth).claude-plugin/)installed_plugins.jsonplugin.json version matchesOutput is JSON with { success, confirmedVersion, error }.
If the script fails, show the error and guide next steps:
/skillstack:activate-license to check license status.~/.npmrc for correct registry config.Important: Do NOT use /plugin update — it has a known npm lockfile bug with SkillStack plugins.
Summarize what was updated (plugin: old → new version) and tell the user to restart Claude Code to load the new version.
npx claudepluginhub skillstacks/skillstack --plugin skillstackCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.