Add native Cursor plugin via canonical harness paths#319
Conversation
Greptile SummaryThis PR introduces a native Cursor plugin by generating
Confidence Score: 5/5Safe to merge; the new Cursor plugin manifests are generated from the same root source of truth already used for the Claude Code plugin, and the version-drift guard now covers all three new files. All new files are generated by the build and cross-checked by the expanded version validator. Tests cover both drift-detection and the happy path. The only lingering concern — a hardcoded command count string in the marketplace metadata.description template — was already raised in a prior review comment and does not affect runtime correctness. scripts/build.js — the hardcoded '23 commands' in the cursor marketplace metadata.description template is not validated by generateCounts; already flagged in a prior comment. Important Files Changed
Reviews (2): Last reviewed commit: "Point Cursor plugin at canonical harness..." | Re-trigger Greptile |
Generate a Cursor-native plugin subtree at ./plugin-cursor/ alongside the existing Claude plugin, so Cursor users can install Impeccable as a real plugin (skill + manual-edit-applier agent + blocking pre-write hook) instead of copying skill folders. - build.js: emit plugin-cursor/ (.cursor-plugin/plugin.json, skills/, agents/, hooks/hooks.json, README) and a root .cursor-plugin/marketplace.json - transformers/hooks.js: add buildCursorPluginHooksManifest with plugin-root-relative hook command paths - validate-plugin-versions.js: extend the version-drift guard to the Cursor plugin subtree - tests: unit + integration coverage for the Cursor plugin hook and packaged artifacts; version-guard drift cases - README: document the native Cursor plugin install option Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
… skills. Co-authored-by: Cursor <cursoragent@cursor.com>
8a62e60 to
60a5e81
Compare
Summary
Adds a native Cursor plugin by generating
.cursor-plugin/plugin.jsonand.cursor-plugin/marketplace.jsonfrom the build. The manifest points at the canonical harness tree already shipped in this repo (.cursor/skills/,.claude/agents/,.cursor/hooks.json) instead of copying a duplicateplugin-cursor/payload.Cursor users can install from the marketplace (
source: "./") or symlink the repo locally. The pre-write blocking hook reuses the same.cursor/hooks.jsonpath and script as project-level installs.Type of change
Checklist
source/(skill/unchanged; build/transformer/test sources updated)bun run buildran successfullybun testpasses (tests/hook-build.test.mjs,tests/validate-plugin-versions.test.js)Test plan
bun run build:releasebun test tests/hook-build.test.mjsbun test tests/validate-plugin-versions.test.jsln -sf "$(pwd)" ~/.cursor/plugins/local/impeccable) and verify skill, agent, and hook under Customize