From skill-authoring-kit
Create a new Claude Code plugin for any marketplace (local directory, GitHub, or custom). Handles plugin.json, SKILL.md, marketplace registration, and settings enablement. Use when the user says "create a plugin", "add a plugin", "new plugin", "make this a plugin", or wants to package a skill for distribution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skill-authoring-kit:create-pluginThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a new Claude Code plugin for distribution via a marketplace. Handles the full
Create a new Claude Code plugin for distribution via a marketplace. Handles the full lifecycle: directory structure, metadata, skill content, marketplace registration, and settings enablement.
Every plugin follows this structure:
{plugin-name}/
├── .claude-plugin/
│ └── plugin.json # Plugin metadata (required)
├── skills/
│ └── {skill-name}/
│ └── SKILL.md # Skill instructions (required)
├── commands/ # Optional slash commands
├── hooks.json # Optional hooks
├── scripts/ # Optional executable code
└── references/ # Optional docs loaded on demand
A plugin can contain multiple skills, commands, and hooks. Most plugins contain one skill.
Ask if not clear from context:
Check existing marketplaces:
grep -A4 "extraKnownMarketplaces" ~/.claude/settings.json
mkdir -p {marketplace-path}/plugins/{plugin-name}/.claude-plugin
mkdir -p {marketplace-path}/plugins/{plugin-name}/skills/{plugin-name}
Create {plugin-name}/.claude-plugin/plugin.json:
{
"name": "{plugin-name}",
"version": "1.0.0",
"description": "{Brief description}"
}
CRITICAL: The name field must exactly match the directory name.
Create {plugin-name}/skills/{plugin-name}/SKILL.md following the skill-authoring
guide. If the skill-authoring skill from this plugin is installed, consult it for
the full guide; otherwise it's also available at the source of this plugin.
Key requirements:
name (kebab-case, matches folder) and description
(includes both what it does AND trigger conditions)references/Add the plugin to the marketplace's catalog file (usually .claude-plugin/marketplace.json):
{
"name": "{plugin-name}",
"source": "./plugins/{plugin-name}",
"description": "{Brief description}",
"keywords": ["{keyword1}", "{keyword2}"]
}
Add to enabledPlugins in ~/.claude/settings.json:
"{plugin-name}@{marketplace-name}": true
CRITICAL: The @{marketplace-name} suffix must match:
extraKnownMarketplaces in settings.jsonname field in the marketplace's .claude-plugin/marketplace.jsonMismatches cause "Plugin not found in marketplace" errors.
Commit all new files to the marketplace repo. Tell the user to restart their Claude Code session — plugins added mid-session won't load.
Before finishing, verify:
{name}/.claude-plugin/plugin.json exists with correct name{name}/skills/{name}/SKILL.md exists with valid frontmattersource pointing to plugin directory{name}@{marketplace} added to enabledPlugins in settings.jsonProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub cheapsteak/cheapsteak-agent-plugins --plugin skill-authoring-kit