diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index ccb769a..248c354 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -5,73 +5,73 @@ "email": "plugins@cursor.com" }, "metadata": { - "description": "Official Cursor plugin marketplace \u2014 developer tools, framework rules, MCP integrations, and agent skills" + "description": "Official Cursor plugin marketplace — developer tools, framework rules, MCP integrations, and agent skills" }, "plugins": [ { "name": "frontend", "source": "frontend", - "description": "Cursor plugin for frontend engineering workflows \u2014 React, TypeScript, accessibility, and performance" + "description": "Cursor plugin for frontend engineering workflows — React, TypeScript, accessibility, and performance" }, { "name": "design", "source": "design", - "description": "Cursor plugin for product design workflows \u2014 UX specs, design systems, handoff, and iteration" + "description": "Cursor plugin for product design workflows — UX specs, design systems, handoff, and iteration" }, { "name": "data-science", "source": "data-science", - "description": "Cursor plugin for data science workflows \u2014 analysis, modeling, experimentation, and reporting" + "description": "Cursor plugin for analyst-first data science workflows — exploratory analysis, validation, and decision-ready reporting" }, { "name": "ios", "source": "ios", - "description": "Cursor plugin for iOS development \u2014 Swift, SwiftUI, architecture, and testing" + "description": "Cursor plugin for iOS development — Swift, SwiftUI, architecture, and testing" }, { "name": "android", "source": "android", - "description": "Cursor plugin for Android development \u2014 Kotlin, Jetpack Compose, architecture, and testing" + "description": "Cursor plugin for Android development — Kotlin, Jetpack Compose, architecture, and testing" }, { "name": "planning", "source": "planning", - "description": "Cursor plugin for software planning \u2014 scope, milestones, risk management, and execution plans" + "description": "Cursor plugin for software planning — scope, milestones, risk management, and execution plans" }, { "name": "code-review", "source": "code-review", - "description": "Cursor plugin for code review workflows \u2014 correctness, security, regressions, and actionable feedback" + "description": "Cursor plugin for code review workflows — correctness, security, regressions, and actionable feedback" }, { "name": "web-browser", "source": "web-browser", - "description": "Cursor plugin for browser debugging workflows \u2014 DevTools, network traces, and reproducible bug reports" - }, - { - "name": "teaching", - "source": "teaching", - "description": "Cursor plugin for teaching workflows \u2014 explain concepts, scaffold exercises, and assess understanding" + "description": "Cursor plugin for browser debugging workflows — DevTools, network traces, and reproducible bug reports" }, { "name": "documentation", "source": "documentation", - "description": "Cursor plugin for technical documentation workflows \u2014 READMEs, API docs, architecture notes, and changelogs" + "description": "Cursor plugin for technical documentation workflows — READMEs, API docs, architecture notes, and changelogs" }, { "name": "presentation-pptx", "source": "presentation-pptx", - "description": "Cursor plugin for presentation authoring \u2014 narrative design, slide outlines, and PPTX-ready content" + "description": "Cursor plugin for presentation authoring — narrative design, slide outlines, and PPTX-ready content" }, { "name": "learning", "source": "learning", - "description": "Cursor plugin for learning workflows \u2014 skill mapping, practice plans, and feedback loops" + "description": "Cursor plugin for learning workflows — skill mapping, practice plans, and feedback loops" }, { "name": "cursor-dev-kit", "source": "cursor-dev-kit", - "description": "Cursor Dev Kit \u2014 internal-style workflows used by Cursor developers for CI, code review, shipping, and testing" + "description": "Cursor Dev Kit — internal-style workflows used by Cursor developers for CI, code review, shipping, and testing" + }, + { + "name": "create-plugin", + "source": "create-plugin", + "description": "Meta plugin for creating Cursor plugins with manifest scaffolding, component templates, and submission checks" } ] } diff --git a/README.md b/README.md index f25f9be..54be381 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | [Planning](planning/) | Utilities | Scope, milestones, risk management, and execution planning | | [Code Review](code-review/) | Developer Tools | Correctness, security, regression checks, and actionable feedback | | [Web Browser](web-browser/) | Developer Tools | DevTools-driven debugging, network traces, and repro workflows | -| [Teaching](teaching/) | Utilities | Concept explanations, exercises, and understanding checks | | [Documentation](documentation/) | Utilities | READMEs, API docs, architecture notes, and changelog writing | | [Presentation PPTX](presentation-pptx/) | Utilities | Narrative design, slide outlines, and PPTX-ready content | | [Learning](learning/) | Utilities | Skill maps, practice plans, and feedback loops | | [Cursor Dev Kit](cursor-dev-kit/) | Developer Tools | Internal-style workflows for CI, code review, shipping, and testing | +| [Create Plugin](create-plugin/) | Developer Tools | Meta workflows for creating Cursor plugins with scaffolding and submission checks | ## Repository Structure diff --git a/create-plugin/.cursor-plugin/plugin.json b/create-plugin/.cursor-plugin/plugin.json new file mode 100644 index 0000000..61882c0 --- /dev/null +++ b/create-plugin/.cursor-plugin/plugin.json @@ -0,0 +1,28 @@ +{ + "name": "create-plugin", + "version": "1.0.0", + "description": "Meta plugin for authoring Cursor plugins with manifest scaffolding, component templates, and marketplace-ready checks", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://github.com/cursor/plugins", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "keywords": [ + "create-plugin", + "cursor-plugin", + "marketplace", + "plugin-authoring" + ], + "category": "developer-tools", + "tags": [ + "meta", + "authoring", + "templates" + ], + "skills": "./skills/", + "rules": "./rules/", + "agents": "./agents/", + "commands": "./commands/" +} diff --git a/create-plugin/CHANGELOG.md b/create-plugin/CHANGELOG.md new file mode 100644 index 0000000..0ac01e4 --- /dev/null +++ b/create-plugin/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog + +## 1.0.0 + +- Initial release of the `create-plugin` meta plugin. +- Added scaffolding and submission-review skills for Cursor plugin authoring. +- Added a plugin architecture agent, quality-gate rule, and `create-plugin` command. diff --git a/create-plugin/LICENSE b/create-plugin/LICENSE new file mode 100644 index 0000000..ca2bba7 --- /dev/null +++ b/create-plugin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/create-plugin/README.md b/create-plugin/README.md new file mode 100644 index 0000000..f385c09 --- /dev/null +++ b/create-plugin/README.md @@ -0,0 +1,46 @@ +# Create Plugin Plugin + +Meta workflows for creating Cursor plugins that are marketplace-ready. + +## Installation + +```bash +agent install create-plugin +``` + +## Components + +### Skills + +| Skill | Description | +|:------|:------------| +| `create-plugin-scaffold` | Scaffold a new plugin directory with manifest, components, and repository wiring | +| `review-plugin-submission` | Run a pre-submission quality check against marketplace expectations | + +### Rules + +| Rule | Description | +|:-----|:------------| +| `plugin-quality-gates` | Keep plugin manifests, component metadata, and paths valid and consistent | + +### Agents + +| Agent | Description | +|:------|:------------| +| `plugin-architect` | Design plugin structure and component mix based on a concrete use case | + +### Commands + +| Command | Description | +|:--------|:------------| +| `create-plugin` | Build a new plugin scaffold with the right files and metadata | + +## Typical Flow + +1. Use `/create-plugin` with a plugin name, purpose, and target component types. +2. Generate or update `plugin.json`, then add rules/skills/agents/commands as needed. +3. Run `review-plugin-submission` before publishing or marketplace submission. + +## License + +MIT diff --git a/create-plugin/agents/plugin-architect.md b/create-plugin/agents/plugin-architect.md new file mode 100644 index 0000000..d59bec4 --- /dev/null +++ b/create-plugin/agents/plugin-architect.md @@ -0,0 +1,28 @@ +--- +name: plugin-architect +description: Plugin architecture specialist. Use when deciding the right component mix, structure, and metadata for a new Cursor plugin. +model: inherit +readonly: true +--- + +# Plugin Architect + +Design focused, maintainable Cursor plugins with the smallest viable component set. + +## Trigger + +Use when planning a new plugin or refactoring an existing plugin's structure. + +## Workflow + +1. Clarify plugin goal, users, and expected outcomes. +2. Recommend component mix (`rules`, `skills`, `agents`, `commands`, `hooks`, `mcpServers`) based on need. +3. Propose directory layout and manifest shape. +4. Flag potential discoverability or metadata issues early. +5. Return a concrete implementation checklist. + +## Output + +- Recommended plugin architecture +- Manifest and component decisions with rationale +- Minimal implementation checklist diff --git a/create-plugin/commands/create-plugin.md b/create-plugin/commands/create-plugin.md new file mode 100644 index 0000000..e548dfc --- /dev/null +++ b/create-plugin/commands/create-plugin.md @@ -0,0 +1,20 @@ +--- +name: create-plugin +description: Scaffold a new Cursor plugin with manifest, component files, and marketplace wiring when needed +--- + +# Create Plugin + +Create a new plugin scaffold using this flow: + +1. Gather inputs: + - Plugin name (kebab-case) + - Description and target users + - Components to include (`rules`, `skills`, `agents`, `commands`, `hooks`, `mcpServers`) +2. Create required files: + - `.cursor-plugin/plugin.json` + - `README.md` + - `LICENSE` +3. Add selected component folders and starter files with frontmatter. +4. In multi-plugin repositories, update `.cursor-plugin/marketplace.json` with a new plugin entry. +5. Return a summary of created files and any remaining manual setup. diff --git a/create-plugin/rules/plugin-quality-gates.mdc b/create-plugin/rules/plugin-quality-gates.mdc new file mode 100644 index 0000000..9b853ac --- /dev/null +++ b/create-plugin/rules/plugin-quality-gates.mdc @@ -0,0 +1,14 @@ +--- +description: Keep Cursor plugin manifests, paths, and component metadata valid during plugin authoring. +alwaysApply: true +--- + +# Plugin Quality Gates + +When creating or editing Cursor plugins: + +1. Ensure `.cursor-plugin/plugin.json` exists and includes a valid `name`. +2. Keep paths relative and within the plugin directory (no absolute paths, no `..` traversal). +3. Match declared component paths to real files and folders. +4. Include YAML frontmatter for rules, skills, agents, and commands with required metadata. +5. Keep plugin scope focused and document installation and usage in `README.md`. diff --git a/create-plugin/skills/create-plugin-scaffold/SKILL.md b/create-plugin/skills/create-plugin-scaffold/SKILL.md new file mode 100644 index 0000000..cea1b1d --- /dev/null +++ b/create-plugin/skills/create-plugin-scaffold/SKILL.md @@ -0,0 +1,54 @@ +--- +name: create-plugin-scaffold +description: Create a new Cursor plugin scaffold with a valid manifest, component directories, and marketplace wiring. Use when starting a new plugin or adding a plugin to a multi-plugin repository. +--- + +# Create Plugin Scaffold + +## Trigger + +You need to create a new Cursor plugin from scratch and make it ready for local use or marketplace submission. + +## Required Inputs + +- Plugin name (lowercase kebab-case) +- Plugin purpose and target users +- Component set to include (`rules`, `skills`, `agents`, `commands`, `hooks`, `mcpServers`) +- Repository style (`single-plugin` or `multi-plugin marketplace`) + +## Workflow + +1. Validate plugin name format: lowercase kebab-case, starts and ends with an alphanumeric character. +2. Create base files: + - `.cursor-plugin/plugin.json` + - `README.md` + - `LICENSE` + - optional `CHANGELOG.md` +3. Populate `plugin.json`: + - Required: `name` + - Recommended: `version`, `description`, `author`, `license`, `keywords` + - Add explicit component paths only when non-default discovery is needed. +4. Create component files with valid frontmatter: + - Rules: `.mdc` with `description`, `alwaysApply`, optional `globs` + - Skills: `skills//SKILL.md` with `name`, `description` + - Agents: `agents/*.md` with `name`, `description` + - Commands: `commands/*.(md|txt)` with `name`, `description` +5. If repository uses `.cursor-plugin/marketplace.json`, add plugin entry: + - `name` + - `source` + - optional metadata (`description`, `keywords`, `category`, `tags`) +6. Ensure all manifest paths are relative, valid, and do not use absolute paths or parent traversal. + +## Guardrails + +- Keep the plugin focused on one use case. +- Prefer concise, actionable skill and rule text over long prose. +- Do not reference files that do not exist. +- Use folder discovery defaults unless custom paths are required. + +## Output + +- Created file tree for the plugin +- Final `plugin.json` +- Marketplace entry (if applicable) +- Short validation report of required fields and component metadata diff --git a/create-plugin/skills/review-plugin-submission/SKILL.md b/create-plugin/skills/review-plugin-submission/SKILL.md new file mode 100644 index 0000000..026cee0 --- /dev/null +++ b/create-plugin/skills/review-plugin-submission/SKILL.md @@ -0,0 +1,49 @@ +--- +name: review-plugin-submission +description: Audit a Cursor plugin for marketplace readiness. Use when validating manifests, component metadata, discovery paths, and submission quality before publishing. +--- + +# Review Plugin Submission + +## Trigger + +A plugin is implemented and needs a final quality check before submission or release. + +## Workflow + +1. Verify manifest validity: + - `.cursor-plugin/plugin.json` exists + - `name` is valid lowercase kebab-case + - metadata fields are coherent (`description`, `version`, `author`, `license`) +2. Verify component discoverability: + - Skills in `skills/*/SKILL.md` + - Rules in `rules/` as `.mdc` or markdown variants + - Agents in `agents/` markdown files + - Commands in `commands/` markdown or text files + - Hooks in `hooks/hooks.json` + - MCP config in `mcp.json` (or `mcpServers` override) +3. Verify component metadata: + - Skills include `name` and `description` frontmatter + - Rules include valid frontmatter and clear guidance + - Agents and commands include `name` and `description` +4. Verify repository integration: + - For marketplace repos, plugin entry exists in `.cursor-plugin/marketplace.json` + - `source` resolves to plugin directory and names are unique +5. Verify documentation quality: + - `README.md` states purpose, installation, and component coverage + - optional logo path is valid and repository-hosted + +## Checklist + +- Manifest exists and parses as valid JSON +- All declared paths exist and are relative +- No broken file references +- No missing frontmatter on skills/rules/agents/commands +- Plugin scope is clear and focused +- Marketplace registration complete (if multi-plugin repo) + +## Output + +- Pass/fail report by section +- Prioritized fix list +- Final submission recommendation