[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MD40DSVM3FF5EPPYCV0Q72":3,"skill-same:01M6MD40DSVM3FF5EPPYCV0Q72":113},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":49,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6MD40DSVM3FF5EPPYCV0Q72","fumadocs",null,"Set up, customize, or troubleshoot Fumadocs Core\u002FMDX\u002FUI: adapters, loaders, navigation\u002Flayouts, search, MDX components, OpenAPI, OG images, exports, and i18n. Excludes generic Markdown, unrelated framework setup, and non-Fumadocs projects.","compozy\u002Fcompozy","compozy","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F205107042?v=4","01M6JWVTXX4DX38AWZ7SPFEKEV","CompozyOS","01M6JWVV2P34GM1PDATVB2EV05",2861,"MIT","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"markdown","generic","Adapters","mdx","i18n","images","navigation","unrelated","up","projects","troubleshoot","openapi","SET","ui","search","framework","core","setup","customize","components","2026-11-10 10:12:30",false,"---\nname: fumadocs\ndescription: \"Set up, customize, or troubleshoot Fumadocs Core\u002FMDX\u002FUI: adapters, loaders, navigation\u002Flayouts, search, MDX components, OpenAPI, OG images, exports, and i18n. Excludes generic Markdown, unrelated framework setup, and non-Fumadocs projects.\"\n---\n\n# Fumadocs\n\nFumadocs is a docs framework for React: it sits **inside** Next.js \u002F React Router \u002F TanStack Start \u002F Waku and combines three independently usable packages.\n\n| Package | Role | Skip when |\n| --- | --- | --- |\n| `fumadocs-core` | Headless engine: `loader()`, page tree, MDX plugins, search adapters, i18n primitives | never (always required) |\n| `fumadocs-mdx` | Content source: compiles `content\u002F**\u002F*.mdx` + `meta.json` into typed `.source\u002F` collections | replaced by `@fumadocs\u002Flocal-md`, `@fumadocs\u002Fmdx-remote`, or a custom source |\n| `fumadocs-ui` | Opinionated theme: `RootProvider`, layouts, MDX defaults, search dialog (Tailwind v4) | building a fully bespoke UI on top of `fumadocs-core` |\n\nServer-first via React Server Components. Static export is opt-in. **Edge runtime is unsupported.**\n\n## Procedures\n\n**Step 1: Identify the task class**\n\nMap the user's request to one of these classes, then load the matching reference:\n\n| Class | Trigger phrases | Reference |\n| --- | --- | --- |\n| Bootstrap a project | \"scaffold\", \"set up Fumadocs\", \"install in \u003Cframework>\", \"create-fumadocs-app\" | `references\u002F01-install-and-setup.md` |\n| Routing \u002F file conventions | `meta.json`, `pages` directives, slug rules, root folders, page tree | `references\u002F02-source-and-page-tree.md` |\n| MDX configuration | `source.config.ts`, `defineDocs`, `defineCollections`, async \u002F dynamic mode, plugin order, typegen | `references\u002F03-mdx-pipeline.md` |\n| UI layouts \u002F components \u002F MDX wiring | DocsLayout\u002FNotebook\u002FFlux\u002FHome, `RootProvider`, `mdx-components.tsx`, theming, MDX overrides | `references\u002F04-ui-layouts-and-components.md` |\n| Search \u002F i18n | adapter selection, search dialog, locale routing, middleware | `references\u002F05-search-and-i18n.md` |\n| OpenAPI \u002F OG \u002F AI \u002F content sources \u002F guides | `\u003CAPIPage>`, `generateFiles`, OG image route, `llms.txt`, Ask AI, `local-md`, `mdx-remote`, PDF\u002FEPUB\u002FRSS | `references\u002F06-integrations.md` |\n| Debugging an existing setup | \"broken\", \"blank sidebar\", \"404\", \"build fails\", \"weird hydration\" | `references\u002F07-pitfalls.md` |\n\nIf the task spans multiple classes, load the references in the order shown above (setup → tree → MDX → UI → search\u002Fi18n → integrations).\n\n**Step 2: Confirm the package surface in use**\n\nBefore recommending code, check which Fumadocs surface the project actually uses. Read these files (paths are conventional, not absolute):\n\n1. `package.json` — confirm `fumadocs-core`, `fumadocs-mdx`, `fumadocs-ui` versions and which adapter is installed (`next`, `@react-router\u002F...`, `@tanstack\u002Freact-start`, `waku`).\n2. `source.config.ts` (Fumadocs MDX) **or** `lib\u002Fsource.ts` (low-level `loader()`) — determines whether the project uses the bundler-backed MDX path or a runtime source (`local-md`, `mdx-remote`, custom).\n3. The catch-all docs route — Next: `app\u002F\u003Csegment>\u002F[[...slug]]\u002Fpage.tsx`; React Router: `routes\u002Fdocs\u002F$.tsx` or `route('docs\u002F*', ...)`; TanStack Start: `routes\u002Fdocs\u002F$.tsx`; Waku: `pages\u002Fdocs\u002F[...slugs].tsx`.\n4. The root layout \u002F provider import path — `fumadocs-ui\u002Fprovider\u002F{next,react-router,tanstack,waku}` MUST match the framework.\n5. Tailwind entry — confirm Tailwind 4, the colour preset (`fumadocs-ui\u002Fcss\u002F\u003Ctheme>.css`) and `fumadocs-ui\u002Fcss\u002Fpreset.css` imports.\n\nIf any of these contradicts the user's request, surface the conflict before editing.\n\n**Step 3: Choose adapters and modes deterministically**\n\nUse these decision tables instead of guessing:\n\n### MDX entry mode (Fumadocs MDX → `collections\u002F{server,browser,dynamic}`)\n\n| Choose | When |\n| --- | --- |\n| `server` | RSC \u002F SSR \u002F SSG (default, fastest first paint) |\n| `browser` | Client-routed apps (TanStack Start, React Router SPA mode) — only `doc` \u002F `docs` collections |\n| `dynamic` | Very large libraries (>500 MDX) where build time \u002F memory dominates |\n| direct `import` | One-off MDX as a page or React component (no `loader()` indirection) |\n\n### Content source\n\n| Choose | When |\n| --- | --- |\n| Fumadocs MDX (default) | Bundler-backed, typegen, image optimization, full MDX `import`\u002F`export` |\n| `@fumadocs\u002Flocal-md` | Runtime-only, Cloudflare Workers compat, no `eval`, no bundler step |\n| `@fumadocs\u002Fmdx-remote` | Runtime compile from CMS \u002F remote content (trusted input only) |\n| custom (`StaticSource` \u002F `DynamicSource`) | Hardcoded trees, generated content, multi-tenant per-permission sources |\n\n### Search adapter\n\n| Choose | When |\n| --- | --- |\n| `orama` (default) | Self-hosted, free, typed schema, vector capable |\n| `flexsearch` | Tiny \u002F medium docs, zero infra, smaller bundle than Orama |\n| `algolia` | Enterprise scale, polished relevance (free tier requires logo) |\n| `orama-cloud` | Hosted Orama, scale without ops |\n| `mixedbread` | Semantic \u002F vector \u002F natural-language queries |\n| `typesense` | OSS scale + faceting (community adapter) |\n| `trieve` | RAG \u002F hybrid retrieval (community-maintained) |\n| custom | Hand-roll a `\u002Fstatic.json` route from `source.getPages().structuredData` |\n\n### Layout\n\n| Choose | When |\n| --- | --- |\n| `fumadocs-ui\u002Flayouts\u002Fdocs` | Classic docs site with persistent sidebar |\n| `fumadocs-ui\u002Flayouts\u002Fnotebook` | Denser, app-shell feel; supports top-tab navigation |\n| `fumadocs-ui\u002Flayouts\u002Fflux` | Aggressively minimal (client-only — no unserialisable RSC props) |\n| `fumadocs-ui\u002Flayouts\u002Fhome` | Marketing \u002F landing pages that share docs chrome |\n\nWhen the layout changes, **the per-doc page import must follow** (`fumadocs-ui\u002Flayouts\u002F\u003Clayout>\u002Fpage` → `DocsPage`, `DocsTitle`, `DocsBody`).\n\n**Step 4: Wire `source.config.ts`, `loader()`, and `mdx-components.tsx`**\n\nThese three files form the spine of any Fumadocs setup. Use the canonical templates (read first, then adapt):\n\n1. Read `assets\u002Fsource-config-template.ts` for the `defineDocs` + `defineCollections` + `defineConfig` shape, schema extension via `pageSchema` \u002F `metaSchema`, and the recommended `tsconfig` alias `collections\u002F* → .source\u002F*`.\n2. Read `assets\u002Fsource-template.ts` for the `loader({ source, baseUrl, url, slugs, icon, i18n, plugins })` shape and the typical `lib\u002Fsource.ts` exports.\n3. Read `assets\u002Fmdx-components-template.tsx` for the `getMDXComponents` pattern, the `pre` ref-strip workaround, and `createRelativeLink(source, page)` wiring.\n\nIf the project already has these files, prefer surgical edits over rewrites — collection-level `mdxOptions` **wipes** globals, so use `applyMdxPreset(...)` to keep the docs preset.\n\n**Step 5: Validate before claiming done**\n\nFor any change that touches MDX content, source config, page conventions, or layouts:\n\n1. Trigger source generation via the project's existing dev script (Fumadocs MDX writes `.source\u002F` on `dev`\u002F`build`; otherwise run `npx fumadocs-mdx`).\n2. Run the framework's typecheck — `.source\u002Findex.d.ts` must compile cleanly. A `.source\u002F` not regenerated is the most common cause of \"module not found\" or \"property does not exist\" errors.\n3. Render the affected route(s) — sidebar items match `meta.json.pages`, breadcrumbs\u002FTOC populate, search dialog opens with `⌘K`. Layout-level breakage is silent until rendered.\n4. If i18n is configured, check the locale variants: `defaultLanguage` and at least one non-default. `hideLocale: 'always'` cookies break static caches — surface this if applicable.\n\n**Step 6: Use the pitfall catalog before debugging**\n\nWhen the user reports a bug, **read `references\u002F07-pitfalls.md` first** — most failures are catalogued. The five most common:\n\n1. **Tailwind v3 silently breaks the theme** — only Tailwind v4 + `fumadocs-ui\u002Fcss\u002Fpreset.css` is supported.\n2. **`next.config.js` (CJS) won't load `fumadocs-mdx`** — the loader is ESM only; rename to `next.config.mjs` or enable Native Node TS resolver.\n3. **Layout\u002Fpage import mismatch** — Notebook\u002FFlux require `DocsPage` from `layouts\u002F\u003Clayout>\u002Fpage`; defaulting to `layouts\u002Fdocs\u002Fpage` produces broken TOC\u002Ffooter.\n4. **Duplicated URLs in the page tree** — Fumadocs locates the active node by `pathname` only; any duplicate corrupts active-link detection.\n5. **Provider subpath mismatch** — `fumadocs-ui\u002Fprovider\u002F\u003Cframework>` must match the adapter or `RootProvider` silently no-ops (search, theme switch, i18n all stop working).\n\n## Error Handling\n\n* **The user mentions a feature that isn't visible in `package.json`.** Ask which adapter they're on before generating code; never assume Next.js because the docs default to it.\n* **The framework adapter is older than Fumadocs 16.** Earlier majors used different provider paths and Tailwind 3 — verify the version and read `references\u002F07-pitfalls.md` for migration notes before editing.\n* **`source.config.ts` and a runtime source (`local-md` \u002F `mdx-remote`) coexist.** Two competing loaders is not a supported state — read `references\u002F06-integrations.md#content-sources` and pick one before changing code.\n* **Static export is required.** Confirm whether search needs to be `static` (Orama static, FlexSearch static, or hosted\u002Fcloud) — server-fetch search will not work statically. See `references\u002F05-search-and-i18n.md#static-export`.\n* **`.source\u002F` does not exist or is stale.** Trigger source generation before any typecheck; missing entries cause cryptic \"module not found\" \u002F \"is not exported\" errors.\n* **OpenAPI is requested.** `openapiSource()` mutates `page.type` to `'openapi'` — every consumer (`getLLMText`, page renderer, search index, OG image, RSS) must branch on it. Read `references\u002F06-integrations.md#openapi` before wiring.\n","# Fumadocs\n\nFumadocs is a docs framework for React: it sits **inside** Next.js \u002F React Router \u002F TanStack Start \u002F Waku and combines three independently usable packages.\n\n| Package | Role | Skip when |\n| --- | --- | --- |\n| `fumadocs-core` | Headless engine: `loader()`, page tree, MDX plugins, search adapters, i18n primitives | never (always required) |\n| `fumadocs-mdx` | Content source: compiles `content\u002F**\u002F*.mdx` + `meta.json` into typed `.source\u002F` collections | replaced by `@fumadocs\u002Flocal-md`, `@fumadocs\u002Fmdx-remote`, or a custom source |\n| `fumadocs-ui` | Opinionated theme: `RootProvider`, layouts, MDX defaults, search dialog (Tailwind v4) | building a fully bespoke UI on top of `fumadocs-core` |\n\nServer-first via React Server Components. Static export is opt-in. **Edge runtime is unsupported.**\n\n## Procedures\n\n**Step 1: Identify the task class**\n\nMap the user's request to one of these classes, then load the matching reference:\n\n| Class | Trigger phrases | Reference |\n| --- | --- | --- |\n| Bootstrap a project | \"scaffold\", \"set up Fumadocs\", \"install in \u003Cframework>\", \"create-fumadocs-app\" | `references\u002F01-install-and-setup.md` |\n| Routing \u002F file conventions | `meta.json`, `pages` directives, slug rules, root folders, page tree | `references\u002F02-source-and-page-tree.md` |\n| MDX configuration | `source.config.ts`, `defineDocs`, `defineCollections`, async \u002F dynamic mode, plugin order, typegen | `references\u002F03-mdx-pipeline.md` |\n| UI layouts \u002F components \u002F MDX wiring | DocsLayout\u002FNotebook\u002FFlux\u002FHome, `RootProvider`, `mdx-components.tsx`, theming, MDX overrides | `references\u002F04-ui-layouts-and-components.md` |\n| Search \u002F i18n | adapter selection, search dialog, locale routing, middleware | `references\u002F05-search-and-i18n.md` |\n| OpenAPI \u002F OG \u002F AI \u002F content sources \u002F guides | `\u003CAPIPage>`, `generateFiles`, OG image route, `llms.txt`, Ask AI, `local-md`, `mdx-remote`, PDF\u002FEPUB\u002FRSS | `references\u002F06-integrations.md` |\n| Debugging an existing setup | \"broken\", \"blank sidebar\", \"404\", \"build fails\", \"weird hydration\" | `references\u002F07-pitfalls.md` |\n\nIf the task spans multiple classes, load the references in the order shown above (setup → tree → MDX → UI → search\u002Fi18n → integrations).\n\n**Step 2: Confirm the package surface in use**\n\nBefore recommending code, check which Fumadocs surface the project actually uses. Read these files (paths are conventional, not absolute):\n\n1. `package.json` — confirm `fumadocs-core`, `fumadocs-mdx`, `fumadocs-ui` versions and which adapter is installed (`next`, `@react-router\u002F...`, `@tanstack\u002Freact-start`, `waku`).\n2. `source.config.ts` (Fumadocs MDX) **or** `lib\u002Fsource.ts` (low-level `loader()`) — determines whether the project uses the bundler-backed MDX path or a runtime source (`local-md`, `mdx-remote`, custom).\n3. The catch-all docs route — Next: `app\u002F\u003Csegment>\u002F[[...slug]]\u002Fpage.tsx`; React Router: `routes\u002Fdocs\u002F$.tsx` or `route('docs\u002F*', ...)`; TanStack Start: `routes\u002Fdocs\u002F$.tsx`; Waku: `pages\u002Fdocs\u002F[...slugs].tsx`.\n4. The root layout \u002F provider import path — `fumadocs-ui\u002Fprovider\u002F{next,react-router,tanstack,waku}` MUST match the framework.\n5. Tailwind entry — confirm Tailwind 4, the colour preset (`fumadocs-ui\u002Fcss\u002F\u003Ctheme>.css`) and `fumadocs-ui\u002Fcss\u002Fpreset.css` imports.\n\nIf any of these contradicts the user's request, surface the conflict before editing.\n\n**Step 3: Choose adapters and modes deterministically**\n\nUse these decision tables instead of guessing:\n\n### MDX entry mode (Fumadocs MDX → `collections\u002F{server,browser,dynamic}`)\n\n| Choose | When |\n| --- | --- |\n| `server` | RSC \u002F SSR \u002F SSG (default, fastest first paint) |\n| `browser` | Client-routed apps (TanStack Start, React Router SPA mode) — only `doc` \u002F `docs` collections |\n| `dynamic` | Very large libraries (>500 MDX) where build time \u002F memory dominates |\n| direct `import` | One-off MDX as a page or React component (no `loader()` indirection) |\n\n### Content source\n\n| Choose | When |\n| --- | --- |\n| Fumadocs MDX (default) | Bundler-backed, typegen, image optimization, full MDX `import`\u002F`export` |\n| `@fumadocs\u002Flocal-md` | Runtime-only, Cloudflare Workers compat, no `eval`, no bundler step |\n| `@fumadocs\u002Fmdx-remote` | Runtime compile from CMS \u002F remote content (trusted input only) |\n| custom (`StaticSource` \u002F `DynamicSource`) | Hardcoded trees, generated content, multi-tenant per-permission sources |\n\n### Search adapter\n\n| Choose | When |\n| --- | --- |\n| `orama` (default) | Self-hosted, free, typed schema, vector capable |\n| `flexsearch` | Tiny \u002F medium docs, zero infra, smaller bundle than Orama |\n| `algolia` | Enterprise scale, polished relevance (free tier requires logo) |\n| `orama-cloud` | Hosted Orama, scale without ops |\n| `mixedbread` | Semantic \u002F vector \u002F natural-language queries |\n| `typesense` | OSS scale + faceting (community adapter) |\n| `trieve` | RAG \u002F hybrid retrieval (community-maintained) |\n| custom | Hand-roll a `\u002Fstatic.json` route from `source.getPages().structuredData` |\n\n### Layout\n\n| Choose | When |\n| --- | --- |\n| `fumadocs-ui\u002Flayouts\u002Fdocs` | Classic docs site with persistent sidebar |\n| `fumadocs-ui\u002Flayouts\u002Fnotebook` | Denser, app-shell feel; supports top-tab navigation |\n| `fumadocs-ui\u002Flayouts\u002Fflux` | Aggressively minimal (client-only — no unserialisable RSC props) |\n| `fumadocs-ui\u002Flayouts\u002Fhome` | Marketing \u002F landing pages that share docs chrome |\n\nWhen the layout changes, **the per-doc page import must follow** (`fumadocs-ui\u002Flayouts\u002F\u003Clayout>\u002Fpage` → `DocsPage`, `DocsTitle`, `DocsBody`).\n\n**Step 4: Wire `source.config.ts`, `loader()`, and `mdx-components.tsx`**\n\nThese three files form the spine of any Fumadocs setup. Use the canonical templates (read first, then adapt):\n\n1. Read `assets\u002Fsource-config-template.ts` for the `defineDocs` + `defineCollections` + `defineConfig` shape, schema extension via `pageSchema` \u002F `metaSchema`, and the recommended `tsconfig` alias `collections\u002F* → .source\u002F*`.\n2. Read `assets\u002Fsource-template.ts` for the `loader({ source, baseUrl, url, slugs, icon, i18n, plugins })` shape and the typical `lib\u002Fsource.ts` exports.\n3. Read `assets\u002Fmdx-components-template.tsx` for the `getMDXComponents` pattern, the `pre` ref-strip workaround, and `createRelativeLink(source, page)` wiring.\n\nIf the project already has these files, prefer surgical edits over rewrites — collection-level `mdxOptions` **wipes** globals, so use `applyMdxPreset(...)` to keep the docs preset.\n\n**Step 5: Validate before claiming done**\n\nFor any change that touches MDX content, source config, page conventions, or layouts:\n\n1. Trigger source generation via the project's existing dev script (Fumadocs MDX writes `.source\u002F` on `dev`\u002F`build`; otherwise run `npx fumadocs-mdx`).\n2. Run the framework's typecheck — `.source\u002Findex.d.ts` must compile cleanly. A `.source\u002F` not regenerated is the most common cause of \"module not found\" or \"property does not exist\" errors.\n3. Render the affected route(s) — sidebar items match `meta.json.pages`, breadcrumbs\u002FTOC populate, search dialog opens with `⌘K`. Layout-level breakage is silent until rendered.\n4. If i18n is configured, check the locale variants: `defaultLanguage` and at least one non-default. `hideLocale: 'always'` cookies break static caches — surface this if applicable.\n\n**Step 6: Use the pitfall catalog before debugging**\n\nWhen the user reports a bug, **read `references\u002F07-pitfalls.md` first** — most failures are catalogued. The five most common:\n\n1. **Tailwind v3 silently breaks the theme** — only Tailwind v4 + `fumadocs-ui\u002Fcss\u002Fpreset.css` is supported.\n2. **`next.config.js` (CJS) won't load `fumadocs-mdx`** — the loader is ESM only; rename to `next.config.mjs` or enable Native Node TS resolver.\n3. **Layout\u002Fpage import mismatch** — Notebook\u002FFlux require `DocsPage` from `layouts\u002F\u003Clayout>\u002Fpage`; defaulting to `layouts\u002Fdocs\u002Fpage` produces broken TOC\u002Ffooter.\n4. **Duplicated URLs in the page tree** — Fumadocs locates the active node by `pathname` only; any duplicate corrupts active-link detection.\n5. **Provider subpath mismatch** — `fumadocs-ui\u002Fprovider\u002F\u003Cframework>` must match the adapter or `RootProvider` silently no-ops (search, theme switch, i18n all stop working).\n\n## Error Handling\n\n* **The user mentions a feature that isn't visible in `package.json`.** Ask which adapter they're on before generating code; never assume Next.js because the docs default to it.\n* **The framework adapter is older than Fumadocs 16.** Earlier majors used different provider paths and Tailwind 3 — verify the version and read `references\u002F07-pitfalls.md` for migration notes before editing.\n* **`source.config.ts` and a runtime source (`local-md` \u002F `mdx-remote`) coexist.** Two competing loaders is not a supported state — read `references\u002F06-integrations.md#content-sources` and pick one before changing code.\n* **Static export is required.** Confirm whether search needs to be `static` (Orama static, FlexSearch static, or hosted\u002Fcloud) — server-fetch search will not work statically. See `references\u002F05-search-and-i18n.md#static-export`.\n* **`.source\u002F` does not exist or is stale.** Trigger source generation before any typecheck; missing entries cause cryptic \"module not found\" \u002F \"is not exported\" errors.\n* **OpenAPI is requested.** `openapiSource()` mutates `page.type` to `'openapi'` — every consumer (`getLLMText`, page renderer, search index, OG image, RSS) must branch on it. Read `references\u002F06-integrations.md#openapi` before wiring.\n",{"name":5,"description":7},"main","65613632bb94072e27fc5015d17387e28a870111",".agents\u002Fskills\u002Ffumadocs",188,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy","https:\u002F\u002Fcompozy.com","https:\u002F\u002Fgithub.com\u002Fcompozy","An OS for AI agents","2026-11-11 10:13:11",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add compozy\u002Fcompozy --skill fumadocs",{"tool":59,"command":60},"bunx","bunx skills add compozy\u002Fcompozy --skill fumadocs",{"tool":62,"command":63},"pnpm","pnpm dlx skills add compozy\u002Fcompozy --skill fumadocs","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002FSKILL.md",true,[67,73,79,83,89,93,97,101,105,109],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"assets\u002Fmdx-components-template.tsx","ASSET","资产文件",2569,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Fassets\u002Fmdx-components-template.tsx",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"assets\u002Fsource-config-template.ts","SCRIPT","脚本",4552,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Fassets\u002Fsource-config-template.ts",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"assets\u002Fsource-template.ts",2125,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Fassets\u002Fsource-template.ts",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002F01-install-and-setup.md","REFERENCE","参考文档",8294,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Freferences\u002F01-install-and-setup.md",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002F02-source-and-page-tree.md",6835,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Freferences\u002F02-source-and-page-tree.md",{"path":94,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002F03-mdx-pipeline.md",11387,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Freferences\u002F03-mdx-pipeline.md",{"path":98,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002F04-ui-layouts-and-components.md",13349,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Freferences\u002F04-ui-layouts-and-components.md",{"path":102,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002F05-search-and-i18n.md",8682,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Freferences\u002F05-search-and-i18n.md",{"path":106,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002F06-integrations.md",13578,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Freferences\u002F06-integrations.md",{"path":110,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":111,"sourceHtmlUrl":112},"references\u002F07-pitfalls.md",10844,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffumadocs\u002Freferences\u002F07-pitfalls.md",[114,150,175,196,207,219],{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":118,"licenseFileUrl":119,"sourceHtmlUrl":120,"categories":121,"keywords":127,"publishedAt":39},"01M6MD7W312X49RNEJRKKVKTTD","security-review","Security code review for vulnerabilities. Use when asked to \"security review\", \"find vulnerabilities\", \"check for security issues\", \"audit security\", \"OWASP review\", or review code for injection, XSS, authentication, authorization, cryptography issues. Provides systematic review with confidence-based reporting.","CC-BY-SA-4.0","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-review\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-review\u002FSKILL.md",[122],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149],"security","security review","review","injection","authentication","code review","issues","Bash","code","xss","audit","systematic","read","reporting","cryptography","owasp","systematic review","for","use","task","when","audit security",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":161,"publishedAt":39},"01M6MD5K93G1GP8VA56V2FEPZV","lesson-learned","Extract evidence-backed engineering lessons from recent changes or incidents. Use for requested reflection, lesson updates, or retiring an obsolete workflow rule.","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flesson-learned\u002FSKILL.md",[156],{"categoryNo":157,"categoryName":158,"taxonomyType":159,"taxonomyTypeDesc":160},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[162,163,164,145,165,166,167,168,169,170,171,172,146,173,174],"learned","lesson learned","lesson","changes","evidence","incidents","workflow","engineering","updates","extract","rule","lessons","reflection",{"skillNo":176,"name":9,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":39},"01M6MDPNH3J60VRCGTPHVTHZR8","Operate CompozyOS. Use when working with CompozyOS sessions, agents, native tools, skills, tasks, Loops, Goals, Terminal, desktops and windows, automation, extensions, or configuration. Don't use for unrelated projects.","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002Fskills\u002Fcompozy\u002FSKILL.md",[],[9,181,182,28,183,145,184,185,146,186,187,188,189,190,26,191,192,193,194,195,148],"sessions","windows","operate","runtime","true","automation","tasks","extensions","with","loops","goals","native","terminal","configuration","Tools",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":202,"publishedAt":39},"01M6MDPHKNPQHJ1TF21E1HSFNF","remotion-upgrade","Upgrade Remotion, and related packages","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002Fpackages\u002Flaunch-video\u002F.agents\u002Fskills\u002Fremotion-upgrade\u002FSKILL.md",[],[203,204,205,206],"remotion upgrade","upgrade","Remotion","packages",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":211,"categories":212,"keywords":213,"publishedAt":39},"01M6MDPFT91ZWC7Z09MRNZPAJG","remotion-studio","Preview a Remotion video","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002Fpackages\u002Flaunch-video\u002F.agents\u002Fskills\u002Fremotion-studio\u002FSKILL.md",[],[214,215,205,216,217,218],"studio","remotion studio","Video","preview","remotion video",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":225,"publishedAt":39},"01M6MDPD5XDZPYB5NAZGKMPXWC","remotion-saas","Build an app with Remotion","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002Fpackages\u002Flaunch-video\u002F.agents\u002Fskills\u002Fremotion-saas\u002FSKILL.md",[],[226,227,205,189,228,229],"saas","remotion saas","app","build"]