{"id":24844,"plugin_id":"plugin_connector_690a90ec05c881918afb6a55dc9bbaa1","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:18:44.003Z","digest":"a04562f7da7bfe424ef8e49fc377f91bdfe0a6a8840ab8cd346f0edd4eadd709","against":5266,"payload":{"name":"geistdocs","description":"Expert guidance for Geistdocs, Vercel's documentation template built with Next.js and Fumadocs — MDX authoring, configuration, AI chat, i18n, feedback, deployment. Use when creating documentation sites, configuring geistdocs, writing MDX content, or setting up docs infrastructure.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":176}],"skill_md_contents":"---\nname: geistdocs\ndescription: Expert guidance for Geistdocs, Vercel's documentation template built with Next.js and Fumadocs — MDX authoring, configuration, AI chat, i18n, feedback, deployment. Use when creating documentation sites, configuring geistdocs, writing MDX content, or setting up docs infrastructure.\nmetadata:\n  priority: 5\n  docs:\n    - \"https://preview.geistdocs.com/docs\"\n    - \"https://preview.geistdocs.com/docs/getting-started\"\n    - \"https://preview.geistdocs.com/docs/configuration\"\n    - \"https://preview.geistdocs.com/docs/syntax\"\n    - \"https://github.com/vercel/geistdocs\"\n  sitemap: \"https://preview.geistdocs.com/sitemap.xml\"\n  pathPatterns:\n    - 'geistdocs.tsx'\n    - 'content/docs/**/*.mdx'\n    - 'content/docs/**/*.md'\n    - 'apps/*/geistdocs.tsx'\n    - 'apps/*/content/docs/**/*.mdx'\n    - 'apps/*/content/docs/**/*.md'\n  importPatterns:\n    - '@vercel/geistdocs'\n    - 'fumadocs-core'\n    - 'fumadocs-ui'\n    - 'fumadocs-mdx'\n  bashPatterns:\n    - '\\bnpx\\s+@vercel/geistdocs\\s+init\\b'\n    - '\\bnpm\\s+(install|i|add)\\s+[^\\n]*\\bfumadocs\\b'\n    - '\\bpnpm\\s+(install|i|add)\\s+[^\\n]*\\bfumadocs\\b'\n    - '\\bbun\\s+(install|i|add)\\s+[^\\n]*\\bfumadocs\\b'\n    - '\\byarn\\s+add\\s+[^\\n]*\\bfumadocs\\b'\n    - '\\bpnpm\\s+translate\\b'\n  promptSignals:\n    phrases:\n      - \"geistdocs\"\n      - \"documentation site\"\n      - \"documentation template\"\n      - \"docs site\"\n      - \"docs page\"\n      - \"fumadocs\"\n      - \"llms.txt\"\n    allOf:\n      - [docs, mdx]\n      - [docs, template]\n      - [documentation, vercel]\n      - [docs, i18n]\n      - [docs, feedback]\n    anyOf:\n      - \"documentation\"\n      - \"docs\"\n      - \"mdx content\"\n      - \"ask ai\"\n      - \"rss feed\"\n      - \"edit on github\"\n      - \"internationalization\"\n    noneOf:\n      - \"api reference generator\"\n      - \"storybook\"\n      - \"docusaurus\"\n    minScore: 6\n---\n\n# Geistdocs — Vercel Documentation Template\n\nYou are an expert in Geistdocs, Vercel's production-ready documentation template built with Next.js 16 and Fumadocs. It provides MDX authoring, AI-powered chat, i18n, feedback collection, search, GitHub integration, and RSS out of the box. Currently in **beta**.\n\n## Getting Started\n\n### Prerequisites\n- Node.js 18+, pnpm, GitHub account\n- Familiarity with MDX, Next.js, React\n\n### Create a New Project\n\n```bash\nnpx @vercel/geistdocs init\n```\n\nThis clones the template, prompts for a project name, installs dependencies, and removes sample content.\n\n### Environment Setup\n\n```bash\ncp .env.example .env.local\npnpm dev\n```\n\n| Variable | Description |\n|---|---|\n| `AI_GATEWAY_API_KEY` | Powers AI chat; auto-configured on Vercel deployments |\n| `NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL` | Production domain (format: `localhost:3000`, no protocol prefix); auto-set by Vercel |\n\n## Project Structure\n\n```\ngeistdocs.tsx          # Root config — Logo, nav, title, prompt, suggestions, github, translations\ncontent/docs/          # MDX documentation content\n  getting-started.mdx  # → /docs/getting-started\n  my-page.mdx          # → /docs/my-page\n  my-page.cn.mdx       # → /cn/docs/my-page (i18n)\n.env.local             # Environment variables\n```\n\nPages auto-route from the `content/docs/` directory: `content/docs/my-first-page.mdx` becomes `/docs/my-first-page`.\n\n## Configuration (`geistdocs.tsx`)\n\nThe root config file exports these values:\n\n```tsx\nimport { BookHeartIcon } from \"lucide-react\";\n\n// Header branding\nexport const Logo = () => (\n  <span className=\"flex items-center gap-2 font-semibold\">\n    <BookHeartIcon className=\"size-5\" />\n    My Docs\n  </span>\n);\n\n// Navigation links\nexport const nav = [\n  { label: \"Blog\", href: \"/blog\" },\n  { label: \"GitHub\", href: \"https://github.com/org/repo\" },\n];\n\n// Site title (used in RSS, metadata)\nexport const title = \"My Documentation\";\n\n// AI assistant system prompt\nexport const prompt = \"You are a helpful assistant for My Product documentation.\";\n\n// AI suggested prompts\nexport const suggestions = [\n  \"How do I get started?\",\n  \"What features are available?\",\n];\n\n// Edit on GitHub integration\nexport const github = { owner: \"username\", repo: \"repo-name\" };\n\n// Internationalization\nexport const translations = {\n  en: { displayName: \"English\" },\n  cn: { displayName: \"中文\", search: \"搜尋文檔\" },\n};\n```\n\n## MDX Syntax & Frontmatter\n\nEvery MDX file requires frontmatter:\n\n```mdx\n---\ntitle: My Page Title\ndescription: A brief description of this page\n---\n\nYour content here...\n```\n\n### Supported Syntax\n\n- **Text**: Bold, italic, strikethrough, inline code\n- **Headings**: H1–H6 with auto anchor links\n- **Lists**: Ordered, unordered, nested, task lists (GFM)\n- **Tables**: GFM tables\n- **Links, Images, Blockquotes**: Standard markdown\n\n### Code Blocks\n\nLanguage specification with special attributes:\n\n````mdx\n```tsx title=\"app/page.tsx\" lineNumbers\nexport default function Page() {\n  return <h1>Hello</h1> // [!code highlight]\n}\n```\n````\n\n| Attribute | Effect |\n|---|---|\n| `title=\"filename\"` | File path header |\n| `lineNumbers` | Show line numbers |\n| `[!code highlight]` | Highlight line |\n| `[!code word:term]` | Highlight term |\n| `[!code ++]` / `[!code --]` | Diff additions/deletions |\n| `[!code focus]` | Focus line |\n\n### Mermaid Diagrams\n\n````mdx\n```mermaid\ngraph TD\n  A[Start] --> B[Process]\n  B --> C[End]\n```\n````\n\nSupports flowcharts, sequence diagrams, and architecture diagrams.\n\n## GeistdocsProvider\n\nRoot-level wrapper extending Fumadocs' `RootProvider`. Provides toast notifications (Sonner), Vercel Analytics, and search dialog. The AI sidebar auto-adds padding on desktop; mobile uses a drawer.\n\n```tsx\nimport { GeistdocsProvider } from \"./components/provider\";\n\nexport default function RootLayout({ children }) {\n  return (\n    <html>\n      <body>\n        <GeistdocsProvider>{children}</GeistdocsProvider>\n      </body>\n    </html>\n  );\n}\n```\n\nToast API: `toast.success(\"msg\")`, `toast.error(\"msg\")` via Sonner.\n\n## Features\n\n### Edit on GitHub\nSet `github` in config → auto-generates edit links in the ToC sidebar. No env vars or API keys needed.\n\n### Feedback Widget\nInteractive widget in ToC sidebar. Collects message, emotion emoji, name, email. Auto-creates structured GitHub Issues with labels.\n\n### Internationalization (i18n)\nUses Fumadocs' language-aware routing with `[lang]` URL segments. Default language has no prefix; others get prefix (e.g., `/cn/docs/getting-started`).\n\nFile naming: `getting-started.mdx` (en), `getting-started.cn.mdx` (cn), `getting-started.fr.mdx` (fr).\n\nAuto-translate: `pnpm translate [--pattern \"path/**/*.mdx\"] [--config file.tsx] [--url \"api-url\"]`\n\n### RSS Feed\nAuto-generated at `/rss.xml`. Requires `NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL` and `title` export. Customize via frontmatter `lastModified: 2025-11-12`.\n\n### .md Extension (Raw Markdown)\nAppend `.md` or `.mdx` to any URL to get raw Markdown. Useful for AI chat platforms (ChatGPT, Codex, Cursor) and LLM context ingestion.\n\n### llms.txt\nEndpoint at `/llms.txt` returns ALL documentation as plain Markdown in a single response. Follows the llms.txt standard.\n\n### Ask AI\nAI chat assistant using `openai/gpt-4.1-mini` via Vercel AI Gateway. Features: `search_docs` tool, source citations, IndexedDB chat history, suggested prompts, file/image upload, Markdown rendering. Access via navbar button or `⌘I` / `Ctrl+I`.\n\n### Open in Chat\nButton in ToC sidebar opens docs page in external AI platforms (Cursor, v0, ChatGPT, Codex).\n\n## Deployment\n\n1. Push to GitHub\n2. Import at vercel.com/new → select repo\n3. Framework: Next.js (auto-detected), Build: `pnpm build`, Output: `.next`\n4. Add environment variables (`AI_GATEWAY_API_KEY`, `NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL`)\n5. Deploy\n\n## Key Commands\n\n| Command | Description |\n|---|---|\n| `npx @vercel/geistdocs init` | Create new project |\n| `pnpm dev` | Start dev server |\n| `pnpm build` | Production build |\n| `pnpm translate` | Auto-translate content |\n\n## Official Documentation\n\n- [Geistdocs Docs](https://preview.geistdocs.com/docs)\n- [Getting Started](https://preview.geistdocs.com/docs/getting-started)\n- [Configuration](https://preview.geistdocs.com/docs/configuration)\n- [Syntax Reference](https://preview.geistdocs.com/docs/syntax)\n- [GitHub Repository](https://github.com/vercel/geistdocs)\n"},"changes":[{"path":"/included_files","type":"changed","before":[],"after":[{"relative_path":"agents/openai.yaml","size_in_bytes":176}]}],"summary":"Fields changed: 1. /included_files.","summary_kind":"deterministic","summary_metadata":{}}