agentleFS
TrogonStackTrogonStack/agentskills/.agents/skills/scaffold-plugin/SKILL.md

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

  • Other versions4 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 4

    1. helmut-hoffer-von-ankershoffen/heinzel★ 2same name
    2. arimxyer/toolchest★ 1same name
    3. g-bastianelli/nuthouse★ 1same name
    4. 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
  1. Distinctive:

    Create a new plugin with all the required files and registry wiring so it is ready for skills to be added.

    line 19
  2. Distinctive:

    Ask the user for the plugin name if not already provided.

    line 36
  3. Distinctive:

    Ask for a one-line description if not already provided.

    line 41
  4. Distinctive:

    Do NOT create a CHANGELOG.md — release-please manages that automatically.

    line 56
  5. Very specific:

    Create plugins/{plugin-name}/.cursor-plugin/plugin.json.

    line 74
  6. Very specific:

    Create plugins/{plugin-name}/plugin.json following the Agent Plugins 1.0.0 spec.

    line 97
  7. Very specific:

    Add an entry to .claude-plugin/marketplace.json in the plugins array:

    line 130
  8. Very specific:

    Add an entry to .cursor-plugin/marketplace.json in the plugins array, with the same description as the Claude marketplace entry:

    line 141
  9. Very specific:

    Add the package to .github/release-please-config.json in the packages object:

    line 153
  10. Very specific:

    Add the initial version to .github/release-please-manifest.json:

    line 163
  11. Distinctive:

    Use conventional commit format:

    line 173

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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.md

Do 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.json exists with correct name, description, version 0.0.1, and author
  • plugins/{plugin-name}/.cursor-plugin/plugin.json exists with name, description, and version matching the Claude manifest
  • plugins/{plugin-name}/plugin.json exists with name, description, and version matching the Claude manifest
  • plugins/{plugin-name}/README.md exists with install command
  • plugins/{plugin-name}/skills/ directory exists (empty)
  • No CHANGELOG.md was created
  • .claude-plugin/marketplace.json and .cursor-plugin/marketplace.json have the new plugin entry
  • node scripts/validate-plugins.mjs passes
  • .github/release-please-config.json has the new package
  • .github/release-please-manifest.json has the new version entry at 0.0.1
  • Description is consistent across all three plugin.json files, both marketplace.json files, and README.md

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.