{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "api-docs",
  "type": "registry:block",
  "title": "API Docs",
  "description": "API reference shell with auth, pagination, and error examples.",
  "dependencies": [],
  "devDependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "path": "apps/web/src/lib/api-docs.ts",
      "type": "registry:file",
      "target": "apps/web/src/lib/api-docs.ts",
      "content": "export type ApiDocsItem = {\n  key: string;\n  title: string;\n  status?: \"active\" | \"draft\" | \"archived\";\n  metadata?: Record<string, unknown>;\n};\n\nexport function createApiDocsItem(item: ApiDocsItem) {\n  return {\n    key: item.key,\n    title: item.title,\n    status: item.status ?? \"active\",\n    metadata: item.metadata ?? {},\n  };\n}\n\nexport const apiDocsChecklist = [\n  \"Confirm ownership boundaries\",\n  \"Wire persistence or provider adapter\",\n  \"Add audit events for sensitive changes\",\n] as const;\n"
    },
    {
      "path": "apps/web/src/app/(console)/developers/docs/page.tsx",
      "type": "registry:page",
      "target": "apps/web/src/app/(console)/developers/docs/page.tsx",
      "content": "const items = [\n  { title: \"Configure\", description: \"Set ownership, defaults, and permissions.\" },\n  { title: \"Operate\", description: \"Review status, recent activity, and unresolved work.\" },\n  { title: \"Verify\", description: \"Run the checklist before enabling this module in production.\" },\n];\n\nexport default function ApiDocsPage() {\n  return (\n    <main className=\"flex flex-col gap-6 p-6\">\n      <div>\n        <h1 className=\"text-2xl font-semibold\">API Docs</h1>\n        <p className=\"text-muted-foreground\">API reference shell with auth, pagination, and error examples.</p>\n      </div>\n      <div className=\"grid gap-3 md:grid-cols-3\">\n        {items.map((item) => (\n          <section key={item.title} className=\"rounded-lg border p-4\">\n            <h2 className=\"font-medium\">{item.title}</h2>\n            <p className=\"text-sm text-muted-foreground\">{item.description}</p>\n          </section>\n        ))}\n      </div>\n    </main>\n  );\n}\n"
    }
  ],
  "maintenanceSkills": [
    {
      "name": "api-docs",
      "target": ".stackfoundry/skills/api-docs/SKILL.md",
      "content": "---\nname: api-docs\ndescription: Maintain the API Docs module installed by StackFoundry.\n---\n\n# API Docs Maintenance Instructions\n\n- Preserve the module ownership described in `docs.md`.\n- Keep default source templates compact, typed, and provider-neutral.\n- Update `tests/checklist.md` when behavior changes.\n- Do not commit secrets, local state, or generated machine metadata.\n\n## Shared Skills\n\nWhen provider, framework, or database behavior changes, load the installed shared skill before editing implementation details:\n\n- `.stackfoundry/skills/nextjs/SKILL.md` (source: `registry/skills/nextjs/SKILL.md`)\n- `.stackfoundry/skills/docs-hosting/SKILL.md` (source: `registry/skills/docs-hosting/SKILL.md`)\n\nKeep this module skill focused on ownership, installed files, env vars, deployment checks, and module-specific invariants.\n\n"
    },
    {
      "name": "nextjs",
      "target": ".stackfoundry/skills/nextjs/SKILL.md",
      "content": "---\nname: nextjs\ndescription: Maintain Next.js App Router code installed by StackFoundry modules.\n---\n\n# Next.js Operating Instructions\n\n## Installed Location\n\n- Installed target: `.stackfoundry/skills/nextjs/SKILL.md`\n- Registry source: `registry/skills/nextjs/SKILL.md`\n\nAgents maintaining an installed module should load this shared skill from the installed target when provider, framework, database, SDK, or platform behavior is involved. Keep provider-specific API details here instead of duplicating them inside module maintenance skills.\n\n- Keep server-only data access out of Client Components.\n- Put route handlers under `app/api` and UI routes under the relevant App Router segment.\n- Prefer Server Components for data loading and add `\"use client\"` only for interactivity.\n- Keep public environment variables prefixed with `NEXT_PUBLIC_`; keep secrets server-only.\n- Re-run typecheck and build after changing route handlers, layouts, or shared app configuration.\n"
    },
    {
      "name": "docs-hosting",
      "target": ".stackfoundry/skills/docs-hosting/SKILL.md",
      "content": "---\nname: docs-hosting\ndescription: Documentation hosting guidance for installed docs modules.\n---\n\n# Docs Hosting Guidance\n\n## Installed Location\n\n- Installed target: `.stackfoundry/skills/docs-hosting/SKILL.md`\n- Registry source: `registry/skills/docs-hosting/SKILL.md`\n\nAgents maintaining an installed module should load this shared skill from the installed target when provider, framework, database, SDK, or platform behavior is involved. Keep provider-specific API details here instead of duplicating them inside module maintenance skills.\n\n- Choose in-app docs or hosted docs explicitly.\n- Record preview URL, production URL, docs root, and owner.\n- Verify local preview and production deploy.\n- Check metadata, sitemap, and broken links.\n"
    }
  ],
  "envVars": {},
  "docs": "# API Docs Module\n\nAPI reference shell with auth, pagination, and error examples.\n\n## Owns\n\n- `apps/web/src/lib/api-docs.ts`\n- `apps/web/src/app/(console)/developers/docs/page.tsx`\n\n## Environment\n\nNo environment variables are required by default.\n\n## Maintenance\n\n- Keep this module provider-neutral unless a provider adapter is added separately.\n- Update source templates, manifest files, and generated registry output together.\n- Add audit events around sensitive changes before promoting this module beyond experimental.\n- Verify with `stackfoundry add api-docs --target <app> --dry-run`.\n",
  "meta": {
    "category": "developer-platform",
    "env": [],
    "status": "ready",
    "maturity": "ready",
    "recommendedFor": []
  }
}
