Repository navigation
Conversation
…nd address them via CURSOR_PLUGIN_ROOT; add MIT LICENSE
…e/publish; replace the archived postgres MCP example with a pinned maintained server
…rectories, require kebab-case names and semver
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stacked on #15 and #16 (their commits are included here; the diff to review is the last commit,
scripts/validate-template.mjsonly). Merge those two first and this one rebases to the validator change alone.The validator checked the two manifests, component paths and frontmatter, but not the two files that most often break a plugin in practice. It now also:
hooks/hooks.json: valid JSON,versionis a positive integer,hooksis an object keyed by known event names (unknown events warn), every definition has acommand. For commands that point inside the plugin (${CURSOR_PLUGIN_ROOT}/...or./...) it checks the script exists, warns when the path is cwd-relative (plugin hooks do not run from the plugin folder; this is what ci: validate the template on every PR; fix hook script paths and permissions; add LICENSE #15 fixed in the starter), and warns when a.shis not executable and not invoked throughbash.mcp.json: valid JSON, non-emptymcpServers, each server hascommandorurl, warns on plainhttp://outside localhost and onnpx ...@latest, and warns when a${VAR}placeholder has no matchingvariables.properties.<VAR>inplugin.json(otherwise users are never prompted for it).namevs directory: warns whenSKILL.mdnamediffers from its folder, since slash commands use the folder name.namemust be kebab-case as the README says (the old pattern allowed.);versionwarns when not semver.Run against
mainbefore #15/#16 it reports exactly the defects those PRs fix (relative hook paths, non-executable scripts, missingversion, undeclared${POSTGRES_URL}); on this branch it passes with only the two "starter-simple has no hooks/mcp" notes.Verification
node scripts/validate-template.mjson this branch: Validation passed.main@ 4621607: 1 error (hooks.json must declare "version"), 7 warnings (3 cwd-relative commands, 3 non-executable scripts, 1 undeclared placeholder), as expected.