From marketplace-builder
Scaffold a new Claude Code plugin-marketplace monorepo — catalog, repo-root tests/scripts/docs trees, CI workflows, release-please config, dev-setup, the hygiene sensor, and a root CLAUDE.md. Use when starting a fresh marketplace repository.
How this skill is triggered — by the user, by Claude, or both
Slash command
/marketplace-builder:new-marketplaceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scaffold a healthy marketplace monorepo from scratch.
<owner-handle> [owner-name]Scaffold a healthy marketplace monorepo from scratch.
Read ${CLAUDE_PLUGIN_ROOT}/knowledge/marketplace-conventions.md — it is the
source of truth for the anatomy and invariants below. Confirm the target
directory is empty or is a fresh git repo.
<owner-handle> — the catalog name (e.g. a GitHub org/handle). Required.[owner-name] — human-readable owner name. Defaults to the handle.url (e.g. https://github.com/<org>/<repo>.git) — needed
so /add-plugin can fill catalog source.url. Store it in the root CLAUDE.md.Catalog. Copy ${CLAUDE_PLUGIN_ROOT}/templates/marketplace/marketplace.json
to .claude-plugin/marketplace.json; replace __OWNER_HANDLE__ and
__OWNER_NAME__. Leave plugins: [] — /add-plugin populates it.
Repo-root trees (NEVER shipped). Create tests/repo/, scripts/,
docs/, evals/, plans/. These live at the repo root, never inside a
plugin dir.
Hygiene sensor. Copy
${CLAUDE_PLUGIN_ROOT}/templates/tests/shipped_script_refs_test.bats
to tests/repo/shipped_script_refs_test.bats. Create an empty
tests/repo/escape_allowlist.txt (one repo-relative path per intentional
escape; empty for now).
Dev scripts. Copy from ${CLAUDE_PLUGIN_ROOT}/templates/scripts/:
structural-check.sh, portability-check.sh, dev-setup.sh into
scripts/. chmod +x them. Also write scripts/ci-local.sh that runs all
three gates plus bats tests/repo (the local pre-push mirror of CI).
CI. Copy ${CLAUDE_PLUGIN_ROOT}/templates/ci/plugin-tests.yml to
.github/workflows/plugin-tests.yml.
Release scaffolding. Write release-please-config.json with an empty
packages: {} and .release-please-manifest.json as {}. /add-plugin
and /release-setup populate them per plugin.
requirements-dev.txt. Create it (empty or with any Python dev deps).
Root CLAUDE.md. Document: the shipped-vs-not-shipped rule, the repo URL,
how to run the gates (bash scripts/ci-local.sh), and that versions/refs are
automated via release-please — never hand-edited.
Report. List what you created and run bash scripts/ci-local.sh (it
should pass on the empty marketplace). Tell the user to run /add-plugin <name> next.
Emit files and run the gate. Do not narrate beyond the final report.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub bdfinst/plugin-builder --plugin marketplace-builder