Marketplace as data

Ship data,
not design.

Describe your marketplace as a little YAML. cc-marketspec joins it with your native plugin manifests and emits one render-agnostic manifest.json.

~8 lines of YAML in, a full marketplace manifest out.

entry.yaml
# presentation overlay — never restates nativegroup: toolstagline: Headless data standard + generator for a Claude Code marketplace's presentationtips:  - This repo is itself a cc-marketspec marketplace — it dogfoods its own framework.  - text: Ask the hosted MCP for field help without installing anything.    href: https://github.com/XBlueSky/cc-marketspec#hosted-mcp-server

cc-marketspec

Headless data standard + generator for a marketplace's presentation

1 skill3 commands1 mcp

/cc-generate Generate manifest.json from your data.

02 The mental model

Native facts, plus a presentation overlay.

cc-marketspec adds only what native can't express — and the rule is strict: presentation never restates native facts.

Native — Claude Code defines · you maintain anyway

  • marketplace.json
  • plugin.json
  • .mcp.json
  • skills/*/SKILL.md
  • commands/*.md
  • agents/*.md
  • hooks/hooks.json

Presentation — this standard · only the gaps

  • catalog.yaml
  • entry.yaml
manifest.json

one render-agnostic document

plugin.json & .mcp.json
// plugin.json
 "name": "cc-marketspec", "version": "0.2.0", "license": "MIT",  
// .mcp.json
 "mcpServers":  "cc-marketspec":  "type": "http",    
entry.yaml
# entry.yaml
group: tools
tagline: Headless data standard + generator …
manifest.json
 "name": "cc-marketspec", "version": "0.2.0",
  "license": "MIT", "group": "tools",
  ,
  "mcp": [ "type": "http", "provides": [  ] ] 
03 How it works

Three steps, no design decisions.

  1. 01

    Describe

    A little YAML — only what native can't express.

    schemaVersion: "1.0"
    groups:
      - id: tools
        label: Tools
  2. 02

    Generate

    Joins your YAML with native manifests, validates.

    $ npx @xbluesky/cc-marketspec
    ✓ wrote manifest.json (1 plugin)
  3. 03

    manifest.json

    One render-agnostic document. Commit or emit in CI.

    { "schemaVersion": "1.0",
      "marketplace": { "name": "cc-marketspec" },
      "plugins": [ … ] }
04 Write little, get much

You author the left. The generator fills the right.

You author — no native source

  • description / tagline / intro
  • agent returns / not
  • mcp provides / install / auth / setup
  • examples
  • hook why
  • configuration (.local.md settings)
  • tips / traps

Derived for you — native already encodes it

  • skill autoload badge · resource counts
  • command argument table · summary
  • agent tools · summary
  • mcp transport · env-var keys
  • hook event / matcher
  • plugin identity (name/version/author/license/keywords/deps)
  • plugin category
05 This section is the product

Rendered from this repo's manifest.json.

The framework dogfoods itself. View source →

cc-marketspec 0.2.0

Headless data standard + generator for a Claude Code marketplace's presentation

Describe your marketplace as data; cc-marketspec joins it with the native plugin manifests, validates, and emits a single render-agnostic manifest.json. Ships data, not design.

claude-codemarketplacemanifestschema

Skills

  • marketplace-flow — When a user wants to turn a repo into a Claude Code plugin marketplace, fill presentation data, generate the manifest, or wire CI — the skill walks the whole flow.1 ref · 3 assets

Commands

  • cc-check — Validate the marketplace without writing manifest.json; explain any errors.
  • cc-generate — Generate manifest.json for the marketplace in the current directory.
  • cc-init — Scaffold catalog.yaml and per-plugin entry.yaml templates from existing plugins.

MCP

  • cc-marketspec — Hosted, read-only MCP tools for schema lookup and coverage checks.get_schemalist_authoring_sectionsget_authoring_guidecheck_coveragescaffold_entry

Tips

  • This repo is itself a cc-marketspec marketplace — it dogfoods its own framework.
  • Ask the hosted MCP for field help without installing anything.Hosted MCP

Traps

  • entry.yaml never restates native facts — a skill trigger that just repeats the SKILL.md description adds nothing.
06 Quick start

Run it in your marketplace repo.

Install
npm install -D @xbluesky/cc-marketspec
Scaffold
npx @xbluesky/cc-marketspec init
Generate
npx @xbluesky/cc-marketspec
CI gate (validate only)
npx @xbluesky/cc-marketspec --check