From scaffold-skills
Use when initializing a new Claude Code plugin marketplace, setting up plugin distribution infrastructure, creating a plugin registry, or sharing and distributing Claude plugins with a team or publicly.
npx claudepluginhub isaidhey/isaidhey-agent-skills --plugin scaffold-skills[name] [dir] [owner-name] [owner-email] [description]namedirowner-nameowner-emaildescriptionThis skill is limited to using the following tools:
A marketplace is a registry that groups plugins for distribution. It lives in a `.claude-plugin/marketplace.json` file and lets users install plugins with `/plugin install <plugin>@<marketplace-name>`. This skill scaffolds that structure interactively, prompting for any fields not pre-supplied.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
A marketplace is a registry that groups plugins for distribution. It lives in a .claude-plugin/marketplace.json file and lets users install plugins with /plugin install <plugin>@<marketplace-name>. This skill scaffolds that structure interactively, prompting for any fields not pre-supplied.
marketplace.json directlymarketplace.json directly| Dependency | Check | Install |
|---|---|---|
jq | jq --version | apt install jq / brew install jq |
GNU realpath | realpath --version | pre-installed on Linux; macOS: brew install coreutils |
Step 1 — Collect missing args.
Identify which of the five fields are not pre-supplied. If any are missing, ask for all of them in a single message as a numbered list. Wait for the user's reply, then map answers to fields by order or by explicit field name if the user labels them. If owner-email is blank or skipped, omit --owner-email entirely.
Step 2 — Run the script once with all args.
bash "${CLAUDE_SKILL_DIR}/scripts/init.sh" \
--name "$name" \
--dir "$dir" \
--owner-name "$owner_name" \
[--owner-email "$owner_email" ← omit if skipped] \
--description "$description"
On non-zero exit, show the stderr output to the user. Ask whether they want to troubleshoot the error or cancel, and proceed accordingly.
On success, parse the JSON stdout for dir, name, and path. Display:
✓ Marketplace created at <path>
Next steps:
1. Validate: claude plugin validate <dir>
2. Add: /plugin marketplace add <dir>
3. Install: /plugin install <plugin-name>@<name>
Add plugins to the plugins[] array in marketplace.json when ready.
/marketplace-init my-team-tools . "Acme Corp" tools@acme.com "Internal tools for Acme devs"
Equivalent to running init.sh with all five args pre-supplied — no interactive prompts.
| Mistake | Error | Fix |
|---|---|---|
Reserved name (agent-skills, anthropic-marketplace, etc.) | Invalid: '<name>' is a reserved name | Choose a unique name — see docs/schema.md for the full reserved list |
| Name has uppercase / spaces / leading or trailing hyphen | Invalid: must be lowercase letters, numbers, and hyphens only | Use kebab-case: my-team-tools not My Tools |
Target dir already has marketplace.json | Error: marketplace already exists at <path> | Edit the existing file; do not re-run init |
jq not installed | Error: jq is required | apt install jq or brew install jq |
GNU realpath missing (macOS) | realpath: illegal option -- - | brew install coreutils |