From claude-cowork-plugin-skill-marketplace-builder
build complete claude cowork plugin marketplaces from a plain-language idea and package them as an install-ready zip. use when claude needs to create a multi-plugin office, plugin marketplace, cowork team, or full plugin suite rather than a single plugin. trigger on requests like "build a marketplace," "make me an instant office," "create a 7-plugin cowork setup," or "package a full claude plugin ecosystem." support optional official connector wiring through .mcp.json files and generate top-level plugin.json plus all plugin folders, commands, skills, hooks, and readmes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-cowork-plugin-skill-marketplace-builder:claude-cowork-marketplace-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build a full Claude Cowork plugin from a plain-language request, then package it as an install-ready zip.
Build a full Claude Cowork plugin from a plain-language request, then package it as an install-ready zip.
Claude Cowork installs one plugin per zip or GitHub repo. A plugin is a single flat folder with:
.claude-plugin/plugin.json — minimal manifest (see exact format below)skills/ — one subfolder per skill, each containing SKILL.mdcommands/ — one .md file per commandhooks/hooks.json — always present, always {}CONNECTORS.md — documents what connectors are neededREADME.mdThere is no nested sub-plugin structure. Do not create multiple plugin folders inside a top-level folder. The app will not find skills or commands inside sub-directories — it will show "This plugin doesn't have any skills or agents."
For large multi-domain offices, use command prefixes to namespace by work lane within a single flat plugin. Example: exec-morning-brief.md, sales-account-plan.md, ops-weekly-review.md.
{
"name": "my-plugin-name",
"version": "1.0.0",
"description": "One sentence description.",
"author": { "name": "Owner Name" }
}
Validation rules enforced by the app:
name MUST be kebab-case: lowercase letters, numbers, and hyphens only — no spaces, no uppercase, no underscores. The app will reject the upload with: "Plugin name must be kebab-case"author MUST be an object { "name": "..." }, not a plain stringtype, slug, plugins array, or any other extra fieldsscripts/build_marketplace_scaffold.py <spec.json> <output-dir>Start from a plain-language idea by default.
Examples:
Use extra structure if provided: lane names, naming prefix, connectors, command tone, domain workflows. Ask only short follow-up questions when a missing detail would materially change the lane lineup.
Always return one install-ready zip:
.claude-plugin/plugin.json (minimal format, kebab-case name, author as object)skills/ — flat, one subfolder per skill, each with SKILL.mdcommands/ — flat, one .md file per command, prefixed by lanehooks/hooks.json containing {}CONNECTORS.mdREADME.md.mcp.json using official connectors onlyDesign lanes as logical domains within a single plugin. Each lane contributes prefixed commands and named skills to the shared flat structure.
Good lane prefixes:
exec- — executive support, briefings, communicationssales- — prospecting, pipeline, proposals, account managementcs- — customer success, onboarding, support, renewalsmkt- — marketing, content, campaigns, socialops- — operations, projects, data, processpeople- — recruiting, HR, onboarding, policieslegal- — contracts, compliance, risk, securityproduct- — roadmap, features, IT, releasesAvoid a separate skill for every micro-task. Email drafting, meeting summaries, and proposal writing belong as commands inside broader lane skills.
Commands are thin routers — they load a skill and pass the user's message.
File: commands/lane-command-name.md
---
name: lane-command-name
description: What this command does in one sentence
---
Load the `skill-name` skill.
Treat the user's message after the slash command as the main instruction.
Examples:
/my-office:exec-morning-brief run my morning brief/my-office:sales-account-plan help me prep for Acme/my-office:ops-weekly-review review my week and tell me what is slippingname must exactly match the filename (without .md).
Skills own the workflow logic. File: skills/skill-name/SKILL.md
Each skill should clearly state its deliverable, give concrete production instructions, and be practical — not abstract.
Use only official connectors from references/official-connectors.json.
Document them in CONNECTORS.md. Optionally wire in .mcp.json.
Good defaults: notion (docs), slack + gmail (comms), google-calendar (scheduling), asana/linear (tasks). Never invent custom MCP URLs.
JSON spec fields:
plugin_name — kebab-caseplugin_description — one sentenceowner_namelanes — array, each with prefix, commands, skillsSee references/spec-checklist.md.
python scripts/build_marketplace_scaffold.py <spec.json> <output-dir>
Generates: single flat plugin folder, correct plugin.json, all skills, all commands, hooks, CONNECTORS.md, README, zip.
{}name frontmatter matches filename, has descriptionname and description frontmatterreferences/plugin-layouts.mdreferences/plugin-role-patterns.mdreferences/official-connectors.jsonreferences/spec-checklist.mdreferences/command-examples.mdReturn the zip. Summarize: lane lineup, command/skill counts, connectors included, assumptions made. If iteration needed, update spec, regenerate, return fresh zip.
npx claudepluginhub dkyazzentwatwa/claude-cowork-plugin-marketplace-builderCreate and configure Claude Code marketplaces and plugins. Use when the user wants to create a marketplace, publish plugins, set up team plugin distribution, or configure marketplace.json or plugin.json files. Triggers: create marketplace, publish plugin, plugin distribution, marketplace.json, plugin.json, team plugins, share plugins
Guides users through creating a new plugin from scratch via guided conversation, covering discovery, planning, design, implementation, and packaging into a .plugin file.
Scaffolds a complete Claude Code plugin with manifest, skills, agents, hooks, MCP/LSP servers, and marketplace entry. Walks through component selection and writes files.