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.
Cursor marketplace plugins
ContractSpec ships a focused Cursor marketplace catalog for the product and key libraries.
Catalog at a glance
contractspec- Product-level workflow and release guardrails.contractspec-contracts-spec-@contractspec/lib.contracts-specgovernance.contractspec-contracts-integrations-@contractspec/lib.contracts-integrationsgovernance.contractspec-ai-agent-@contractspec/lib.ai-agentorchestration guardrails.
Where plugin sources live
Marketplace plugin artifacts are kept in a dedicated package, while the canonical reusable source lives in agentpacks under `packs/`.
packages/apps-registry/cursor-marketplace/
.cursor-plugin/marketplace.json
plugins/
contractspec/
contractspec-contracts-spec/
contractspec-contracts-integrations/
contractspec-ai-agent/
packs/
contractspec-contracts-spec/Root marketplace manifest
Cursor submission reads the catalog manifest inside the marketplace package and resolves plugin paths relative to that package.
{
"name": "contractspec-marketplace",
"owner": { "name": "ContractSpec Team" },
"plugins": [
{
"name": "contractspec",
"source": "plugins/contractspec"
},
{
"name": "contractspec-contracts-spec",
"source": "plugins/contractspec-contracts-spec"
},
{
"name": "contractspec-contracts-integrations",
"source": "plugins/contractspec-contracts-integrations"
},
{
"name": "contractspec-ai-agent",
"source": "plugins/contractspec-ai-agent"
}
]
}Generated multi-host system
The Cursor plugin is publishable metadata only. Customer-facing Cursor, Claude Code, and Codex outputs are generated from the same pack source with hook and MCP delivery.
Validation gate
Validate all marketplace plugins before publishing.
bun run plugin:contractspec:validate
# Optional when offline
SKIP_PLUGIN_NETWORK_CHECK=1 bun run plugin:contractspec:validateWhy ContractSpec
Keep educational and comparison content reachable without letting it define the primary OSS learning path.