From marketplace-dev
Scaffolds a new Claude Code plugin directory with audit-clean structure. Use when starting a plugin in a marketplace monorepo or creating a plugin skeleton.
How this skill is triggered — by the user, by Claude, or both
Slash command
/marketplace-dev:scaffold-plugin <plugin-name> [--dir plugins/<plugin-name>] [--description "..."]<plugin-name> [--dir plugins/<plugin-name>] [--description "..."]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Role: implementation. Emit the shipped-plugin skeleton, then prove it clean.
Role: implementation. Emit the shipped-plugin skeleton, then prove it clean.
<plugin-name> must match ^[a-z][a-z0-9-]*$. On a
mismatch, emit the rule and a kebab-case suggestion, then stop.plugins/<name>/. Tests, eval fixtures, and
build tooling live at the repo root — never scaffold them inside the plugin./plugin-audit plugins/<name> reporting zero findings.NAME = $0; validate against ^[a-z][a-z0-9-]*$ (Step constraint 1).DIR = --dir value, else plugins/<NAME>.DESC = --description value, else a one-line placeholder the user edits.DIR exists → report and stop.mkdir -p "$DIR"/.claude-plugin "$DIR"/agents "$DIR"/skills "$DIR"/hooks "$DIR"/knowledge
agents/, skills/, hooks/, and knowledge/ start empty. Git does not track
empty directories — add a .gitkeep to each so the skeleton survives commit:
for d in agents skills hooks knowledge; do : > "$DIR/$d/.gitkeep"; done
$DIR/.claude-plugin/plugin.json — version starts at 0.1.0; release-please
keeps it in sync thereafter (do not hand-bump):
{
"name": "<NAME>",
"version": "0.1.0",
"description": "<DESC>",
"author": { "name": "", "email": "" }
}
$DIR/CLAUDE.md — plugin instructions that ship with the plugin: a one-line
purpose, a table of the plugin's /commands (empty to start), and the
conventions it enforces. Keep it small (it is always loaded).
$DIR/install.sh — the prerequisite checker with the Git-Bash-on-Windows
guard. Copy the canonical pattern from ${CLAUDE_PLUGIN_ROOT}/install.sh
(checks claude + jq, warns on optional tools, detects Windows-without-Git-Bash
and points to https://git-scm.com/download/win), retitled for <NAME>. Then
chmod +x "$DIR/install.sh".
$DIR/settings.json — hook registrations (empty hooks to start) plus a
permissions block:
{
"permissions": {
"allow": ["Bash", "Edit", "Write", "Read", "Glob", "Grep", "Agent", "Skill", "mcp__*"],
"deny": ["Bash(rm *)", "Bash(git push *)"]
}
}
If .claude-plugin/marketplace.json exists at the repo root, add a plugin entry
(name, description, source.path: "<DIR>", source.source: "git-subdir",
source.ref, version: "0.1.0") and add the matching release-please package +
manifest entry — see /scaffold-marketplace Step 4 for the exact block. If no
catalog exists, note that the user can create one with /scaffold-marketplace.
Run /plugin-audit <DIR>. A fresh skeleton has no agents/skills, so the audit
must report zero findings. If it does not, fix the scaffold and re-run before
reporting success.
Plugin scaffolded: <DIR>
Files: .claude-plugin/plugin.json, CLAUDE.md, install.sh, settings.json
Dirs: agents/ skills/ hooks/ knowledge/
Audit: /plugin-audit <DIR> → zero findings
Next: add agents with /agent-add, skills by hand or /agent-skill-authoring,
eval fixtures with /init-plugin-eval <NAME>
npx claudepluginhub p/bdfinst-marketplace-dev-plugins-marketplace-devScaffolds Codex plugin directories with required plugin.json, optional folders (skills, hooks, scripts, assets, MCP, apps), and marketplace.json entries.
Scaffold a new AI agent plugin directory with valid manifest, component directories, and marketplace wiring. Use when starting a new plugin, adding a plugin to a multi-plugin repository, or reviewing a plugin before submission.
Create a new plugin for Claude Code marketplace with validation, ADR, and release automation. TRIGGERS - create plugin, new plugin, scaffold plugin