create-plugin-scaffold
Skill17 starsChanged 10 days agoMITView on GitHub
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.
In this repository3 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- plugin-creatorSkill
- Claude Code Plugin BuilderSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 9 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 35
Create the directory (and parents) if it does not exist.
- Distinctive: line 36
Create base files inside the target directory:
- Distinctive: line 44
Add explicit component paths only when non-default discovery is needed.
- Distinctive: line 45
Create component files with valid frontmatter:
- Very specific: line 50
If repository uses .cursor-plugin/marketplace.json, add plugin entry:
- Distinctive: line 54
Ensure all manifest paths are relative, valid, and do not use absolute paths or parent traversal.
- Distinctive: line 58
Keep the plugin focused on one use case.
- Distinctive: line 59
Prefer concise, actionable skill and rule text over long prose.
- Distinctive: line 60
Do not reference files that do not exist.
- Distinctive: line 61
Use folder discovery defaults unless custom paths are required.
- Very specific: line 62
Always save to ~/.cursor/plugins/local/<plugin-name>/ unless the user provides a different path.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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-pluginormulti-plugin marketplace)
Output Location
By default, create the plugin inside the user's local plugin directory:
~/.cursor/plugins/local/<plugin-name>/This path makes the plugin immediately available to Cursor without any install step. If the user explicitly asks to create the plugin elsewhere (e.g. inside an existing repo or a specific directory), respect that choice instead.
Workflow
- Validate plugin name format: lowercase kebab-case, starts and ends with an alphanumeric character.
- Determine the target directory:
- Default:
~/.cursor/plugins/local/<plugin-name>/ - Override: use the path the user specifies, if any.
- Create the directory (and parents) if it does not exist.
- Default:
- Create base files inside the target directory:
.cursor-plugin/plugin.jsonREADME.mdLICENSE- optional
CHANGELOG.md
- Populate
plugin.json:- Required:
name - Recommended:
version,description,author,license,keywords - Add explicit component paths only when non-default discovery is needed.
- Required:
- Create component files with valid frontmatter:
- Rules:
.mdcwithdescription,alwaysApply, optionalglobs - Skills:
skills/<skill-name>/SKILL.mdwithname,description - Agents:
agents/*.mdwithname,description - Commands:
commands/*.(md|txt)withname,description
- Rules:
- If repository uses
.cursor-plugin/marketplace.json, add plugin entry:namesource- optional metadata (
description,keywords,category,tags)
- 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.
- Always save to
~/.cursor/plugins/local/<plugin-name>/unless the user provides a different path.
Output
- Created file tree for the plugin (with full path to the output directory)
- Final
plugin.json - Marketplace entry (if applicable)
- Short validation report of required fields and component metadata
- Confirmation that the plugin is saved under
~/.cursor/plugins/local/and ready for use
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

