cursor-claude-plugin-exam
Audit tool for inspecting Claude Code to Cursor plugin discovery, cache alignment, and tool availability without converting plugins or creating symlinks.
Status Vocabulary
The exam reports status rows using strict five-level vocabulary:
PASS: Requirement or discovery check succeeded.INFO: Informational finding or optional environment state.OPTIONAL: Dual-path fallback or non-mandatory configuration. Missing~/.cursor/pluginsor~/.cursor/plugins/localisOPTIONALwhen Claude cache andenabledPluginsare healthy.WARN: Actionable drift or stale cache snapshot (e.g., Cursor marketplace pack version older than Claude plugin cache, or an enabled plugin whoseplugin.jsonskillspath has noSKILL.mdone level down so Cursor import skips it).FAIL: Broken configuration or missing required cache/settings.
(Note: GAP status is not part of the vocabulary.)
Usage
Run the read-only audit script:
From this repository:
bash skills/cursor-claude-plugin-exam/scripts/audit-claude-cursor-plugins.sh
Or from the operator's installed skills directory (after republishing):
bash ~/.cursor/skills/cursor-claude-plugin-exam/scripts/audit-claude-cursor-plugins.sh
Behavior & Remediation Rules
- The script is completely read-only; it never executes
mkdir,ln, or writes under$HOME. - It withholds
ln -sfncommands unless discovery has failed on Claude settings or plugin cache (missing settings, emptyenabledPlugins, or missing skillwiki cache). - When a stale Cursor pack is detected, run
cursor-github-marketplace-repinstatus.sh. If status isuser-scopeSTALE/MISSINGforllm-wiki/karlorz-agent-skills, follow that skill (remove thenadd --git-ref). - Team Dashboard Refresh / Auto Refresh is only for a real Team marketplace admin row.
- The exam can PASS when Claude cache and Cursor pack versions match each other while both lag GitHub — still run
status.sh. Do not write local cache files while the catalog pin is still old. - Prefer the marketplace clone dir that matches catalog
gitRefover leftover SHA folders. - When
plugin.skills_unresolvedorplugin.cache_staleWARNs, the remediation is reinstall/update that plugin in Claude Code so the cacheplugin.jsonskillsfield points at a directory whose immediate children containSKILL.md(this repo's contract is"./skills/"). Do not convert or symlink into~/.cursor/plugins/localfor this packaging skip.