var p=Object.defineProperty;var d=(t)=>t;function m(t,a){this[t]=d.bind(null,a)}var h=(t,a)=>{for(var i in a)p(t,i,{get:a[i],enumerable:!0,configurable:!0,set:m.bind(a,i)})};var b=(t,a)=>()=>(t&&(a=t(t=0)),a);import u from"@contractspec/lib.ui-link";import{jsx as r,jsxs as g}from"react/jsx-runtime";function l({title:t="Need the operating layer on top of OSS ContractSpec?",body:a="ContractSpec Studio helps teams turn evidence into proposed spec changes, governed delivery loops, and execution-ready task packs while keeping the open contract system as the source of truth.",ctaLabel:i="See what Studio adds",href:c="https://www.contractspec.studio/docs"}){return g("div",{className:"card-subtle space-y-3 p-6",children:[r("h3",{className:"font-semibold text-lg",children:t}),r("p",{className:"text-muted-foreground text-sm",children:a}),r(u,{href:c,className:"btn-primary",children:i})]})}import{CodeBlock as n}from"@contractspec/lib.design-system";import s from"@contractspec/lib.ui-link";import{ChevronRight as f}from"lucide-react";import{jsx as e,jsxs as o}from"react/jsx-runtime";function L(){return o("div",{className:"space-y-8",children:[o("div",{className:"space-y-3",children:[e("h1",{className:"font-bold text-4xl",children:"Plugin authoring templates"}),e("p",{className:"text-lg text-muted-foreground",children:"Scaffold focused Cursor plugins for ContractSpec product and core libraries."})]}),o("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Create a focused plugin"}),e("p",{className:"text-muted-foreground text-sm",children:"Start from a scoped domain and keep each plugin aligned to one product or library surface."}),e(n,{language:"bash",filename:"catalog-authoring-layout",code:`packages/apps-registry/cursor-marketplace/
  plugins/
    <plugin-name>/
      .cursor-plugin/plugin.json
      rules/
      commands/
      agents/
      skills/
      .mcp.json`})]}),o("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Template outputs"}),o("ul",{className:"space-y-2 text-muted-foreground text-sm",children:[e("li",{children:".cursor-plugin/plugin.json with plugin metadata and paths"}),e("li",{children:"rules/, commands/, agents/, and skills/ content directories"}),e("li",{children:".mcp.json with all MCP server declarations used by the plugin"}),e("li",{children:"README.md describing scope and governance boundaries"})]})]}),o("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"Validate before submission"}),e(n,{language:"bash",filename:"validate-marketplace-catalog",code:`# Validate all plugins referenced by root marketplace manifest
bun run plugin:contractspec:validate

# Optional in offline environments
SKIP_PLUGIN_NETWORK_CHECK=1 bun run plugin:contractspec:validate`})]}),e(l,{title:"Need evidence-backed template iteration?",body:"Studio helps teams prioritize template changes from real product signals and export implementation-ready task packs."}),o("div",{className:"flex items-center gap-4 pt-4",children:[o(s,{href:"/docs/ecosystem/plugins",className:"btn-primary",children:["Marketplace plugins ",e(f,{size:16})]}),e(s,{href:"/docs/ecosystem/registry",className:"btn-ghost",children:"Marketplace manifest"})]})]})}export{L as EcosystemTemplatesPage};
