[
  {
    "tool": "shadcn/ui",
    "purpose": "Code distribution system (not a library) providing copy-paste accessible React components built with Radix UI (new-york style, unified package) or Base UI and Tailwind CSS for full customization. All blocks available in both Radix and Base UI variants. Includes all components (inputs, data display, feedback, overlays, navigation, layout, forms) with React Hook Form integration",
    "role": "UI Components",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://ui.shadcn.com",
    "hasMcp": true,
    "relatedTo": [
      "sonner",
      "next-themes",
      "Lucide React",
      "Plate",
      "shadcn/ui Charts"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React",
      "Tailwind CSS"
    ],
    "agentNotes": null
  },
  {
    "tool": "Lucide React",
    "purpose": "Beautiful and consistent icon library for React with tree-shaking support and TypeScript definitions",
    "role": "Icons",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://lucide.dev",
    "hasMcp": false,
    "relatedTo": [
      "shadcn/ui"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "TypeScript",
    "purpose": "Strongly-typed JavaScript superset that adds static type checking, improving code quality, IDE support, and catching errors at compile time",
    "role": "Languages",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://www.typescriptlang.org",
    "hasMcp": false,
    "relatedTo": [
      "Biome",
      "Zod",
      "@commander-js/extra-typings"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Motion",
    "purpose": "Production-grade animation library (formerly Framer Motion) with a framework-free JavaScript API (motion, motion/mini) and React components (motion/react); declarative API, gesture support, and layout animations",
    "role": "Animation",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://motion.dev",
    "hasMcp": false,
    "relatedTo": [
      "React"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": "React is an optional peer: only the motion/react* entry points need it; motion and motion/mini run without any framework. Vue bindings are a separate package (motion-v), not part of this one."
  },
  {
    "tool": "React Hook Form",
    "purpose": "Performant form library with minimal re-renders, built-in validation, and seamless integration with Zod for schema validation",
    "role": "Forms",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://react-hook-form.com",
    "hasMcp": false,
    "relatedTo": [
      "@hookform/resolvers"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Zod",
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "React",
    "purpose": "Declarative JavaScript library for building component-based user interfaces with virtual DOM and unidirectional data flow",
    "role": "UI Library",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://react.dev",
    "hasMcp": false,
    "relatedTo": [
      "shadcn/ui",
      "Lucide React",
      "next-intl",
      "React Testing Library",
      "@astrojs/react",
      "next-themes",
      "Plate",
      "react-error-boundary",
      "Motion",
      "Zustand",
      "React Hook Form",
      "Recharts",
      "sonner",
      "React Email",
      "TanStack Query",
      "TanStack Router",
      "TanStack Table",
      "nuqs",
      "Fumadocs",
      "Next.js",
      "@marsidev/react-turnstile",
      "@react-pdf/renderer"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Tailwind CSS",
    "purpose": "Utility-first CSS framework enabling rapid UI development through composable utility classes",
    "role": "CSS Frameworks",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://tailwindcss.com",
    "hasMcp": true,
    "relatedTo": [
      "shadcn/ui",
      "@tailwindcss/typography"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": "Community MCP servers available (not official Tailwind Labs). Options: tailwindcss-mcp-server on npm (CarbonoDev), Flowbite MCP."
  },
  {
    "tool": "Zustand",
    "purpose": "Minimal state management library with hook-based API; no providers needed, simple to use with excellent TypeScript support",
    "role": "Client State",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://zustand.docs.pmnd.rs",
    "hasMcp": false,
    "relatedTo": [
      "React"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": "React is an optional peer. The default zustand entry and zustand/react load React; zustand/vanilla (createStore) has no React dependency and works in any framework or none."
  },
  {
    "tool": "Zod",
    "purpose": "TypeScript-first schema validation library with runtime validation and full type inference",
    "role": "Data Validation",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://zod.dev",
    "hasMcp": false,
    "relatedTo": [
      "React Hook Form",
      "t3-env",
      "@hookform/resolvers",
      "TypeScript"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Drizzle",
    "purpose": "Lightweight TypeScript-first ORM for SQL databases; serverless-ready with excellent type inference and migration support",
    "role": "ORM",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://orm.drizzle.team",
    "hasMcp": true,
    "relatedTo": [
      "drizzle-kit",
      "PowerSync",
      "Neon"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": "MCP server is community-maintained (defrex/drizzle-mcp), not official."
  },
  {
    "tool": "Docker",
    "purpose": "Container platform for local development environment parity and consistent deployments across environments",
    "role": "Containers",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://www.docker.com",
    "hasMcp": true,
    "relatedTo": [
      "GitHub Actions"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "GitHub",
    "purpose": "Code hosting platform with version control, pull requests, code review, issue tracking, and project management features",
    "role": "Source Control",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com",
    "hasMcp": true,
    "relatedTo": [
      "GitHub Actions",
      "GitHub Dependabot",
      "release-please",
      "CodeRabbit",
      "GitHub CodeQL"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Storybook",
    "purpose": "UI component workshop for building, documenting, and testing components in isolation with addons for accessibility and visual testing",
    "role": "Component Development",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://storybook.js.org",
    "hasMcp": true,
    "relatedTo": [
      "Chromatic"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "storybook-suite",
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Chromatic",
    "purpose": "Visual regression testing platform that catches UI changes and provides component review workflows integrated with Storybook",
    "role": "Visual Testing",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://www.chromatic.com",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "storybook-suite",
    "priority": "optional",
    "dependsOn": [
      "Storybook"
    ],
    "agentNotes": null
  },
  {
    "tool": "Sentry",
    "purpose": "Error tracking platform with Seer AI for automated root cause analysis and fix recommendations. MCP server enables AI agents to investigate issues, get stack traces, and trigger Seer analysis",
    "role": "Error Tracking",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://sentry.io",
    "hasMcp": true,
    "relatedTo": [
      "react-error-boundary"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": "For Capacitor mobile apps, use @sentry/capacitor. For Tauri desktop apps, use the community sentry-tauri crate.",
    "env": [
      { "name": "SENTRY_DSN", "purpose": "Client Keys DSN (safe to expose)", "whereToGet": "Sentry -> Settings -> Projects -> your project -> Client Keys (DSN)", "clientExposed": true }
    ]
  },
  {
    "tool": "Playwright",
    "purpose": "Cross-browser end-to-end testing framework with auto-wait, tracing, and powerful selectors for reliable test automation",
    "role": "E2E Testing",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_e2e_tests",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://playwright.dev",
    "hasMcp": true,
    "relatedTo": [
      "Checkly",
      "@axe-core/playwright"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Maestro",
    "purpose": "Native mobile E2E testing with simple YAML-based flows; supports iOS and Android with visual assertions, gesture simulation, and CI integration",
    "role": "Mobile E2E Testing",
    "route": "platform:capacitor",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_e2e_tests",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://maestro.dev",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "Biome",
    "purpose": "High-performance all-in-one toolchain (linter + formatter + import sorter) for JavaScript, TypeScript, JSX, CSS, and GraphQL (standalone files stable; embedded within JS/TS template literals experimental via experimentalEmbeddedSnippetsEnabled). Written in Rust for speed",
    "role": "Linting & Formatting",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://biomejs.dev",
    "hasMcp": true,
    "relatedTo": [
      "TypeScript"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": "Unofficial MCP server available (RyuzakiShinji/biome-mcp-server). Official RFC in progress (biomejs/biome#6017)."
  },
  {
    "tool": "GitHub Dependabot",
    "purpose": "Automated dependency updates and security vulnerability scanning; creates PRs for outdated or vulnerable dependencies",
    "role": "Dependency Management",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "has_dependabot",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "GitHub"
    ],
    "agentNotes": null
  },
  {
    "tool": "CodeRabbit",
    "purpose": "AI-powered code review that provides contextual feedback, identifies bugs, and suggests improvements on pull requests",
    "role": "Code Review",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://coderabbit.ai",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "GitHub"
    ],
    "agentNotes": null
  },
  {
    "tool": "Gitleaks",
    "purpose": "Open-source secret scanner for git repositories detecting hardcoded credentials, API keys, and tokens in code and commit history",
    "role": "Secret Scanning",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://gitleaks.io",
    "hasMcp": false,
    "relatedTo": [
      "GitHub Actions",
      "GitHub CodeQL"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Vercel AI SDK",
    "purpose": "TypeScript toolkit for building AI-powered applications with streaming support, React hooks, and unified API for multiple LLM providers including OpenAI, Anthropic, and others",
    "role": "AI SDK",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://ai-sdk.dev",
    "hasMcp": true,
    "relatedTo": [
      "Vercel"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Next.js",
    "purpose": "Full-stack React framework with App Router, Turbopack as default bundler, server-side rendering, static site generation, and React Compiler support for production-ready web applications",
    "role": "Framework",
    "route": "framework:nextjs",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "platform_default:WebApp",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://nextjs.org",
    "hasMcp": true,
    "relatedTo": [
      "Vercel Image Optimization",
      "next-intl",
      "t3-env",
      "next-sitemap",
      "next-themes",
      "next-mdx-remote",
      "@serwist/next",
      "@next/bundle-analyzer"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "Context7",
    "purpose": "MCP server providing up-to-date, version-specific documentation and code examples to AI coding assistants for any library",
    "role": "AI Documentation",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://context7.com",
    "hasMcp": true,
    "relatedTo": [
      "@modelcontextprotocol/sdk"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Figma",
    "purpose": "Collaborative design tool for UI/UX with Dev Mode for design handoff, component inspection, code snippets, and design tokens",
    "role": "Design Handoff",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://www.figma.com",
    "hasMcp": true,
    "relatedTo": [],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "VS Code",
    "purpose": "Free source code editor by Microsoft with IntelliSense, debugging, Git integration, and extensive extension marketplace",
    "role": "Code Editor",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://code.visualstudio.com",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Axiom",
    "purpose": "Serverless observability backend for logs, traces, and metrics with unlimited storage and APL query language. MCP server enables AI agents to query and analyze telemetry data",
    "role": "Observability",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://axiom.co",
    "hasMcp": true,
    "relatedTo": [
      "OpenTelemetry",
      "Pino"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "observability",
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Vercel",
    "purpose": "Cloud platform optimized for frontend frameworks; provides zero-config deployments, edge network, preview deployments, and serverless functions",
    "role": "Deployment",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com",
    "hasMcp": true,
    "relatedTo": [
      "Vercel Edge Network",
      "Vercel Domains",
      "Vercel Cron Jobs",
      "Vercel Environment Variables",
      "Vercel Edge Functions",
      "@vercel/analytics",
      "Vercel Flags SDK",
      "Vercel Blob",
      "Vercel AI SDK",
      "Vercel Remote Cache",
      "Vercel Image Optimization"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Vercel Edge Network",
    "purpose": "Global edge network for fast content delivery with automatic caching, edge functions, and DDoS protection",
    "role": "CDN",
    "route": "base",
    "section": "DevOps",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/cdn",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Vercel"
    ],
    "agentNotes": null
  },
  {
    "tool": "Vercel Domains",
    "purpose": "Domain management integrated with Vercel deployments; includes automatic SSL, DNS configuration, and custom domain routing",
    "role": "DNS/Domain",
    "route": "base",
    "section": "DevOps",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/projects/domains",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Vercel"
    ],
    "agentNotes": null
  },
  {
    "tool": "Vercel Cron Jobs",
    "purpose": "Serverless scheduled tasks via vercel.json cron expressions; triggers API routes on a schedule for recurring jobs like cleanup, reports, and syncs",
    "role": "Scheduled Jobs",
    "route": "base",
    "section": "DevOps",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/cron-jobs",
    "hasMcp": false,
    "relatedTo": [
      "Upstash QStash"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Vercel"
    ],
    "agentNotes": null
  },
  {
    "tool": "Vercel Image Optimization",
    "purpose": "Next.js-specific on-the-fly image optimization using the Next.js Image API; automatically optimizes, resizes, and serves images in modern formats",
    "role": "Media Optimization",
    "route": "framework:nextjs",
    "section": "Application & Data",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/image-optimization",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "auto-included",
    "exclusionGroup": "media-optimization",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Next.js",
      "Vercel"
    ],
    "agentNotes": null
  },
  {
    "tool": "Astro Assets",
    "purpose": "Built-in image optimization for Astro using the astro:assets module; automatic format conversion, lazy loading, and responsive sizing with CLS prevention",
    "role": "Media Optimization",
    "route": "framework:astro",
    "section": "Application & Data",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "platform_default:ContentSite",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://docs.astro.build/en/guides/images/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": "media-optimization",
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Astro"
    ],
    "agentNotes": null
  },
  {
    "tool": "next-intl",
    "purpose": "Internationalization toolkit for Next.js with ICU message syntax, type-safe translations, App Router support, and locale routing",
    "role": "Internationalization",
    "route": "framework:nextjs",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://next-intl.dev",
    "hasMcp": false,
    "relatedTo": [
      "i18next"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "i18n",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Next.js",
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "i18next",
    "purpose": "Framework-agnostic internationalization library with plugin ecosystem, pluralization, interpolation, and context support; works in any JavaScript environment including React, Vue, Node, and native apps",
    "role": "Internationalization",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://www.i18next.com",
    "hasMcp": false,
    "relatedTo": [
      "next-intl",
      "Astro i18n (built-in)"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "i18n",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "t3-env",
    "purpose": "Type-safe environment variable validation using Zod; prevents deployment with invalid env vars, provides autocomplete, and enforces server/client variable separation",
    "role": "Env Validation",
    "route": "framework:nextjs",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "platform_default:WebApp",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://env.t3.gg",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Zod",
      "Next.js"
    ],
    "agentNotes": null
  },
  {
    "tool": "Fumadocs",
    "purpose": "Documentation framework for React (Next.js, TanStack Start, React Router, Waku) with MDX support, full-text search, beautiful themes, and OpenAPI integration for generating interactive API references from specs",
    "role": "Documentation",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_docs",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://fumadocs.dev",
    "hasMcp": false,
    "relatedTo": [
      "fumadocs-openapi",
      "next-mdx-remote"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "docs-framework",
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "Resend",
    "purpose": "Developer-focused email API with React Email integration for building responsive emails using React components; includes webhooks and deliverability tools",
    "role": "Email",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_email",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://resend.com",
    "hasMcp": true,
    "relatedTo": [
      "React Email"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null,
    "env": [
      { "name": "RESEND_API_KEY", "purpose": "API key for sending email", "whereToGet": "Resend dashboard -> API Keys -> Create API Key", "clientExposed": false },
      { "name": "RESEND_FROM_EMAIL", "purpose": "Verified sender address (optional app config)", "whereToGet": "A verified sender on a domain added under Resend -> Domains", "clientExposed": false }
    ]
  },
  {
    "tool": "React Email",
    "purpose": "React-based email templating for building responsive emails using React components; renders to cross-client HTML",
    "role": "Email Templating",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_email",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://react.email",
    "hasMcp": false,
    "relatedTo": [
      "Resend"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "Stripe",
    "purpose": "Payment processing platform with APIs for subscriptions, invoicing, and financial services",
    "role": "Payments",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_payments",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://stripe.com",
    "hasMcp": true,
    "relatedTo": [
      "@revenuecat/purchases-capacitor"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null,
    "env": [
      { "name": "STRIPE_SECRET_KEY", "purpose": "Secret API key (sk_...)", "whereToGet": "Stripe dashboard -> Developers -> API keys -> Secret key", "clientExposed": false },
      { "name": "STRIPE_PUBLISHABLE_KEY", "purpose": "Publishable key (pk_...)", "whereToGet": "Stripe dashboard -> Developers -> API keys -> Publishable key", "clientExposed": true },
      { "name": "STRIPE_WEBHOOK_SECRET", "purpose": "Webhook signing secret (whsec_...)", "whereToGet": "Stripe dashboard -> Developers -> Webhooks -> your endpoint -> Signing secret", "clientExposed": false }
    ]
  },
  {
    "tool": "oRPC",
    "purpose": "Type-safe RPC framework with built-in OpenAPI generation; serves as single source of truth for API documentation. Supports Zod, Valibot, and ArkType schemas. Requires a host framework (Hono, Node HTTP, or Fetch adapter). Works with Edge runtimes",
    "role": "API Framework",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_api",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://orpc.dev",
    "hasMcp": false,
    "relatedTo": [
      "fumadocs-openapi",
      "Hono"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "k6",
    "purpose": "Modern load testing tool by Grafana Labs using JavaScript for test scripts; provides performance testing, stress testing, and CI/CD integration with cloud and local execution options",
    "role": "Load Testing",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://k6.io",
    "hasMcp": true,
    "relatedTo": [
      "Checkly"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Vercel Environment Variables",
    "purpose": "Secure environment variable management with preview, development, and production scopes",
    "role": "Configuration",
    "route": "base",
    "section": "DevOps",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/projects/environment-variables",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Vercel"
    ],
    "agentNotes": null
  },
  {
    "tool": "Turborepo",
    "purpose": "High-performance build system for JavaScript/TypeScript monorepos; provides content-aware hashing, parallel task execution, and Vercel Remote Cache integration for cross-machine artifact sharing",
    "role": "Build System",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://turborepo.dev",
    "hasMcp": false,
    "relatedTo": [
      "Vercel Remote Cache"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "TODO.md",
    "purpose": "Ideas backlog capturing raw feature concepts through a staged pipeline (Raw > Developing > Ready); scanned by /quickstart and promoted via /speckit-specify",
    "role": "Feature Backlog",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "api.md",
    "purpose": "API endpoint reference documenting routes, request/response schemas, authentication requirements, and error codes",
    "role": "API Reference",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_api",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Mock Service Worker",
    "purpose": "API mocking library that intercepts requests at the network level; enables consistent testing and development without backend dependencies",
    "role": "API Mocking",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_integration_tests",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://mswjs.io",
    "hasMcp": false,
    "relatedTo": [
      "React Testing Library"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Bun test",
    "purpose": "Built-in test runner in Bun runtime with Jest-compatible API, native code coverage via --coverage flag, and significantly faster execution than Node-based test runners",
    "role": "Test Runner",
    "route": "runtime:bun",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://bun.com/docs/test",
    "hasMcp": false,
    "relatedTo": [
      "React Testing Library",
      "happy-dom"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": "test-runner",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Bun"
    ],
    "agentNotes": null
  },
  {
    "tool": "integrations.md",
    "purpose": "External service integration documentation covering third-party APIs, webhooks, and service connections with configuration and usage patterns",
    "role": "Integration Docs",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Bun install",
    "purpose": "Package manager built into Bun runtime; significantly faster than npm/yarn with hardlink-based node_modules",
    "role": "Package Manager",
    "route": "runtime:bun",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://bun.com/docs/pm/cli/install",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "auto-included",
    "exclusionGroup": "package-manager",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Bun"
    ],
    "agentNotes": null
  },
  {
    "tool": "Bun",
    "purpose": "All-in-one JavaScript runtime, bundler, test runner, and package manager built on JavaScriptCore; significantly faster than Node.js for many operations",
    "role": "Runtime",
    "route": "runtime:bun",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://bun.com",
    "hasMcp": false,
    "relatedTo": [
      "Bun test",
      "Bun install",
      "Bun build"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": "runtime",
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Vite",
    "purpose": "Next-generation frontend build tool with instant HMR, native ESM support, and optimized production builds",
    "role": "Build Tool",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://vite.dev",
    "hasMcp": false,
    "relatedTo": [
      "Tauri",
      "Capacitor"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Checkly",
    "purpose": "API and browser monitoring platform with Playwright-based checks, alerting, and dashboards for uptime and performance monitoring",
    "role": "Synthetic Monitoring",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "has_e2e_tests",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://www.checklyhq.com",
    "hasMcp": false,
    "relatedTo": [
      "k6",
      "Playwright"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "INDEX.md",
    "purpose": "Central navigation file linking all project documentation; provides a single entry point for discovering docs, specs, and reference materials",
    "role": "Documentation Index",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Node.js",
    "purpose": "Established JavaScript runtime built on V8; mature ecosystem with extensive library support and production stability",
    "role": "Runtime",
    "route": "runtime:node",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://nodejs.org",
    "hasMcp": false,
    "relatedTo": [
      "pnpm",
      "Vitest"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": "runtime",
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/api",
    "purpose": "JavaScript API for Tauri providing access to native functionality like windows, events, and IPC communication",
    "role": "JavaScript API",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/reference/javascript/api/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-dialog",
    "purpose": "Tauri plugin for native file dialogs (open, save, message boxes)",
    "role": "Native Dialogs",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/dialog/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "recommended",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "Tauri CLI",
    "purpose": "Command-line interface for Tauri development including building, bundling, and code signing desktop applications",
    "role": "CLI Tool",
    "route": "platform:tauri",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://v2.tauri.app/reference/cli/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "pnpm",
    "purpose": "Efficient package manager using content-addressable storage; saves disk space and provides faster installs than npm",
    "role": "Package Manager",
    "route": "runtime:node",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://pnpm.io",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "auto-included",
    "exclusionGroup": "package-manager",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Node.js"
    ],
    "agentNotes": null
  },
  {
    "tool": "Vitest",
    "purpose": "Vite-native test framework with Jest-compatible API; fast execution, native ESM support, and HMR-like watch mode",
    "role": "Test Runner",
    "route": "runtime:node",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://vitest.dev",
    "hasMcp": false,
    "relatedTo": [
      "React Testing Library",
      "happy-dom"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": "test-runner",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Node.js"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-shell",
    "purpose": "Tauri plugin for spawning child processes and opening files/URLs with default applications",
    "role": "Shell Access",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/shell/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-fs",
    "purpose": "Tauri plugin for reading and writing files on the filesystem with security scopes",
    "role": "File System",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/file-system/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-notification",
    "purpose": "Tauri plugin for sending native system notifications",
    "role": "Notifications",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/notification/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "recommended",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "Tauri",
    "purpose": "Rust-based framework for building small, fast, and secure desktop applications with web technologies and native system access",
    "role": "Desktop Framework",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "platform_default:DesktopApp",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://tauri.app",
    "hasMcp": false,
    "relatedTo": [
      "@tauri-apps/api",
      "@tauri-apps/plugin-dialog",
      "Tauri CLI",
      "@tauri-apps/plugin-shell",
      "@tauri-apps/plugin-fs",
      "@tauri-apps/plugin-notification",
      "@tauri-apps/plugin-clipboard-manager",
      "@tauri-apps/plugin-autostart",
      "@tauri-apps/plugin-updater",
      "@tauri-apps/plugin-sql",
      "@tauri-apps/plugin-store",
      "@tauri-apps/plugin-log",
      "@tauri-apps/plugin-single-instance",
      "@tauri-apps/plugin-http",
      "@tauri-apps/plugin-upload",
      "@tauri-apps/plugin-stronghold",
      "@tauri-apps/plugin-process",
      "@tauri-apps/plugin-websocket",
      "@tauri-apps/plugin-window-state",
      "@tauri-apps/plugin-cli",
      "@tauri-apps/plugin-global-shortcut",
      "@tauri-apps/plugin-deep-link",
      "@tauri-apps/plugin-os",
      "@tauri-apps/plugin-opener",
      "@tauri-apps/plugin-persisted-scope",
      "@tauri-apps/plugin-localhost",
      "@tauri-apps/plugin-positioner"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Vite",
      "Rust toolchain"
    ],
    "agentNotes": "Built-in system tray support via tray-icon feature flag (core, not a plugin). See v2.tauri.app/learn/system-tray/."
  },
  {
    "tool": "Supabase pgvector",
    "purpose": "Vector similarity search in Postgres using the pgvector extension (vectors, indexes, distance operators) for embeddings-powered search and retrieval",
    "role": "Vector Store",
    "route": "backend:supabase",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://supabase.com/docs/guides/database/extensions/pgvector",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": "vector",
    "bundle": "supabase-suite",
    "priority": "recommended",
    "dependsOn": [
      "Supabase"
    ],
    "agentNotes": null
  },
  {
    "tool": "Supabase Storage",
    "purpose": "File storage solution within Supabase for serving large files including videos and images with CDN integration",
    "role": "File Storage",
    "route": "backend:supabase",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://supabase.com/docs/guides/storage",
    "hasMcp": false,
    "relatedTo": [
      "UploadThing"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "storage",
    "bundle": "supabase-suite",
    "priority": "recommended",
    "dependsOn": [
      "Supabase"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-clipboard-manager",
    "purpose": "Tauri plugin for reading and writing to the system clipboard",
    "role": "Clipboard",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/clipboard/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "recommended",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-autostart",
    "purpose": "Tauri plugin to register app to auto-start on system boot",
    "role": "System Integration (Autostart)",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/autostart/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-extended",
    "priority": "optional",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-updater",
    "purpose": "Tauri plugin for automatic application updates with self-hosted or GitHub releases support",
    "role": "Auto Updates",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/updater/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "Supabase Auth",
    "purpose": "Authentication and authorization system supporting email/password, OAuth providers, magic links, MFA, and Row Level Security",
    "role": "Auth",
    "route": "backend:supabase",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_auth",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://supabase.com/docs/guides/auth",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": "auth",
    "bundle": "supabase-suite",
    "priority": "recommended",
    "dependsOn": [
      "Supabase"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-sql",
    "purpose": "Tauri plugin for SQLite, MySQL, and PostgreSQL database access from the frontend",
    "role": "Local Database",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/sql/",
    "hasMcp": false,
    "relatedTo": [
      "@capacitor-community/sqlite"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-extended",
    "priority": "optional",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "Supabase",
    "purpose": "Open-source Postgres database, authentication, instant APIs, Edge Functions, real-time subscriptions, storage, and vector embeddings",
    "role": "Database",
    "route": "backend:supabase",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://supabase.com",
    "hasMcp": true,
    "relatedTo": [
      "Supabase pgvector",
      "Supabase Storage",
      "Supabase Auth",
      "Supabase Realtime",
      "Postgres FTS",
      "PowerSync",
      "Supabase Edge Functions"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "database",
    "bundle": "supabase-suite",
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null,
    "env": [
      { "name": "SUPABASE_URL", "purpose": "Project URL", "whereToGet": "Supabase dashboard -> Project Settings -> API -> Project URL", "clientExposed": true },
      { "name": "SUPABASE_ANON_KEY", "purpose": "Anon / publishable key (safe to expose)", "whereToGet": "Supabase dashboard -> Project Settings -> API -> anon key", "clientExposed": true },
      { "name": "SUPABASE_SERVICE_ROLE_KEY", "purpose": "Service role key (server only, bypasses RLS)", "whereToGet": "Supabase dashboard -> Project Settings -> API -> service_role key", "clientExposed": false },
      { "name": "DATABASE_URL", "purpose": "Postgres connection string", "whereToGet": "Supabase dashboard -> Project Settings -> Database -> Connection string (transaction pooler, port 6543, for serverless)", "clientExposed": false }
    ]
  },
  {
    "tool": "@tauri-apps/plugin-store",
    "purpose": "Tauri plugin for persistent key-value storage (user preferences, settings)",
    "role": "Key-Value Storage",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/store/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "Supabase Realtime",
    "purpose": "Real-time data synchronization feature enabling multiplayer experiences and live updates via WebSocket subscriptions to database changes",
    "role": "Realtime",
    "route": "backend:supabase",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_realtime",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://supabase.com/docs/guides/realtime",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": "realtime",
    "bundle": "supabase-suite",
    "priority": "recommended",
    "dependsOn": [
      "Supabase"
    ],
    "agentNotes": null
  },
  {
    "tool": "Upstash Realtime",
    "purpose": "Serverless realtime messaging for web apps (Pusher/Ably-style) built on Redis Streams and SSE (100% HTTP, no WebSocket). Zod-typed event schemas, automatic reconnection, message history, and delivery guarantees",
    "role": "Realtime",
    "route": "backend:standalone",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_realtime",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://upstash.com/docs/realtime/overall/quickstart",
    "hasMcp": true,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": "realtime",
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Neon",
    "purpose": "Serverless Postgres platform with autoscaling and database branching for dev/test workflows, plus instant restore and API/CLI management",
    "role": "Database",
    "route": "backend:standalone",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://neon.com",
    "hasMcp": true,
    "relatedTo": [
      "Drizzle",
      "BetterAuth",
      "Postgres FTS"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "database",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null,
    "env": [
      { "name": "DATABASE_URL", "purpose": "Postgres connection string", "whereToGet": "Neon Console -> your project -> Connection Details -> pooled connection string", "clientExposed": false }
    ]
  },
  {
    "tool": "Upstash Vector",
    "purpose": "Serverless vector database for storing and querying embeddings (similarity search) as part of the Upstash platform",
    "role": "Vector Store",
    "route": "backend:standalone",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://upstash.com/docs/vector/overall/getstarted",
    "hasMcp": true,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": "vector",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "BetterAuth",
    "purpose": "Framework-agnostic authentication and authorization framework for TypeScript with plugins for OAuth, 2FA, passkeys, magic link, and organizational multi-tenancy via plugin ecosystem",
    "role": "Auth",
    "route": "backend:standalone",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_auth",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://www.better-auth.com",
    "hasMcp": false,
    "relatedTo": [
      "drizzle-kit",
      "Neon"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "auth",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": "MCP plugin is pre-production and slated for deprecation in favor of OAuth Provider Plugin.",
    "env": [
      { "name": "BETTER_AUTH_SECRET", "purpose": "Session signing secret", "whereToGet": "Generate a 32+ char random secret, e.g. openssl rand -base64 32", "clientExposed": false },
      { "name": "BETTER_AUTH_URL", "purpose": "App base URL", "whereToGet": "http://localhost:3000 in dev; the deployed origin in production", "clientExposed": false }
    ]
  },
  {
    "tool": "Cloudflare R2",
    "purpose": "S3-compatible object storage, private user uploads via signed URLs, and temporary processing files",
    "role": "File Storage",
    "route": "backend:standalone",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://developers.cloudflare.com/r2/",
    "hasMcp": true,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": "storage",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Upstash Redis",
    "purpose": "Serverless Redis with per-request pricing; ideal for caching, session storage, and rate limiting in serverless environments",
    "role": "Caching",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://upstash.com/docs/redis/overall/getstarted",
    "hasMcp": true,
    "relatedTo": [
      "Upstash Ratelimit"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null,
    "env": [
      { "name": "UPSTASH_REDIS_REST_URL", "purpose": "REST endpoint URL", "whereToGet": "Upstash Console -> your Redis database -> REST API", "clientExposed": false },
      { "name": "UPSTASH_REDIS_REST_TOKEN", "purpose": "REST auth token", "whereToGet": "Upstash Console -> your Redis database -> REST API", "clientExposed": false }
    ]
  },
  {
    "tool": "GitHub Actions",
    "purpose": "CI/CD automation platform enabling workflow automation for building, testing, and deploying code directly from GitHub repositories",
    "role": "CI/CD",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "has_ci",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/features/actions",
    "hasMcp": true,
    "relatedTo": [
      "Docker",
      "Gitleaks",
      "Codecov"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "GitHub"
    ],
    "agentNotes": null
  },
  {
    "tool": "Conventional Commits",
    "purpose": "Lightweight specification for structuring commit messages (type(scope): description); enables automated changelogs, semantic versioning, and machine-readable commit history",
    "role": "Commit Convention",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://www.conventionalcommits.org",
    "hasMcp": false,
    "relatedTo": [
      "release-please",
      "Keep a Changelog",
      "commitlint",
      "simple-git-hooks"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "versioning",
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "fumadocs-openapi",
    "purpose": "Fumadocs plugin generating interactive API documentation from OpenAPI specs; creates MDX pages with request/response examples, type definitions, and playground for testing endpoints",
    "role": "API Documentation",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_docs",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://fumadocs.dev/docs/ui/openapi",
    "hasMcp": false,
    "relatedTo": [
      "oRPC"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Fumadocs"
    ],
    "agentNotes": null
  },
  {
    "tool": "GitHub Spec Kit",
    "purpose": "Open-source toolkit for spec-driven development; defines project constitution, plans, and tasks as specifications that AI agents implement",
    "role": "Spec-Driven Dev",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "beta",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/github/spec-kit",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": "Experimental GitHub project with limited releases. Not recommended for production projects. Consider Claude Code's built-in task management or Linear issue tracking as more mature alternatives."
  },
  {
    "tool": "Upstash QStash",
    "purpose": "Serverless message queue and task scheduler for background jobs, cron jobs, and webhook delivery with guaranteed delivery",
    "role": "Queue/Jobs",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://upstash.com/docs/qstash/overall/getstarted",
    "hasMcp": true,
    "relatedTo": [
      "Vercel Cron Jobs"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "architecture.md",
    "purpose": "System design documentation covering component relationships, data flow, and architectural decisions; serves as the technical blueprint for the project",
    "role": "System Design",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "shadcn/ui Charts",
    "purpose": "Recharts-based chart components matching shadcn/ui design system; accessible, customizable charts for dashboards and analytics",
    "role": "Chart Components",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://ui.shadcn.com/docs/components/radix/chart",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Recharts",
      "shadcn/ui"
    ],
    "agentNotes": null
  },
  {
    "tool": "Recharts",
    "purpose": "Composable chart library for React built on D3; underlying engine for shadcn/ui Charts. Install via shadcn/ui Charts for pre-styled components",
    "role": "Chart Engine",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://recharts.org",
    "hasMcp": false,
    "relatedTo": [
      "shadcn/ui Charts"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "Upstash Ratelimit",
    "purpose": "SDK for implementing rate limiting using Upstash Redis; provides sliding window and fixed window algorithms out of the box",
    "role": "Rate Limiting",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://upstash.com/docs/redis/sdks/ratelimit-ts/overview",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Upstash Redis"
    ],
    "agentNotes": null
  },
  {
    "tool": "release-please",
    "purpose": "PR-based automated version management driven by conventional commits; creates release PRs with version bumps and changelogs for human review before publishing",
    "role": "Release Management",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/googleapis/release-please",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "versioning",
    "priority": "required",
    "dependsOn": [
      "Conventional Commits",
      "GitHub"
    ],
    "agentNotes": null
  },
  {
    "tool": "CLAUDE.md",
    "purpose": "Project-level AI development guidance defining quick-start commands, architecture, constraints, and conventions; the primary context file that Claude Code reads on every session",
    "role": "Project Context",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Claude Code",
    "purpose": "Anthropic's official CLI for Claude, providing agentic coding capabilities with tool use, file editing, and bash execution",
    "role": "AI Coding Assistant",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://code.claude.com/docs",
    "hasMcp": false,
    "relatedTo": [
      "@modelcontextprotocol/sdk",
      "@anthropic-ai/claude-code-sdk"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "@modelcontextprotocol/sdk",
    "purpose": "Official SDK for building custom MCP servers enabling AI agent integration with external tools and data sources",
    "role": "MCP Server SDK",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/modelcontextprotocol/typescript-sdk",
    "hasMcp": false,
    "relatedTo": [
      "Claude Code",
      "Context7",
      "@anthropic-ai/claude-code-sdk"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Temporal API",
    "purpose": "Native JavaScript date/time API providing immutable, timezone-aware objects; replaces moment/date-fns with zero dependencies. Chrome 144+ and Firefox 139+ ship natively. Safari: Technology Preview only (not production). Bun requires temporal-polyfill (issue #15853). TC39 Stage 3 (Stage 4 expected 2026). Use with temporal-polyfill for full browser coverage",
    "role": "Date Utility",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://tc39.es/proposal-temporal/docs/",
    "hasMcp": false,
    "relatedTo": [
      "temporal-polyfill"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": "Always co-install temporal-polyfill for Bun runtime compatibility (Bun issue #15853)."
  },
  {
    "tool": "temporal-polyfill",
    "purpose": "Polyfill for TC39 Temporal API providing cross-browser date/time support including Safari; required companion until native browser coverage is universal",
    "role": "Date Utility Polyfill",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/fullcalendar/temporal-polyfill",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Temporal API"
    ],
    "agentNotes": null
  },
  {
    "tool": "axe-core",
    "purpose": "Accessibility testing engine for automated WCAG compliance checking (requires JSDOM; incompatible with happy-dom for component-level tests)",
    "role": "Accessibility Testing",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://www.deque.com/axe/",
    "hasMcp": false,
    "relatedTo": [
      "@axe-core/playwright",
      "React Testing Library"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "workflow.md",
    "purpose": "Development workflow documentation covering branching strategy, code review process, release cycle, and team collaboration conventions",
    "role": "Dev Workflow",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "conventions.md",
    "purpose": "Coding standards and patterns documenting naming conventions, file organization, error handling, and project-specific style rules",
    "role": "Coding Standards",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "environment.md",
    "purpose": "Environment setup and configuration documenting required env vars, local development prerequisites, and secrets management",
    "role": "Environment Documentation",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "OpenTelemetry",
    "purpose": "Vendor-neutral observability framework for generating, collecting, and exporting telemetry data (traces, metrics, logs)",
    "role": "Instrumentation",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://opentelemetry.io",
    "hasMcp": false,
    "relatedTo": [
      "Axiom"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "observability",
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "TanStack Query",
    "purpose": "Powerful asynchronous state management for fetching, caching, synchronizing and updating server state in React applications; persistence plugins enable offline support and hydration across sessions",
    "role": "Server State",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://tanstack.com/query",
    "hasMcp": true,
    "relatedTo": [
      "TanStack Router",
      "nuqs"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "TanStack Router",
    "purpose": "Type-safe client-side router for React with file-based routing, Zod-validated search params, and built-in data loading patterns; pairs with TanStack Query for Desktop and Mobile App stacks where Next.js routing is unavailable",
    "role": "Routing",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://tanstack.com/router",
    "hasMcp": false,
    "relatedTo": [
      "TanStack Query"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "runbook.md",
    "purpose": "Operational procedures for incident response, deployment rollback, database maintenance, and common troubleshooting workflows",
    "role": "Operations Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "testing.md",
    "purpose": "Testing strategy documenting test types (unit, integration, e2e), coverage targets, test file conventions, and framework configuration",
    "role": "Testing Strategy",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "CHANGELOG.md",
    "purpose": "Semantic Versioning release notes and version change summaries following Keep a Changelog format; reserved for release history only, not general project notes",
    "role": "Version History",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "performance.md",
    "purpose": "Performance guidelines and benchmarks documenting optimization targets, profiling procedures, and performance budgets",
    "role": "Performance Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "errors.md",
    "purpose": "Error code reference cataloging application error types, error codes, user-facing messages, and troubleshooting steps",
    "role": "Error Reference",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "SECURITY.md",
    "purpose": "Security vulnerability disclosure policy and reporting procedures; documents responsible disclosure process and security contact information",
    "role": "Security Policy",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "@pdfme/pdf-lib",
    "purpose": "Actively maintained fork of pdf-lib for creating and modifying PDFs (merge, fill forms, stamp, edit metadata) in JavaScript. Drop-in API-compatible replacement",
    "role": "PDF Manipulation",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/pdfme/pdf-lib",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": "Actively maintained fork of the dormant pdf-lib package. Drop-in API-compatible replacement."
  },
  {
    "tool": "Postgres FTS",
    "purpose": "PostgreSQL full-text search (tsvector/tsquery) for in-database indexing and relevance-ranked search",
    "role": "Search",
    "route": "base",
    "section": "Application & Data",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://www.postgresql.org/docs/current/textsearch.html",
    "hasMcp": false,
    "relatedTo": [
      "Supabase",
      "Neon"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Sanity CMS",
    "purpose": "Headless CMS for managing structured content via APIs and customizable studio",
    "role": "CMS",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_cms",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://www.sanity.io",
    "hasMcp": true,
    "relatedTo": [
      "next-mdx-remote"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "PostHog",
    "purpose": "Event-based product analytics and feature flags for tracking usage and experimentation",
    "role": "Product Analytics",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "has_analytics",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://posthog.com",
    "hasMcp": true,
    "relatedTo": [
      "@vercel/analytics",
      "Vercel Flags SDK"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null,
    "env": [
      { "name": "POSTHOG_KEY", "purpose": "Project API key (phc_...)", "whereToGet": "PostHog -> Project Settings -> Project API Key", "clientExposed": true },
      { "name": "POSTHOG_HOST", "purpose": "Ingestion API host", "whereToGet": "PostHog -> Project Settings -> API host (https://us.i.posthog.com or https://eu.i.posthog.com)", "clientExposed": true }
    ]
  },
  {
    "tool": "Hono",
    "purpose": "Ultrafast, lightweight web framework built on Web Standards. Serves as HTTP host for oRPC handlers, standalone APIs, middleware, and edge microservices",
    "role": "Web Framework",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_api",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://hono.dev",
    "hasMcp": false,
    "relatedTo": [
      "oRPC"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Pino",
    "purpose": "Ultra-fast Node.js logger with JSON output, low overhead, and pluggable transports for structured logging",
    "role": "Logging",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://getpino.io",
    "hasMcp": false,
    "relatedTo": [
      "Axiom",
      "@tauri-apps/plugin-log"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Vercel Edge Functions",
    "purpose": "Serverless compute at the edge for low-latency API routes, middleware, and dynamic content; runs on Vercel's global edge network with V8 isolates",
    "role": "Serverless Functions",
    "route": "base",
    "section": "Application & Data",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/functions",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Vercel"
    ],
    "agentNotes": null
  },
  {
    "tool": "drizzle-kit",
    "purpose": "CLI companion for Drizzle ORM providing schema migrations, introspection, database push commands, and Drizzle Studio for visual schema browsing and data management",
    "role": "Database Migrations",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://orm.drizzle.team/docs/kit-overview",
    "hasMcp": false,
    "relatedTo": [
      "BetterAuth"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Drizzle"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-log",
    "purpose": "Structured logging from JS/Rust with configurable targets (useful for debugging and production diagnostics)",
    "role": "Logging",
    "route": "platform:tauri",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/logging/",
    "hasMcp": false,
    "relatedTo": [
      "Pino"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-single-instance",
    "purpose": "Ensure only a single instance of the app runs; forward subsequent launches (and deep links) to the existing instance",
    "role": "App Lifecycle",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/single-instance/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-http",
    "purpose": "Make HTTP requests from Rust via a plugin (useful for CORS/MTLS/proxy needs and networking outside the browser context)",
    "role": "Networking (HTTP)",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/http-client/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-upload",
    "purpose": "Perform file uploads through HTTP from the Rust side (useful for large files and better control than browser uploads)",
    "role": "Networking (Upload)",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/upload/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "recommended",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-stronghold",
    "purpose": "Encrypted, secure storage for secrets/keys using the Stronghold engine; use for tokens, credentials, and other sensitive data (stronger than plain key-value stores)",
    "role": "Secure Storage",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/stronghold/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-extended",
    "priority": "optional",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-process",
    "purpose": "Listen to and control app process lifecycle events (exit/restart signals, etc.)",
    "role": "Process Lifecycle",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/process/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-websocket",
    "purpose": "Open WebSocket connections using a Rust client (useful when you want networking outside the webview stack)",
    "role": "Networking (WebSocket)",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/websocket/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-extended",
    "priority": "optional",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-window-state",
    "purpose": "Persist and restore window size/position and other window state across restarts",
    "role": "Window Management",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/window-state/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "recommended",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-cli",
    "purpose": "Parse CLI arguments passed to your app (useful for deep links, file-open events, and power-user workflows)",
    "role": "CLI Arguments",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/cli/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-global-shortcut",
    "purpose": "Register global keyboard shortcuts (system-wide hotkeys)",
    "role": "System Integration (Global Shortcut)",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/global-shortcut/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-extended",
    "priority": "optional",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-deep-link",
    "purpose": "Register the app as a handler for custom URL schemes and receive deep-link events (pairs with single-instance on desktop)",
    "role": "System Integration (Deep Linking)",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/deep-linking/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-extended",
    "priority": "optional",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-os",
    "purpose": "Read OS/platform details (platform, version, locale, arch, etc.) for diagnostics and conditional behavior",
    "role": "System Information",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/os-info/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-opener",
    "purpose": "Open files/URLs with the OS default handler in a permissioned way (often preferable to broader shell access for simple open operations)",
    "role": "System Integration (Open)",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/opener/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-persisted-scope",
    "purpose": "Persist and restore capability scopes (e.g., remembered file/folder permissions) across app restarts to reduce repeated permission prompts while staying least-privilege",
    "role": "Persisted Capability Scopes",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/persisted-scope/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-localhost",
    "purpose": "Expose a local-only HTTP server and manage localhost access patterns (useful for OAuth redirect flows and local integrations)",
    "role": "Networking (Localhost)",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/localhost/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-extended",
    "priority": "optional",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tauri-apps/plugin-positioner",
    "purpose": "Position windows and tray popovers relative to system UI (useful for tray apps and contextual windows)",
    "role": "Window Positioning",
    "route": "platform:tauri",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://v2.tauri.app/plugin/positioner/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "tauri-extended",
    "priority": "optional",
    "dependsOn": [
      "Tauri"
    ],
    "agentNotes": null
  },
  {
    "tool": "React Testing Library",
    "purpose": "Lightweight testing utilities for React components that encourage testing user behavior rather than implementation details; integrates with Vitest and Bun test",
    "role": "Component Testing",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://testing-library.com/docs/react-testing-library/intro",
    "hasMcp": false,
    "relatedTo": [
      "Bun test",
      "Vitest",
      "happy-dom",
      "axe-core",
      "Mock Service Worker"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "Astro",
    "purpose": "Content-focused web framework with island architecture for partial hydration; outputs zero JavaScript by default with opt-in interactivity per component. Server islands for dynamic server-rendered components. Ideal for marketing sites, blogs, and documentation",
    "role": "Framework",
    "route": "framework:astro",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "platform_default:ContentSite",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://astro.build",
    "hasMcp": false,
    "relatedTo": [
      "Astro Assets",
      "@astrojs/sitemap",
      "@astrojs/rss",
      "Starlight",
      "@astrojs/react",
      "Astro i18n (built-in)",
      "@astrojs/mdx"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "PowerSync",
    "purpose": "Offline-first sync engine with local SQLite and bidirectional sync to backend databases (Postgres, MongoDB, MySQL); includes conflict resolution and real-time updates when online",
    "role": "Offline Sync",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://www.powersync.com",
    "hasMcp": false,
    "relatedTo": [
      "Supabase",
      "@capacitor-community/sqlite",
      "Drizzle"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": "Drizzle is optional: the PowerSync SDKs work without an ORM, and Drizzle support ships as the separate @powersync/drizzle-driver package."
  },
  {
    "tool": "next-sitemap",
    "purpose": "Sitemap and robots.txt generator for Next.js applications; supports dynamic routes, i18n, and multiple sitemaps for large sites",
    "role": "SEO",
    "route": "framework:nextjs",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/iamvishnusankar/next-sitemap",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": "sitemap",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Next.js"
    ],
    "agentNotes": "Next.js 13.3+ App Router projects should prefer the built-in sitemap.ts convention. next-sitemap is still viable for Pages Router projects."
  },
  {
    "tool": "@astrojs/sitemap",
    "purpose": "Official Astro integration for automatic sitemap.xml generation at build time; supports i18n and custom URL filtering",
    "role": "SEO",
    "route": "framework:astro",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://docs.astro.build/en/guides/integrations-guide/sitemap/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": "sitemap",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Astro"
    ],
    "agentNotes": null
  },
  {
    "tool": "@astrojs/rss",
    "purpose": "Official Astro integration for generating RSS feeds from content collections; supports custom item rendering and feed metadata",
    "role": "Content Distribution",
    "route": "framework:astro",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://docs.astro.build/en/recipes/rss/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Astro"
    ],
    "agentNotes": null
  },
  {
    "tool": "Starlight",
    "purpose": "Astro-native documentation framework with built-in search, i18n, sidebar navigation, and beautiful themes; outputs fast static sites with zero JavaScript by default",
    "role": "Documentation",
    "route": "framework:astro",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_docs",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://starlight.astro.build",
    "hasMcp": false,
    "relatedTo": [
      "Pagefind"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "docs-framework",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Astro"
    ],
    "agentNotes": null
  },
  {
    "tool": "@astrojs/react",
    "purpose": "Official Astro integration for using React components inside Astro pages and layouts with island architecture for interactive UI",
    "role": "Framework Integration",
    "route": "framework:astro",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://docs.astro.build/en/guides/integrations-guide/react/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Astro",
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "Pagefind",
    "purpose": "Lightweight static search indexing at build time; generates a search UI and index with zero external dependencies. Ideal for documentation and content sites",
    "role": "Static Search",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://pagefind.app",
    "hasMcp": false,
    "relatedTo": [
      "Starlight"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Capacitor",
    "purpose": "Cross-platform native runtime for building iOS, Android, and PWA apps using web technologies (HTML, CSS, JS). Wraps web apps in native containers with access to native APIs via plugins. Build-tool agnostic (works with Vite, Angular CLI, or any static output). Defaults to Swift Package Manager for iOS",
    "role": "Mobile Framework",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "platform_default:MobileApp",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com",
    "hasMcp": false,
    "relatedTo": [
      "Maestro",
      "@capacitor/app",
      "@capacitor/camera",
      "@capacitor/filesystem",
      "@capacitor/preferences",
      "@capacitor/clipboard",
      "@capacitor/local-notifications",
      "@capacitor/push-notifications",
      "@capacitor/device",
      "@capacitor/geolocation",
      "@capacitor/haptics",
      "@capacitor/keyboard",
      "@capacitor/status-bar",
      "@capacitor/splash-screen",
      "@capacitor/share",
      "@capacitor/network",
      "@capacitor/browser",
      "@capawesome-team/capacitor-biometrics",
      "@capacitor/screen-orientation",
      "@revenuecat/purchases-capacitor",
      "capacitor-secure-storage-plugin",
      "@capacitor-community/sqlite"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "required",
    "dependsOn": [
      "Vite"
    ],
    "agentNotes": "SPM default started in Capacitor 8 (late 2025). Projects on Capacitor 7 use CocoaPods."
  },
  {
    "tool": "@capacitor/app",
    "purpose": "App lifecycle events, deep linking via custom URL schemes, and back button handling",
    "role": "App Lifecycle",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/app",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "required",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/camera",
    "purpose": "Camera capture and photo library access with image quality and size options",
    "role": "Camera",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/camera",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-extended",
    "priority": "optional",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/filesystem",
    "purpose": "Read, write, and manage files on the device filesystem with directory scoping",
    "role": "File System",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/filesystem",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "required",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/preferences",
    "purpose": "Simple key-value storage for app preferences and small data persisted across app restarts",
    "role": "Key-Value Storage",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/preferences",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "required",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/clipboard",
    "purpose": "Read and write to the device clipboard",
    "role": "Clipboard",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/clipboard",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/local-notifications",
    "purpose": "Schedule and manage local notifications with actions, attachments, and channels",
    "role": "Local Notifications",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/local-notifications",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/push-notifications",
    "purpose": "Register for and receive remote push notifications from APNs and FCM",
    "role": "Push Notifications",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/push-notifications",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-extended",
    "priority": "optional",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/device",
    "purpose": "Read device info: model, OS version, platform, battery, and unique identifiers",
    "role": "Device Info",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/device",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "required",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/geolocation",
    "purpose": "GPS and network-based location with permissions handling and watch mode",
    "role": "Geolocation",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/geolocation",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-extended",
    "priority": "optional",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/haptics",
    "purpose": "Trigger haptic feedback (vibration patterns) for tactile UI responses",
    "role": "Haptics",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/haptics",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-extended",
    "priority": "optional",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/keyboard",
    "purpose": "Control keyboard visibility, listen for show/hide events, and adjust scroll behavior",
    "role": "Keyboard Control",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/keyboard",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/status-bar",
    "purpose": "Style and control the native status bar (color, visibility, overlay mode)",
    "role": "Status Bar",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/status-bar",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/splash-screen",
    "purpose": "Show, hide, and configure the native splash screen with fade animations",
    "role": "Splash Screen",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/splash-screen",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/share",
    "purpose": "Invoke the native share dialog for sharing text URLs and files",
    "role": "Share",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/share",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/network",
    "purpose": "Monitor network connectivity status and type (wifi, cellular, none)",
    "role": "Network Status",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/network",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "required",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor/browser",
    "purpose": "Open URLs in an in-app browser with navigation controls; essential for OAuth redirect flows and external content display",
    "role": "In-App Browser",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/browser",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-core",
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capawesome-team/capacitor-biometrics",
    "purpose": "Biometric authentication (Face ID/Touch ID/fingerprint) for securing sensitive app actions and login flows; community plugin with cross-platform support for Android and iOS",
    "role": "Biometric Auth",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capawesome.io/plugins/biometrics/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-extended",
    "priority": "optional",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "TanStack Table",
    "purpose": "Headless, type-safe table/datagrid library for React with sorting, filtering, pagination, virtualization, and column resizing; powers shadcn/ui data table component",
    "role": "Data Display",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://tanstack.com/table",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "which",
    "purpose": "Cross-platform implementation of Unix which command. Finds executables in PATH with sync/async APIs",
    "role": "Path Resolution",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/npm/node-which",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Bun build",
    "purpose": "Bun's native bundler for TypeScript/JavaScript with tree-shaking, minification, and sourcemaps. Fast single-file executable output.",
    "role": "Bundler",
    "route": "runtime:bun",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://bun.com/docs/bundler",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Bun"
    ],
    "agentNotes": null
  },
  {
    "tool": "@clack/prompts",
    "purpose": "Beautiful, interactive CLI prompts with spinners, select menus, confirmations, and multi-step flows. Built for modern CLI tool development",
    "role": "CLI Prompts",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/bombshell-dev/clack",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "commander",
    "purpose": "Complete solution for Node.js CLI argument parsing with subcommands, options, help generation, and validation",
    "role": "CLI Parser",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/tj/commander.js",
    "hasMcp": false,
    "relatedTo": [
      "@commander-js/extra-typings"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "picocolors",
    "purpose": "Tiny, fast terminal string colorization library with no dependencies",
    "role": "Terminal Styling",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/alexeyraspopov/picocolors",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "fs-extra",
    "purpose": "Drop-in replacement for fs with added methods like copy, move, mkdirp, remove, and outputFile with automatic directory creation",
    "role": "File System",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/jprichardson/node-fs-extra",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "giget",
    "purpose": "Download and extract git repositories, GitHub/GitLab templates, or tar archives. Supports subdirectories and caching",
    "role": "Template Downloader",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/unjs/giget",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "execa",
    "purpose": "Modern process execution with promise API, improved Windows support, streaming, and better error handling than child_process",
    "role": "Process Execution",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/sindresorhus/execa",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "eta",
    "purpose": "Lightweight, fast embedded JavaScript template engine. Smaller and faster than EJS with TypeScript support and async rendering.",
    "role": "Template Engine",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://eta.js.org",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "smol-toml",
    "purpose": "TOML parser and serializer (TOML spec 1.0 compliant), TypeScript-native with zero dependencies. The agent-config generator uses it to emit Gemini command files and Codex MCP config; Bun imports TOML natively but cannot serialize it.",
    "role": "TOML Serializer",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/squirrelchat/smol-toml",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "dotenv",
    "purpose": "Loads environment variables from .env files into process.env. For CLI tooling context only; app code uses t3-env for type-safe validation",
    "role": "Env File Loader",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/motdotla/dotenv",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "cosmiconfig",
    "purpose": "Searches for and loads configuration from package.json, RC files, .config.js, or custom locations. Supports JSON, YAML, JS, and TypeScript configs.",
    "role": "Config Loader",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/cosmiconfig/cosmiconfig",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "semver",
    "purpose": "Semantic versioning parser, comparator, and range resolver. Essential for version constraint validation and dependency resolution in CLI tools",
    "role": "Version Parsing",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/npm/node-semver",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "fast-glob",
    "purpose": "Fast file system globbing with micromatch pattern support. Finds files by patterns with configurable depth, ignore rules, and stat info",
    "role": "File Globbing",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/mrmlnc/fast-glob",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "HANDOFF.md",
    "purpose": "Session continuity tracker recording priorities, status, and recent work; updated by /checkpoint (lite) and /session-end (full) commands to maintain context between AI sessions",
    "role": "Session Continuity",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Astro i18n (built-in)",
    "purpose": "Internationalized routing built into Astro core via astro:i18n module; handles locale prefixes, language detection, and domain-based routing with built-in middleware. Not a separate package",
    "role": "Internationalization",
    "route": "framework:astro",
    "section": "Application & Data",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://docs.astro.build/en/guides/internationalization/",
    "hasMcp": false,
    "relatedTo": [
      "i18next"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "i18n",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Astro"
    ],
    "agentNotes": null
  },
  {
    "tool": "Keep a Changelog",
    "purpose": "Changelog format convention that pairs well with Semantic Versioning and Conventional Commits-based automated versioning/release tooling",
    "role": "Changelog Standard",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://keepachangelog.com/en/1.1.0/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "versioning",
    "priority": "required",
    "dependsOn": [
      "Conventional Commits"
    ],
    "agentNotes": null
  },
  {
    "tool": "design.md",
    "purpose": "Design system guidelines documenting visual language, component patterns, spacing/typography tokens, and brand consistency rules",
    "role": "Design Guidelines",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "cicd.md",
    "purpose": "CI/CD pipeline configuration documenting build, test, and deployment workflows including environment promotion and release automation",
    "role": "CI/CD Configuration",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_ci",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "README.md",
    "purpose": "Public-facing project overview providing quick-start instructions, feature summary, installation steps, and usage examples for new developers and users",
    "role": "Project Overview",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "CONTRIBUTING.md",
    "purpose": "Contribution guidelines covering development setup, branch conventions, PR process, code style, and review expectations for project contributors",
    "role": "Contribution Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "database.md",
    "purpose": "Database documentation covering schema design, migrations, query patterns, indexes, and data access conventions",
    "role": "Data Layer Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_database",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "infrastructure.md",
    "purpose": "Infrastructure documentation covering hosting, deployment targets, networking, and environment topology",
    "role": "Infrastructure Docs",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "auth.md",
    "purpose": "Authentication and authorization documentation covering auth flows, session management, role-based access, and token handling",
    "role": "Authentication Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_auth",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "monitoring.md",
    "purpose": "Observability documentation covering logging, metrics, alerting, and health check configurations",
    "role": "Observability Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "accessibility.md",
    "purpose": "Accessibility guidelines covering WCAG 2.1 AA compliance, keyboard navigation patterns, ARIA usage, color contrast requirements, and testing procedures",
    "role": "Accessibility Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "api-design.md",
    "purpose": "API design standards covering REST conventions, naming, versioning, pagination, error format, rate limiting, and idempotency patterns",
    "role": "API Design Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_api",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "secrets.md",
    "purpose": "Secrets management guide covering environment variable conventions, .env file structure, CI/CD secret injection, rotation procedures, and access control",
    "role": "Secrets Management Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "sonner",
    "purpose": "Toast notification component for React with success, error, and loading states; shadcn/ui's official toast solution",
    "role": "Toast Notifications",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://sonner.emilkowal.ski",
    "hasMcp": false,
    "relatedTo": [
      "shadcn/ui"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "next-themes",
    "purpose": "Theme management for Next.js with system preference detection, no-flash dark mode, and any number of custom themes; shadcn/ui's recommended theming solution",
    "role": "Theming",
    "route": "framework:nextjs",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/pacocoursey/next-themes",
    "hasMcp": false,
    "relatedTo": [
      "shadcn/ui",
      "Next.js"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "commitlint",
    "purpose": "Lint commit messages against Conventional Commits format; enforces consistent commit history for automated changelogs and semantic versioning",
    "role": "Commit Linting",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://commitlint.js.org",
    "hasMcp": false,
    "relatedTo": [
      "simple-git-hooks"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "versioning",
    "priority": "required",
    "dependsOn": [
      "Conventional Commits"
    ],
    "agentNotes": null
  },
  {
    "tool": "simple-git-hooks",
    "purpose": "Lightweight git hooks manager that runs scripts on commit, push, and other git events; pairs with commitlint for local commit message enforcement",
    "role": "Git Hooks",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/toplenboren/simple-git-hooks",
    "hasMcp": false,
    "relatedTo": [
      "commitlint"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "versioning",
    "priority": "required",
    "dependsOn": [
      "Conventional Commits"
    ],
    "agentNotes": null
  },
  {
    "tool": "@astrojs/mdx",
    "purpose": "Official Astro integration for using MDX (Markdown + JSX) in content pages and layouts; enables rich interactive content with React components inside markdown",
    "role": "Content Authoring",
    "route": "framework:astro",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://docs.astro.build/en/guides/integrations-guide/mdx/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Astro"
    ],
    "agentNotes": null
  },
  {
    "tool": "Rust toolchain",
    "purpose": "Rust compiler toolchain (rustup + cargo) required for building Tauri desktop applications; manages Rust versions, targets, and native compilation",
    "role": "Build Toolchain",
    "route": "platform:tauri",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": false,
      "tooling": false
    },
    "url": "https://rustup.rs",
    "hasMcp": false,
    "relatedTo": [
      "Tauri"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": "tauri-core",
    "priority": "required",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "nuqs",
    "purpose": "Type-safe URL search params state manager for React frameworks (Next.js, Remix, React Router, TanStack Router) via adapter system; provides hooks for reading and writing query string state with validation",
    "role": "URL State",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://nuqs.dev",
    "hasMcp": false,
    "relatedTo": [
      "TanStack Query"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "@vercel/analytics",
    "purpose": "Vercel Web Analytics client for apps deployed on Vercel; records page views and custom events once Web Analytics is enabled for the project in the Vercel dashboard. Vercel states it sets no third-party cookies, identifies visitors by a hash of the incoming request and discards the session after 24 hours; each data point stores the page URL, referrer, device and browser details, and geolocation down to city. Core Web Vitals are measured by the separate Speed Insights product (@vercel/speed-insights), not by this package",
    "role": "Web Analytics",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/analytics",
    "hasMcp": false,
    "relatedTo": [
      "PostHog"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Vercel"
    ],
    "agentNotes": "Consent-gate it: load the script only after the visitor accepts analytics, and name Vercel Web Analytics in the privacy notice. Pass a beforeSend that strips the query string, fragment and userinfo from the event URL, which is otherwise sent in full. The pathname still reaches Vercel, including any IDs in dynamic segments. Vercel stores geolocation to city level with every data point."
  },
  {
    "tool": "@capacitor/screen-orientation",
    "purpose": "Lock, unlock, and detect screen orientation changes on iOS and Android devices",
    "role": "Screen Orientation",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://capacitorjs.com/docs/apis/screen-orientation",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-extended",
    "priority": "optional",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "@revenuecat/purchases-capacitor",
    "purpose": "In-app purchases and subscription management for Capacitor apps with cross-platform receipt validation, analytics, and entitlement management",
    "role": "In-App Purchases",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_payments",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://www.revenuecat.com/docs/getting-started/installation/capacitor",
    "hasMcp": false,
    "relatedTo": [
      "Stripe"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-extended",
    "priority": "optional",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "capacitor-secure-storage-plugin",
    "purpose": "Encrypted key-value storage using iOS Keychain and Android KeyStore for securely persisting tokens, credentials, and sensitive data",
    "role": "Secure Storage",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_auth",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://github.com/martinkasa/capacitor-secure-storage-plugin",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "capacitor-extended",
    "priority": "recommended",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "Plate",
    "purpose": "Rich text editor framework built on shadcn/ui with 50+ plugins (tables, mentions, media, AI completions); installs via shadcn CLI and matches the new-york style variant",
    "role": "Rich Text Editing",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://platejs.org",
    "hasMcp": true,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "React",
      "shadcn/ui"
    ],
    "agentNotes": null
  },
  {
    "tool": "Vercel Flags SDK",
    "purpose": "Feature flag evaluation framework integrated into the Vercel platform; consumes providers like PostHog via OpenFeature adapter for portability",
    "role": "Feature Flags",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "runtime",
    "maturity": "beta",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/feature-flags",
    "hasMcp": false,
    "relatedTo": [
      "PostHog"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Vercel"
    ],
    "agentNotes": "Vercel Flags SDK is in beta. API surface may change. Use for feature flag evaluation in edge/serverless only."
  },
  {
    "tool": "payments.md",
    "purpose": "Payment integration documentation covering webhook handling, subscription lifecycle, idempotency patterns, PCI compliance notes, and testing with sandbox environments",
    "role": "Payments Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_payments",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "@hookform/resolvers",
    "purpose": "Official resolver adapters connecting React Hook Form with schema validation libraries including Zod, enabling declarative form validation from shared schemas",
    "role": "Form Validation Adapter",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://react-hook-form.com/docs/useform#resolver",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React Hook Form",
      "Zod"
    ],
    "agentNotes": null
  },
  {
    "tool": "Vercel Remote Cache",
    "purpose": "Shared build artifact cache for Turborepo enabling cross-machine and CI/CD cache hits; eliminates redundant builds across developers and pipelines",
    "role": "Build Cache",
    "route": "base",
    "section": "DevOps",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "always",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://vercel.com/docs/monorepos/remote-caching",
    "hasMcp": false,
    "relatedTo": [
      "Vercel"
    ],
    "selectionMode": "always-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "required",
    "dependsOn": [
      "Turborepo"
    ],
    "agentNotes": "Works standalone via TURBO_TOKEN without Vercel deployment. Free for all Turborepo users."
  },
  {
    "tool": "@anthropic-ai/claude-code-sdk",
    "purpose": "TypeScript SDK for building custom AI agents that leverage Claude Code's agentic capabilities including tool use, file editing, and multi-agent coordination",
    "role": "AI Agent SDK",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://platform.claude.com/docs/en/agent-sdk/overview",
    "hasMcp": false,
    "relatedTo": [
      "Claude Code",
      "@modelcontextprotocol/sdk"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "sharp",
    "purpose": "High-performance image processing library for resizing, format conversion, and transformation; uses libvips for speed. Used in API routes, build pipelines, and custom image processing",
    "role": "Image Processing",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://sharp.pixelplumbing.com",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "happy-dom",
    "purpose": "Lightweight DOM implementation for running React component tests in non-browser runtimes; required companion for React Testing Library with Bun test and Vitest",
    "role": "DOM Testing Environment",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/capricorn86/happy-dom",
    "hasMcp": false,
    "relatedTo": [
      "Bun test",
      "Vitest",
      "React Testing Library"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "react-error-boundary",
    "purpose": "Declarative React error boundary component with fallback UI, error recovery, retry support, and useErrorBoundary hook; standard replacement for manual class-based error boundaries",
    "role": "Error Handling",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/bvaughn/react-error-boundary",
    "hasMcp": false,
    "relatedTo": [
      "Sentry"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "@axe-core/playwright",
    "purpose": "Integrates axe-core accessibility scanning into Playwright E2E tests for automated page-level WCAG compliance checks in CI pipelines",
    "role": "Accessibility CI Testing",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "has_e2e_tests",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/dequelabs/axe-core-npm/tree/develop/packages/playwright",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Playwright",
      "axe-core"
    ],
    "agentNotes": null
  },
  {
    "tool": "next-mdx-remote",
    "purpose": "Render MDX content from external sources (database, CMS, API) in Next.js with RSC support, built-in frontmatter parsing, and custom component injection",
    "role": "Content Rendering",
    "route": "framework:nextjs",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/hashicorp/next-mdx-remote",
    "hasMcp": false,
    "relatedTo": [
      "Fumadocs",
      "Sanity CMS"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Next.js"
    ],
    "agentNotes": null
  },
  {
    "tool": "@capacitor-community/sqlite",
    "purpose": "Local SQLite database for Capacitor apps providing offline-first data storage without cloud sync; bundles SQLCipher for optional encryption",
    "role": "Local Database",
    "route": "platform:capacitor",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": true,
      "webApp": false,
      "tooling": false
    },
    "url": "https://github.com/capacitor-community/sqlite",
    "hasMcp": false,
    "relatedTo": [
      "PowerSync",
      "@tauri-apps/plugin-sql"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Capacitor"
    ],
    "agentNotes": null
  },
  {
    "tool": "email.md",
    "purpose": "Email integration guide covering transactional email flows, template management, webhook handling, suppression lists, and deliverability best practices",
    "role": "Email Integration Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_email",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "cms.md",
    "purpose": "CMS integration guide covering content model design, editorial workflows, draft/publish lifecycle, and headless CMS API conventions",
    "role": "CMS Integration Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_cms",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "analytics.md",
    "purpose": "Analytics implementation guide covering event taxonomy, naming conventions, funnel design, privacy considerations, and tracking patterns",
    "role": "Analytics Implementation Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_analytics",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "docs.md",
    "purpose": "Documentation framework guide covering sidebar structure, MDX component usage, content authoring conventions, and versioning strategy",
    "role": "Documentation Framework Guide",
    "route": "base",
    "section": "Documentation Templates",
    "category": "template",
    "layer": "template",
    "maturity": "stable",
    "condition": "has_docs",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": null,
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "UploadThing",
    "purpose": "Type-safe file upload with presigned URLs, rate limiting, and built-in React components",
    "role": "File Upload",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_file_uploads",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://uploadthing.com",
    "hasMcp": false,
    "relatedTo": [
      "Supabase Storage",
      "Vercel Blob"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "Vercel Blob",
    "purpose": "S3-backed file storage on the Vercel platform with multi-part uploads, predictable pricing, and deep integration with Next.js and Vercel deployments",
    "role": "File Storage",
    "route": "base",
    "section": "Application & Data",
    "category": "platform-feature",
    "layer": "infra",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/vercel-blob",
    "hasMcp": false,
    "relatedTo": [
      "UploadThing"
    ],
    "selectionMode": "selectable",
    "exclusionGroup": "storage",
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "Vercel"
    ],
    "agentNotes": null
  },
  {
    "tool": "@serwist/next",
    "purpose": "Service worker and PWA toolkit for Next.js with precaching, runtime caching strategies, and offline support; successor to next-pwa",
    "role": "PWA",
    "route": "framework:nextjs",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://serwist.pages.dev/docs/next",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Next.js"
    ],
    "agentNotes": null
  },
  {
    "tool": "Codecov",
    "purpose": "Code coverage reporting platform that integrates with CI to track coverage trends, enforce thresholds via commit status checks, and display coverage diffs on pull requests",
    "role": "Coverage Reporting",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "has_ci",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://codecov.io",
    "hasMcp": false,
    "relatedTo": [
      "GitHub Actions"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "GitHub CodeQL",
    "purpose": "Static application security testing (SAST) engine that analyzes source code for security vulnerabilities, runs as a GitHub Actions workflow, and surfaces findings as code scanning alerts on pull requests",
    "role": "SAST",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "has_ci",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://codeql.github.com",
    "hasMcp": false,
    "relatedTo": [
      "Gitleaks"
    ],
    "selectionMode": "auto-included",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [
      "GitHub"
    ],
    "agentNotes": null
  },
  {
    "tool": "Supabase Edge Functions",
    "purpose": "Deno-based serverless functions deployed globally on the Supabase platform for custom backend logic, webhooks, and third-party API integrations",
    "role": "Serverless Compute",
    "route": "backend:supabase",
    "section": "Application & Data",
    "category": "platform-feature",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_api",
    "platforms": {
      "contentSite": false,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://supabase.com/docs/guides/functions",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": "supabase-suite",
    "priority": "recommended",
    "dependsOn": [
      "Supabase"
    ],
    "agentNotes": null
  },
  {
    "tool": "@next/bundle-analyzer",
    "purpose": "Official Next.js plugin that generates interactive webpack bundle visualizations to identify large dependencies and optimize client-side bundle size",
    "role": "Bundle Analysis",
    "route": "framework:nextjs",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://nextjs.org/docs/app/guides/package-bundling",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Next.js"
    ],
    "agentNotes": null
  },
  {
    "tool": "@marsidev/react-turnstile",
    "purpose": "React wrapper component for Cloudflare Turnstile bot protection with hooks, refs, and TypeScript support",
    "role": "Bot Protection",
    "route": "framework:nextjs",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/marsidev/react-turnstile",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null,
    "env": [
      { "name": "TURNSTILE_SITE_KEY", "purpose": "Public widget site key", "whereToGet": "Cloudflare dashboard -> Turnstile -> your widget -> Site Key", "clientExposed": true },
      { "name": "TURNSTILE_SECRET_KEY", "purpose": "Server-side siteverify secret", "whereToGet": "Cloudflare dashboard -> Turnstile -> your widget -> Secret Key", "clientExposed": false }
    ]
  },
  {
    "tool": "@notionhq/client",
    "purpose": "Official Notion JavaScript SDK for reading and writing databases, pages, and blocks; useful for lightweight CMS or form-capture flows",
    "role": "CMS Client",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/makenotion/notion-sdk-js",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "isomorphic-dompurify",
    "purpose": "Cross-runtime XSS sanitizer (browser + Node) wrapping DOMPurify; required whenever user- or third-party-supplied HTML reaches the DOM",
    "role": "XSS Sanitization",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/kkomelin/isomorphic-dompurify",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "marked",
    "purpose": "Fast, lightweight Markdown parser and compiler; suitable when full MDX/component support is not required",
    "role": "Markdown Parser",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/markedjs/marked",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "@react-pdf/renderer",
    "purpose": "React renderer for declarative PDF generation with components and styles; alternative to @pdfme/pdf-lib for component-driven layouts",
    "role": "PDF Generation",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://react-pdf.org",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "React"
    ],
    "agentNotes": null
  },
  {
    "tool": "@tailwindcss/typography",
    "purpose": "Official Tailwind CSS plugin that adds prose classes for rendering Markdown- or CMS-driven content with sensible typographic defaults",
    "role": "Tailwind Plugin",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "has_frontend",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/tailwindlabs/tailwindcss-typography",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "Tailwind CSS"
    ],
    "agentNotes": null
  },
  {
    "tool": "docx",
    "purpose": "Generate Microsoft Word .docx documents programmatically from JavaScript/TypeScript with paragraphs, tables, styles, and headers",
    "role": "Document Generation",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": false,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/dolanmiu/docx",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "qrcode-svg",
    "purpose": "Generate QR codes as SVG strings with configurable size, padding, ECC level, and colors; preferred when the output should be vector for print or web",
    "role": "QR Code Generator",
    "route": "base",
    "section": "Utilities",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": true,
      "mobileApp": true,
      "webApp": true,
      "tooling": true
    },
    "url": "https://github.com/papnkukn/qrcode-svg",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": null
  },
  {
    "tool": "@commander-js/extra-typings",
    "purpose": "Strict TypeScript typings for commander, inferring option and argument types from chained method calls; pair with commander for type-safe CLIs",
    "role": "CLI Type Augmentation",
    "route": "base",
    "section": "Developer Tools",
    "category": "tool",
    "layer": "devtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": false,
      "tooling": true
    },
    "url": "https://github.com/commander-js/extra-typings",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [
      "commander",
      "TypeScript"
    ],
    "agentNotes": null
  },
  {
    "tool": "@sentry/nextjs",
    "purpose": "Official Sentry SDK for Next.js App Router: error and performance monitoring with automatic instrumentation of Server Components, route handlers, and client navigation. Wraps the Sentry service for the web app surface.",
    "role": "Error Tracking SDK",
    "route": "framework:nextjs",
    "section": "DevOps",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://docs.sentry.io/platforms/javascript/guides/nextjs/",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": "Pairs with the Sentry service entry. Initialize via sentry.client.config + sentry.server.config + instrumentation.ts. Strip PII in beforeSend."
  },
  {
    "tool": "googleapis",
    "purpose": "Official Google API Node.js client. Used for Google Drive v3 access via a service-account JWT: list, get metadata, and stream or export file blobs behind app-issued signed URLs.",
    "role": "Google Drive Client",
    "route": "base",
    "section": "Application & Data",
    "category": "tool",
    "layer": "runtime",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": false,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://github.com/googleapis/google-api-nodejs-client",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": "Heavier under Bun than Node; Fluid Compute runs Node 24 LTS in prod. Authenticate with a service-account JWT, never end-user OAuth, for the per-engagement Drive folder model."
  },
  {
    "tool": "@vercel/config",
    "purpose": "Typed Vercel project configuration via vercel.ts (the recommended replacement for vercel.json). Provides full TypeScript types, dynamic logic, and env access for framework, crons, headers, redirects, and rewrites.",
    "role": "Project Config",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/project-configuration/vercel-ts",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "recommended",
    "dependsOn": [],
    "agentNotes": "Export a typed VercelConfig from vercel.ts. Requires a recent Vercel CLI; older CLIs read only vercel.json."
  },
  {
    "tool": "@vercel/edge-config",
    "purpose": "Ultra-low-latency read-only key/value store for feature flags and config read from Routing Middleware/Functions without a redeploy. Used here for the maintenance-mode toggle (sub-ms reads, platform-native, survives origin outage).",
    "role": "Feature Flags / Config",
    "route": "base",
    "section": "DevOps",
    "category": "tool",
    "layer": "infra",
    "maturity": "stable",
    "condition": "optional",
    "platforms": {
      "contentSite": true,
      "desktopApp": false,
      "mobileApp": false,
      "webApp": true,
      "tooling": false
    },
    "url": "https://vercel.com/docs/edge-config",
    "hasMcp": false,
    "relatedTo": [],
    "selectionMode": "selectable",
    "exclusionGroup": null,
    "bundle": null,
    "priority": "optional",
    "dependsOn": [],
    "agentNotes": "Read flags via @vercel/edge-config get() in middleware. UNVETTED at add time (2026-05-28); added for the 003-oe-website maintenance-mode flag (research R4)."
  }
]
