OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

Marketplace manifest

ContractSpec publishes a multi-plugin Cursor marketplace catalog from a single root manifest.

Root manifest shape

Cursor reads packages/apps-registry/cursor-marketplace/.cursor-plugin/marketplace.json for the catalog and resolves each plugin source path from there.

packages/apps-registry/cursor-marketplace/.cursor-plugin/marketplace.json
{
  "name": "contractspec-marketplace",
  "owner": { "name": "ContractSpec Team" },
  "plugins": [
    {
      "name": "contractspec",
      "source": "plugins/contractspec"
    },
    {
      "name": "contractspec-contracts-spec",
      "source": "plugins/contractspec-contracts-spec"
    }
  ]
}

Per-plugin contract

Each plugin source must include a Cursor plugin manifest and composable assets. The publishable plugin is derived from a reusable pack and then validated here.

plugin-layout
plugins/<plugin-name>/
  .cursor-plugin/plugin.json
  rules/
  commands/
  agents/
  skills/
  .mcp.json
validate-catalog
bun run plugin:contractspec:validate

# Optional in offline environments
SKIP_PLUGIN_NETWORK_CHECK=1 bun run plugin:contractspec:validate
OSS docsStart with OSS. Adopt Studio when you want the operating layer.

Why ContractSpec

Keep educational and comparison content reachable without letting it define the primary OSS learning path.