scaffold-plugin
Skill11 starsChanged 33 days agoMITView on GitHub
Scaffold a new plugin in this repository with all required wiring. Use when creating a new plugin from scratch. Do not use for adding skills to an existing plugin or for modifying plugin metadata.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- helmut-hoffer-von-ankershoffen/heinzeltheir own version, first seen Nov 8, 2026
- g-bastianelli/nuthousetheir own version, first seen Sep 2, 2026
- farzanmrz/meta-devtheir own version, first seen Jul 6, 2026
- arimxyer/toolchesttheir own version, first seen Jun 12, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- helmut-hoffer-von-ankershoffen/heinzel★ 2same name
- arimxyer/toolchest★ 1same name
- g-bastianelli/nuthouse★ 1same name
- farzanmrz/meta-dev★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 5 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Create a new plugin with all the required files and registry wiring so it is ready for skills to be added.
- Distinctive: line 36
Ask the user for the plugin name if not already provided.
- Distinctive: line 41
Ask for a one-line description if not already provided.
- Distinctive: line 56
Do NOT create a CHANGELOG.md — release-please manages that automatically.
- Very specific: line 74
Create plugins/{plugin-name}/.cursor-plugin/plugin.json.
- Very specific: line 97
Create plugins/{plugin-name}/plugin.json following the Agent Plugins 1.0.0 spec.
- Very specific: line 130
Add an entry to .claude-plugin/marketplace.json in the plugins array:
- Very specific: line 141
Add an entry to .cursor-plugin/marketplace.json in the plugins array, with the same description as the Claude marketplace entry:
- Very specific: line 153
Add the package to .github/release-please-config.json in the packages object:
- Very specific: line 163
Add the initial version to .github/release-please-manifest.json:
- Distinctive: line 173
Use conventional commit format:
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Scaffold a New Plugin
Create a new plugin with all the required files and registry wiring so it is ready for skills to be added.
When to Use
- Creating a brand new plugin in this repository
- User asks to "scaffold", "create", or "set up" a new plugin
When NOT to Use
- Adding skills to an existing plugin (just create the skill directory and SKILL.md)
- Modifying an existing plugin's metadata (edit plugin.json directly)
- Renaming or moving a plugin
Workflow
1. Gather Plugin Information
Ask the user for the plugin name if not already provided. The name must:
- Use kebab-case
- Be prefixed with
trogonstack- - Be concise and descriptive
Ask for a one-line description if not already provided.
2. Create Plugin Directory Structure
plugins/{plugin-name}/
├── .claude-plugin/
│ └── plugin.json
├── .cursor-plugin/
│ └── plugin.json
├── plugin.json (Agent Plugins manifest)
├── skills/ (empty, ready for skills)
└── README.mdDo NOT create a CHANGELOG.md — release-please manages that automatically.
3. Create plugin.json
{
"name": "{plugin-name}",
"description": "{description}",
"version": "0.0.1",
"author": {
"name": "TrogonStack",
"url": "https://github.com/TrogonStack"
}
}4. Create Cursor plugin.json
Create plugins/{plugin-name}/.cursor-plugin/plugin.json. The name, description, and version must match .claude-plugin/plugin.json exactly. The file must satisfy schemas/cursor-plugin/plugin.schema.json, which rejects unknown fields such as author.url.
{
"name": "{plugin-name}",
"displayName": "TrogonStack {Human Name}",
"description": "{description}",
"version": "0.0.1",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/{plugin-name}",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": ["trogonstack", "{topic}"],
"category": "developer-tools",
"tags": ["{topic}"],
"skills": "./skills/"
}5. Create Agent Plugins plugin.json
Create plugins/{plugin-name}/plugin.json following the Agent Plugins 1.0.0 spec. The name, description, and version must match .claude-plugin/plugin.json exactly, and it must satisfy schemas/agent-plugins/1.0.0/plugin.schema.json. Skills are discovered from the fixed skills/ location, so do not declare component paths.
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "{plugin-name}",
"version": "0.0.1",
"description": "{description}",
"author": {
"name": "TrogonStack",
"url": "https://github.com/TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/{plugin-name}",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": ["trogonstack", "{topic}"]
}6. Create README.md
# {plugin-name}
{description}
```bash
claude plugin install {plugin-name}@trogonstack
```7. Register in Marketplaces
Add an entry to .claude-plugin/marketplace.json in the plugins array:
{
"name": "{plugin-name}",
"description": "{description}",
"source": "./plugins/{plugin-name}",
"category": "development"
}Add an entry to .cursor-plugin/marketplace.json in the plugins array, with the same description as the Claude marketplace entry:
{
"name": "{plugin-name}",
"source": "plugins/{plugin-name}",
"description": "{description}"
}8. Register in Release Please Config
Add the package to .github/release-please-config.json in the packages object:
"plugins/{plugin-name}": {
"component": "{plugin-name}"
}9. Register in Release Please Manifest
Add the initial version to .github/release-please-manifest.json:
"plugins/{plugin-name}": "0.0.1"It must be 0.0.1.
10. Commit
Use conventional commit format:
feat({plugin-name}): scaffold plugin for {short purpose}Quality Checklist
- Plugin directory exists at
plugins/{plugin-name}/ plugins/{plugin-name}/.claude-plugin/plugin.jsonexists with correct name, description, version0.0.1, and authorplugins/{plugin-name}/.cursor-plugin/plugin.jsonexists with name, description, and version matching the Claude manifestplugins/{plugin-name}/plugin.jsonexists with name, description, and version matching the Claude manifestplugins/{plugin-name}/README.mdexists with install commandplugins/{plugin-name}/skills/directory exists (empty)- No CHANGELOG.md was created
.claude-plugin/marketplace.jsonand.cursor-plugin/marketplace.jsonhave the new plugin entrynode scripts/validate-plugins.mjspasses.github/release-please-config.jsonhas the new package.github/release-please-manifest.jsonhas the new version entry at0.0.1- Description is consistent across all three plugin.json files, both marketplace.json files, and README.md
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.

