agents-inc 0.170.2 → 0.172.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/dist/{chunk-PSUTNOQ2.js → chunk-255DGUCH.js} +2 -2
- package/dist/chunk-33JICQD5.js +196 -0
- package/dist/chunk-33JICQD5.js.map +1 -0
- package/dist/{chunk-3ED3KHHD.js → chunk-3R3LHA4Q.js} +2 -2
- package/dist/{chunk-YXKTY5WM.js → chunk-5MGRHS2G.js} +94 -58
- package/dist/chunk-5MGRHS2G.js.map +1 -0
- package/dist/{chunk-PLFANHRZ.js → chunk-5PPB6HT6.js} +2 -2
- package/dist/{chunk-66AEVERM.js → chunk-6CRA46YO.js} +14 -14
- package/dist/{chunk-ELV5WDS3.js → chunk-6LUTY35Q.js} +25 -14
- package/dist/chunk-6LUTY35Q.js.map +1 -0
- package/dist/{chunk-AUNRHWH4.js → chunk-7OG635DK.js} +26 -4
- package/dist/chunk-7OG635DK.js.map +1 -0
- package/dist/{chunk-GEMW5RQ2.js → chunk-7ZOWSCAO.js} +29 -102
- package/dist/chunk-7ZOWSCAO.js.map +1 -0
- package/dist/{chunk-YGDWHDOY.js → chunk-A3ZAXL5T.js} +4 -5
- package/dist/{chunk-YGDWHDOY.js.map → chunk-A3ZAXL5T.js.map} +1 -1
- package/dist/chunk-G7NUK3BF.js +253 -0
- package/dist/chunk-G7NUK3BF.js.map +1 -0
- package/dist/{chunk-THO7LO5B.js → chunk-KCLBLK3F.js} +3 -3
- package/dist/{chunk-2YA4DDRM.js → chunk-LUKDDHSI.js} +8 -6
- package/dist/{chunk-2YA4DDRM.js.map → chunk-LUKDDHSI.js.map} +1 -1
- package/dist/{chunk-OCAVW6N5.js → chunk-MBIOZ5LW.js} +12 -3
- package/dist/{chunk-OCAVW6N5.js.map → chunk-MBIOZ5LW.js.map} +1 -1
- package/dist/{chunk-7C3PFRBU.js → chunk-MHAQWMNJ.js} +35 -5
- package/dist/{chunk-7C3PFRBU.js.map → chunk-MHAQWMNJ.js.map} +1 -1
- package/dist/{chunk-HACRR422.js → chunk-MOL2J5HS.js} +2 -2
- package/dist/{chunk-BBDGYJHX.js → chunk-N33AKFLR.js} +2 -2
- package/dist/{chunk-5BNX73OU.js → chunk-NISWBQNS.js} +52 -31
- package/dist/chunk-NISWBQNS.js.map +1 -0
- package/dist/{chunk-GAKVZNTX.js → chunk-VILFCMRN.js} +420 -316
- package/dist/chunk-VILFCMRN.js.map +1 -0
- package/dist/{chunk-IWY5IR4F.js → chunk-Y23MP2OC.js} +8 -8
- package/dist/commands/build/marketplace.js +16 -14
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +6 -6
- package/dist/commands/compile.js +12 -12
- package/dist/commands/doctor.js +64 -81
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +150 -152
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +10 -10
- package/dist/commands/init.js +19 -16
- package/dist/commands/list.js +14 -17
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/marketplace.js +4 -4
- package/dist/commands/search.js +15 -13
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/share.js +11 -11
- package/dist/commands/uninstall.js +109 -98
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +6 -6
- package/dist/components/common/scroll-affordance.js +2 -2
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/common/skill-agent-summary.js +3 -4
- package/dist/components/common/summary-panel.js +11 -146
- package/dist/components/common/summary-panel.js.map +1 -1
- package/dist/hooks/init.js +22 -19
- package/dist/hooks/init.js.map +1 -1
- package/dist/load-agent-defs-54VIKN4T.js +14 -0
- package/dist/{recompile-project-agents-I33KQJFB.js → recompile-project-agents-5A44NJRD.js} +8 -8
- package/dist/{source-loader-TTJVW2ER.js → source-loader-LQNRI5UZ.js} +4 -4
- package/dist/src/agents/tester/web-tester/playbook.md +1 -1
- package/package.json +1 -1
- package/src/agents/tester/web-tester/playbook.md +1 -1
- package/dist/chunk-5BNX73OU.js.map +0 -1
- package/dist/chunk-AUNRHWH4.js.map +0 -1
- package/dist/chunk-ELV5WDS3.js.map +0 -1
- package/dist/chunk-GAKVZNTX.js.map +0 -1
- package/dist/chunk-GEMW5RQ2.js.map +0 -1
- package/dist/chunk-O4LN3HFI.js +0 -69
- package/dist/chunk-O4LN3HFI.js.map +0 -1
- package/dist/chunk-PMUZR4XO.js +0 -108
- package/dist/chunk-PMUZR4XO.js.map +0 -1
- package/dist/chunk-RIK45Q4I.js +0 -103
- package/dist/chunk-RIK45Q4I.js.map +0 -1
- package/dist/chunk-YXKTY5WM.js.map +0 -1
- package/dist/components/common/removal-plan-confirm.js +0 -10
- package/dist/load-agent-defs-6QUUMGHK.js +0 -14
- package/dist/source-loader-TTJVW2ER.js.map +0 -1
- /package/dist/{chunk-PSUTNOQ2.js.map → chunk-255DGUCH.js.map} +0 -0
- /package/dist/{chunk-3ED3KHHD.js.map → chunk-3R3LHA4Q.js.map} +0 -0
- /package/dist/{chunk-PLFANHRZ.js.map → chunk-5PPB6HT6.js.map} +0 -0
- /package/dist/{chunk-66AEVERM.js.map → chunk-6CRA46YO.js.map} +0 -0
- /package/dist/{chunk-THO7LO5B.js.map → chunk-KCLBLK3F.js.map} +0 -0
- /package/dist/{chunk-HACRR422.js.map → chunk-MOL2J5HS.js.map} +0 -0
- /package/dist/{chunk-BBDGYJHX.js.map → chunk-N33AKFLR.js.map} +0 -0
- /package/dist/{chunk-IWY5IR4F.js.map → chunk-Y23MP2OC.js.map} +0 -0
- /package/dist/{components/common/removal-plan-confirm.js.map → load-agent-defs-54VIKN4T.js.map} +0 -0
- /package/dist/{recompile-project-agents-I33KQJFB.js.map → recompile-project-agents-5A44NJRD.js.map} +0 -0
- /package/dist/{load-agent-defs-6QUUMGHK.js.map → source-loader-LQNRI5UZ.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/utils/string.ts","../src/cli/types/generated/matrix.ts","../src/cli/lib/matrix/matrix-provider.ts"],"sourcesContent":["// Inline, not in eslint.config.js: matching control characters is this sanitiser's job alone.\n/* eslint-disable no-control-regex */\n\n// OSC; end-of-input terminates too, since an unterminated one swallows everything after it.\nconst OSC = /\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\\\|$)/;\n\n// CSI; the final byte is optional so an incomplete sequence is removed too.\nconst CSI = /\\u001B\\[[0-?]*[ -/]*[@-~]?/;\n\n// `.` skips newline, so ESC before a line break costs only the escape.\nconst OTHER_ESCAPE = /\\u001B.?/;\n\nconst C1 = /[\\u0080-\\u009F]/;\n\n// C0 and DEL, except tab and newline.\nconst C0 = /[\\u0000-\\u0008\\u000B-\\u001F\\u007F]/;\n\n/* eslint-enable no-control-regex */\n\n// Global is safe at module scope: `replace` resets `lastIndex`.\nfunction anyOf(patterns: RegExp[]): RegExp {\n return new RegExp(patterns.map((pattern) => pattern.source).join(\"|\"), \"g\");\n}\n\n// Order matters: OTHER_ESCAPE before CSI would eat the `[` and leave the parameters as text.\nconst TERMINAL_CONTROLS = anyOf([OSC, CSI, OTHER_ESCAPE, C1, C0]);\n\n/** Removes every byte a terminal would consume as a control sequence; tab and newline survive. */\nexport function stripTerminalControls(text: string): string {\n return text.replace(TERMINAL_CONTROLS, \"\");\n}\n\n/** Strips terminal controls first, so the cut can never land inside an escape sequence. */\nexport function truncateText(text: string, maxLength: number): string {\n const inert = stripTerminalControls(text);\n if (inert.length <= maxLength) return inert;\n return inert.slice(0, maxLength - 1) + \"\\u2026\";\n}\n\nexport function plural(count: number, noun: string): string {\n return `${count} ${noun}${count === 1 ? \"\" : \"s\"}`;\n}\n\nexport function toTitleCase(kebabCase: string): string {\n return kebabCase\n .split(\"-\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\nexport { bytewise } from \"@workspace/compile\";\n","// AUTO-GENERATED from skills source — do not edit manually\n// Run: bun run generate:types\n\nimport type {\n CategoryMap,\n MergedSkillsMatrix,\n ResolvedSkill,\n ResolvedStack,\n SkillSlugMap,\n} from \"../matrix\";\nimport type { AgentName } from \"../agents\";\nimport type { SkillId, SkillSlug } from \"../skills\";\nimport type { Category, Domain } from \"./source-types\";\n\n// ── Built-in Matrix ───────────────────────────────────────────\n\nexport const BUILT_IN_MATRIX: MergedSkillsMatrix = {\n version: \"1.0.0\",\n categories: {\n \"web-framework\": {\n id: \"web-framework\",\n displayName: \"Framework\",\n description: \"UI framework (React, Vue, Angular, SolidJS)\",\n domain: \"web\",\n exclusive: true,\n order: 1,\n },\n \"web-meta-framework\": {\n id: \"web-meta-framework\",\n displayName: \"Meta-Framework\",\n description: \"Full-stack meta-framework (Next.js, Remix, Nuxt, SvelteKit)\",\n domain: \"web\",\n exclusive: true,\n order: 2,\n },\n \"web-routing\": {\n id: \"web-routing\",\n displayName: \"Routing\",\n description: \"Client-side routing (TanStack Router)\",\n domain: \"web\",\n exclusive: true,\n order: 3,\n },\n \"web-styling\": {\n id: \"web-styling\",\n displayName: \"Styling\",\n description: \"CSS approach (SCSS Modules, Tailwind, CVA)\",\n domain: \"web\",\n exclusive: false,\n order: 4,\n },\n \"web-client-state\": {\n id: \"web-client-state\",\n displayName: \"Client State Management\",\n description: \"UI state, forms, local data (Zustand, Redux, MobX)\",\n domain: \"web\",\n exclusive: true,\n order: 5,\n },\n \"web-server-state\": {\n id: \"web-server-state\",\n displayName: \"Server State / Data Fetching\",\n description: \"API data caching (React Query, SWR)\",\n domain: \"web\",\n exclusive: true,\n order: 6,\n },\n \"web-graphql-client\": {\n id: \"web-graphql-client\",\n displayName: \"GraphQL Client\",\n description: \"GraphQL client library (Apollo Client, urql)\",\n domain: \"web\",\n exclusive: true,\n order: 7,\n },\n \"web-rpc\": {\n id: \"web-rpc\",\n displayName: \"Type-Safe RPC\",\n description: \"End-to-end type-safe RPC (tRPC)\",\n domain: \"web\",\n exclusive: false,\n order: 8,\n },\n \"web-forms\": {\n id: \"web-forms\",\n displayName: \"Validation\",\n description: \"Schema validation (Zod)\",\n domain: \"web\",\n exclusive: false,\n order: 9,\n },\n \"web-form-library\": {\n id: \"web-form-library\",\n displayName: \"Form Library\",\n description: \"Form state and submission (React Hook Form, TanStack Form, VeeValidate)\",\n domain: \"web\",\n exclusive: true,\n order: 10,\n },\n \"web-testing\": {\n id: \"web-testing\",\n displayName: \"Testing\",\n description: \"Unit, component, and visual testing\",\n domain: \"web\",\n exclusive: false,\n order: 11,\n },\n \"web-e2e\": {\n id: \"web-e2e\",\n displayName: \"E2E Testing\",\n description: \"End-to-end browser testing (Playwright, Cypress)\",\n domain: \"web\",\n exclusive: true,\n order: 12,\n },\n \"web-ui-kit\": {\n id: \"web-ui-kit\",\n displayName: \"Design System Kit\",\n description: \"Pre-styled component kit (shadcn/ui, MUI, Mantine, Vuetify)\",\n domain: \"web\",\n exclusive: true,\n order: 13,\n },\n \"web-ui-components\": {\n id: \"web-ui-components\",\n displayName: \"Headless Components\",\n description: \"Headless primitives (Radix UI, Base UI, Headless UI, TanStack Table)\",\n domain: \"web\",\n exclusive: false,\n order: 14,\n },\n \"web-tooling\": {\n id: \"web-tooling\",\n displayName: \"Build Tools\",\n description: \"Frontend build tools and bundlers (Vite, Webpack)\",\n domain: \"web\",\n exclusive: false,\n order: 15,\n },\n \"web-docs\": {\n id: \"web-docs\",\n displayName: \"Documentation Framework\",\n description: \"Documentation site generator (Docusaurus, VitePress)\",\n domain: \"web\",\n exclusive: true,\n order: 16,\n },\n \"web-mocking\": {\n id: \"web-mocking\",\n displayName: \"API Mocking\",\n description: \"Mock Service Worker for development and testing\",\n domain: \"web\",\n exclusive: false,\n order: 17,\n },\n \"web-error-handling\": {\n id: \"web-error-handling\",\n displayName: \"Error Handling\",\n description: \"Error boundaries, result types, and error patterns\",\n domain: \"web\",\n exclusive: false,\n order: 18,\n },\n \"web-i18n\": {\n id: \"web-i18n\",\n displayName: \"Internationalization\",\n description: \"i18n libraries (next-intl, react-intl, vue-i18n)\",\n domain: \"web\",\n exclusive: true,\n order: 19,\n },\n \"web-file-upload\": {\n id: \"web-file-upload\",\n displayName: \"File Upload\",\n description: \"File upload patterns and handling\",\n domain: \"web\",\n exclusive: false,\n order: 20,\n },\n \"web-files\": {\n id: \"web-files\",\n displayName: \"Files & Images\",\n description: \"Image handling and file processing\",\n domain: \"web\",\n exclusive: false,\n order: 21,\n },\n \"web-utilities\": {\n id: \"web-utilities\",\n displayName: \"Utilities\",\n description: \"Utility libraries (date-fns, native JS patterns)\",\n domain: \"web\",\n exclusive: false,\n order: 22,\n },\n \"web-realtime\": {\n id: \"web-realtime\",\n displayName: \"Realtime\",\n description: \"Bidirectional realtime (WebSockets, Socket.IO)\",\n domain: \"web\",\n exclusive: true,\n order: 23,\n },\n \"web-streaming\": {\n id: \"web-streaming\",\n displayName: \"Server Streaming\",\n description: \"Server-sent events and HTTP streaming\",\n domain: \"web\",\n exclusive: false,\n order: 24,\n },\n \"web-animation\": {\n id: \"web-animation\",\n displayName: \"Animation\",\n description: \"Animation libraries and CSS animations\",\n domain: \"web\",\n exclusive: false,\n order: 25,\n },\n \"web-pwa\": {\n id: \"web-pwa\",\n displayName: \"Progressive Web App\",\n description: \"Service workers, offline-first patterns, and PWA features\",\n domain: \"web\",\n exclusive: false,\n order: 26,\n },\n \"web-accessibility\": {\n id: \"web-accessibility\",\n displayName: \"Accessibility\",\n description: \"WCAG compliance, ARIA, and keyboard navigation\",\n domain: \"web\",\n exclusive: false,\n order: 27,\n },\n \"web-performance\": {\n id: \"web-performance\",\n displayName: \"Web Performance\",\n description: \"Bundle optimization, render performance, and code splitting\",\n domain: \"web\",\n exclusive: false,\n order: 28,\n },\n \"web-3d\": {\n id: \"web-3d\",\n displayName: \"3D Graphics\",\n description: \"3D rendering (React Three Fiber)\",\n domain: \"web\",\n exclusive: false,\n order: 29,\n },\n \"web-dataviz\": {\n id: \"web-dataviz\",\n displayName: \"Data Visualization\",\n description: \"Charts and data visualization (D3, Recharts)\",\n domain: \"web\",\n exclusive: false,\n order: 30,\n },\n \"web-dnd\": {\n id: \"web-dnd\",\n displayName: \"Drag & Drop\",\n description: \"Drag-and-drop interactions (dnd-kit)\",\n domain: \"web\",\n exclusive: false,\n order: 31,\n },\n \"web-editor\": {\n id: \"web-editor\",\n displayName: \"Rich Text Editor\",\n description: \"Rich text editing (Lexical, Tiptap)\",\n domain: \"web\",\n exclusive: true,\n order: 32,\n },\n \"web-maps\": {\n id: \"web-maps\",\n displayName: \"Maps\",\n description: \"Interactive maps (Leaflet, Mapbox)\",\n domain: \"web\",\n exclusive: true,\n order: 33,\n },\n \"api-api\": {\n id: \"api-api\",\n displayName: \"API Framework\",\n description: \"Backend framework (Hono, Express, Fastify)\",\n domain: \"api\",\n exclusive: true,\n order: 1,\n },\n \"api-sql-engine\": {\n id: \"api-sql-engine\",\n displayName: \"SQL Engine\",\n description: \"Primary SQL engine (PostgreSQL, MySQL, CockroachDB)\",\n domain: \"api\",\n exclusive: true,\n order: 2,\n },\n \"api-orm\": {\n id: \"api-orm\",\n displayName: \"ORM / Query Builder\",\n description: \"Database access layer (Drizzle, Prisma, TypeORM)\",\n domain: \"api\",\n exclusive: true,\n order: 3,\n },\n \"api-document\": {\n id: \"api-document\",\n displayName: \"Document / Multi-Model Database\",\n description: \"Primary non-SQL store (MongoDB, Mongoose, Gel, SurrealDB)\",\n domain: \"api\",\n exclusive: true,\n order: 4,\n },\n \"api-kv\": {\n id: \"api-kv\",\n displayName: \"Cache / KV Store\",\n description: \"Redis-class key-value provider (Redis, Upstash)\",\n domain: \"api\",\n exclusive: true,\n order: 5,\n },\n \"api-db-host\": {\n id: \"api-db-host\",\n displayName: \"Managed Database\",\n description: \"Managed database host (Neon, PlanetScale, Turso)\",\n domain: \"api\",\n exclusive: true,\n order: 6,\n },\n \"api-auth\": {\n id: \"api-auth\",\n displayName: \"Authentication\",\n description: \"Auth solution (Better Auth, Auth.js)\",\n domain: \"api\",\n exclusive: true,\n order: 8,\n },\n \"api-observability\": {\n id: \"api-observability\",\n displayName: \"Observability\",\n description: \"Logging, monitoring, error tracking\",\n domain: \"api\",\n exclusive: false,\n order: 9,\n },\n \"api-analytics\": {\n id: \"api-analytics\",\n displayName: \"Analytics\",\n description: \"Product analytics and tracking\",\n domain: \"api\",\n exclusive: false,\n order: 10,\n },\n \"api-email\": {\n id: \"api-email\",\n displayName: \"Email\",\n description: \"Transactional email (Resend, Sendgrid)\",\n domain: \"api\",\n exclusive: false,\n order: 11,\n },\n \"ai-provider\": {\n id: \"ai-provider\",\n displayName: \"AI Provider\",\n description: \"AI model provider SDKs (Anthropic, OpenAI, Google, etc.)\",\n domain: \"ai\",\n exclusive: false,\n order: 1,\n },\n \"ai-orchestration\": {\n id: \"ai-orchestration\",\n displayName: \"AI Orchestration\",\n description: \"Multi-model AI workflow frameworks (LangChain, LlamaIndex, Vercel AI)\",\n domain: \"ai\",\n exclusive: false,\n order: 2,\n },\n \"ai-observability\": {\n id: \"ai-observability\",\n displayName: \"AI Observability\",\n description: \"LLM monitoring, evaluation, and tracing (Langfuse, Promptfoo)\",\n domain: \"ai\",\n exclusive: false,\n order: 3,\n },\n \"ai-infrastructure\": {\n id: \"ai-infrastructure\",\n displayName: \"AI Infrastructure\",\n description: \"Model hosting, serving, and inference gateways\",\n domain: \"ai\",\n exclusive: false,\n order: 4,\n },\n \"ai-patterns\": {\n id: \"ai-patterns\",\n displayName: \"AI Patterns\",\n description: \"Cross-cutting AI usage patterns (tool use, prompting)\",\n domain: \"ai\",\n exclusive: false,\n order: 5,\n },\n \"api-baas\": {\n id: \"api-baas\",\n displayName: \"Backend as a Service\",\n description:\n \"Full backend platform — auth, database, storage, functions (Supabase, Firebase)\",\n domain: \"api\",\n exclusive: true,\n order: 7,\n },\n \"api-performance\": {\n id: \"api-performance\",\n displayName: \"Performance\",\n description: \"API performance patterns and optimization\",\n domain: \"api\",\n exclusive: false,\n order: 12,\n },\n \"api-cms\": {\n id: \"api-cms\",\n displayName: \"CMS\",\n description: \"CMS platforms (Payload, Sanity, Strapi)\",\n domain: \"api\",\n exclusive: true,\n order: 13,\n },\n \"api-commerce\": {\n id: \"api-commerce\",\n displayName: \"Commerce\",\n description: \"Commerce platforms (Stripe)\",\n domain: \"api\",\n exclusive: false,\n order: 14,\n },\n \"api-search\": {\n id: \"api-search\",\n displayName: \"Search\",\n description: \"Search engines (Elasticsearch, Meilisearch)\",\n domain: \"api\",\n exclusive: true,\n order: 15,\n },\n \"api-vector-db\": {\n id: \"api-vector-db\",\n displayName: \"Vector Database\",\n description: \"Vector databases (Pinecone, Qdrant, Chroma, Weaviate)\",\n domain: \"api\",\n exclusive: true,\n order: 16,\n },\n \"api-caching\": {\n id: \"api-caching\",\n displayName: \"Caching\",\n description: \"API caching strategies and patterns\",\n domain: \"api\",\n exclusive: false,\n order: 17,\n },\n \"api-graphql\": {\n id: \"api-graphql\",\n displayName: \"GraphQL Server\",\n description: \"GraphQL servers (Apollo Server, Mercurius, Yoga)\",\n domain: \"api\",\n exclusive: true,\n order: 18,\n },\n \"api-messaging\": {\n id: \"api-messaging\",\n displayName: \"Messaging\",\n description: \"Webhooks and event-driven messaging\",\n domain: \"api\",\n exclusive: false,\n order: 19,\n },\n \"api-queue\": {\n id: \"api-queue\",\n displayName: \"Queues\",\n description: \"Background job queues (BullMQ)\",\n domain: \"api\",\n exclusive: false,\n order: 20,\n },\n \"api-specs\": {\n id: \"api-specs\",\n displayName: \"API Specifications\",\n description: \"API specification formats (OpenAPI)\",\n domain: \"api\",\n exclusive: false,\n order: 21,\n },\n \"mobile-framework\": {\n id: \"mobile-framework\",\n displayName: \"Mobile Framework\",\n description: \"Native mobile framework (React Native, Expo)\",\n domain: \"mobile\",\n exclusive: false,\n order: 1,\n },\n \"mobile-animation\": {\n id: \"mobile-animation\",\n displayName: \"Mobile Animation\",\n description: \"Native animation and gestures (Reanimated, Gesture Handler, Skia)\",\n domain: \"mobile\",\n exclusive: false,\n order: 6,\n },\n \"mobile-background\": {\n id: \"mobile-background\",\n displayName: \"Background Tasks\",\n description: \"Background task scheduling and execution\",\n domain: \"mobile\",\n exclusive: false,\n order: 12,\n },\n \"mobile-camera\": {\n id: \"mobile-camera\",\n displayName: \"Camera\",\n description: \"Camera integration (Vision Camera)\",\n domain: \"mobile\",\n exclusive: false,\n order: 10,\n },\n \"mobile-deep-linking\": {\n id: \"mobile-deep-linking\",\n displayName: \"Deep Linking\",\n description: \"Deep links and universal/app links\",\n domain: \"mobile\",\n exclusive: false,\n order: 9,\n },\n \"mobile-deployment\": {\n id: \"mobile-deployment\",\n displayName: \"Deployment\",\n description: \"App builds and store releases (EAS)\",\n domain: \"mobile\",\n exclusive: false,\n order: 15,\n },\n \"mobile-hardware\": {\n id: \"mobile-hardware\",\n displayName: \"Hardware\",\n description: \"Device hardware access (BLE, NFC)\",\n domain: \"mobile\",\n exclusive: false,\n order: 11,\n },\n \"mobile-navigation\": {\n id: \"mobile-navigation\",\n displayName: \"Navigation\",\n description: \"Screen navigation (Expo Router, React Navigation)\",\n domain: \"mobile\",\n exclusive: true,\n order: 2,\n },\n \"mobile-notifications\": {\n id: \"mobile-notifications\",\n displayName: \"Notifications\",\n description: \"Push and local notifications\",\n domain: \"mobile\",\n exclusive: false,\n order: 8,\n },\n \"mobile-performance\": {\n id: \"mobile-performance\",\n displayName: \"Mobile Performance\",\n description: \"React Native performance optimization\",\n domain: \"mobile\",\n exclusive: false,\n order: 13,\n },\n \"mobile-security\": {\n id: \"mobile-security\",\n displayName: \"Mobile Security\",\n description: \"Mobile app security patterns (React Native)\",\n domain: \"mobile\",\n exclusive: false,\n order: 14,\n },\n \"mobile-storage\": {\n id: \"mobile-storage\",\n displayName: \"Mobile Storage\",\n description: \"On-device storage and offline databases (MMKV, SQLite, WatermelonDB)\",\n domain: \"mobile\",\n exclusive: false,\n order: 4,\n },\n \"mobile-styling\": {\n id: \"mobile-styling\",\n displayName: \"Mobile Styling\",\n description: \"Native styling (NativeWind, Unistyles)\",\n domain: \"mobile\",\n exclusive: true,\n order: 3,\n },\n \"mobile-testing\": {\n id: \"mobile-testing\",\n displayName: \"Mobile Testing\",\n description: \"Mobile E2E testing (Detox, Maestro)\",\n domain: \"mobile\",\n exclusive: false,\n order: 7,\n },\n \"mobile-ui-components\": {\n id: \"mobile-ui-components\",\n displayName: \"Mobile UI Components\",\n description: \"Native UI component libraries (React Native Paper, Tamagui)\",\n domain: \"mobile\",\n exclusive: true,\n order: 5,\n },\n \"shared-monorepo\": {\n id: \"shared-monorepo\",\n displayName: \"Monorepo\",\n description: \"Workspace management (pnpm workspaces)\",\n domain: \"shared\",\n exclusive: false,\n order: 1,\n },\n \"shared-task-runner\": {\n id: \"shared-task-runner\",\n displayName: \"Task Runner\",\n description: \"Monorepo task orchestration (Turborepo, Nx)\",\n domain: \"shared\",\n exclusive: true,\n order: 2,\n },\n \"shared-lint\": {\n id: \"shared-lint\",\n displayName: \"Lint & Format\",\n description: \"Linting and formatting (Biome, ESLint & Prettier)\",\n domain: \"shared\",\n exclusive: true,\n order: 3,\n },\n \"shared-tooling\": {\n id: \"shared-tooling\",\n displayName: \"Build Tooling\",\n description: \"TypeScript config, git hooks, changesets, stack detection\",\n domain: \"shared\",\n exclusive: false,\n order: 4,\n },\n \"shared-security\": {\n id: \"shared-security\",\n displayName: \"Security\",\n description: \"Authentication security patterns and best practices\",\n domain: \"shared\",\n exclusive: false,\n order: 5,\n },\n \"meta-reviewing\": {\n id: \"meta-reviewing\",\n displayName: \"Code Review\",\n description: \"Code review patterns and methodology\",\n domain: \"meta\",\n exclusive: false,\n order: 1,\n },\n \"meta-methodology\": {\n id: \"meta-methodology\",\n displayName: \"Methodology\",\n description: \"Research and investigation methodology\",\n domain: \"meta\",\n exclusive: false,\n order: 2,\n },\n \"meta-design\": {\n id: \"meta-design\",\n displayName: \"Software Design\",\n description: \"Software design patterns and paradigms\",\n domain: \"meta\",\n exclusive: false,\n order: 3,\n },\n \"meta-planning\": {\n id: \"meta-planning\",\n displayName: \"Planning\",\n description: \"Specification planning frameworks per domain\",\n domain: \"meta\",\n exclusive: false,\n order: 4,\n },\n \"infra-ci-cd\": {\n id: \"infra-ci-cd\",\n displayName: \"CI/CD\",\n description: \"Continuous integration and deployment pipelines\",\n domain: \"infra\",\n exclusive: false,\n order: 1,\n },\n \"infra-platform\": {\n id: \"infra-platform\",\n displayName: \"Platform\",\n description: \"Edge compute and deployment platforms\",\n domain: \"infra\",\n exclusive: false,\n order: 2,\n },\n \"infra-config\": {\n id: \"infra-config\",\n displayName: \"Configuration\",\n description: \"Environment and infrastructure configuration\",\n domain: \"infra\",\n exclusive: false,\n order: 3,\n },\n \"infra-containers\": {\n id: \"infra-containers\",\n displayName: \"Containers\",\n description: \"Containers (Docker, Kubernetes)\",\n domain: \"infra\",\n exclusive: false,\n order: 5,\n },\n \"infra-iac\": {\n id: \"infra-iac\",\n displayName: \"Infrastructure as Code\",\n description: \"Infrastructure as code (Pulumi, SST, Terraform)\",\n domain: \"infra\",\n exclusive: true,\n order: 4,\n },\n \"cli-framework\": {\n id: \"cli-framework\",\n displayName: \"CLI Framework\",\n description: \"CLI application framework (Commander, oclif)\",\n domain: \"cli\",\n exclusive: true,\n order: 1,\n },\n \"cli-prompts\": {\n id: \"cli-prompts\",\n displayName: \"CLI Prompts\",\n description: \"Interactive CLI prompts (Clack)\",\n domain: \"cli\",\n exclusive: false,\n order: 2,\n },\n \"desktop-framework\": {\n id: \"desktop-framework\",\n displayName: \"Desktop Framework\",\n description: \"Desktop application framework (Tauri, Electron)\",\n domain: \"desktop\",\n exclusive: true,\n order: 1,\n },\n \"desktop-backend\": {\n id: \"desktop-backend\",\n displayName: \"Desktop Backend\",\n description: \"Desktop backend integration (Tauri)\",\n domain: \"desktop\",\n exclusive: false,\n order: 3,\n },\n \"desktop-ipc\": {\n id: \"desktop-ipc\",\n displayName: \"IPC\",\n description: \"Inter-process communication (Electron)\",\n domain: \"desktop\",\n exclusive: false,\n order: 2,\n },\n \"desktop-mobile\": {\n id: \"desktop-mobile\",\n displayName: \"Mobile Support\",\n description: \"Desktop-to-mobile platform support (Tauri)\",\n domain: \"desktop\",\n exclusive: false,\n order: 12,\n },\n \"desktop-multiwindow\": {\n id: \"desktop-multiwindow\",\n displayName: \"Multi-Window\",\n description: \"Multi-window management (Electron, Tauri)\",\n domain: \"desktop\",\n exclusive: false,\n order: 5,\n },\n \"desktop-packaging\": {\n id: \"desktop-packaging\",\n displayName: \"Packaging\",\n description: \"App packaging and distribution (Electron Forge, Tauri)\",\n domain: \"desktop\",\n exclusive: true,\n order: 9,\n },\n \"desktop-plugins\": {\n id: \"desktop-plugins\",\n displayName: \"Plugins\",\n description: \"Desktop plugin systems (Tauri)\",\n domain: \"desktop\",\n exclusive: false,\n order: 11,\n },\n \"desktop-security\": {\n id: \"desktop-security\",\n displayName: \"Desktop Security\",\n description: \"Desktop app security hardening (Electron, Tauri)\",\n domain: \"desktop\",\n exclusive: false,\n order: 7,\n },\n \"desktop-storage\": {\n id: \"desktop-storage\",\n displayName: \"Desktop Storage\",\n description: \"Desktop data persistence (Electron)\",\n domain: \"desktop\",\n exclusive: false,\n order: 6,\n },\n \"desktop-testing\": {\n id: \"desktop-testing\",\n displayName: \"Desktop Testing\",\n description: \"Desktop app testing (Electron)\",\n domain: \"desktop\",\n exclusive: false,\n order: 8,\n },\n \"desktop-ui\": {\n id: \"desktop-ui\",\n displayName: \"Desktop UI\",\n description: \"Desktop UI patterns (Electron)\",\n domain: \"desktop\",\n exclusive: false,\n order: 4,\n },\n \"desktop-updates\": {\n id: \"desktop-updates\",\n displayName: \"Auto-Updates\",\n description: \"Application auto-updates (electron-updater)\",\n domain: \"desktop\",\n exclusive: false,\n order: 10,\n },\n },\n skills: {\n \"ai-infrastructure-huggingface-inference\": {\n id: \"ai-infrastructure-huggingface-inference\",\n slug: \"huggingface-inference\",\n displayName: \"Hugging Face Inference\",\n description: \"Access 200k+ models via Inference API and Endpoints\",\n usageGuidance:\n \"Use when accessing ML models via Hugging Face — text generation, chat completion, embeddings, image generation, audio transcription, translation, summarization, and custom Inference Endpoints for dedicated deployments.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-infrastructure-huggingface-inference\",\n },\n \"ai-infrastructure-litellm\": {\n id: \"ai-infrastructure-litellm\",\n slug: \"litellm\",\n displayName: \"LiteLLM\",\n description: \"Unified LLM proxy — 100+ providers, OpenAI-compatible API\",\n usageGuidance:\n \"Use when routing LLM requests through LiteLLM proxy — unified OpenAI-compatible API across providers, model fallbacks, load balancing, spend tracking, and rate limiting. Covers proxy server config.yaml setup, TypeScript client via OpenAI SDK, virtual keys, and production deployment.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-infrastructure-litellm\",\n },\n \"ai-infrastructure-modal\": {\n id: \"ai-infrastructure-modal\",\n slug: \"modal\",\n displayName: \"Modal\",\n description: \"Serverless GPU compute for model deployment and inference\",\n usageGuidance:\n \"Use when deploying ML models or GPU workloads on Modal — web endpoints for API access from TypeScript, serverless GPU functions, model serving, scheduled jobs, and container-based deployments.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/ai-infrastructure-modal\",\n },\n \"ai-infrastructure-ollama\": {\n id: \"ai-infrastructure-ollama\",\n slug: \"ollama\",\n displayName: \"Ollama\",\n description: \"Local LLM inference with the Ollama JavaScript client\",\n usageGuidance:\n \"Use when running LLMs locally with Ollama — chat completions, streaming, tool calling, vision, embeddings, model management, structured output with JSON schemas, and the OpenAI-compatible endpoint.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-infrastructure-ollama\",\n },\n \"ai-infrastructure-replicate\": {\n id: \"ai-infrastructure-replicate\",\n slug: \"replicate\",\n displayName: \"Replicate\",\n description: \"Run open-source ML models with serverless GPU inference\",\n usageGuidance:\n \"Use when running open-source models on Replicate — model predictions, streaming, webhooks, file handling, model versioning, and serverless GPU deployment.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-infrastructure-replicate\",\n },\n \"ai-infrastructure-together-ai\": {\n id: \"ai-infrastructure-together-ai\",\n slug: \"together-ai\",\n displayName: \"Together AI\",\n description: \"Multi-model inference API for open-source LLMs\",\n usageGuidance:\n \"Use when running open-source LLMs on Together AI — chat completions, streaming, embeddings, image generation, function calling, JSON mode, structured output, fine-tuning, and OpenAI-compatible endpoints.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-infrastructure-together-ai\",\n },\n \"ai-observability-langfuse\": {\n id: \"ai-observability-langfuse\",\n slug: \"langfuse\",\n displayName: \"Langfuse\",\n description: \"LLM observability — tracing, evaluations, prompt management\",\n usageGuidance:\n \"Use when adding observability to LLM applications — tracing LLM calls, tracking costs, evaluations, prompt management, session tracking, user feedback, and datasets for testing with Langfuse.\",\n category: \"ai-observability\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-observability-promptfoo\",\n purpose: \"AI Evaluation / Observability\",\n },\n ],\n path: \"skills/ai-observability-langfuse\",\n },\n \"ai-observability-promptfoo\": {\n id: \"ai-observability-promptfoo\",\n slug: \"promptfoo\",\n displayName: \"Promptfoo\",\n description: \"Testing and evaluation framework for LLM prompts and apps\",\n usageGuidance:\n \"Use when testing LLM prompts and applications — promptfooconfig.yaml for test definitions, assertion types, model-graded evals, red teaming, CI integration, and comparative evaluation across providers.\",\n category: \"ai-observability\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-observability-langfuse\",\n purpose: \"AI Evaluation / Observability\",\n },\n ],\n path: \"skills/ai-observability-promptfoo\",\n },\n \"ai-orchestration-langchain\": {\n id: \"ai-orchestration-langchain\",\n slug: \"langchain\",\n displayName: \"LangChain\",\n description: \"LLM app framework with chains, agents, RAG, and memory\",\n usageGuidance:\n \"Use when building LLM-powered applications with LangChain.js — chat models, prompt templates, output parsers, chains (LCEL), agents with tools, RAG pipelines, vector stores, and memory.\",\n category: \"ai-orchestration\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-orchestration-vercel-ai-sdk\",\n purpose: \"AI SDK\",\n },\n {\n skillId: \"ai-orchestration-llamaindex\",\n purpose: \"AI SDK\",\n },\n ],\n path: \"skills/ai-orchestration-langchain\",\n },\n \"ai-orchestration-llamaindex\": {\n id: \"ai-orchestration-llamaindex\",\n slug: \"llamaindex\",\n displayName: \"LlamaIndex\",\n description: \"LLM data framework — indexing, retrieval, query engines\",\n usageGuidance:\n \"Use when building RAG and data-aware LLM applications — document loading, text chunking, vector indexing, query engines, chat engines, and agentic RAG with LlamaIndex.TS.\",\n category: \"ai-orchestration\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-orchestration-vercel-ai-sdk\",\n purpose: \"AI SDK\",\n },\n {\n skillId: \"ai-orchestration-langchain\",\n purpose: \"AI SDK\",\n },\n ],\n path: \"skills/ai-orchestration-llamaindex\",\n },\n \"ai-orchestration-vercel-ai-sdk\": {\n id: \"ai-orchestration-vercel-ai-sdk\",\n slug: \"vercel-ai-sdk\",\n displayName: \"Vercel AI SDK\",\n description: \"Vercel AI SDK for streaming AI applications\",\n usageGuidance:\n \"Use when building AI-powered features with streaming, chat UIs, or multi-provider AI integrations. Covers generateText, streamText, structured output with Zod, tool calling, useChat/useCompletion hooks, embeddings, and RAG patterns.\",\n category: \"ai-orchestration\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-orchestration-langchain\",\n purpose: \"AI SDK\",\n },\n {\n skillId: \"ai-orchestration-llamaindex\",\n purpose: \"AI SDK\",\n },\n ],\n path: \"skills/ai-orchestration-vercel-ai-sdk\",\n },\n \"ai-patterns-tool-use-patterns\": {\n id: \"ai-patterns-tool-use-patterns\",\n slug: \"tool-use-patterns\",\n displayName: \"Tool Use Patterns\",\n description: \"Provider-agnostic patterns for LLM function calling\",\n usageGuidance:\n \"Use when implementing LLM tool use -- tool definition schemas, the tool call loop pattern, parallel tool calls, error reporting back to the model, multi-step agent workflows, human-in-the-loop patterns, and tool choice control. Provider-agnostic -- shows generic TypeScript patterns, not provider-specific SDK code.\",\n category: \"ai-patterns\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/ai-patterns-tool-use-patterns\",\n },\n \"ai-provider-anthropic-sdk\": {\n id: \"ai-provider-anthropic-sdk\",\n slug: \"anthropic-sdk\",\n displayName: \"Anthropic SDK\",\n description: \"Claude API — messages, streaming, tool use, and vision\",\n usageGuidance:\n \"Use when integrating Claude via the Anthropic API — messages API, streaming responses, tool use (function calling), vision (image input), extended thinking, batch API, and prompt caching.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-provider-anthropic-sdk\",\n },\n \"ai-provider-claude-vision\": {\n id: \"ai-provider-claude-vision\",\n slug: \"claude-vision\",\n displayName: \"Claude Vision\",\n description: \"Image understanding and document analysis with Claude\",\n usageGuidance:\n \"Use when processing images and documents with Claude — image analysis, document extraction, chart interpretation, multi-image comparison, and PDF processing with the Anthropic API.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"ai-provider-anthropic-sdk\"],\n needsAny: false,\n reason: \"Claude Vision uses the Anthropic SDK\",\n },\n ],\n alternatives: [],\n path: \"skills/ai-provider-claude-vision\",\n },\n \"ai-provider-cohere-sdk\": {\n id: \"ai-provider-cohere-sdk\",\n slug: \"cohere-sdk\",\n displayName: \"Cohere SDK\",\n description: \"Cohere API — chat, embeddings, rerank, and RAG\",\n usageGuidance:\n \"Use when integrating Cohere AI -- chat completions with Command models, embeddings for semantic search, rerank for relevance scoring, RAG with inline documents and citations, tool use / function calling, and streaming.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-provider-cohere-sdk\",\n },\n \"ai-provider-elevenlabs\": {\n id: \"ai-provider-elevenlabs\",\n slug: \"elevenlabs\",\n displayName: \"ElevenLabs\",\n description: \"Text-to-speech, voice cloning, and real-time streaming\",\n usageGuidance:\n \"Use when generating speech with ElevenLabs — text-to-speech, streaming audio, voice cloning, voice selection, pronunciation control (SSML), and real-time conversational AI.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/ai-provider-elevenlabs\",\n },\n \"ai-provider-google-gemini-sdk\": {\n id: \"ai-provider-google-gemini-sdk\",\n slug: \"google-gemini-sdk\",\n displayName: \"Google Gemini SDK\",\n description: \"Gemini API — multimodal input, tools, structured output\",\n usageGuidance:\n \"Use when integrating Google Gemini — text generation, multimodal input (images, video, audio, PDF), function calling, structured JSON output, streaming, embeddings, and context caching.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-provider-google-gemini-sdk\",\n },\n \"ai-provider-mistral-sdk\": {\n id: \"ai-provider-mistral-sdk\",\n slug: \"mistral-sdk\",\n displayName: \"Mistral SDK\",\n description: \"Mistral API — chat, embeddings, tools, code generation\",\n usageGuidance:\n \"Use when integrating Mistral AI models — chat completions, streaming, function calling, embeddings, JSON mode, structured outputs with Zod, vision with supported models, and Codestral for code generation / FIM.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-provider-mistral-sdk\",\n },\n \"ai-provider-openai-sdk\": {\n id: \"ai-provider-openai-sdk\",\n slug: \"openai-sdk\",\n displayName: \"OpenAI SDK\",\n description: \"Official OpenAI SDK for TypeScript/Node.js\",\n usageGuidance:\n \"Use when building applications with OpenAI's API — GPT models, chat completions, Responses API, embeddings, function calling, structured outputs, vision, audio, streaming, and batch processing.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n path: \"skills/ai-provider-openai-sdk\",\n },\n \"ai-provider-openai-whisper\": {\n id: \"ai-provider-openai-whisper\",\n slug: \"openai-whisper\",\n displayName: \"OpenAI Whisper\",\n description: \"Speech-to-text and translation via the OpenAI Audio API\",\n usageGuidance:\n \"Use when transcribing or translating audio with OpenAI Whisper -- file transcription, streaming transcription, translation to English, timestamp generation, and custom vocabulary prompting.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"ai-provider-openai-sdk\"],\n needsAny: false,\n reason: \"Whisper API uses the OpenAI SDK\",\n },\n ],\n alternatives: [],\n path: \"skills/ai-provider-openai-whisper\",\n },\n \"api-analytics-posthog-analytics\": {\n id: \"api-analytics-posthog-analytics\",\n slug: \"posthog-analytics\",\n displayName: \"PostHog Analytics\",\n description: \"Product analytics tracking\",\n usageGuidance:\n \"Use when tracking user events, setting up funnels, or implementing GDPR-compliant analytics.\",\n category: \"api-analytics\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-analytics-posthog-analytics\",\n },\n \"api-analytics-setup-posthog\": {\n id: \"api-analytics-setup-posthog\",\n slug: \"setup-posthog\",\n displayName: \"PostHog Setup\",\n description: \"PostHog initial setup\",\n usageGuidance: \"Use when setting up PostHog analytics or feature flags for the first time.\",\n category: \"api-analytics\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-analytics-setup-posthog\",\n },\n \"api-auth-better-auth-drizzle-hono\": {\n id: \"api-auth-better-auth-drizzle-hono\",\n slug: \"better-auth-drizzle-hono\",\n displayName: \"Better Auth\",\n description: \"Authentication and sessions\",\n usageGuidance: \"Use when implementing authentication, sessions, OAuth, or user management.\",\n category: \"api-auth\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-auth-nextauth\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n {\n skillId: \"api-auth-clerk\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"api-database-drizzle\", \"api-framework-hono\"],\n needsAny: false,\n reason:\n \"Skill teaches Better Auth with the Drizzle adapter, mounted via Hono routes and typed Hono middleware\",\n },\n ],\n alternatives: [\n {\n skillId: \"api-auth-nextauth\",\n purpose: \"Auth\",\n },\n {\n skillId: \"api-auth-clerk\",\n purpose: \"Auth\",\n },\n ],\n path: \"skills/api-auth-better-auth-drizzle-hono\",\n },\n \"api-auth-clerk\": {\n id: \"api-auth-clerk\",\n slug: \"clerk\",\n displayName: \"Clerk\",\n description: \"Clerk managed authentication and user management\",\n usageGuidance:\n \"Use when building with Clerk for auth, user management, organizations, or pre-built UI components.\",\n category: \"api-auth\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-auth-better-auth-drizzle-hono\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n {\n skillId: \"api-auth-nextauth\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-meta-framework-nextjs\"],\n needsAny: false,\n reason: \"Skill teaches @clerk/nextjs patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"api-auth-better-auth-drizzle-hono\",\n purpose: \"Auth\",\n },\n {\n skillId: \"api-auth-nextauth\",\n purpose: \"Auth\",\n },\n ],\n path: \"skills/api-auth-clerk\",\n },\n \"api-auth-nextauth\": {\n id: \"api-auth-nextauth\",\n slug: \"nextauth\",\n displayName: \"Auth.js\",\n description: \"Auth.js (NextAuth v5) authentication\",\n usageGuidance:\n \"Use when implementing authentication with Auth.js/NextAuth for Next.js, SvelteKit, or other frameworks.\",\n category: \"api-auth\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-auth-better-auth-drizzle-hono\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n {\n skillId: \"api-auth-clerk\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-meta-framework-nextjs\"],\n needsAny: false,\n reason:\n \"Skill teaches the next-auth (Next.js) package — auth.ts, handlers, middleware, Server Components\",\n },\n ],\n alternatives: [\n {\n skillId: \"api-auth-better-auth-drizzle-hono\",\n purpose: \"Auth\",\n },\n {\n skillId: \"api-auth-clerk\",\n purpose: \"Auth\",\n },\n ],\n path: \"skills/api-auth-nextauth\",\n },\n \"api-baas-appwrite\": {\n id: \"api-baas-appwrite\",\n slug: \"appwrite\",\n displayName: \"Appwrite\",\n description: \"Open-source BaaS — auth, databases, storage, and functions\",\n usageGuidance:\n \"Use when building with Appwrite — client/server SDKs for authentication, TablesDB (tables, rows, columns), file storage with buckets, serverless functions, and realtime subscriptions.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-supabase\",\n purpose: \"Backend as a Service\",\n },\n {\n skillId: \"api-baas-firebase\",\n purpose: \"Backend as a Service\",\n },\n ],\n path: \"skills/api-baas-appwrite\",\n },\n \"api-baas-firebase\": {\n id: \"api-baas-firebase\",\n slug: \"firebase\",\n displayName: \"Firebase\",\n description: \"Google Firebase platform for web and mobile\",\n usageGuidance:\n \"Use when building with Firebase — Firestore, Authentication, Cloud Functions, Storage, Hosting, Realtime Database, and Firebase Admin SDK.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-supabase\",\n purpose: \"Backend as a Service\",\n },\n {\n skillId: \"api-baas-appwrite\",\n purpose: \"Backend as a Service\",\n },\n ],\n path: \"skills/api-baas-firebase\",\n },\n \"api-baas-neon\": {\n id: \"api-baas-neon\",\n slug: \"neon\",\n displayName: \"Neon\",\n description: \"Serverless PostgreSQL — branching, autoscaling, edge driver\",\n usageGuidance:\n \"Use when deploying PostgreSQL on Neon — serverless driver for edge/serverless functions, database branching for dev/preview, autoscaling, connection pooling, and the Neon API for programmatic management.\",\n category: \"api-db-host\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-planetscale\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-turso\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n purpose: \"Managed Database\",\n },\n ],\n path: \"skills/api-baas-neon\",\n },\n \"api-baas-planetscale\": {\n id: \"api-baas-planetscale\",\n slug: \"planetscale\",\n displayName: \"PlanetScale\",\n description: \"Serverless MySQL — branching, deploy requests, edge driver\",\n usageGuidance:\n \"Use when deploying MySQL on PlanetScale — serverless driver for edge/serverless, database branching, deploy requests for schema changes, connection pooling, and Vitess-powered horizontal scaling.\",\n category: \"api-db-host\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-neon\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-turso\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n purpose: \"Managed Database\",\n },\n ],\n path: \"skills/api-baas-planetscale\",\n },\n \"api-baas-supabase\": {\n id: \"api-baas-supabase\",\n slug: \"supabase\",\n displayName: \"Supabase\",\n description: \"Supabase backend-as-a-service platform\",\n usageGuidance:\n \"Use when building with Supabase Auth, Database, Realtime, Storage, or Edge Functions. Covers client setup, typed queries, RLS policies, realtime subscriptions, file storage, and Deno edge functions.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-firebase\",\n purpose: \"Backend as a Service\",\n },\n {\n skillId: \"api-baas-appwrite\",\n purpose: \"Backend as a Service\",\n },\n ],\n path: \"skills/api-baas-supabase\",\n },\n \"api-baas-turso\": {\n id: \"api-baas-turso\",\n slug: \"turso\",\n displayName: \"Turso\",\n description: \"Edge-hosted SQLite with libSQL driver and embedded replicas\",\n usageGuidance:\n \"Use when deploying SQLite on Turso — libSQL client for edge/serverless, embedded replicas for zero-latency reads, database groups for multi-region, and schema migrations with branching.\",\n category: \"api-db-host\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-neon\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-planetscale\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n purpose: \"Managed Database\",\n },\n ],\n path: \"skills/api-baas-turso\",\n },\n \"api-caching-strategies\": {\n id: \"api-caching-strategies\",\n slug: \"strategies\",\n displayName: \"Caching\",\n description: \"Application-level caching and cache invalidation patterns\",\n usageGuidance:\n \"Use when implementing caching in backend applications — cache-aside, write-through, write-behind, TTL strategies, cache invalidation, CDN caching headers, HTTP caching, in-memory caching, and distributed cache patterns.\",\n category: \"api-caching\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-caching-strategies\",\n },\n \"api-cms-payload\": {\n id: \"api-cms-payload\",\n slug: \"payload\",\n displayName: \"Payload CMS\",\n description: \"TypeScript headless CMS — code-first schema, admin panel\",\n usageGuidance:\n \"Use when building content-managed applications with Payload — collection configs, field types, hooks, access control, REST/GraphQL/Local API, admin panel customization, and database adapter pattern.\",\n category: \"api-cms\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-cms-sanity\",\n purpose: \"CMS\",\n },\n {\n skillId: \"api-cms-strapi\",\n purpose: \"CMS\",\n },\n ],\n path: \"skills/api-cms-payload\",\n },\n \"api-cms-sanity\": {\n id: \"api-cms-sanity\",\n slug: \"sanity\",\n displayName: \"Sanity\",\n description: \"Structured content with GROQ queries and live collaboration\",\n usageGuidance:\n \"Use when building content-managed applications with Sanity — schema definitions, GROQ queries, @sanity/client for data fetching, image handling with @sanity/image-url, Portable Text for rich text, and Sanity Studio customization.\",\n category: \"api-cms\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-cms-payload\",\n purpose: \"CMS\",\n },\n {\n skillId: \"api-cms-strapi\",\n purpose: \"CMS\",\n },\n ],\n path: \"skills/api-cms-sanity\",\n },\n \"api-cms-strapi\": {\n id: \"api-cms-strapi\",\n slug: \"strapi\",\n displayName: \"Strapi\",\n description: \"Open-source headless CMS — content types, REST/GraphQL API\",\n usageGuidance:\n \"Use when building content-managed applications with Strapi — content type schemas, REST API (filters, populate, pagination), Document Service API (find, create, update, delete, publish), custom controllers, services, policies, middlewares, lifecycle hooks, authentication (register, login, JWT), roles and permissions, media upload, and TypeScript support.\",\n category: \"api-cms\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-cms-payload\",\n purpose: \"CMS\",\n },\n {\n skillId: \"api-cms-sanity\",\n purpose: \"CMS\",\n },\n ],\n path: \"skills/api-cms-strapi\",\n },\n \"api-commerce-stripe\": {\n id: \"api-commerce-stripe\",\n slug: \"stripe\",\n displayName: \"Stripe\",\n description: \"Payments — subscriptions, checkout, webhooks, and Connect\",\n usageGuidance:\n \"Use when integrating payments with Stripe — Checkout Sessions, Payment Intents, subscriptions, webhooks, customer management, Connect for platforms, and Stripe Elements.\",\n category: \"api-commerce\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-commerce-stripe\",\n },\n \"api-database-cockroachdb\": {\n id: \"api-database-cockroachdb\",\n slug: \"cockroachdb\",\n displayName: \"CockroachDB\",\n description: \"Distributed SQL with PostgreSQL wire protocol\",\n usageGuidance:\n \"Use when working with CockroachDB -- PostgreSQL-compatible wire protocol, distributed transactions with serializable isolation, automatic sharding, multi-region locality, and transaction retry logic.\",\n category: \"api-sql-engine\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-neon\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-planetscale\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-turso\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n purpose: \"Managed Database\",\n },\n ],\n path: \"skills/api-database-cockroachdb\",\n },\n \"api-database-drizzle\": {\n id: \"api-database-drizzle\",\n slug: \"drizzle\",\n displayName: \"Drizzle\",\n description: \"Drizzle ORM patterns\",\n usageGuidance: \"Use when writing database queries, migrations, or working with Drizzle ORM.\",\n category: \"api-orm\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-prisma\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-sequelize\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-typeorm\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-knex\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n path: \"skills/api-database-drizzle\",\n },\n \"api-database-edgedb\": {\n id: \"api-database-edgedb\",\n slug: \"edgedb\",\n displayName: \"Gel (EdgeDB)\",\n description: \"Graph-relational database with EdgeQL and code-first schema\",\n usageGuidance:\n \"Use when working with Gel (formerly EdgeDB) — EdgeQL for type-safe queries, code-first schema with migrations, link-based relations, computed properties, and the query builder for fully typed TypeScript queries.\",\n category: \"api-document\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-database-edgedb\",\n },\n \"api-database-knex\": {\n id: \"api-database-knex\",\n slug: \"knex\",\n displayName: \"Knex.js\",\n description: \"SQL query builder for PostgreSQL, MySQL, SQLite, and MSSQL\",\n usageGuidance:\n \"Use when building SQL queries programmatically -- fluent query builder, schema builder, migrations, seeds, transactions, and raw queries with parameter binding.\",\n category: \"api-orm\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-prisma\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-sequelize\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-typeorm\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n path: \"skills/api-database-knex\",\n },\n \"api-database-mongodb\": {\n id: \"api-database-mongodb\",\n slug: \"mongodb\",\n displayName: \"MongoDB\",\n description: \"Native MongoDB driver — the mongodb npm package, no ODM\",\n usageGuidance:\n \"Use when talking to MongoDB through the official `mongodb` driver directly, with no schema layer in between — MongoClient and pool lifecycle, typed collections, CRUD result shapes, cursors and streaming reads, aggregation pipelines, index design and verification with explain, and multi document transactions with sessions.\",\n category: \"api-document\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-mongoose\",\n purpose: \"MongoDB\",\n },\n ],\n path: \"skills/api-database-mongodb\",\n },\n \"api-database-mongoose\": {\n id: \"api-database-mongoose\",\n slug: \"mongoose\",\n displayName: \"Mongoose\",\n description: \"MongoDB ODM — schemas, validation, middleware, TypeScript\",\n usageGuidance:\n \"Use when working with MongoDB via Mongoose — schema definitions, model creation, queries, population, middleware hooks, virtuals, and TypeScript integration.\",\n category: \"api-document\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-mongodb\",\n purpose: \"MongoDB\",\n },\n ],\n path: \"skills/api-database-mongoose\",\n },\n \"api-database-mysql\": {\n id: \"api-database-mysql\",\n slug: \"mysql\",\n displayName: \"MySQL\",\n description: \"Direct MySQL database access with mysql2 driver\",\n usageGuidance:\n \"Use when interacting directly with MySQL -- connection pools, prepared statements, transactions, streaming, and promise-based API with mysql2.\",\n category: \"api-sql-engine\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-postgresql\",\n purpose: \"SQL Database\",\n },\n ],\n path: \"skills/api-database-mysql\",\n },\n \"api-database-postgresql\": {\n id: \"api-database-postgresql\",\n slug: \"postgresql\",\n displayName: \"PostgreSQL\",\n description: \"Direct PostgreSQL database access with node-postgres (pg)\",\n usageGuidance:\n \"Use when interacting directly with PostgreSQL -- connection pools, parameterized queries, transactions, migrations, and type-safe query results with pg.\",\n category: \"api-sql-engine\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-mysql\",\n purpose: \"SQL Database\",\n },\n ],\n path: \"skills/api-database-postgresql\",\n },\n \"api-database-prisma\": {\n id: \"api-database-prisma\",\n slug: \"prisma\",\n displayName: \"Prisma\",\n description: \"Prisma ORM patterns\",\n usageGuidance: \"Use when writing database queries, migrations, or working with Prisma ORM.\",\n category: \"api-orm\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-sequelize\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-typeorm\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-knex\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n path: \"skills/api-database-prisma\",\n },\n \"api-database-redis\": {\n id: \"api-database-redis\",\n slug: \"redis\",\n displayName: \"Redis\",\n description: \"Redis in-memory data store with ioredis\",\n usageGuidance:\n \"Use when implementing caching, session storage, rate limiting, pub/sub messaging, queues, or real-time leaderboards with Redis.\",\n category: \"api-kv\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-upstash\",\n purpose: \"Cache / KV Store\",\n },\n {\n skillId: \"api-database-vercel-kv\",\n purpose: \"Cache / KV Store\",\n },\n ],\n path: \"skills/api-database-redis\",\n },\n \"api-database-sequelize\": {\n id: \"api-database-sequelize\",\n slug: \"sequelize\",\n displayName: \"Sequelize\",\n description: \"Promise-based SQL ORM with model definitions and migrations\",\n usageGuidance:\n \"Use when working with SQL databases via Sequelize — model definitions, associations, queries, transactions, migrations, hooks, and scopes.\",\n category: \"api-orm\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-prisma\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-typeorm\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-knex\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n path: \"skills/api-database-sequelize\",\n },\n \"api-database-surrealdb\": {\n id: \"api-database-surrealdb\",\n slug: \"surrealdb\",\n displayName: \"SurrealDB\",\n description: \"Multi-model database with graph relations and live queries\",\n usageGuidance:\n \"Use when working with SurrealDB — SurrealQL queries, record links for graph relations, live queries for real-time, schema-full and schema-less modes, and multi-tenancy with namespaces and databases.\",\n category: \"api-document\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-database-surrealdb\",\n },\n \"api-database-typeorm\": {\n id: \"api-database-typeorm\",\n slug: \"typeorm\",\n displayName: \"TypeORM\",\n description: \"Decorator-based TypeScript ORM with Data Mapper patterns\",\n usageGuidance:\n \"Use when building TypeScript applications with relational databases — entity decorators, repository pattern, migrations, relations, query builder, and transaction management.\",\n category: \"api-orm\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-prisma\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-sequelize\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-knex\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n path: \"skills/api-database-typeorm\",\n },\n \"api-database-upstash\": {\n id: \"api-database-upstash\",\n slug: \"upstash\",\n displayName: \"Upstash\",\n description: \"Serverless Redis via REST for edge and serverless runtimes\",\n usageGuidance:\n \"Use when deploying Redis on Upstash -- REST-based Redis for edge/serverless compatibility, automatic JSON serialization, pipeline support, rate limiting with @upstash/ratelimit, and global replication.\",\n category: \"api-kv\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-redis\",\n purpose: \"Cache / KV Store\",\n },\n {\n skillId: \"api-database-vercel-kv\",\n purpose: \"Cache / KV Store\",\n },\n ],\n path: \"skills/api-database-upstash\",\n },\n \"api-database-vercel-kv\": {\n id: \"api-database-vercel-kv\",\n slug: \"vercel-kv\",\n displayName: \"Vercel KV\",\n description: \"Serverless Redis-compatible key-value store on Vercel\",\n usageGuidance:\n \"Use when deploying Redis-compatible KV storage on Vercel -- automatic connection via UPSTASH_REDIS_REST_URL env vars, edge-compatible REST API, Redis command compatibility, and TTL-based caching.\",\n category: \"api-kv\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-redis\",\n purpose: \"Cache / KV Store\",\n },\n {\n skillId: \"api-database-upstash\",\n purpose: \"Cache / KV Store\",\n },\n ],\n path: \"skills/api-database-vercel-kv\",\n },\n \"api-database-vercel-postgres\": {\n id: \"api-database-vercel-postgres\",\n slug: \"vercel-postgres\",\n displayName: \"Vercel Postgres\",\n description: \"Serverless PostgreSQL on Vercel with edge-compatible SDK\",\n usageGuidance:\n \"Use when deploying PostgreSQL on Vercel -- sql tagged template for edge functions, createPool/createClient for Node.js, automatic connection management via POSTGRES_URL env vars. NOTE: @vercel/postgres is deprecated (Dec 2024). For new projects, use @neondatabase/serverless instead.\",\n category: \"api-db-host\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-neon\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-planetscale\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-turso\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n purpose: \"Managed Database\",\n },\n ],\n path: \"skills/api-database-vercel-postgres\",\n },\n \"api-email-resend-react-email\": {\n id: \"api-email-resend-react-email\",\n slug: \"resend-react-email\",\n displayName: \"Resend\",\n description: \"Transactional email templates\",\n usageGuidance: \"Use when sending transactional emails or building React Email templates.\",\n category: \"api-email\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"React Email uses React for email templates\",\n },\n ],\n alternatives: [],\n path: \"skills/api-email-resend-react-email\",\n },\n \"api-email-setup-resend\": {\n id: \"api-email-setup-resend\",\n slug: \"setup-resend\",\n displayName: \"Email Setup\",\n description: \"Email service setup\",\n usageGuidance: \"Use when configuring Resend email service or domain verification.\",\n category: \"api-email\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason:\n \"Resend Email & React Email Setup — .tsx templates and the react: send prop are React Email surface\",\n },\n ],\n alternatives: [],\n path: \"skills/api-email-setup-resend\",\n },\n \"api-flags-posthog-flags\": {\n id: \"api-flags-posthog-flags\",\n slug: \"posthog-flags\",\n displayName: \"PostHog Flags\",\n description: \"Feature flags and A/B testing\",\n usageGuidance:\n \"Use when implementing feature flags, gradual rollouts, A/B tests, or remote configuration.\",\n category: \"api-analytics\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-flags-posthog-flags\",\n },\n \"api-framework-elysia\": {\n id: \"api-framework-elysia\",\n slug: \"elysia\",\n displayName: \"Elysia\",\n description: \"Bun-native HTTP framework with end-to-end type safety\",\n usageGuidance:\n \"Use when building APIs on Bun runtime — end-to-end type safety via Eden Treaty, plugin-based architecture, schema validation with TypeBox, lifecycle hooks, and high-performance routing.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-hono\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-express\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-nestjs\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-hono\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-express\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-fastify\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-nestjs\",\n purpose: \"API Framework\",\n },\n ],\n path: \"skills/api-framework-elysia\",\n },\n \"api-framework-express\": {\n id: \"api-framework-express\",\n slug: \"express\",\n displayName: \"Express\",\n description: \"Express API framework\",\n usageGuidance: \"Use when building Express.js APIs, middleware chains, or error handling.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-hono\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-elysia\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-nestjs\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-hono\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-fastify\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-elysia\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-nestjs\",\n purpose: \"API Framework\",\n },\n ],\n path: \"skills/api-framework-express\",\n },\n \"api-framework-fastify\": {\n id: \"api-framework-fastify\",\n slug: \"fastify\",\n displayName: \"Fastify\",\n description: \"Fastify API framework\",\n usageGuidance:\n \"Use when building Fastify APIs, using JSON Schema validation, or plugin architecture.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-hono\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-express\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-elysia\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-nestjs\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-hono\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-express\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-elysia\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-nestjs\",\n purpose: \"API Framework\",\n },\n ],\n path: \"skills/api-framework-fastify\",\n },\n \"api-framework-hono\": {\n id: \"api-framework-hono\",\n slug: \"hono\",\n displayName: \"Hono\",\n description: \"Hono API framework\",\n usageGuidance:\n \"Use when building API routes with Hono, implementing OpenAPI specs, or Zod validation.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-express\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-elysia\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-nestjs\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-express\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-fastify\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-elysia\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-nestjs\",\n purpose: \"API Framework\",\n },\n ],\n path: \"skills/api-framework-hono\",\n },\n \"api-framework-nestjs\": {\n id: \"api-framework-nestjs\",\n slug: \"nestjs\",\n displayName: \"NestJS\",\n description: \"NestJS structured backend framework\",\n usageGuidance:\n \"Use when building NestJS apps with modules, controllers, services, or decorators.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-hono\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-express\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-elysia\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-hono\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-express\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-fastify\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-elysia\",\n purpose: \"API Framework\",\n },\n ],\n path: \"skills/api-framework-nestjs\",\n },\n \"api-graphql-apollo-server\": {\n id: \"api-graphql-apollo-server\",\n slug: \"apollo-server\",\n displayName: \"Apollo Server\",\n description: \"GraphQL API server with Apollo Server\",\n usageGuidance:\n \"Use when building GraphQL APIs with Apollo Server — schema definition, resolvers, context, data sources, error handling, subscriptions, caching, and federation patterns.\",\n category: \"api-graphql\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-graphql-apollo-server\",\n },\n \"api-graphql-mercurius\": {\n id: \"api-graphql-mercurius\",\n slug: \"mercurius\",\n displayName: \"Mercurius\",\n description: \"GraphQL server for Fastify with Mercurius\",\n usageGuidance:\n \"Use when building GraphQL APIs on Fastify with Mercurius — schema definition, resolvers, loaders (DataLoader-like batching), subscriptions, federation, gateway, and Fastify plugin integration.\",\n category: \"api-graphql\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"api-framework-fastify\"],\n needsAny: false,\n reason:\n \"Mercurius is a Fastify plugin — registered via app.register on a Fastify instance\",\n },\n ],\n alternatives: [],\n path: \"skills/api-graphql-mercurius\",\n },\n \"api-graphql-yoga\": {\n id: \"api-graphql-yoga\",\n slug: \"yoga\",\n displayName: \"GraphQL Yoga\",\n description: \"GraphQL server with Yoga v5 and the Envelop plugin system\",\n usageGuidance:\n \"Use when building GraphQL APIs with GraphQL Yoga — schema definition, resolvers, Envelop plugins, subscriptions (SSE/WebSocket), file uploads, error handling, and server framework integration.\",\n category: \"api-graphql\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-graphql-yoga\",\n },\n \"api-messaging-webhooks\": {\n id: \"api-messaging-webhooks\",\n slug: \"webhooks\",\n displayName: \"Webhooks\",\n description: \"Receiving, sending, signature verification, and retry logic\",\n usageGuidance:\n \"Use when implementing webhook endpoints or sending webhooks — signature verification (HMAC), idempotency, retry logic with exponential backoff, payload validation, event routing, and dead letter queues.\",\n category: \"api-messaging\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-messaging-webhooks\",\n },\n \"api-observability-axiom-pino-sentry\": {\n id: \"api-observability-axiom-pino-sentry\",\n slug: \"axiom-pino-sentry\",\n displayName: \"Observability\",\n description: \"Logging and error tracking\",\n usageGuidance:\n \"Use when implementing structured logging, error tracking, or performance monitoring.\",\n category: \"api-observability\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-observability-axiom-pino-sentry\",\n },\n \"api-observability-setup-axiom-pino-sentry\": {\n id: \"api-observability-setup-axiom-pino-sentry\",\n slug: \"setup-axiom-pino-sentry\",\n displayName: \"Observability Setup\",\n description: \"Logging and monitoring setup\",\n usageGuidance: \"Use when setting up Pino logging, Axiom, or Sentry for the first time.\",\n category: \"api-observability\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-meta-framework-nextjs\"],\n needsAny: false,\n reason:\n \"Every pattern is the Next.js wiring — next-axiom, @sentry/nextjs, next.config.ts wrapping, instrumentation.ts; strip the Next slice and nothing followable remains\",\n },\n ],\n alternatives: [],\n path: \"skills/api-observability-setup-axiom-pino-sentry\",\n },\n \"api-performance-api-performance\": {\n id: \"api-performance-api-performance\",\n slug: \"api-performance\",\n displayName: \"Backend Performance\",\n description: \"Query and caching optimization\",\n usageGuidance:\n \"Use when optimizing database queries, implementing caching, or improving API response times.\",\n category: \"api-performance\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-performance-api-performance\",\n },\n \"api-queue-bullmq\": {\n id: \"api-queue-bullmq\",\n slug: \"bullmq\",\n displayName: \"BullMQ\",\n description: \"Job queues and background processing with BullMQ\",\n usageGuidance:\n \"Use when implementing job queues, background processing, or task scheduling with BullMQ -- queue creation, workers, job scheduling, rate limiting, concurrency, flows, events, and Redis connection patterns.\",\n category: \"api-queue\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"api-database-redis\", \"api-database-upstash\"],\n needsAny: true,\n reason:\n \"BullMQ drives a Redis-compatible server over ioredis/TCP (blocking commands, Lua scripts, streams); Upstash documents BullMQ over its TCP endpoint — its REST client cannot drive BullMQ, and the skill carries its own ioredis connection factory\",\n },\n ],\n alternatives: [],\n path: \"skills/api-queue-bullmq\",\n },\n \"api-search-elasticsearch\": {\n id: \"api-search-elasticsearch\",\n slug: \"elasticsearch\",\n displayName: \"Elasticsearch\",\n description: \"Distributed search — full-text, aggregations, vector search\",\n usageGuidance:\n \"Use when building search with Elasticsearch -- full-text search, structured queries, aggregations, vector/semantic search, index management, and bulk operations.\",\n category: \"api-search\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-search-meilisearch\",\n purpose: \"Search Engine\",\n },\n ],\n path: \"skills/api-search-elasticsearch\",\n },\n \"api-search-meilisearch\": {\n id: \"api-search-meilisearch\",\n slug: \"meilisearch\",\n displayName: \"Meilisearch\",\n description: \"Fast, typo-tolerant search with instant results and facets\",\n usageGuidance:\n \"Use when adding search to applications with Meilisearch -- instant typo-tolerant search, faceted filtering, geo search, multi-index search, and real-time document indexing.\",\n category: \"api-search\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-search-elasticsearch\",\n purpose: \"Search Engine\",\n },\n ],\n path: \"skills/api-search-meilisearch\",\n },\n \"api-search-xquik\": {\n id: \"api-search-xquik\",\n slug: \"xquik\",\n displayName: \"Xquik\",\n description: \"X data and automation API\",\n usageGuidance:\n \"Use when integrating Xquik REST endpoints for X post search, user lookup, timelines, media download, monitors, signed webhooks, or approval-gated X actions.\",\n category: \"api-search\",\n author: \"@kriptoburak\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-search-xquik\",\n },\n \"api-specs-openapi\": {\n id: \"api-specs-openapi\",\n slug: \"openapi\",\n displayName: \"OpenAPI\",\n description: \"OpenAPI schema design and client/server code generation\",\n usageGuidance:\n \"Use when designing API contracts with OpenAPI (Swagger) — spec authoring (YAML/JSON), schema definitions, path operations, request/response types, code generation (client/server), validation, and documentation generation.\",\n category: \"api-specs\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/api-specs-openapi\",\n },\n \"api-vector-db-chroma\": {\n id: \"api-vector-db-chroma\",\n slug: \"chroma\",\n displayName: \"Chroma\",\n description: \"Lightweight embedding database with automatic vectorization\",\n usageGuidance:\n \"Use when building semantic search or RAG with Chroma -- collection management, automatic embedding generation, metadata filtering, document storage, and multi-modal embeddings.\",\n category: \"api-vector-db\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-vector-db-pinecone\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-qdrant\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n purpose: \"Vector Database\",\n },\n ],\n path: \"skills/api-vector-db-chroma\",\n },\n \"api-vector-db-pinecone\": {\n id: \"api-vector-db-pinecone\",\n slug: \"pinecone\",\n displayName: \"Pinecone\",\n description: \"Serverless vector database for similarity search and RAG\",\n usageGuidance:\n \"Use when building semantic search or RAG with Pinecone -- index management, vector upsert/query, metadata filtering, namespaces, sparse-dense hybrid search, and serverless scaling.\",\n category: \"api-vector-db\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-vector-db-qdrant\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n purpose: \"Vector Database\",\n },\n ],\n path: \"skills/api-vector-db-pinecone\",\n },\n \"api-vector-db-qdrant\": {\n id: \"api-vector-db-qdrant\",\n slug: \"qdrant\",\n displayName: \"Qdrant\",\n description: \"Fast vector DB — filtering, payload indexing, quantization\",\n usageGuidance:\n \"Use when building semantic search or RAG with Qdrant -- collection management, vector upsert/search, payload filtering, named vectors, quantization, and recommendation API.\",\n category: \"api-vector-db\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-vector-db-pinecone\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n purpose: \"Vector Database\",\n },\n ],\n path: \"skills/api-vector-db-qdrant\",\n },\n \"api-vector-db-weaviate\": {\n id: \"api-vector-db-weaviate\",\n slug: \"weaviate\",\n displayName: \"Weaviate\",\n description: \"Vector database — built-in vectorization and hybrid search\",\n usageGuidance:\n \"Use when building semantic search or RAG with Weaviate — collection management, built-in vectorization modules, hybrid search (vector + keyword), filtering, multi-tenancy, and generative search.\",\n category: \"api-vector-db\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-vector-db-pinecone\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-qdrant\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n purpose: \"Vector Database\",\n },\n ],\n path: \"skills/api-vector-db-weaviate\",\n },\n \"cli-framework-cli-commander\": {\n id: \"cli-framework-cli-commander\",\n slug: \"cli-commander\",\n displayName: \"CLI Commander\",\n description: \"CLI dev with Commander.js, clack, picocolors\",\n usageGuidance:\n \"Use when building CLI applications, interactive prompts, wizard flows, or command-line tools with Node.js.\",\n category: \"cli-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"cli-framework-oclif-ink\",\n reason: \"CLI frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"cli-framework-oclif-ink\",\n purpose: \"CLI Framework\",\n },\n ],\n path: \"skills/cli-framework-cli-commander\",\n },\n \"cli-framework-oclif-ink\": {\n id: \"cli-framework-oclif-ink\",\n slug: \"oclif-ink\",\n displayName: \"oclif + Ink\",\n description: \"CLI dev with oclif framework and Ink React\",\n usageGuidance:\n \"Use when building command-line interfaces with oclif framework, React-based terminal UIs with Ink, or integrating both for interactive CLI applications. Triggers: oclif, Ink, @oclif/core, @inkjs/ui, terminal React, CLI commands, useInput, useApp, render(), Command class, Flags, Args.\",\n category: \"cli-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"cli-framework-cli-commander\",\n reason: \"CLI frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"cli-framework-cli-commander\",\n purpose: \"CLI Framework\",\n },\n ],\n path: \"skills/cli-framework-oclif-ink\",\n },\n \"cli-prompts-clack\": {\n id: \"cli-prompts-clack\",\n slug: \"clack\",\n displayName: \"Clack\",\n description: \"Beautiful interactive CLI prompts with @clack/prompts\",\n usageGuidance:\n \"Use when building interactive CLI experiences with @clack/prompts — text input, select, multiselect, confirm, spinner, group prompts, cancellation handling, and themed output. Triggers: @clack/prompts, @clack/core, clack, isCancel, intro, outro, spinner, group, text prompt, select prompt, confirm prompt, multiselect, note, log, tasks, progress bar, taskLog.\",\n category: \"cli-prompts\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/cli-prompts-clack\",\n },\n \"desktop-backend-tauri\": {\n id: \"desktop-backend-tauri\",\n slug: \"tauri-backend\",\n displayName: \"Tauri Rust Backend\",\n description: \"Rust command patterns, state, error handling\",\n usageGuidance:\n \"Use when writing Tauri Rust backend code: defining #[tauri::command] handlers (sync and async), managing state with app.manage() and State<T>, implementing error types with thiserror + serde::Serialize, emitting events from Rust, streaming data via Channel<T>, or testing Rust commands with the mock runtime.\",\n category: \"desktop-backend\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-tauri\"],\n needsAny: false,\n reason: \"tauri::command and State are the tauri crate\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-backend-tauri\",\n },\n \"desktop-framework-electron\": {\n id: \"desktop-framework-electron\",\n slug: \"electron\",\n displayName: \"Electron\",\n description: \"Cross-platform desktop apps with web technologies\",\n usageGuidance:\n \"Use when building desktop applications with Electron, configuring main/renderer process architecture, IPC communication, preload scripts, security hardening, native API integration, or packaging for distribution.\",\n category: \"desktop-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"desktop-framework-tauri\",\n reason: \"Desktop frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"desktop-framework-tauri\",\n purpose: \"Desktop Framework\",\n },\n ],\n path: \"skills/desktop-framework-electron\",\n },\n \"desktop-framework-tauri\": {\n id: \"desktop-framework-tauri\",\n slug: \"tauri\",\n displayName: \"Tauri\",\n description: \"Desktop and mobile apps with system webview and Rust backend\",\n usageGuidance:\n \"Use when building desktop or mobile applications with Tauri 2.x, defining Rust commands and IPC bridge, configuring the permission/capability system, using official plugins, system tray, window management, or packaging for distribution.\",\n category: \"desktop-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"desktop-framework-electron\",\n reason: \"Desktop frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"desktop-framework-electron\",\n purpose: \"Desktop Framework\",\n },\n ],\n path: \"skills/desktop-framework-tauri\",\n },\n \"desktop-ipc-electron\": {\n id: \"desktop-ipc-electron\",\n slug: \"electron-ipc\",\n displayName: \"Electron Type-Safe IPC\",\n description: \"Type-safe Electron IPC patterns\",\n usageGuidance:\n \"Use when implementing type-safe IPC between Electron main and renderer processes, setting up electron-trpc for end-to-end type safety, creating typed channel maps with shared payload types, building typed preload APIs with contextBridge, using MessagePort for high-throughput communication, or implementing utility process IPC.\",\n category: \"desktop-ipc\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-electron\"],\n needsAny: false,\n reason: \"contextBridge/ipcMain are Electron core APIs\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-ipc-electron\",\n },\n \"desktop-mobile-tauri\": {\n id: \"desktop-mobile-tauri\",\n slug: \"tauri-mobile\",\n displayName: \"Tauri Mobile\",\n description: \"Mobile app development with Tauri 2.x\",\n usageGuidance:\n \"Use when building iOS or Android mobile apps with Tauri 2.x, initializing mobile targets, using mobile-specific plugins (biometric, barcode-scanner, NFC, haptics, geolocation), writing platform-specific Swift/Kotlin plugin code, configuring mobile permissions (AndroidManifest.xml, Info.plist), or debugging on mobile devices and emulators.\",\n category: \"desktop-mobile\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-tauri\"],\n needsAny: false,\n reason: \"Tauri mobile targets are the same Tauri project\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-mobile-tauri\",\n },\n \"desktop-multiwindow-electron\": {\n id: \"desktop-multiwindow-electron\",\n slug: \"electron-multiwindow\",\n displayName: \"Electron Multi-Window\",\n description: \"Multi-window, WebContentsView, window lifecycle\",\n usageGuidance:\n \"Use when managing multiple windows or embedded views in Electron: BaseWindow with WebContentsView for tabs/panels/split views, parent/child and modal windows, window registries, inter-window communication via MessagePort, window state persistence, or multi-monitor placement with the screen API.\",\n category: \"desktop-multiwindow\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-electron\"],\n needsAny: false,\n reason: \"BaseWindow and WebContentsView are Electron core APIs\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-multiwindow-electron\",\n },\n \"desktop-multiwindow-tauri\": {\n id: \"desktop-multiwindow-tauri\",\n slug: \"tauri-multiwindow\",\n displayName: \"Tauri Multi-Window & Events\",\n description: \"Multi-window management and event system\",\n usageGuidance:\n \"Use when creating or managing multiple windows in a Tauri 2.x app, communicating between windows via events (emit, emitTo, emit_filter), handling close confirmation, persisting window state, or setting up parent/child and modal window relationships.\",\n category: \"desktop-multiwindow\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-tauri\"],\n needsAny: false,\n reason: \"Tauri 2 event system and WebviewWindow APIs\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-multiwindow-tauri\",\n },\n \"desktop-packaging-electron-forge\": {\n id: \"desktop-packaging-electron-forge\",\n slug: \"electron-forge\",\n displayName: \"Electron Forge\",\n description: \"Electron build toolchain, makers, publishers, signing\",\n usageGuidance:\n \"Use when configuring Electron Forge (forge.config.ts), setting up makers for platform-specific installers, configuring publishers for release distribution, code signing and notarization, Electron Fuses, build hooks, or choosing between Forge and electron-builder.\",\n category: \"desktop-packaging\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-electron\"],\n needsAny: false,\n reason: \"Electron Forge packages Electron apps\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-packaging-electron-forge\",\n },\n \"desktop-packaging-tauri\": {\n id: \"desktop-packaging-tauri\",\n slug: \"tauri-bundling\",\n displayName: \"Tauri Bundling & Distribution\",\n description: \"Bundle config, signing, updater, CI/CD\",\n usageGuidance:\n \"Use when configuring tauri.conf.json bundle settings, building platform-specific installers (NSIS/MSI, DMG, deb/rpm/AppImage), setting up code signing or notarization, configuring the auto-updater with signature verification, optimizing app size, adding sidecar binaries, or creating CI/CD pipelines for cross-platform Tauri builds.\",\n category: \"desktop-packaging\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-tauri\"],\n needsAny: false,\n reason: \"Tauri bundler, signer, and updater configuration\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-packaging-tauri\",\n },\n \"desktop-plugins-tauri\": {\n id: \"desktop-plugins-tauri\",\n slug: \"tauri-plugins\",\n displayName: \"Tauri Plugins\",\n description: \"Official plugin ecosystem and custom plugin development\",\n usageGuidance:\n \"Use when installing, configuring, or using official Tauri 2.x plugins (fs, http, store, dialog, notification, shell, updater, log, sql, stronghold, deep-link, global-shortcut, autostart, clipboard, window-state, barcode-scanner, biometric, single-instance, os, process), or when developing custom plugins with the Rust Builder pattern and optional mobile (Swift/Kotlin) support.\",\n category: \"desktop-plugins\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-tauri\"],\n needsAny: false,\n reason: \"tauri-plugin-* crates and the Tauri 2 ACL model\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-plugins-tauri\",\n },\n \"desktop-security-electron\": {\n id: \"desktop-security-electron\",\n slug: \"electron-security\",\n displayName: \"Electron Security & Fuses\",\n description: \"Electron fuses, ASAR integrity, sandbox hardening\",\n usageGuidance:\n \"Use when hardening an Electron app's security posture: flipping fuses with @electron/fuses, configuring ASAR integrity validation, enforcing sandbox and contextIsolation defaults, setting Content Security Policy, restricting permissions, or validating deep link URLs.\",\n category: \"desktop-security\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-electron\"],\n needsAny: false,\n reason: \"Fuses, ASAR integrity, and sandbox are Electron mechanisms\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-security-electron\",\n },\n \"desktop-security-tauri\": {\n id: \"desktop-security-tauri\",\n slug: \"tauri-security\",\n displayName: \"Tauri Capabilities & ACL\",\n description: \"Deny-by-default security, capabilities, permissions, scopes\",\n usageGuidance:\n \"Use when configuring Tauri 2.x capabilities, permissions, or scopes. Covers capability file structure, window-specific permissions, allow/deny scopes, custom permission definitions, permission sets, remote domain access, debugging permission errors, and migrating from the Tauri 1.x allowlist. Not for Tauri commands, IPC, plugins, or window management (use desktop-framework-tauri).\",\n category: \"desktop-security\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-tauri\"],\n needsAny: false,\n reason: \"Capabilities and permissions are the Tauri 2 security model\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-security-tauri\",\n },\n \"desktop-storage-electron\": {\n id: \"desktop-storage-electron\",\n slug: \"electron-storage\",\n displayName: \"Electron Storage & Credentials\",\n description: \"Persistent storage and credential management\",\n usageGuidance:\n \"Use when persisting user preferences with electron-store, storing structured data with better-sqlite3, encrypting secrets with safeStorage, choosing between storage solutions, or working with app.getPath() storage directories.\",\n category: \"desktop-storage\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-electron\"],\n needsAny: false,\n reason: \"electron-store and safeStorage are Electron-scoped\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-storage-electron\",\n },\n \"desktop-testing-electron\": {\n id: \"desktop-testing-electron\",\n slug: \"electron-testing\",\n displayName: \"Electron Testing\",\n description: \"E2E, unit, and IPC testing for Electron\",\n usageGuidance:\n \"Use when writing E2E tests with Playwright for Electron apps (_electron.launch), unit testing main process code, testing IPC handlers, mocking Electron modules (dialog, BrowserWindow, ipcMain/ipcRenderer), testing preload scripts, running Electron tests in CI (xvfb), or migrating from Spectron.\",\n category: \"desktop-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-electron\"],\n needsAny: false,\n reason: \"Playwright's _electron driver automates Electron apps\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-testing-electron\",\n },\n \"desktop-ui-electron\": {\n id: \"desktop-ui-electron\",\n slug: \"electron-ui\",\n displayName: \"Electron Desktop UI\",\n description: \"Frameless windows, custom title bars, tray, menus\",\n usageGuidance:\n \"Use when customizing Electron window appearance (frameless, transparent, vibrancy), building custom title bars with drag regions, positioning macOS traffic lights, creating system tray icons, application/context menus, dock badges, splash screens, kiosk mode, or persisting window state.\",\n category: \"desktop-ui\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-electron\"],\n needsAny: false,\n reason: \"Tray, Menu, and frameless windows are Electron core APIs\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-ui-electron\",\n },\n \"desktop-updates-electron-updater\": {\n id: \"desktop-updates-electron-updater\",\n slug: \"electron-updater\",\n displayName: \"Electron Auto-Updates\",\n description: \"Cross-platform auto-update with electron-updater\",\n usageGuidance:\n \"Use when implementing auto-updates in Electron apps using electron-updater from the electron-builder ecosystem. Covers update providers (GitHub, S3, generic server), update channels (stable/beta/alpha), staged rollouts, differential downloads, manual update control, error handling, and local testing.\",\n category: \"desktop-updates\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"desktop-framework-electron\"],\n needsAny: false,\n reason: \"electron-updater updates packaged Electron apps\",\n },\n ],\n alternatives: [],\n path: \"skills/desktop-updates-electron-updater\",\n },\n \"infra-ci-cd-docker\": {\n id: \"infra-ci-cd-docker\",\n slug: \"docker\",\n displayName: \"Docker\",\n description: \"Docker containerization for development and deployment\",\n usageGuidance:\n \"Use when creating Dockerfiles, docker-compose configs, multi-stage builds, or containerized development environments for Node.js/TypeScript applications.\",\n category: \"infra-containers\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-ci-cd-docker\",\n },\n \"infra-ci-cd-github-actions\": {\n id: \"infra-ci-cd-github-actions\",\n slug: \"github-actions\",\n displayName: \"GitHub Actions\",\n description: \"CI/CD pipelines\",\n usageGuidance:\n \"Use when configuring CI/CD pipelines, GitHub workflows, or deployment automation.\",\n category: \"infra-ci-cd\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-ci-cd-github-actions\",\n },\n \"infra-ci-cd-turborepo-ci\": {\n id: \"infra-ci-cd-turborepo-ci\",\n slug: \"turborepo-ci\",\n displayName: \"Turborepo CI\",\n description: \"CI pipelines with remote caching and affected detection\",\n usageGuidance:\n \"Use when configuring CI/CD for Turborepo monorepos — remote caching, affected detection, task pipelines, parallel execution, and CI provider integration.\",\n category: \"infra-ci-cd\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"shared-monorepo-turborepo\"],\n needsAny: false,\n reason:\n \"Turborepo CI patterns configure turbo.json and the turbo CLI — requires the Turborepo task runner (shared-task-runner)\",\n },\n ],\n alternatives: [],\n path: \"skills/infra-ci-cd-turborepo-ci\",\n },\n \"infra-config-setup-env\": {\n id: \"infra-config-setup-env\",\n slug: \"setup-env\",\n displayName: \"Environment\",\n description: \"Environment variable management\",\n usageGuidance:\n \"Use when setting up environment variables, .env files, or Zod validation for config.\",\n category: \"infra-config\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-config-setup-env\",\n },\n \"infra-containers-kubernetes\": {\n id: \"infra-containers-kubernetes\",\n slug: \"kubernetes\",\n displayName: \"Kubernetes\",\n description: \"Kubernetes manifests, Helm charts, and resource patterns\",\n usageGuidance:\n \"Use when writing Kubernetes manifests, Helm charts, or Kustomize overlays — deployments, services, ingress, configmaps, secrets, RBAC, health checks, resource limits, and scaling patterns.\",\n category: \"infra-containers\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-containers-kubernetes\",\n },\n \"infra-iac-pulumi\": {\n id: \"infra-iac-pulumi\",\n slug: \"pulumi\",\n displayName: \"Pulumi\",\n description: \"TypeScript-native Infrastructure as Code with Pulumi\",\n usageGuidance:\n \"Use when writing Pulumi programs in TypeScript — resource definitions, component resources, stack references, config/secrets, providers, automation API, and deployment workflows.\",\n category: \"infra-iac\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-iac-pulumi\",\n },\n \"infra-iac-sst\": {\n id: \"infra-iac-sst\",\n slug: \"sst\",\n displayName: \"SST\",\n description: \"Serverless Stack (SST) for full-stack TypeScript on AWS\",\n usageGuidance:\n \"Use when building with SST (Ion) — constructs for Lambda, API Gateway, S3, DynamoDB, Aurora, queues, cron jobs, Next.js/Remix/Astro deployments, and live Lambda dev mode.\",\n category: \"infra-iac\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-iac-sst\",\n },\n \"infra-iac-terraform\": {\n id: \"infra-iac-terraform\",\n slug: \"terraform\",\n displayName: \"Terraform\",\n description: \"Infrastructure as Code with HashiCorp Terraform\",\n usageGuidance:\n \"Use when writing Terraform/OpenTofu configurations — HCL syntax, resource definitions, modules, state management, providers, workspaces, and plan/apply workflows.\",\n category: \"infra-iac\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-iac-terraform\",\n },\n \"infra-platform-aws-sdk\": {\n id: \"infra-platform-aws-sdk\",\n slug: \"aws-sdk\",\n displayName: \"AWS SDK\",\n description: \"AWS SDK v3 for TypeScript — S3, DynamoDB, SQS, Lambda\",\n usageGuidance:\n \"Use when integrating AWS services via the AWS SDK v3 for JavaScript/TypeScript — S3 operations, DynamoDB queries, SQS messaging, Lambda invocations, SNS notifications, Secrets Manager, and IAM patterns.\",\n category: \"infra-platform\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-platform-aws-sdk\",\n },\n \"infra-platform-cloudflare-workers\": {\n id: \"infra-platform-cloudflare-workers\",\n slug: \"cloudflare-workers\",\n displayName: \"Cloudflare Workers\",\n description: \"Cloudflare Workers edge compute platform\",\n usageGuidance:\n \"Use when deploying to Cloudflare Workers — Wrangler CLI, KV storage, D1 databases, R2 object storage, Durable Objects, Queues, and edge-first TypeScript patterns.\",\n category: \"infra-platform\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-platform-cloudflare-workers\",\n },\n \"infra-platform-netlify\": {\n id: \"infra-platform-netlify\",\n slug: \"netlify\",\n displayName: \"Netlify\",\n description: \"Deployment platform with serverless and edge functions\",\n usageGuidance:\n \"Use when deploying to Netlify — site configuration, serverless functions, edge functions, redirects/rewrites, forms, environment variables, build plugins, and deployment workflows.\",\n category: \"infra-platform\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-platform-netlify\",\n },\n \"infra-platform-vercel\": {\n id: \"infra-platform-vercel\",\n slug: \"vercel\",\n displayName: \"Vercel\",\n description: \"Vercel deployment platform, edge functions, and middleware\",\n usageGuidance:\n \"Use when deploying to Vercel — project configuration (vercel.json/vercel.ts), serverless and edge functions, Routing Middleware, cron jobs, environment variables, monorepo setup, regions, headers, redirects, rewrites, and deployment workflows.\",\n category: \"infra-platform\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/infra-platform-vercel\",\n },\n \"meta-config-stack-detect\": {\n id: \"meta-config-stack-detect\",\n slug: \"stack-detect\",\n displayName: \"Stack Detection\",\n description: \"Detect a project's stack and propose a config\",\n usageGuidance:\n \"Use when proposing an agents-inc configuration from what is actually in front of you — a codebase to traverse, a stack the user describes in conversation, or nothing but a description of what they want to build. Maps detected libraries to catalog skill ids, offers candidate built-in stacks for the user to pick between when intent is all there is, marks how each assignment loads per the product's preload mapping, surfaces conflicts, and emits a SeedPayload plus a human-readable proposal report for the user to confirm.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-config-stack-detect\",\n },\n \"meta-design-composable-components\": {\n id: \"meta-design-composable-components\",\n slug: \"composable-components\",\n displayName: \"Composable Components\",\n description: \"Composable component APIs — parts, state, polymorphism\",\n usageGuidance:\n \"Use when designing a new React component API or aligning an existing one. Apply when a component is accumulating configuration props, booleans, or renderX props, and when adding controlled/uncontrolled duality, polymorphic rendering, data-attribute state, context scoping, or prop and ref forwarding.\",\n category: \"meta-design\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason:\n \"Composition patterns are React surface — JSX parts sharing context, ref as a prop, asChild/render via cloneElement, useId\",\n },\n ],\n alternatives: [],\n path: \"skills/meta-design-composable-components\",\n },\n \"meta-design-expressive-typescript\": {\n id: \"meta-design-expressive-typescript\",\n slug: \"expressive-typescript\",\n displayName: \"Expressive TypeScript\",\n description: \"Readable functional patterns and named abstractions\",\n usageGuidance:\n \"Use when writing or refactoring TypeScript functions, data transformations, store actions, or any code that mixes logic levels; when deciding whether an expression should be extracted and named; or when modelling a fixed set of states for exhaustive handling. Apply the orchestrator pattern and extract until the code reads like prose.\",\n category: \"meta-design\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-design-expressive-typescript\",\n },\n \"meta-methodology-research-methodology\": {\n id: \"meta-methodology-research-methodology\",\n slug: \"research-methodology\",\n displayName: \"Research\",\n description: \"Codebase investigation\",\n usageGuidance:\n \"Use when investigating codebase patterns, researching implementations, or discovering how things work.\",\n category: \"meta-methodology\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-methodology-research-methodology\",\n },\n \"meta-planning-ai-planning\": {\n id: \"meta-planning-ai-planning\",\n slug: \"ai-planning\",\n displayName: \"AI Planning\",\n description: \"Prompt contracts, model selection, budgets, eval planning\",\n usageGuidance:\n \"Use when a spec touches model calls, prompts, retrieval, tool calling, agentic loops, or evals. Carries the approach-selection, output-contract, budget, failure-mode, and eval frameworks for AI specifications.\",\n category: \"meta-planning\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-planning-ai-planning\",\n },\n \"meta-planning-api-planning\": {\n id: \"meta-planning-api-planning\",\n slug: \"api-planning\",\n displayName: \"API Planning\",\n description: \"Endpoint contracts, schema design, auth and error catalogs\",\n usageGuidance:\n \"Use when a spec touches API endpoints, database schema, middleware, or auth. Carries the endpoint-contract, schema, middleware-pipeline, and error-catalog frameworks for backend specifications.\",\n category: \"meta-planning\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-planning-api-planning\",\n },\n \"meta-planning-cli-planning\": {\n id: \"meta-planning-cli-planning\",\n slug: \"cli-planning\",\n displayName: \"CLI Planning\",\n description: \"Command-surface, flag, exit-code and output-mode planning\",\n usageGuidance:\n \"Use when a spec touches a command surface, an interactive flow, config precedence, exit codes, or output modes. Carries the contract frameworks and per-artifact spec tables for CLI specifications.\",\n category: \"meta-planning\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-planning-cli-planning\",\n },\n \"meta-planning-web-planning\": {\n id: \"meta-planning-web-planning\",\n slug: \"web-planning\",\n displayName: \"Web Planning\",\n description: \"UI-state completeness, component boundaries, spec criteria\",\n usageGuidance:\n \"Use when a spec touches UI components, forms, client state, or user-facing flows. Carries the UI-state completeness, component-boundary, and measurable-criteria frameworks for frontend specifications.\",\n category: \"meta-planning\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-planning-web-planning\",\n },\n \"meta-reviewing-ai-reviewing\": {\n id: \"meta-reviewing-ai-reviewing\",\n slug: \"ai-reviewing\",\n displayName: \"AI Reviewing\",\n description: \"Prompt injection, output validation, and cost control\",\n usageGuidance:\n \"Use when reviewing diffs that touch model API calls, prompt construction, LLM output handling, RAG pipelines, or tool-calling code. Covers injection call-chain tracing, output validation, token budgets, retry/timeout handling, streaming, and key/PII exposure.\",\n category: \"meta-reviewing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-reviewing-ai-reviewing\",\n },\n \"meta-reviewing-api-reviewing\": {\n id: \"meta-reviewing-api-reviewing\",\n slug: \"api-reviewing\",\n displayName: \"API Reviewing\",\n description: \"Injection, boundary validation, authorization, data exposure\",\n usageGuidance:\n \"Use when reviewing a diff that adds or changes API routes or handlers, database queries, authentication or authorization middleware, or server code that reads files, starts processes or fetches URLs using request data.\",\n category: \"meta-reviewing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-reviewing-api-reviewing\",\n },\n \"meta-reviewing-cli-reviewing\": {\n id: \"meta-reviewing-cli-reviewing\",\n slug: \"cli-reviewing\",\n displayName: \"CLI Reviewing\",\n description: \"Review exit codes, signals, streams and prompts in CLIs\",\n usageGuidance:\n \"Use when reviewing a command-line tool's commands, entry point, prompts, output or tests, whichever parser or prompt library it uses. Covers exit codes, cancellation and signals, non-TTY behaviour, the stdout/stderr split, error text, config precedence, subprocess safety and test adequacy.\",\n category: \"meta-reviewing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-reviewing-cli-reviewing\",\n },\n \"meta-reviewing-infra-reviewing\": {\n id: \"meta-reviewing-infra-reviewing\",\n slug: \"infra-reviewing\",\n displayName: \"Infra Reviewing\",\n description: \"Supply-chain pinning, secret exposure, container hygiene\",\n usageGuidance:\n \"Use when reviewing diffs that touch CI/CD workflows, Dockerfiles, deployment configs, or IaC. Covers action and base-image pinning, secret handling, privileged workflow triggers and script injection, least-privilege permissions, non-root containers, layer caching, and deployment safety.\",\n category: \"meta-reviewing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-reviewing-infra-reviewing\",\n },\n \"meta-reviewing-reviewing\": {\n id: \"meta-reviewing-reviewing\",\n slug: \"reviewing\",\n displayName: \"Code Review\",\n description: \"Code review guidance\",\n usageGuidance:\n \"Use when reviewing a diff or PR, writing review findings, or deciding whether to approve or request changes.\",\n category: \"meta-reviewing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/meta-reviewing-reviewing\",\n },\n \"meta-reviewing-web-reviewing\": {\n id: \"meta-reviewing-web-reviewing\",\n slug: \"web-reviewing\",\n displayName: \"Web Reviewing\",\n description: \"React hooks, accessibility, and render performance\",\n usageGuidance:\n \"Use when reviewing a diff that adds or changes React components or custom hooks — hook order and dependency arrays, effect and ref cleanup, derived state, list keys and component identity, controlled inputs, memoization claims, and keyboard and screen-reader access for the elements the diff adds.\",\n category: \"meta-reviewing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason:\n \"Checklist self-scopes to React diffs — rules of hooks, dependency arrays, React.memo\",\n },\n ],\n alternatives: [],\n path: \"skills/meta-reviewing-web-reviewing\",\n },\n \"mobile-animation-gesture-handler\": {\n id: \"mobile-animation-gesture-handler\",\n slug: \"gesture-handler\",\n displayName: \"Gesture Handler\",\n description: \"Native gesture system for React Native\",\n usageGuidance:\n \"Use when implementing touch gestures (pan, pinch, tap, rotation, long press, fling, hover), composing multiple gestures on the same view, building swipeable list rows, or replacing React Native's built-in Gesture Responder System.\",\n category: \"mobile-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Gesture Handler replaces React Native's gesture system\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-animation-gesture-handler\",\n },\n \"mobile-animation-reanimated\": {\n id: \"mobile-animation-reanimated\",\n slug: \"reanimated\",\n displayName: \"Reanimated\",\n description: \"React Native animations and gestures\",\n usageGuidance:\n \"Use when implementing animations in React Native with Reanimated 4 - shared values, animated styles, spring/timing/decay animations, layout animations, gesture-driven animations, scroll-driven animations, interpolation, or worklet functions.\",\n category: \"mobile-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Reanimated animates React Native via worklets\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-animation-reanimated\",\n },\n \"mobile-animation-skia\": {\n id: \"mobile-animation-skia\",\n slug: \"skia\",\n displayName: \"Skia\",\n description: \"GPU-accelerated 2D graphics with Skia\",\n usageGuidance:\n \"Use when implementing custom 2D graphics, shaders, blur effects, path animations, text layout with Paragraph API, sprite batch rendering with Atlas, or GPU-accelerated drawing in React Native using @shopify/react-native-skia.\",\n category: \"mobile-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"@shopify/react-native-skia is a React Native renderer\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-animation-skia\",\n },\n \"mobile-background-tasks\": {\n id: \"mobile-background-tasks\",\n slug: \"tasks\",\n displayName: \"Background Tasks\",\n description: \"Background fetch, processing, location\",\n usageGuidance:\n \"Use when implementing background fetch, periodic sync, background location tracking, headless JS tasks, or any work that must execute while the app is backgrounded or terminated.\",\n category: \"mobile-background\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Dual-path: Expo background tasks or react-native-background-fetch\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-background-tasks\",\n },\n \"mobile-camera-vision-camera\": {\n id: \"mobile-camera-vision-camera\",\n slug: \"vision-camera\",\n displayName: \"VisionCamera\",\n description: \"Camera capture, scanning, frame processing\",\n usageGuidance:\n \"Use when implementing camera features with react-native-vision-camera: photo/video capture, QR/barcode scanning, real-time frame processing, zoom/focus/exposure controls, or HDR. Not for image picking from gallery.\",\n category: \"mobile-camera\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"react-native-vision-camera depends on React Native's JSI\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-camera-vision-camera\",\n },\n \"mobile-deep-linking-app-links\": {\n id: \"mobile-deep-linking-app-links\",\n slug: \"app-links\",\n displayName: \"Deep Linking & App Links\",\n description: \"Universal Links, App Links, URI schemes\",\n usageGuidance:\n \"Use when implementing deep linking, Universal Links (iOS), App Links (Android), custom URI schemes, or configuring navigation to handle incoming URLs in React Native.\",\n category: \"mobile-deep-linking\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Deep linking via expo-linking or React Navigation linking config\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-deep-linking-app-links\",\n },\n \"mobile-deployment-eas\": {\n id: \"mobile-deployment-eas\",\n slug: \"eas\",\n displayName: \"EAS\",\n description: \"EAS Build, Update, Submit patterns\",\n usageGuidance:\n \"Use when configuring EAS Build profiles, publishing OTA updates with EAS Update, submitting to app stores with EAS Submit, managing credentials, setting up CI/CD with EAS Workflows, or configuring eas.json for any Expo project.\",\n category: \"mobile-deployment\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-expo\"],\n needsAny: false,\n reason: \"EAS Build/Update workflows assume the Expo SDK\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-deployment-eas\",\n },\n \"mobile-framework-expo\": {\n id: \"mobile-framework-expo\",\n slug: \"expo\",\n displayName: \"Expo\",\n description: \"Expo managed workflow\",\n usageGuidance:\n \"Use when building React Native apps with Expo, configuring EAS builds, or using Expo Router.\",\n category: \"mobile-framework\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\"],\n needsAny: false,\n reason: \"Expo is a React Native framework\",\n },\n ],\n alternatives: [\n {\n skillId: \"mobile-framework-react-native\",\n purpose: \"Mobile\",\n },\n ],\n path: \"skills/mobile-framework-expo\",\n },\n \"mobile-framework-react-native\": {\n id: \"mobile-framework-react-native\",\n slug: \"react-native\",\n displayName: \"React Native\",\n description: \"React Native mobile apps\",\n usageGuidance:\n \"Use when building cross-platform mobile apps, working with native modules, or React Navigation.\",\n category: \"mobile-framework\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"React Native is built on React\",\n },\n ],\n alternatives: [\n {\n skillId: \"mobile-framework-expo\",\n purpose: \"Mobile\",\n },\n ],\n path: \"skills/mobile-framework-react-native\",\n },\n \"mobile-hardware-ble-nfc\": {\n id: \"mobile-hardware-ble-nfc\",\n slug: \"ble-nfc\",\n displayName: \"BLE & NFC\",\n description: \"Bluetooth LE and NFC hardware access\",\n usageGuidance:\n \"Use when implementing BLE scanning, connecting, reading/writing characteristics, or NFC tag reading/writing with react-native-ble-plx and react-native-nfc-manager. Not for classic Bluetooth, peripheral mode, or Wi-Fi Direct.\",\n category: \"mobile-hardware\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Both taught libraries are React Native packages\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-hardware-ble-nfc\",\n },\n \"mobile-navigation-expo-router\": {\n id: \"mobile-navigation-expo-router\",\n slug: \"expo-router\",\n displayName: \"Expo Router\",\n description: \"File-based routing for React Native\",\n usageGuidance:\n \"Use when implementing navigation with Expo Router: file-based routing, layout routes, dynamic/catch-all routes, tab/stack navigation, modal routes, authentication flows with Stack.Protected, API routes, typed routes, deep linking, or static rendering for web.\",\n category: \"mobile-navigation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-expo\"],\n needsAny: false,\n reason: \"Expo Router is built on the Expo SDK\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-navigation-expo-router\",\n },\n \"mobile-navigation-react-navigation\": {\n id: \"mobile-navigation-react-navigation\",\n slug: \"react-navigation\",\n displayName: \"React Navigation\",\n description: \"Type-safe mobile navigation patterns\",\n usageGuidance:\n \"Use when implementing navigation in React Native apps: stack/tab/drawer navigators, deep linking, type-safe navigation with TypeScript, authentication flows, screen preloading, or header customization. Covers both static and dynamic APIs.\",\n category: \"mobile-navigation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"React Navigation targets React Native apps, bare or Expo\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-navigation-react-navigation\",\n },\n \"mobile-notifications-push\": {\n id: \"mobile-notifications-push\",\n slug: \"push\",\n displayName: \"Push Notifications\",\n description: \"Push notification patterns for React Native\",\n usageGuidance:\n \"Use when implementing push notifications (remote or local), requesting notification permissions, handling push tokens, listening for foreground/background/tap events, scheduling local notifications, managing Android channels, or configuring notification categories and actions in React Native.\",\n category: \"mobile-notifications\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Dual-path: expo-notifications or React Native Firebase messaging\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-notifications-push\",\n },\n \"mobile-performance-react-native\": {\n id: \"mobile-performance-react-native\",\n slug: \"react-native-performance\",\n displayName: \"React Native Performance\",\n description: \"RN profiling, optimization, memory\",\n usageGuidance:\n \"Use when profiling React Native performance, optimizing re-renders, improving list scrolling, reducing bundle size, fixing memory leaks, or analyzing JS thread vs UI thread bottlenecks. Not for general React Native component architecture (use mobile-framework-react-native).\",\n category: \"mobile-performance\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"React Native performance patterns: Hermes, threads, FlashList\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-performance-react-native\",\n },\n \"mobile-security-react-native\": {\n id: \"mobile-security-react-native\",\n slug: \"react-native-security\",\n displayName: \"React Native Security\",\n description: \"Mobile app security hardening\",\n usageGuidance:\n \"Use when implementing secure storage, certificate pinning, biometric authentication, jailbreak/root detection, code obfuscation, screenshot prevention, or network security in React Native apps.\",\n category: \"mobile-security\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Dual-path secure storage: expo-secure-store or react-native-keychain\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-security-react-native\",\n },\n \"mobile-storage-mmkv\": {\n id: \"mobile-storage-mmkv\",\n slug: \"mmkv\",\n displayName: \"MMKV\",\n description: \"High-performance key-value storage\",\n usageGuidance:\n \"Use when persisting key-value data in React Native with react-native-mmkv - synchronous reads/writes, encryption, multiple instances, hooks, or migrating from AsyncStorage.\",\n category: \"mobile-storage\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"react-native-mmkv is a React Native storage package\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-storage-mmkv\",\n },\n \"mobile-storage-sqlite-powersync\": {\n id: \"mobile-storage-sqlite-powersync\",\n slug: \"sqlite-powersync\",\n displayName: \"SQLite + PowerSync\",\n description: \"Offline-first SQLite sync engine\",\n usageGuidance:\n \"Use when building offline-first React Native apps with @powersync/react-native - local SQLite database with cloud sync, schema definition, watched queries, CRUD operations, backend connectors, conflict resolution, or attachment handling.\",\n category: \"mobile-storage\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"The skill teaches PowerSync's React Native SDK\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-storage-sqlite-powersync\",\n },\n \"mobile-storage-watermelondb\": {\n id: \"mobile-storage-watermelondb\",\n slug: \"watermelondb\",\n displayName: \"WatermelonDB\",\n description: \"Reactive local database for React Native\",\n usageGuidance:\n \"Use when building offline-first React Native apps with WatermelonDB - schema and model definitions, reactive queries with observe/withObservables, relations, writer/reader actions, batch operations, migrations, or sync with pullChanges/pushChanges.\",\n category: \"mobile-storage\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"WatermelonDB as taught targets offline-first React Native apps\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-storage-watermelondb\",\n },\n \"mobile-styling-nativewind\": {\n id: \"mobile-styling-nativewind\",\n slug: \"nativewind\",\n displayName: \"NativeWind\",\n description: \"Tailwind CSS styling for React Native\",\n usageGuidance:\n \"Use when styling React Native components with Tailwind CSS utility classes via NativeWind, implementing dark mode, theming with CSS variables, platform-specific styles, or integrating className support with third-party components.\",\n category: \"mobile-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"NativeWind compiles Tailwind classes for React Native components\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-styling-nativewind\",\n },\n \"mobile-styling-unistyles\": {\n id: \"mobile-styling-unistyles\",\n slug: \"unistyles\",\n displayName: \"Unistyles\",\n description: \"C++ powered React Native styling\",\n usageGuidance:\n \"Use when styling React Native components with Unistyles 3.0: theming with StyleSheet.configure, breakpoints and media queries, variants and compound variants, dynamic functions, runtime values (insets, screen, fontScale), scoped themes, or migrating from Unistyles 2.x.\",\n category: \"mobile-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Unistyles styles React Native via Nitro Modules\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-styling-unistyles\",\n },\n \"mobile-testing-detox\": {\n id: \"mobile-testing-detox\",\n slug: \"detox\",\n displayName: \"Detox\",\n description: \"React Native E2E gray-box testing\",\n usageGuidance:\n \"Use when writing end-to-end tests for React Native apps with Detox, configuring .detoxrc.js, using element matchers/actions/expectations, waitFor polling, device API, mocking with Metro, or setting up CI artifacts.\",\n category: \"mobile-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"Detox is gray-box E2E testing for React Native\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-testing-detox\",\n },\n \"mobile-testing-maestro\": {\n id: \"mobile-testing-maestro\",\n slug: \"maestro\",\n displayName: \"Maestro\",\n description: \"YAML-based mobile UI testing\",\n usageGuidance:\n \"Use when writing or debugging Maestro YAML flows for mobile E2E testing, working with selectors, flow control, environment variables, Maestro Studio, Maestro Cloud CI, JavaScript expressions, or device interaction commands.\",\n category: \"mobile-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"mobile-framework-react-native\",\n \"mobile-framework-expo\",\n \"desktop-mobile-tauri\",\n ],\n needsAny: true,\n reason: \"Maestro drives a mobile app; these are the catalog's mobile-app producers\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-testing-maestro\",\n },\n \"mobile-ui-components-react-native-paper\": {\n id: \"mobile-ui-components-react-native-paper\",\n slug: \"react-native-paper\",\n displayName: \"React Native Paper\",\n description: \"Material Design 3 components for React Native\",\n usageGuidance:\n \"Use when building Material Design UIs with React Native Paper v5+, configuring PaperProvider theming (MD3 light/dark, custom themes, dynamic color), or using Paper components (Button, Card, TextInput, FAB, Appbar, Dialog, Snackbar, SegmentedButtons, BottomNavigation). Not for general React Native patterns.\",\n category: \"mobile-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\", \"mobile-framework-expo\"],\n needsAny: true,\n reason: \"React Native Paper is Material Design 3 for React Native\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-ui-components-react-native-paper\",\n },\n \"mobile-ui-components-tamagui\": {\n id: \"mobile-ui-components-tamagui\",\n slug: \"tamagui\",\n displayName: \"Tamagui\",\n description: \"Universal UI for React Native and web\",\n usageGuidance:\n \"Use when building universal React Native + web UIs with Tamagui styled components, token system, themes, optimizing compiler, responsive media queries, animations, or Tamagui UI kit components (Sheet, Dialog, Button, Input).\",\n category: \"mobile-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"mobile-framework-react-native\",\n \"mobile-framework-expo\",\n \"web-framework-react\",\n ],\n needsAny: true,\n reason: \"Tamagui is universal React: native via RN or Expo, web via React alone\",\n },\n ],\n alternatives: [],\n path: \"skills/mobile-ui-components-tamagui\",\n },\n \"shared-monorepo-nx\": {\n id: \"shared-monorepo-nx\",\n slug: \"nx\",\n displayName: \"Nx\",\n description: \"Nx monorepo build system and task orchestration\",\n usageGuidance:\n \"Use when setting up or working with Nx monorepos — workspace configuration, project graph, task pipelines, caching, generators, and plugins.\",\n category: \"shared-task-runner\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"shared-monorepo-turborepo\",\n reason: \"Monorepo build orchestrators are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"shared-monorepo-turborepo\",\n purpose: \"Monorepo Orchestrator\",\n },\n ],\n path: \"skills/shared-monorepo-nx\",\n },\n \"shared-monorepo-pnpm-workspaces\": {\n id: \"shared-monorepo-pnpm-workspaces\",\n slug: \"pnpm-workspaces\",\n displayName: \"pnpm Workspaces\",\n description: \"pnpm workspace protocol for monorepo management\",\n usageGuidance:\n \"Use when managing monorepos with pnpm — workspace protocol, filtering, shared dependencies, publishConfig, and catalog for version synchronization.\",\n category: \"shared-monorepo\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/shared-monorepo-pnpm-workspaces\",\n },\n \"shared-monorepo-turborepo\": {\n id: \"shared-monorepo-turborepo\",\n slug: \"turborepo\",\n displayName: \"Turborepo\",\n description: \"Monorepo orchestration\",\n usageGuidance:\n \"Use when configuring monorepo pipelines, workspaces, or package architecture.\",\n category: \"shared-task-runner\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"shared-monorepo-nx\",\n reason: \"Monorepo build orchestrators are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"shared-monorepo-nx\",\n purpose: \"Monorepo Orchestrator\",\n },\n ],\n path: \"skills/shared-monorepo-turborepo\",\n },\n \"shared-security-auth-security\": {\n id: \"shared-security-auth-security\",\n slug: \"auth-security\",\n displayName: \"Security\",\n description: \"Application security patterns\",\n usageGuidance:\n \"Use when implementing authentication, authorization, XSS prevention, CSRF protection, CSP headers, or managing secrets.\",\n category: \"shared-security\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/shared-security-auth-security\",\n },\n \"shared-tooling-biome\": {\n id: \"shared-tooling-biome\",\n slug: \"biome\",\n displayName: \"Biome\",\n description: \"Biome unified linter and formatter\",\n usageGuidance:\n \"Use when configuring Biome as an all-in-one linter, formatter, and import organizer — replacing ESLint and Prettier with a single fast tool.\",\n category: \"shared-lint\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"shared-tooling-eslint-prettier\",\n reason: \"Linting and formatting tools are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"shared-tooling-eslint-prettier\",\n purpose: \"Linting / Formatting\",\n },\n ],\n path: \"skills/shared-tooling-biome\",\n },\n \"shared-tooling-changesets\": {\n id: \"shared-tooling-changesets\",\n slug: \"changesets\",\n displayName: \"Changesets\",\n description: \"Versioning and changelog management with Changesets\",\n usageGuidance:\n \"Use when managing package versioning and changelogs with @changesets/cli — adding changesets, version bumping, changelog generation, monorepo publishing, pre-release modes, and CI automation.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/shared-tooling-changesets\",\n },\n \"shared-tooling-eslint-prettier\": {\n id: \"shared-tooling-eslint-prettier\",\n slug: \"eslint-prettier\",\n displayName: \"ESLint & Prettier\",\n description: \"ESLint 9/10 flat config and Prettier formatting\",\n usageGuidance:\n \"Use when configuring ESLint 9 flat config, Prettier formatting, shared linting configs, or migrating from legacy .eslintrc to flat config.\",\n category: \"shared-lint\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"shared-tooling-biome\",\n reason: \"Linting and formatting tools are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"shared-tooling-biome\",\n purpose: \"Linting / Formatting\",\n },\n ],\n path: \"skills/shared-tooling-eslint-prettier\",\n },\n \"shared-tooling-git-hooks\": {\n id: \"shared-tooling-git-hooks\",\n slug: \"git-hooks\",\n displayName: \"Git Hooks\",\n description: \"Husky, lint-staged, commitlint\",\n usageGuidance:\n \"Use when setting up pre-commit hooks with Husky, configuring lint-staged for staged file linting, or adding commitlint for conventional commits.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/shared-tooling-git-hooks\",\n },\n \"shared-tooling-typescript-config\": {\n id: \"shared-tooling-typescript-config\",\n slug: \"typescript-config\",\n displayName: \"TypeScript Config\",\n description: \"Shared TypeScript strict configs\",\n usageGuidance:\n \"Use when configuring TypeScript strict mode, shared tsconfig patterns, path aliases, or TS 5.x module settings.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/shared-tooling-typescript-config\",\n },\n \"web-3d-react-three-fiber\": {\n id: \"web-3d-react-three-fiber\",\n slug: \"react-three-fiber\",\n displayName: \"React Three Fiber\",\n description: \"3D rendering with React Three Fiber and Three.js\",\n usageGuidance:\n \"Use when building 3D experiences with React Three Fiber (R3F) — scene setup, meshes, materials, lights, cameras, animations, physics (rapier), post-processing, performance optimization, and interaction/events.\",\n category: \"web-3d\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"React Three Fiber is a React renderer for Three.js\",\n },\n ],\n alternatives: [],\n path: \"skills/web-3d-react-three-fiber\",\n },\n \"web-accessibility-web-accessibility\": {\n id: \"web-accessibility-web-accessibility\",\n slug: \"web-accessibility\",\n displayName: \"Accessibility\",\n description: \"WCAG accessibility patterns\",\n usageGuidance:\n \"Use when implementing WCAG compliance, ARIA attributes, or keyboard navigation.\",\n category: \"web-accessibility\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-accessibility-web-accessibility\",\n },\n \"web-animation-css-animations\": {\n id: \"web-animation-css-animations\",\n slug: \"css-animations\",\n displayName: \"CSS Animations\",\n description: \"Native CSS animations\",\n usageGuidance:\n \"Use when implementing CSS transitions, keyframes, or scroll-driven animations.\",\n category: \"web-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-animation-framer-motion\",\n purpose: \"Animation\",\n },\n {\n skillId: \"web-animation-view-transitions\",\n purpose: \"Animation\",\n },\n ],\n path: \"skills/web-animation-css-animations\",\n },\n \"web-animation-framer-motion\": {\n id: \"web-animation-framer-motion\",\n slug: \"framer-motion\",\n displayName: \"Motion\",\n description: \"Motion animation library\",\n usageGuidance: \"Use when animating React components with Motion (Framer Motion).\",\n category: \"web-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Motion (Framer Motion) is a React animation library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-animation-css-animations\",\n purpose: \"Animation\",\n },\n {\n skillId: \"web-animation-view-transitions\",\n purpose: \"Animation\",\n },\n ],\n path: \"skills/web-animation-framer-motion\",\n },\n \"web-animation-view-transitions\": {\n id: \"web-animation-view-transitions\",\n slug: \"view-transitions\",\n displayName: \"View Transitions\",\n description: \"Page transition animations\",\n usageGuidance: \"Use when implementing page transitions with View Transitions API.\",\n category: \"web-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-animation-framer-motion\",\n purpose: \"Animation\",\n },\n {\n skillId: \"web-animation-css-animations\",\n purpose: \"Animation\",\n },\n ],\n path: \"skills/web-animation-view-transitions\",\n },\n \"web-data-fetching-graphql-apollo\": {\n id: \"web-data-fetching-graphql-apollo\",\n slug: \"graphql-apollo\",\n displayName: \"Apollo Client\",\n description: \"Apollo GraphQL client\",\n usageGuidance: \"Use when working with Apollo Client for GraphQL queries and mutations.\",\n category: \"web-graphql-client\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches React Apollo Client patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-data-fetching-graphql-urql\",\n purpose: \"GraphQL Client\",\n },\n ],\n path: \"skills/web-data-fetching-graphql-apollo\",\n },\n \"web-data-fetching-graphql-urql\": {\n id: \"web-data-fetching-graphql-urql\",\n slug: \"graphql-urql\",\n displayName: \"URQL\",\n description: \"URQL GraphQL client\",\n usageGuidance: \"Use when working with URQL client for GraphQL.\",\n category: \"web-graphql-client\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n ],\n needsAny: true,\n reason: \"URQL supports React, Vue, Solid, and Svelte\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-data-fetching-graphql-apollo\",\n purpose: \"GraphQL Client\",\n },\n ],\n path: \"skills/web-data-fetching-graphql-urql\",\n },\n \"web-data-fetching-swr\": {\n id: \"web-data-fetching-swr\",\n slug: \"swr\",\n displayName: \"SWR\",\n description: \"Server state and caching\",\n usageGuidance: \"Use when implementing stale-while-revalidate data fetching patterns.\",\n category: \"web-server-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-server-state-react-query\",\n reason: \"Both solve server state caching\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"SWR is a React Hooks library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-server-state-react-query\",\n purpose: \"Server State / Data Fetching\",\n },\n {\n skillId: \"web-data-fetching-trpc\",\n purpose: \"Server State / Data Fetching\",\n },\n ],\n path: \"skills/web-data-fetching-swr\",\n },\n \"web-data-fetching-trpc\": {\n id: \"web-data-fetching-trpc\",\n slug: \"trpc\",\n displayName: \"tRPC\",\n description: \"Type-safe API layer\",\n usageGuidance: \"Use when building type-safe APIs with tRPC procedures and React Query.\",\n category: \"web-rpc\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches React Query integration patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-server-state-react-query\",\n purpose: \"Server State / Data Fetching\",\n },\n {\n skillId: \"web-data-fetching-swr\",\n purpose: \"Server State / Data Fetching\",\n },\n ],\n path: \"skills/web-data-fetching-trpc\",\n },\n \"web-dataviz-d3\": {\n id: \"web-dataviz-d3\",\n slug: \"d3\",\n displayName: \"D3.js\",\n description: \"Data-driven visualizations with D3.js\",\n usageGuidance:\n \"Use when building custom data visualizations with D3.js — selections, data joins, scales, axes, shapes, transitions, force layouts, geographic projections, and integrating D3 with component frameworks.\",\n category: \"web-dataviz\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-dataviz-d3\",\n },\n \"web-dataviz-recharts\": {\n id: \"web-dataviz-recharts\",\n slug: \"recharts\",\n displayName: \"Recharts\",\n description: \"Composable chart components with Recharts\",\n usageGuidance:\n \"Use when building charts and data visualizations with Recharts — line charts, bar charts, area charts, pie charts, scatter plots, composed charts, responsive containers, custom tooltips, animations, and real-time data updates.\",\n category: \"web-dataviz\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Recharts wraps D3 in composable React components\",\n },\n ],\n alternatives: [],\n path: \"skills/web-dataviz-recharts\",\n },\n \"web-dnd-dnd-kit\": {\n id: \"web-dnd-dnd-kit\",\n slug: \"dnd-kit\",\n displayName: \"dnd-kit\",\n description: \"Drag and drop toolkit with @dnd-kit\",\n usageGuidance:\n \"Use when implementing drag and drop with @dnd-kit — sortable lists, Kanban boards, droppable containers, drag overlays, collision detection, keyboard/screen reader accessibility, and multi-container sorting.\",\n category: \"web-dnd\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason:\n \"The skill teaches DndContext/useDraggable/useDroppable/useSortable — @dnd-kit React packages throughout\",\n },\n ],\n alternatives: [],\n path: \"skills/web-dnd-dnd-kit\",\n },\n \"web-editor-lexical\": {\n id: \"web-editor-lexical\",\n slug: \"lexical\",\n displayName: \"Lexical\",\n description: \"Extensible text editor framework by Meta with Lexical\",\n usageGuidance:\n \"Use when building rich text editors with Lexical — editor setup, nodes, plugins, commands, decorators, collaboration, serialization, and custom toolbar/menu creation.\",\n category: \"web-editor\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason:\n \"The skill's only editor setup and plugin registration path is @lexical/react — LexicalComposer plus useEffect registration\",\n },\n ],\n alternatives: [],\n path: \"skills/web-editor-lexical\",\n },\n \"web-editor-tiptap\": {\n id: \"web-editor-tiptap\",\n slug: \"tiptap\",\n displayName: \"TipTap\",\n description: \"Rich text editor framework with TipTap and ProseMirror\",\n usageGuidance:\n \"Use when building rich text editors with TipTap — editor setup, extensions, custom nodes/marks, menus (bubble/floating), collaborative editing, content serialization, keyboard shortcuts, and schema customization.\",\n category: \"web-editor\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-editor-tiptap\",\n },\n \"web-error-handling-error-boundaries\": {\n id: \"web-error-handling-error-boundaries\",\n slug: \"error-boundaries\",\n displayName: \"Error Boundaries\",\n description: \"Error UI handling\",\n usageGuidance: \"Use when implementing React error boundaries, fallback UIs, or retry logic.\",\n category: \"web-error-handling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Error boundaries are a React concept\",\n },\n ],\n alternatives: [],\n path: \"skills/web-error-handling-error-boundaries\",\n },\n \"web-error-handling-result-types\": {\n id: \"web-error-handling-result-types\",\n slug: \"result-types\",\n displayName: \"Result Types\",\n description: \"Type-safe error handling\",\n usageGuidance: \"Use when implementing Result/Either types for type-safe error handling.\",\n category: \"web-error-handling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-error-handling-result-types\",\n },\n \"web-files-file-upload-patterns\": {\n id: \"web-files-file-upload-patterns\",\n slug: \"file-upload-patterns\",\n displayName: \"File Upload\",\n description: \"File upload handling\",\n usageGuidance: \"Use when implementing file uploads, drag-drop, or chunked uploads.\",\n category: \"web-file-upload\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches React-based file upload patterns\",\n },\n ],\n alternatives: [],\n path: \"skills/web-files-file-upload-patterns\",\n },\n \"web-files-image-handling\": {\n id: \"web-files-image-handling\",\n slug: \"image-handling\",\n displayName: \"Image Handling\",\n description: \"Client-side image processing\",\n usageGuidance: \"Use when processing images client-side, resizing, or format conversion.\",\n category: \"web-files\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches React-based image handling hooks\",\n },\n ],\n alternatives: [],\n path: \"skills/web-files-image-handling\",\n },\n \"web-forms-react-hook-form\": {\n id: \"web-forms-react-hook-form\",\n slug: \"react-hook-form\",\n displayName: \"React Hook Form\",\n description: \"React form handling\",\n usageGuidance:\n \"Use when building forms in React with validation, field arrays, or Controller.\",\n category: \"web-form-library\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"React Hook Form is React only\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-forms-tanstack-form\",\n purpose: \"Forms (React)\",\n },\n ],\n path: \"skills/web-forms-react-hook-form\",\n },\n \"web-forms-tanstack-form\": {\n id: \"web-forms-tanstack-form\",\n slug: \"tanstack-form\",\n displayName: \"TanStack Form\",\n description: \"Type-safe, headless form management\",\n usageGuidance:\n \"Use when building forms with TanStack Form — type-safe, framework-agnostic form state, validation, and submission.\",\n category: \"web-form-library\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-angular-standalone\",\n \"web-framework-solidjs\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n ],\n needsAny: true,\n reason: \"TanStack Form requires a UI framework\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-forms-react-hook-form\",\n purpose: \"Forms (React)\",\n },\n {\n skillId: \"web-forms-vee-validate\",\n purpose: \"Forms (Vue)\",\n },\n ],\n path: \"skills/web-forms-tanstack-form\",\n },\n \"web-forms-vee-validate\": {\n id: \"web-forms-vee-validate\",\n slug: \"vee-validate\",\n displayName: \"VeeValidate\",\n description: \"Vue form validation\",\n usageGuidance: \"Use when building forms in Vue with useForm, useField, or schema validation.\",\n category: \"web-form-library\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"VeeValidate is Vue only\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-forms-tanstack-form\",\n purpose: \"Forms (Vue)\",\n },\n ],\n path: \"skills/web-forms-vee-validate\",\n },\n \"web-forms-zod-validation\": {\n id: \"web-forms-zod-validation\",\n slug: \"zod-validation\",\n displayName: \"Zod\",\n description: \"Schema validation\",\n usageGuidance: \"Use when defining validation schemas, type inference, or data transforms.\",\n category: \"web-forms\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-forms-zod-validation\",\n },\n \"web-framework-angular-standalone\": {\n id: \"web-framework-angular-standalone\",\n slug: \"angular-standalone\",\n displayName: \"Angular\",\n description: \"Angular standalone components\",\n usageGuidance:\n \"Use when building Angular 17+ apps with standalone components, signals, or DI.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-svelte\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-svelte\",\n purpose: \"Base Framework\",\n },\n ],\n path: \"skills/web-framework-angular-standalone\",\n },\n \"web-framework-react\": {\n id: \"web-framework-react\",\n slug: \"react\",\n displayName: \"React\",\n description: \"React component patterns\",\n usageGuidance: \"Use when building React components, hooks, or following React 19 patterns.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-svelte\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-svelte\",\n purpose: \"Base Framework\",\n },\n ],\n path: \"skills/web-framework-react\",\n },\n \"web-framework-solidjs\": {\n id: \"web-framework-solidjs\",\n slug: \"solidjs\",\n displayName: \"SolidJS\",\n description: \"SolidJS reactive patterns\",\n usageGuidance: \"Use when building SolidJS apps with signals, effects, or SolidStart.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-svelte\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-svelte\",\n purpose: \"Base Framework\",\n },\n ],\n path: \"skills/web-framework-solidjs\",\n },\n \"web-framework-svelte\": {\n id: \"web-framework-svelte\",\n slug: \"svelte\",\n displayName: \"Svelte\",\n description: \"Svelte 5 with Runes reactivity\",\n usageGuidance:\n \"Use when building Svelte 5 apps with Runes ($state, $derived, $effect), components, or snippets.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Base Framework\",\n },\n ],\n path: \"skills/web-framework-svelte\",\n },\n \"web-framework-vue-composition-api\": {\n id: \"web-framework-vue-composition-api\",\n slug: \"vue-composition-api\",\n displayName: \"Vue\",\n description: \"Vue 3 Composition API\",\n usageGuidance:\n \"Use when building Vue 3 apps with Composition API, composables, or reactivity.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-svelte\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-svelte\",\n purpose: \"Base Framework\",\n },\n ],\n path: \"skills/web-framework-vue-composition-api\",\n },\n \"web-i18n-next-intl\": {\n id: \"web-i18n-next-intl\",\n slug: \"next-intl\",\n displayName: \"next-intl\",\n description: \"Next.js internationalization\",\n usageGuidance: \"Use when implementing i18n in Next.js with next-intl.\",\n category: \"web-i18n\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-i18n-react-intl\",\n reason: \"React internationalization libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-meta-framework-nextjs\"],\n needsAny: false,\n reason:\n \"Skill teaches next-intl's Next.js App Router surface — middleware, routing.ts, setRequestLocale, NextIntlClientProvider\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-i18n-react-intl\",\n purpose: \"Internationalization (React)\",\n },\n ],\n path: \"skills/web-i18n-next-intl\",\n },\n \"web-i18n-react-intl\": {\n id: \"web-i18n-react-intl\",\n slug: \"react-intl\",\n displayName: \"React Intl\",\n description: \"React internationalization\",\n usageGuidance: \"Use when implementing i18n in React with FormatJS/react-intl.\",\n category: \"web-i18n\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-i18n-next-intl\",\n reason: \"React internationalization libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"React Intl (FormatJS) is React only\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-i18n-next-intl\",\n purpose: \"Internationalization (React)\",\n },\n ],\n path: \"skills/web-i18n-react-intl\",\n },\n \"web-i18n-vue-i18n\": {\n id: \"web-i18n-vue-i18n\",\n slug: \"vue-i18n\",\n displayName: \"Vue I18n\",\n description: \"Vue internationalization\",\n usageGuidance: \"Use when implementing i18n in Vue with vue-i18n.\",\n category: \"web-i18n\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"vue-i18n is Vue 3 only\",\n },\n ],\n alternatives: [],\n path: \"skills/web-i18n-vue-i18n\",\n },\n \"web-maps-leaflet\": {\n id: \"web-maps-leaflet\",\n slug: \"leaflet\",\n displayName: \"Leaflet\",\n description: \"Lightweight interactive maps with Leaflet\",\n usageGuidance:\n \"Use when building interactive maps with Leaflet -- map initialization, tile layers, markers, popups, GeoJSON, custom controls, plugins, marker clustering, and event handling.\",\n category: \"web-maps\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-maps-leaflet\",\n },\n \"web-maps-mapbox\": {\n id: \"web-maps-mapbox\",\n slug: \"mapbox\",\n displayName: \"Mapbox GL JS\",\n description: \"Interactive maps with Mapbox GL JS\",\n usageGuidance:\n \"Use when building interactive maps with Mapbox GL JS — map initialization, markers, popups, layers, sources, expressions, geocoding, directions, clustering, 3D terrain, and style customization.\",\n category: \"web-maps\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-maps-mapbox\",\n },\n \"web-meta-framework-astro\": {\n id: \"web-meta-framework-astro\",\n slug: \"astro\",\n displayName: \"Astro\",\n description: \"Astro content-first framework\",\n usageGuidance:\n \"Use when building Astro sites with islands architecture, content collections, or hybrid rendering.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n path: \"skills/web-meta-framework-astro\",\n },\n \"web-meta-framework-docusaurus\": {\n id: \"web-meta-framework-docusaurus\",\n slug: \"docusaurus\",\n displayName: \"Docusaurus\",\n description: \"Docusaurus 3.x documentation site framework\",\n usageGuidance:\n \"Use when building or maintaining documentation sites with Docusaurus 3.x — configuring docs/blog plugins, sidebars, versioning, MDX content, swizzling theme components, or deploying static builds.\",\n category: \"web-docs\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-meta-framework-vitepress\",\n purpose: \"Documentation Framework\",\n },\n ],\n path: \"skills/web-meta-framework-docusaurus\",\n },\n \"web-meta-framework-nextjs\": {\n id: \"web-meta-framework-nextjs\",\n slug: \"nextjs\",\n displayName: \"Next.js\",\n description: \"Next.js full-stack framework\",\n usageGuidance:\n \"Use when building Next.js apps with App Router, Server/Client Components, Server Actions, or streaming.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"Next.js is built on React\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n path: \"skills/web-meta-framework-nextjs\",\n },\n \"web-meta-framework-nuxt\": {\n id: \"web-meta-framework-nuxt\",\n slug: \"nuxt\",\n displayName: \"Nuxt\",\n description: \"Nuxt full-stack framework\",\n usageGuidance: \"Use when building Nuxt apps with useFetch, useState, or server routes.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\"],\n needsAny: false,\n reason: \"Nuxt is built on Vue\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n path: \"skills/web-meta-framework-nuxt\",\n },\n \"web-meta-framework-qwik\": {\n id: \"web-meta-framework-qwik\",\n slug: \"qwik\",\n displayName: \"Qwik\",\n description: \"Resumable framework with zero hydration and lazy loading\",\n usageGuidance:\n \"Use when building web apps that need instant interactivity — resumability eliminates hydration, $ suffixed functions mark lazy boundaries, and Qwik City provides file-based routing with server loaders and actions.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n ],\n path: \"skills/web-meta-framework-qwik\",\n },\n \"web-meta-framework-remix\": {\n id: \"web-meta-framework-remix\",\n slug: \"remix\",\n displayName: \"Remix\",\n description: \"Remix full-stack framework\",\n usageGuidance: \"Use when building Remix apps with loaders, actions, or useFetcher.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"Remix is built on React\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n path: \"skills/web-meta-framework-remix\",\n },\n \"web-meta-framework-sveltekit\": {\n id: \"web-meta-framework-sveltekit\",\n slug: \"sveltekit\",\n displayName: \"SvelteKit\",\n description: \"SvelteKit full-stack framework\",\n usageGuidance:\n \"Use when building SvelteKit apps with load functions, form actions, or server hooks.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-svelte\"],\n needsAny: false,\n reason: \"SvelteKit is built on Svelte\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n path: \"skills/web-meta-framework-sveltekit\",\n },\n \"web-meta-framework-vitepress\": {\n id: \"web-meta-framework-vitepress\",\n slug: \"vitepress\",\n displayName: \"VitePress\",\n description: \"VitePress documentation site generator\",\n usageGuidance:\n \"Use when building documentation sites with VitePress — configuring navigation, extending themes, writing data loaders, and customizing markdown rendering.\",\n category: \"web-docs\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-meta-framework-docusaurus\",\n purpose: \"Documentation Framework\",\n },\n ],\n path: \"skills/web-meta-framework-vitepress\",\n },\n \"web-mocks-msw\": {\n id: \"web-mocks-msw\",\n slug: \"msw\",\n displayName: \"MSW\",\n description: \"API mocking\",\n usageGuidance: \"Use when mocking APIs for development or testing with MSW handlers.\",\n category: \"web-mocking\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-mocks-msw\",\n },\n \"web-performance-web-performance\": {\n id: \"web-performance-web-performance\",\n slug: \"web-performance\",\n displayName: \"Frontend Performance\",\n description: \"Bundle and render optimization\",\n usageGuidance:\n \"Use when optimizing bundle size, render performance, or implementing memoization.\",\n category: \"web-performance\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-performance-web-performance\",\n },\n \"web-pwa-offline-first\": {\n id: \"web-pwa-offline-first\",\n slug: \"offline-first\",\n displayName: \"Offline First\",\n description: \"Offline-first patterns\",\n usageGuidance: \"Use when building offline-first apps with IndexedDB or sync queues.\",\n category: \"web-pwa\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-pwa-offline-first\",\n },\n \"web-pwa-service-workers\": {\n id: \"web-pwa-service-workers\",\n slug: \"service-workers\",\n displayName: \"Service Workers\",\n description: \"Offline caching strategies\",\n usageGuidance:\n \"Use when implementing service workers, caching strategies, or offline support.\",\n category: \"web-pwa\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-pwa-service-workers\",\n },\n \"web-realtime-socket-io\": {\n id: \"web-realtime-socket-io\",\n slug: \"socket-io\",\n displayName: \"Socket.IO\",\n description: \"Bidirectional real-time communication\",\n usageGuidance: \"Use when implementing Socket.IO client connections, rooms, or namespaces.\",\n category: \"web-realtime\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-realtime-websockets\",\n purpose: \"Realtime\",\n },\n {\n skillId: \"web-realtime-sse\",\n purpose: \"Realtime\",\n },\n ],\n path: \"skills/web-realtime-socket-io\",\n },\n \"web-realtime-sse\": {\n id: \"web-realtime-sse\",\n slug: \"sse\",\n displayName: \"Server-Sent Events\",\n description: \"Server-to-client streaming\",\n usageGuidance: \"Use when implementing Server-Sent Events for server-to-client streaming.\",\n category: \"web-streaming\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-realtime-websockets\",\n purpose: \"Realtime\",\n },\n {\n skillId: \"web-realtime-socket-io\",\n purpose: \"Realtime\",\n },\n ],\n path: \"skills/web-realtime-sse\",\n },\n \"web-realtime-websockets\": {\n id: \"web-realtime-websockets\",\n slug: \"websockets\",\n displayName: \"WebSockets\",\n description: \"Bidirectional real-time communication\",\n usageGuidance:\n \"Use when implementing WebSocket connections, reconnection, or message handling.\",\n category: \"web-realtime\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-realtime-socket-io\",\n purpose: \"Realtime\",\n },\n {\n skillId: \"web-realtime-sse\",\n purpose: \"Realtime\",\n },\n ],\n path: \"skills/web-realtime-websockets\",\n },\n \"web-routing-react-router\": {\n id: \"web-routing-react-router\",\n slug: \"react-router\",\n displayName: \"React Router\",\n description: \"Client-side and server-side routing for React applications\",\n usageGuidance:\n \"Use when building React apps with client-side routing — nested routes, loaders, actions, error boundaries, lazy loading, and URL-based state.\",\n category: \"web-routing\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-routing-tanstack-router\",\n reason: \"React client-side routers are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason:\n \"React Router v7 Data Mode SPA skill — createBrowserRouter/RouterProvider are framework-owned (wrong) inside a Remix framework-mode app\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-routing-tanstack-router\",\n purpose: \"Routing (React)\",\n },\n ],\n path: \"skills/web-routing-react-router\",\n },\n \"web-routing-tanstack-router\": {\n id: \"web-routing-tanstack-router\",\n slug: \"tanstack-router\",\n displayName: \"TanStack Router\",\n description: \"Type-safe client-side routing for React\",\n usageGuidance:\n \"Use when building React SPAs with type-safe routing — file-based routes, search params validation, route loaders, code splitting, and nested layouts.\",\n category: \"web-routing\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-routing-react-router\",\n reason: \"React client-side routers are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"TanStack Router is a React routing library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-routing-react-router\",\n purpose: \"Routing (React)\",\n },\n ],\n path: \"skills/web-routing-tanstack-router\",\n },\n \"web-server-state-react-query\": {\n id: \"web-server-state-react-query\",\n slug: \"react-query\",\n displayName: \"React Query\",\n description: \"Server state and caching\",\n usageGuidance:\n \"Use when fetching API data with React Query, wiring typed clients generated from an API schema, or configuring query caching and error handling.\",\n category: \"web-server-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-data-fetching-swr\",\n reason: \"Both solve server state caching\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"TanStack Query's React adapter\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-data-fetching-swr\",\n purpose: \"Server State / Data Fetching\",\n },\n {\n skillId: \"web-data-fetching-trpc\",\n purpose: \"Server State / Data Fetching\",\n },\n ],\n path: \"skills/web-server-state-react-query\",\n },\n \"web-state-jotai\": {\n id: \"web-state-jotai\",\n slug: \"jotai\",\n displayName: \"Jotai\",\n description: \"Atomic client state\",\n usageGuidance: \"Use when managing atomic state with bottom-up composition.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-zustand\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Jotai is a React atomic state library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-state-zustand\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-mobx\",\n purpose: \"Client State (React)\",\n },\n ],\n path: \"skills/web-state-jotai\",\n },\n \"web-state-mobx\": {\n id: \"web-state-mobx\",\n slug: \"mobx\",\n displayName: \"MobX\",\n description: \"Observable reactive state management\",\n usageGuidance:\n \"Use when implementing client-side state with MobX observables, computed values, actions, reactions, or the observer HOC from mobx-react-lite. Not for server state or simple local UI state (use useState).\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-zustand\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-jotai\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Skill teaches React/React Native patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-state-zustand\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-jotai\",\n purpose: \"Client State (React)\",\n },\n ],\n path: \"skills/web-state-mobx\",\n },\n \"web-state-ngrx-signalstore\": {\n id: \"web-state-ngrx-signalstore\",\n slug: \"ngrx-signalstore\",\n displayName: \"NgRx SignalStore\",\n description: \"Angular signal-based state\",\n usageGuidance: \"Use when managing Angular state with Signals and SignalStore.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-angular-standalone\"],\n needsAny: false,\n reason: \"NgRx SignalStore is Angular only\",\n },\n ],\n alternatives: [],\n path: \"skills/web-state-ngrx-signalstore\",\n },\n \"web-state-pinia\": {\n id: \"web-state-pinia\",\n slug: \"pinia\",\n displayName: \"Pinia\",\n description: \"Vue client state\",\n usageGuidance: \"Use when managing state in Vue apps with Options or Setup stores.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"Pinia is Vue only\",\n },\n ],\n alternatives: [],\n path: \"skills/web-state-pinia\",\n },\n \"web-state-redux-toolkit\": {\n id: \"web-state-redux-toolkit\",\n slug: \"redux-toolkit\",\n displayName: \"Redux Toolkit\",\n description: \"Enterprise client state\",\n usageGuidance: \"Use when managing enterprise-scale state, needing DevTools, or RTK Query.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-zustand\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-jotai\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Skill teaches React/React Native patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-state-zustand\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-mobx\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-jotai\",\n purpose: \"Client State (React)\",\n },\n ],\n path: \"skills/web-state-redux-toolkit\",\n },\n \"web-state-zustand\": {\n id: \"web-state-zustand\",\n slug: \"zustand\",\n displayName: \"Zustand\",\n description: \"Lightweight client state\",\n usageGuidance:\n \"Use when managing global UI state, replacing Context misuse, or handling cross-component state.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-jotai\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Skill teaches React/React Native patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-state-redux-toolkit\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-mobx\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-jotai\",\n purpose: \"Client State (React)\",\n },\n ],\n path: \"skills/web-state-zustand\",\n },\n \"web-styling-cva\": {\n id: \"web-styling-cva\",\n slug: \"cva\",\n displayName: \"CVA\",\n description: \"Component variant styling\",\n usageGuidance: \"Use when building component variants with class-variance-authority.\",\n category: \"web-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-styling-cva\",\n },\n \"web-styling-design-tokens\": {\n id: \"web-styling-design-tokens\",\n slug: \"design-tokens\",\n displayName: \"Design Tokens\",\n description: \"Token tiers, naming, and build pipeline\",\n usageGuidance:\n \"Use when authoring or restructuring a design token system - defining primitive, semantic and component tiers, naming tokens, delivering them as CSS custom properties, or building them from DTCG source with a token pipeline.\",\n category: \"web-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-styling-design-tokens\",\n },\n \"web-styling-scss-modules\": {\n id: \"web-styling-scss-modules\",\n slug: \"scss-modules\",\n displayName: \"SCSS Modules\",\n description: \"SCSS Modules styling\",\n usageGuidance:\n \"Use when writing scoped component styles in .module.scss, organising Sass with @use and @forward, or ordering styles with CSS cascade layers.\",\n category: \"web-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-styling-tailwind\",\n purpose: \"Styling\",\n },\n ],\n path: \"skills/web-styling-scss-modules\",\n },\n \"web-styling-tailwind\": {\n id: \"web-styling-tailwind\",\n slug: \"tailwind\",\n displayName: \"Tailwind CSS\",\n description: \"Utility-first CSS framework v4\",\n usageGuidance:\n \"Use when styling with Tailwind CSS v4 utility classes, configuring themes with @theme directive, implementing dark mode, responsive design, custom utilities with @utility, or composing component classes with cn() and tailwind-merge.\",\n category: \"web-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-styling-scss-modules\",\n purpose: \"Styling\",\n },\n ],\n path: \"skills/web-styling-tailwind\",\n },\n \"web-styling-theming\": {\n id: \"web-styling-theming\",\n slug: \"theming\",\n displayName: \"Runtime Theming\",\n description: \"Runtime light/dark and multi-brand theme switching\",\n usageGuidance:\n \"Use when applying a theme system to a live app - wiring prefers-color-scheme and an explicit override, eliminating theme flash on first paint, persisting a light/dark/system preference, switching semantic token values per scope, or adding multi-brand and nested theme scopes.\",\n category: \"web-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-styling-theming\",\n },\n \"web-testing-cypress-e2e\": {\n id: \"web-testing-cypress-e2e\",\n slug: \"cypress-e2e\",\n displayName: \"Cypress\",\n description: \"E2E browser testing\",\n usageGuidance: \"Use when writing Cypress E2E tests, custom commands, or component tests.\",\n category: \"web-e2e\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-testing-playwright-e2e\",\n purpose: \"E2E Testing\",\n },\n ],\n path: \"skills/web-testing-cypress-e2e\",\n },\n \"web-testing-playwright-e2e\": {\n id: \"web-testing-playwright-e2e\",\n slug: \"playwright-e2e\",\n displayName: \"Playwright\",\n description: \"E2E browser testing\",\n usageGuidance: \"Use when writing E2E tests, Page Object Models, or visual regression tests.\",\n category: \"web-e2e\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-testing-cypress-e2e\",\n purpose: \"E2E Testing\",\n },\n ],\n path: \"skills/web-testing-playwright-e2e\",\n },\n \"web-testing-react-testing-library\": {\n id: \"web-testing-react-testing-library\",\n slug: \"react-testing-library\",\n displayName: \"React Testing Library\",\n description: \"React component testing\",\n usageGuidance: \"Use when testing React components with user-centric queries.\",\n category: \"web-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"React Testing Library is React only\",\n },\n ],\n alternatives: [],\n path: \"skills/web-testing-react-testing-library\",\n },\n \"web-testing-visual-regression\": {\n id: \"web-testing-visual-regression\",\n slug: \"visual-regression\",\n displayName: \"Visual Regression\",\n description: \"Screenshot baselines and diff review\",\n usageGuidance:\n \"Use when catching unintended visual changes with screenshot baselines, diff review, or visual CI jobs.\",\n category: \"web-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-testing-visual-regression\",\n },\n \"web-testing-vitest\": {\n id: \"web-testing-vitest\",\n slug: \"vitest\",\n displayName: \"Vitest\",\n description: \"Vite-native test runner\",\n usageGuidance:\n \"Use when writing unit tests, integration tests, configuring Vitest, or using vi.fn/vi.mock/vi.spyOn.\",\n category: \"web-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-testing-vitest\",\n },\n \"web-testing-vue-test-utils\": {\n id: \"web-testing-vue-test-utils\",\n slug: \"vue-test-utils\",\n displayName: \"Vue Test Utils\",\n description: \"Vue component testing\",\n usageGuidance:\n \"Use when testing Vue components with mount, shallowMount, or testing composables.\",\n category: \"web-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"Vue Test Utils is Vue only\",\n },\n ],\n alternatives: [],\n path: \"skills/web-testing-vue-test-utils\",\n },\n \"web-tooling-component-library\": {\n id: \"web-tooling-component-library\",\n slug: \"component-library\",\n displayName: \"Component Library Packaging\",\n description: \"Packaging React components as a library\",\n usageGuidance:\n 'Use when shipping styled, client-interactive React components as a consumable package — choosing a style delivery contract, marking styles side-effectful, layering library CSS so consumer overrides win, preserving \"use client\" through the build, declaring peer dependency ranges, and splitting server-safe from client entries.',\n category: \"web-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason:\n \"Packaging React components — react/react-dom peerDependencies and 'use client' preservation are the skill's critical requirements\",\n },\n ],\n alternatives: [],\n path: \"skills/web-tooling-component-library\",\n },\n \"web-tooling-storybook\": {\n id: \"web-tooling-storybook\",\n slug: \"storybook\",\n displayName: \"Storybook\",\n description: \"Component documentation\",\n usageGuidance:\n \"Use when documenting components with Storybook, writing stories, or interaction tests.\",\n category: \"web-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-angular-standalone\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-qwik\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n ],\n needsAny: true,\n reason: \"Storybook requires a UI framework\",\n },\n ],\n alternatives: [],\n path: \"skills/web-tooling-storybook\",\n },\n \"web-tooling-vite\": {\n id: \"web-tooling-vite\",\n slug: \"vite\",\n displayName: \"Vite\",\n description: \"Vite build tool configuration\",\n usageGuidance:\n \"Use when configuring Vite build tool, path aliases, vendor chunk splitting, environment-specific builds, or migrating to Rolldown.\",\n category: \"web-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-tooling-vite\",\n },\n \"web-ui-ant-design\": {\n id: \"web-ui-ant-design\",\n slug: \"ant-design\",\n displayName: \"Ant Design\",\n description: \"Ant Design enterprise UI library for React\",\n usageGuidance:\n \"Use when building React UIs with Ant Design — ConfigProvider theming, Table, Form, Layout, data entry components, and enterprise design patterns.\",\n category: \"web-ui-kit\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Ant Design is a React component library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-shadcn-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mantine\",\n purpose: \"UI Components (React)\",\n },\n ],\n path: \"skills/web-ui-ant-design\",\n },\n \"web-ui-base-ui\": {\n id: \"web-ui-base-ui\",\n slug: \"base-ui\",\n displayName: \"Base UI\",\n description: \"Unstyled accessible React primitives\",\n usageGuidance:\n \"Use when building accessible UI with Base UI (@base-ui/react) — part-based anatomy (Portal, Positioner, Popup), the render prop for polymorphism, useRender and mergeProps, data-attribute state styling, controlled state with eventDetails cancelation, and Field/Fieldset/Form validation.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Base UI primitives are React-only (@base-ui/react)\",\n },\n ],\n alternatives: [],\n path: \"skills/web-ui-base-ui\",\n },\n \"web-ui-chakra-ui\": {\n id: \"web-ui-chakra-ui\",\n slug: \"chakra-ui\",\n displayName: \"Chakra UI\",\n description: \"Accessible React components with style props and theming\",\n usageGuidance:\n \"Use when building React UIs with Chakra UI — style props, responsive design, theming, accessible components, and composable component patterns.\",\n category: \"web-ui-kit\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Chakra UI is a React component library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-shadcn-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mantine\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-ant-design\",\n purpose: \"UI Components (React)\",\n },\n ],\n path: \"skills/web-ui-chakra-ui\",\n },\n \"web-ui-headless-ui\": {\n id: \"web-ui-headless-ui\",\n slug: \"headless-ui\",\n displayName: \"Headless UI\",\n description: \"Unstyled accessible UI components by Tailwind Labs\",\n usageGuidance:\n \"Use when building accessible UI with Headless UI — Dialog, Menu, Listbox, Combobox, Popover, Tabs, Disclosure, and other unstyled primitives you style yourself.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Headless UI v2 is React only\",\n },\n ],\n alternatives: [],\n path: \"skills/web-ui-headless-ui\",\n },\n \"web-ui-mantine\": {\n id: \"web-ui-mantine\",\n slug: \"mantine\",\n displayName: \"Mantine\",\n description: \"Full-featured React components with hooks, forms, theming\",\n usageGuidance:\n \"Use when building React UIs with Mantine — 100+ components, CSS modules styling, theme customization, built-in hooks, form management with @mantine/form, and notification system.\",\n category: \"web-ui-kit\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Mantine is a React component library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-shadcn-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-ant-design\",\n purpose: \"UI Components (React)\",\n },\n ],\n path: \"skills/web-ui-mantine\",\n },\n \"web-ui-mui\": {\n id: \"web-ui-mui\",\n slug: \"mui\",\n displayName: \"MUI (Material UI)\",\n description: \"Material UI component library for React\",\n usageGuidance:\n \"Use when building React UIs with MUI — theming, component customization, sx prop, styled API, data grids, date pickers, and Material Design patterns.\",\n category: \"web-ui-kit\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"MUI is a React component library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-shadcn-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mantine\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-ant-design\",\n purpose: \"UI Components (React)\",\n },\n ],\n path: \"skills/web-ui-mui\",\n },\n \"web-ui-radix-ui\": {\n id: \"web-ui-radix-ui\",\n slug: \"radix-ui\",\n displayName: \"Radix UI\",\n description: \"Accessible UI primitives\",\n usageGuidance:\n \"Use when building accessible overlay components (dialogs, popovers, dropdowns, tooltips), compound component APIs, keyboard navigation, focus management, or polymorphic components with asChild and Slot patterns.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Radix UI primitives are React-specific\",\n },\n ],\n alternatives: [],\n path: \"skills/web-ui-radix-ui\",\n },\n \"web-ui-shadcn-ui\": {\n id: \"web-ui-shadcn-ui\",\n slug: \"shadcn-ui\",\n displayName: \"shadcn/ui\",\n description: \"Tailwind component library\",\n usageGuidance: \"Use when using shadcn/ui components, theming, or customization.\",\n category: \"web-ui-kit\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"shadcn/ui requires a React-based framework\",\n },\n {\n skillIds: [\"web-styling-tailwind\"],\n needsAny: false,\n reason: \"shadcn/ui requires Tailwind CSS\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-mui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mantine\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-ant-design\",\n purpose: \"UI Components (React)\",\n },\n ],\n path: \"skills/web-ui-shadcn-ui\",\n },\n \"web-ui-tanstack-table\": {\n id: \"web-ui-tanstack-table\",\n slug: \"tanstack-table\",\n displayName: \"TanStack Table\",\n description: \"Data table component\",\n usageGuidance: \"Use when building data tables with sorting, filtering, or pagination.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches @tanstack/react-table patterns\",\n },\n ],\n alternatives: [],\n path: \"skills/web-ui-tanstack-table\",\n },\n \"web-ui-vuetify\": {\n id: \"web-ui-vuetify\",\n slug: \"vuetify\",\n displayName: \"Vuetify\",\n description: \"Material Design component library for Vue 3\",\n usageGuidance:\n \"Use when building Vue 3 UIs with Vuetify — theming, global defaults, data tables, form validation, SASS variable customization, composables, and Material Design 3 patterns.\",\n category: \"web-ui-kit\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"Vuetify is Vue only\",\n },\n ],\n alternatives: [],\n path: \"skills/web-ui-vuetify\",\n },\n \"web-utilities-date-fns\": {\n id: \"web-utilities-date-fns\",\n slug: \"date-fns\",\n displayName: \"date-fns\",\n description: \"Date utilities\",\n usageGuidance: \"Use when formatting, parsing, or manipulating dates with date-fns.\",\n category: \"web-utilities\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-utilities-date-fns\",\n },\n \"web-utilities-native-js\": {\n id: \"web-utilities-native-js\",\n slug: \"native-js\",\n displayName: \"Native JS\",\n description: \"Native JS utilities\",\n usageGuidance: \"Use when using modern JS methods instead of lodash utilities.\",\n category: \"web-utilities\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-utilities-native-js\",\n },\n \"web-utilities-rxjs\": {\n id: \"web-utilities-rxjs\",\n slug: \"rxjs\",\n displayName: \"RxJS\",\n description: \"Reactive programming — Observables, operators, streams\",\n usageGuidance:\n \"Use when handling complex async flows with RxJS — Observables, operators (map, filter, switchMap, mergeMap), Subjects, error handling, unsubscription, and reactive patterns for event streams and HTTP requests.\",\n category: \"web-utilities\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [],\n alternatives: [],\n path: \"skills/web-utilities-rxjs\",\n },\n \"web-utilities-vueuse\": {\n id: \"web-utilities-vueuse\",\n slug: \"vueuse\",\n displayName: \"Vueuse\",\n description: \"Vue Composition API utilities — 250+ composable functions\",\n usageGuidance:\n \"Use when building Vue apps with VueUse — browser APIs (useLocalStorage, useClipboard, useFetch), sensors (useMouse, useScroll), animations, state management helpers, and component utilities.\",\n category: \"web-utilities\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"VueUse composables require Vue 3\",\n },\n ],\n alternatives: [],\n path: \"skills/web-utilities-vueuse\",\n },\n },\n suggestedStacks: [\n {\n id: \"nextjs-fullstack\",\n name: \"Next.js Full-Stack\",\n description: \"Hono, Drizzle, Better Auth, Zustand\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\", \"meta-reviewing-cli-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-scss-modules\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Ship fast, iterate faster\",\n },\n {\n id: \"nextjs-t3-stack\",\n name: \"Next.js T3 Stack\",\n description: \"tRPC, Prisma, NextAuth, Tailwind\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-rpc\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-orm\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-rpc\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-orm\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-rpc\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-orm\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-rpc\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-orm\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-rpc\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-orm\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-rpc\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-orm\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-rpc\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-orm\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-tailwind\",\n \"web-data-fetching-trpc\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-database-prisma\",\n \"api-auth-nextauth\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"End-to-end type safety with great DX\",\n },\n {\n id: \"nextjs-supabase-fullstack\",\n name: \"Next.js Supabase Full-Stack\",\n description: \"Supabase, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\", \"meta-reviewing-cli-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-scss-modules\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-baas-supabase\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Full-stack with Supabase backend-as-a-service\",\n },\n {\n id: \"nextjs-turborepo-fullstack\",\n name: \"Next.js Turborepo Full-Stack\",\n description: \"Turborepo, pnpm Workspaces, Hono, Drizzle\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\", \"meta-reviewing-cli-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-task-runner\": [\"shared-monorepo-turborepo\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-scss-modules\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"shared-monorepo-pnpm-workspaces\",\n \"shared-monorepo-turborepo\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Monorepo architecture with Turborepo and pnpm\",\n },\n {\n id: \"react-old-school\",\n name: \"React Old School\",\n description: \"Redux Toolkit, SCSS Modules, Vite, Vitest\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-state-redux-toolkit\",\n \"web-styling-scss-modules\",\n \"web-routing-react-router\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Classic React with proven patterns\",\n },\n {\n id: \"react-hono-fullstack\",\n name: \"React Hono Full-Stack\",\n description: \"Vite, Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\", \"meta-reviewing-cli-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-styling-scss-modules\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"React SPA with Hono backend\",\n },\n {\n id: \"remix-fullstack\",\n name: \"Remix Full-Stack\",\n description: \"Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-remix\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Web standards and excellent forms handling\",\n },\n {\n id: \"sveltekit-fullstack\",\n name: \"SvelteKit Full-Stack\",\n description: \"Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-framework-svelte\",\n \"web-meta-framework-sveltekit\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Write less, do more with compiler magic\",\n },\n {\n id: \"solidjs-fullstack\",\n name: \"SolidJS Full-Stack\",\n description: \"Hono, Drizzle, Better Auth, Vitest\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-framework-solidjs\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Maximum performance with minimal overhead\",\n },\n {\n id: \"astro-content-fullstack\",\n name: \"Astro Content Full-Stack\",\n description: \"Hono, Drizzle\",\n skills: {\n \"web-developer\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n },\n pm: {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n },\n \"web-researcher\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n },\n \"agent-summoner\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-meta-framework-astro\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-observability-axiom-pino-sentry\",\n \"api-cms-sanity\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Ship less JavaScript, faster by default\",\n },\n {\n id: \"vue-modern-fullstack\",\n name: \"Vue Modern Full-Stack\",\n description: \"Pinia, Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-framework-vue-composition-api\",\n \"web-state-pinia\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Progressive and approachable\",\n },\n {\n id: \"nuxt-fullstack\",\n name: \"Nuxt Full-Stack\",\n description: \"Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-framework-vue-composition-api\",\n \"web-meta-framework-nuxt\",\n \"web-state-pinia\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Progressive Vue with Nuxt power\",\n },\n {\n id: \"angular-modern-fullstack\",\n name: \"Angular Modern Full-Stack\",\n description: \"NgRx, Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n },\n },\n allSkillIds: [\n \"web-framework-angular-standalone\",\n \"web-state-ngrx-signalstore\",\n \"web-testing-vitest\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Enterprise-grade and type-safe\",\n },\n {\n id: \"nextjs-ai-saas\",\n name: \"Next.js AI SaaS\",\n description: \"Vercel AI, Anthropic, Drizzle, Pinecone\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\", \"meta-reviewing-cli-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-tailwind\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"ai-orchestration-vercel-ai-sdk\",\n \"ai-provider-anthropic-sdk\",\n \"ai-patterns-tool-use-patterns\",\n \"api-vector-db-pinecone\",\n \"api-observability-axiom-pino-sentry\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"AI-first full-stack with streaming and tool use\",\n },\n {\n id: \"nextjs-saas-starter\",\n name: \"Next.js SaaS Starter\",\n description: \"Better Auth, Stripe, Drizzle, Resend, PostHog\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\", \"api-flags-posthog-flags\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\", \"meta-reviewing-cli-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-e2e\": [\"web-testing-playwright-e2e\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-tailwind\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-commerce-stripe\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-flags-posthog-flags\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Ship your SaaS fast with auth, payments, and analytics\",\n },\n {\n id: \"expo-mobile-fullstack\",\n name: \"Expo Mobile Full-Stack\",\n description: \"Zustand, React Query, Hono, Drizzle\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\", \"meta-reviewing-cli-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n pm: {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-orm\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"mobile-framework-expo\",\n \"mobile-framework-react-native\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n ],\n philosophy: \"Cross-platform mobile with shared React patterns\",\n },\n {\n id: \"cli-ink-oclif\",\n name: \"CLI Tool\",\n description: \"oclif, Ink, Zustand, Vitest\",\n skills: {\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n reviewer: {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"cli-tester\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"cli-researcher\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n pm: {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"web-researcher\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"agent-summoner\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"skill-summoner\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n \"codex-keeper\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\"shared-tooling-typescript-config\", \"shared-tooling-git-hooks\"],\n \"shared-lint\": [\"shared-tooling-eslint-prettier\"],\n },\n },\n allSkillIds: [\n \"cli-framework-oclif-ink\",\n \"web-framework-react\",\n \"web-forms-zod-validation\",\n \"web-state-zustand\",\n \"web-testing-vitest\",\n \"meta-design-expressive-typescript\",\n \"meta-reviewing-reviewing\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-eslint-prettier\",\n ],\n philosophy: \"Terminal-native CLI with interactive React-based wizard UI\",\n },\n ],\n slugMap: {\n slugToId: {\n \"huggingface-inference\": \"ai-infrastructure-huggingface-inference\",\n litellm: \"ai-infrastructure-litellm\",\n modal: \"ai-infrastructure-modal\",\n ollama: \"ai-infrastructure-ollama\",\n replicate: \"ai-infrastructure-replicate\",\n \"together-ai\": \"ai-infrastructure-together-ai\",\n langfuse: \"ai-observability-langfuse\",\n promptfoo: \"ai-observability-promptfoo\",\n langchain: \"ai-orchestration-langchain\",\n llamaindex: \"ai-orchestration-llamaindex\",\n \"vercel-ai-sdk\": \"ai-orchestration-vercel-ai-sdk\",\n \"tool-use-patterns\": \"ai-patterns-tool-use-patterns\",\n \"anthropic-sdk\": \"ai-provider-anthropic-sdk\",\n \"claude-vision\": \"ai-provider-claude-vision\",\n \"cohere-sdk\": \"ai-provider-cohere-sdk\",\n elevenlabs: \"ai-provider-elevenlabs\",\n \"google-gemini-sdk\": \"ai-provider-google-gemini-sdk\",\n \"mistral-sdk\": \"ai-provider-mistral-sdk\",\n \"openai-sdk\": \"ai-provider-openai-sdk\",\n \"openai-whisper\": \"ai-provider-openai-whisper\",\n \"posthog-analytics\": \"api-analytics-posthog-analytics\",\n \"setup-posthog\": \"api-analytics-setup-posthog\",\n \"better-auth-drizzle-hono\": \"api-auth-better-auth-drizzle-hono\",\n clerk: \"api-auth-clerk\",\n nextauth: \"api-auth-nextauth\",\n appwrite: \"api-baas-appwrite\",\n firebase: \"api-baas-firebase\",\n neon: \"api-baas-neon\",\n planetscale: \"api-baas-planetscale\",\n supabase: \"api-baas-supabase\",\n turso: \"api-baas-turso\",\n strategies: \"api-caching-strategies\",\n payload: \"api-cms-payload\",\n sanity: \"api-cms-sanity\",\n strapi: \"api-cms-strapi\",\n stripe: \"api-commerce-stripe\",\n cockroachdb: \"api-database-cockroachdb\",\n drizzle: \"api-database-drizzle\",\n edgedb: \"api-database-edgedb\",\n knex: \"api-database-knex\",\n mongodb: \"api-database-mongodb\",\n mongoose: \"api-database-mongoose\",\n mysql: \"api-database-mysql\",\n postgresql: \"api-database-postgresql\",\n prisma: \"api-database-prisma\",\n redis: \"api-database-redis\",\n sequelize: \"api-database-sequelize\",\n surrealdb: \"api-database-surrealdb\",\n typeorm: \"api-database-typeorm\",\n upstash: \"api-database-upstash\",\n \"vercel-kv\": \"api-database-vercel-kv\",\n \"vercel-postgres\": \"api-database-vercel-postgres\",\n \"resend-react-email\": \"api-email-resend-react-email\",\n \"setup-resend\": \"api-email-setup-resend\",\n \"posthog-flags\": \"api-flags-posthog-flags\",\n elysia: \"api-framework-elysia\",\n express: \"api-framework-express\",\n fastify: \"api-framework-fastify\",\n hono: \"api-framework-hono\",\n nestjs: \"api-framework-nestjs\",\n \"apollo-server\": \"api-graphql-apollo-server\",\n mercurius: \"api-graphql-mercurius\",\n yoga: \"api-graphql-yoga\",\n webhooks: \"api-messaging-webhooks\",\n \"axiom-pino-sentry\": \"api-observability-axiom-pino-sentry\",\n \"setup-axiom-pino-sentry\": \"api-observability-setup-axiom-pino-sentry\",\n \"api-performance\": \"api-performance-api-performance\",\n bullmq: \"api-queue-bullmq\",\n elasticsearch: \"api-search-elasticsearch\",\n meilisearch: \"api-search-meilisearch\",\n xquik: \"api-search-xquik\",\n openapi: \"api-specs-openapi\",\n chroma: \"api-vector-db-chroma\",\n pinecone: \"api-vector-db-pinecone\",\n qdrant: \"api-vector-db-qdrant\",\n weaviate: \"api-vector-db-weaviate\",\n \"cli-commander\": \"cli-framework-cli-commander\",\n \"oclif-ink\": \"cli-framework-oclif-ink\",\n clack: \"cli-prompts-clack\",\n \"tauri-backend\": \"desktop-backend-tauri\",\n electron: \"desktop-framework-electron\",\n tauri: \"desktop-framework-tauri\",\n \"electron-ipc\": \"desktop-ipc-electron\",\n \"tauri-mobile\": \"desktop-mobile-tauri\",\n \"electron-multiwindow\": \"desktop-multiwindow-electron\",\n \"tauri-multiwindow\": \"desktop-multiwindow-tauri\",\n \"electron-forge\": \"desktop-packaging-electron-forge\",\n \"tauri-bundling\": \"desktop-packaging-tauri\",\n \"tauri-plugins\": \"desktop-plugins-tauri\",\n \"electron-security\": \"desktop-security-electron\",\n \"tauri-security\": \"desktop-security-tauri\",\n \"electron-storage\": \"desktop-storage-electron\",\n \"electron-testing\": \"desktop-testing-electron\",\n \"electron-ui\": \"desktop-ui-electron\",\n \"electron-updater\": \"desktop-updates-electron-updater\",\n docker: \"infra-ci-cd-docker\",\n \"github-actions\": \"infra-ci-cd-github-actions\",\n \"turborepo-ci\": \"infra-ci-cd-turborepo-ci\",\n \"setup-env\": \"infra-config-setup-env\",\n kubernetes: \"infra-containers-kubernetes\",\n pulumi: \"infra-iac-pulumi\",\n sst: \"infra-iac-sst\",\n terraform: \"infra-iac-terraform\",\n \"aws-sdk\": \"infra-platform-aws-sdk\",\n \"cloudflare-workers\": \"infra-platform-cloudflare-workers\",\n netlify: \"infra-platform-netlify\",\n vercel: \"infra-platform-vercel\",\n \"stack-detect\": \"meta-config-stack-detect\",\n \"composable-components\": \"meta-design-composable-components\",\n \"expressive-typescript\": \"meta-design-expressive-typescript\",\n \"research-methodology\": \"meta-methodology-research-methodology\",\n \"ai-planning\": \"meta-planning-ai-planning\",\n \"api-planning\": \"meta-planning-api-planning\",\n \"cli-planning\": \"meta-planning-cli-planning\",\n \"web-planning\": \"meta-planning-web-planning\",\n \"ai-reviewing\": \"meta-reviewing-ai-reviewing\",\n \"api-reviewing\": \"meta-reviewing-api-reviewing\",\n \"cli-reviewing\": \"meta-reviewing-cli-reviewing\",\n \"infra-reviewing\": \"meta-reviewing-infra-reviewing\",\n reviewing: \"meta-reviewing-reviewing\",\n \"web-reviewing\": \"meta-reviewing-web-reviewing\",\n \"gesture-handler\": \"mobile-animation-gesture-handler\",\n reanimated: \"mobile-animation-reanimated\",\n skia: \"mobile-animation-skia\",\n tasks: \"mobile-background-tasks\",\n \"vision-camera\": \"mobile-camera-vision-camera\",\n \"app-links\": \"mobile-deep-linking-app-links\",\n eas: \"mobile-deployment-eas\",\n expo: \"mobile-framework-expo\",\n \"react-native\": \"mobile-framework-react-native\",\n \"ble-nfc\": \"mobile-hardware-ble-nfc\",\n \"expo-router\": \"mobile-navigation-expo-router\",\n \"react-navigation\": \"mobile-navigation-react-navigation\",\n push: \"mobile-notifications-push\",\n \"react-native-performance\": \"mobile-performance-react-native\",\n \"react-native-security\": \"mobile-security-react-native\",\n mmkv: \"mobile-storage-mmkv\",\n \"sqlite-powersync\": \"mobile-storage-sqlite-powersync\",\n watermelondb: \"mobile-storage-watermelondb\",\n nativewind: \"mobile-styling-nativewind\",\n unistyles: \"mobile-styling-unistyles\",\n detox: \"mobile-testing-detox\",\n maestro: \"mobile-testing-maestro\",\n \"react-native-paper\": \"mobile-ui-components-react-native-paper\",\n tamagui: \"mobile-ui-components-tamagui\",\n nx: \"shared-monorepo-nx\",\n \"pnpm-workspaces\": \"shared-monorepo-pnpm-workspaces\",\n turborepo: \"shared-monorepo-turborepo\",\n \"auth-security\": \"shared-security-auth-security\",\n biome: \"shared-tooling-biome\",\n changesets: \"shared-tooling-changesets\",\n \"eslint-prettier\": \"shared-tooling-eslint-prettier\",\n \"git-hooks\": \"shared-tooling-git-hooks\",\n \"typescript-config\": \"shared-tooling-typescript-config\",\n \"react-three-fiber\": \"web-3d-react-three-fiber\",\n \"web-accessibility\": \"web-accessibility-web-accessibility\",\n \"css-animations\": \"web-animation-css-animations\",\n \"framer-motion\": \"web-animation-framer-motion\",\n \"view-transitions\": \"web-animation-view-transitions\",\n \"graphql-apollo\": \"web-data-fetching-graphql-apollo\",\n \"graphql-urql\": \"web-data-fetching-graphql-urql\",\n swr: \"web-data-fetching-swr\",\n trpc: \"web-data-fetching-trpc\",\n d3: \"web-dataviz-d3\",\n recharts: \"web-dataviz-recharts\",\n \"dnd-kit\": \"web-dnd-dnd-kit\",\n lexical: \"web-editor-lexical\",\n tiptap: \"web-editor-tiptap\",\n \"error-boundaries\": \"web-error-handling-error-boundaries\",\n \"result-types\": \"web-error-handling-result-types\",\n \"file-upload-patterns\": \"web-files-file-upload-patterns\",\n \"image-handling\": \"web-files-image-handling\",\n \"react-hook-form\": \"web-forms-react-hook-form\",\n \"tanstack-form\": \"web-forms-tanstack-form\",\n \"vee-validate\": \"web-forms-vee-validate\",\n \"zod-validation\": \"web-forms-zod-validation\",\n \"angular-standalone\": \"web-framework-angular-standalone\",\n react: \"web-framework-react\",\n solidjs: \"web-framework-solidjs\",\n svelte: \"web-framework-svelte\",\n \"vue-composition-api\": \"web-framework-vue-composition-api\",\n \"next-intl\": \"web-i18n-next-intl\",\n \"react-intl\": \"web-i18n-react-intl\",\n \"vue-i18n\": \"web-i18n-vue-i18n\",\n leaflet: \"web-maps-leaflet\",\n mapbox: \"web-maps-mapbox\",\n astro: \"web-meta-framework-astro\",\n docusaurus: \"web-meta-framework-docusaurus\",\n nextjs: \"web-meta-framework-nextjs\",\n nuxt: \"web-meta-framework-nuxt\",\n qwik: \"web-meta-framework-qwik\",\n remix: \"web-meta-framework-remix\",\n sveltekit: \"web-meta-framework-sveltekit\",\n vitepress: \"web-meta-framework-vitepress\",\n msw: \"web-mocks-msw\",\n \"web-performance\": \"web-performance-web-performance\",\n \"offline-first\": \"web-pwa-offline-first\",\n \"service-workers\": \"web-pwa-service-workers\",\n \"socket-io\": \"web-realtime-socket-io\",\n sse: \"web-realtime-sse\",\n websockets: \"web-realtime-websockets\",\n \"react-router\": \"web-routing-react-router\",\n \"tanstack-router\": \"web-routing-tanstack-router\",\n \"react-query\": \"web-server-state-react-query\",\n jotai: \"web-state-jotai\",\n mobx: \"web-state-mobx\",\n \"ngrx-signalstore\": \"web-state-ngrx-signalstore\",\n pinia: \"web-state-pinia\",\n \"redux-toolkit\": \"web-state-redux-toolkit\",\n zustand: \"web-state-zustand\",\n cva: \"web-styling-cva\",\n \"design-tokens\": \"web-styling-design-tokens\",\n \"scss-modules\": \"web-styling-scss-modules\",\n tailwind: \"web-styling-tailwind\",\n theming: \"web-styling-theming\",\n \"cypress-e2e\": \"web-testing-cypress-e2e\",\n \"playwright-e2e\": \"web-testing-playwright-e2e\",\n \"react-testing-library\": \"web-testing-react-testing-library\",\n \"visual-regression\": \"web-testing-visual-regression\",\n vitest: \"web-testing-vitest\",\n \"vue-test-utils\": \"web-testing-vue-test-utils\",\n \"component-library\": \"web-tooling-component-library\",\n storybook: \"web-tooling-storybook\",\n vite: \"web-tooling-vite\",\n \"ant-design\": \"web-ui-ant-design\",\n \"base-ui\": \"web-ui-base-ui\",\n \"chakra-ui\": \"web-ui-chakra-ui\",\n \"headless-ui\": \"web-ui-headless-ui\",\n mantine: \"web-ui-mantine\",\n mui: \"web-ui-mui\",\n \"radix-ui\": \"web-ui-radix-ui\",\n \"shadcn-ui\": \"web-ui-shadcn-ui\",\n \"tanstack-table\": \"web-ui-tanstack-table\",\n vuetify: \"web-ui-vuetify\",\n \"date-fns\": \"web-utilities-date-fns\",\n \"native-js\": \"web-utilities-native-js\",\n rxjs: \"web-utilities-rxjs\",\n vueuse: \"web-utilities-vueuse\",\n },\n },\n generatedAt: \"build\",\n} as MergedSkillsMatrix;\n\n// ── Derived Lookup Maps ───────────────────────────────────────\n\nexport const SKILL_IDS_BY_CATEGORY: Record<Category, readonly SkillId[]> = {\n \"ai-infrastructure\": [\n \"ai-infrastructure-huggingface-inference\",\n \"ai-infrastructure-litellm\",\n \"ai-infrastructure-modal\",\n \"ai-infrastructure-ollama\",\n \"ai-infrastructure-replicate\",\n \"ai-infrastructure-together-ai\",\n ],\n \"ai-observability\": [\"ai-observability-langfuse\", \"ai-observability-promptfoo\"],\n \"ai-orchestration\": [\n \"ai-orchestration-langchain\",\n \"ai-orchestration-llamaindex\",\n \"ai-orchestration-vercel-ai-sdk\",\n ],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"ai-provider\": [\n \"ai-provider-anthropic-sdk\",\n \"ai-provider-claude-vision\",\n \"ai-provider-cohere-sdk\",\n \"ai-provider-elevenlabs\",\n \"ai-provider-google-gemini-sdk\",\n \"ai-provider-mistral-sdk\",\n \"ai-provider-openai-sdk\",\n \"ai-provider-openai-whisper\",\n ],\n \"api-analytics\": [\n \"api-analytics-posthog-analytics\",\n \"api-analytics-setup-posthog\",\n \"api-flags-posthog-flags\",\n ],\n \"api-api\": [\n \"api-framework-elysia\",\n \"api-framework-express\",\n \"api-framework-fastify\",\n \"api-framework-hono\",\n \"api-framework-nestjs\",\n ],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\", \"api-auth-clerk\", \"api-auth-nextauth\"],\n \"api-baas\": [\"api-baas-appwrite\", \"api-baas-firebase\", \"api-baas-supabase\"],\n \"api-caching\": [\"api-caching-strategies\"],\n \"api-cms\": [\"api-cms-payload\", \"api-cms-sanity\", \"api-cms-strapi\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-db-host\": [\n \"api-baas-neon\",\n \"api-baas-planetscale\",\n \"api-baas-turso\",\n \"api-database-vercel-postgres\",\n ],\n \"api-document\": [\n \"api-database-edgedb\",\n \"api-database-mongodb\",\n \"api-database-mongoose\",\n \"api-database-surrealdb\",\n ],\n \"api-email\": [\"api-email-resend-react-email\", \"api-email-setup-resend\"],\n \"api-graphql\": [\"api-graphql-apollo-server\", \"api-graphql-mercurius\", \"api-graphql-yoga\"],\n \"api-kv\": [\"api-database-redis\", \"api-database-upstash\", \"api-database-vercel-kv\"],\n \"api-messaging\": [\"api-messaging-webhooks\"],\n \"api-observability\": [\n \"api-observability-axiom-pino-sentry\",\n \"api-observability-setup-axiom-pino-sentry\",\n ],\n \"api-orm\": [\n \"api-database-drizzle\",\n \"api-database-knex\",\n \"api-database-prisma\",\n \"api-database-sequelize\",\n \"api-database-typeorm\",\n ],\n \"api-performance\": [\"api-performance-api-performance\"],\n \"api-queue\": [\"api-queue-bullmq\"],\n \"api-search\": [\"api-search-elasticsearch\", \"api-search-meilisearch\", \"api-search-xquik\"],\n \"api-specs\": [\"api-specs-openapi\"],\n \"api-sql-engine\": [\"api-database-cockroachdb\", \"api-database-mysql\", \"api-database-postgresql\"],\n \"api-vector-db\": [\n \"api-vector-db-chroma\",\n \"api-vector-db-pinecone\",\n \"api-vector-db-qdrant\",\n \"api-vector-db-weaviate\",\n ],\n \"cli-framework\": [\"cli-framework-cli-commander\", \"cli-framework-oclif-ink\"],\n \"cli-prompts\": [\"cli-prompts-clack\"],\n \"desktop-backend\": [\"desktop-backend-tauri\"],\n \"desktop-framework\": [\"desktop-framework-electron\", \"desktop-framework-tauri\"],\n \"desktop-ipc\": [\"desktop-ipc-electron\"],\n \"desktop-mobile\": [\"desktop-mobile-tauri\"],\n \"desktop-multiwindow\": [\"desktop-multiwindow-electron\", \"desktop-multiwindow-tauri\"],\n \"desktop-packaging\": [\"desktop-packaging-electron-forge\", \"desktop-packaging-tauri\"],\n \"desktop-plugins\": [\"desktop-plugins-tauri\"],\n \"desktop-security\": [\"desktop-security-electron\", \"desktop-security-tauri\"],\n \"desktop-storage\": [\"desktop-storage-electron\"],\n \"desktop-testing\": [\"desktop-testing-electron\"],\n \"desktop-ui\": [\"desktop-ui-electron\"],\n \"desktop-updates\": [\"desktop-updates-electron-updater\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\", \"infra-ci-cd-turborepo-ci\"],\n \"infra-config\": [\"infra-config-setup-env\"],\n \"infra-containers\": [\"infra-ci-cd-docker\", \"infra-containers-kubernetes\"],\n \"infra-iac\": [\"infra-iac-pulumi\", \"infra-iac-sst\", \"infra-iac-terraform\"],\n \"infra-platform\": [\n \"infra-platform-aws-sdk\",\n \"infra-platform-cloudflare-workers\",\n \"infra-platform-netlify\",\n \"infra-platform-vercel\",\n ],\n \"meta-design\": [\"meta-design-composable-components\", \"meta-design-expressive-typescript\"],\n \"meta-methodology\": [\"meta-methodology-research-methodology\"],\n \"meta-planning\": [\n \"meta-planning-ai-planning\",\n \"meta-planning-api-planning\",\n \"meta-planning-cli-planning\",\n \"meta-planning-web-planning\",\n ],\n \"meta-reviewing\": [\n \"meta-reviewing-ai-reviewing\",\n \"meta-reviewing-api-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"meta-reviewing-infra-reviewing\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-web-reviewing\",\n ],\n \"mobile-animation\": [\n \"mobile-animation-gesture-handler\",\n \"mobile-animation-reanimated\",\n \"mobile-animation-skia\",\n ],\n \"mobile-background\": [\"mobile-background-tasks\"],\n \"mobile-camera\": [\"mobile-camera-vision-camera\"],\n \"mobile-deep-linking\": [\"mobile-deep-linking-app-links\"],\n \"mobile-deployment\": [\"mobile-deployment-eas\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"mobile-hardware\": [\"mobile-hardware-ble-nfc\"],\n \"mobile-navigation\": [\"mobile-navigation-expo-router\", \"mobile-navigation-react-navigation\"],\n \"mobile-notifications\": [\"mobile-notifications-push\"],\n \"mobile-performance\": [\"mobile-performance-react-native\"],\n \"mobile-security\": [\"mobile-security-react-native\"],\n \"mobile-storage\": [\n \"mobile-storage-mmkv\",\n \"mobile-storage-sqlite-powersync\",\n \"mobile-storage-watermelondb\",\n ],\n \"mobile-styling\": [\"mobile-styling-nativewind\", \"mobile-styling-unistyles\"],\n \"mobile-testing\": [\"mobile-testing-detox\", \"mobile-testing-maestro\"],\n \"mobile-ui-components\": [\n \"mobile-ui-components-react-native-paper\",\n \"mobile-ui-components-tamagui\",\n ],\n \"shared-lint\": [\"shared-tooling-biome\", \"shared-tooling-eslint-prettier\"],\n \"shared-monorepo\": [\"shared-monorepo-pnpm-workspaces\"],\n \"shared-security\": [\"shared-security-auth-security\"],\n \"shared-task-runner\": [\"shared-monorepo-nx\", \"shared-monorepo-turborepo\"],\n \"shared-tooling\": [\n \"meta-config-stack-detect\",\n \"shared-tooling-changesets\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-typescript-config\",\n ],\n \"web-3d\": [\"web-3d-react-three-fiber\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"web-animation\": [\n \"web-animation-css-animations\",\n \"web-animation-framer-motion\",\n \"web-animation-view-transitions\",\n ],\n \"web-client-state\": [\n \"web-state-jotai\",\n \"web-state-mobx\",\n \"web-state-ngrx-signalstore\",\n \"web-state-pinia\",\n \"web-state-redux-toolkit\",\n \"web-state-zustand\",\n ],\n \"web-dataviz\": [\"web-dataviz-d3\", \"web-dataviz-recharts\"],\n \"web-dnd\": [\"web-dnd-dnd-kit\"],\n \"web-docs\": [\"web-meta-framework-docusaurus\", \"web-meta-framework-vitepress\"],\n \"web-e2e\": [\"web-testing-cypress-e2e\", \"web-testing-playwright-e2e\"],\n \"web-editor\": [\"web-editor-lexical\", \"web-editor-tiptap\"],\n \"web-error-handling\": [\"web-error-handling-error-boundaries\", \"web-error-handling-result-types\"],\n \"web-file-upload\": [\"web-files-file-upload-patterns\"],\n \"web-files\": [\"web-files-image-handling\"],\n \"web-form-library\": [\n \"web-forms-react-hook-form\",\n \"web-forms-tanstack-form\",\n \"web-forms-vee-validate\",\n ],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-framework\": [\n \"web-framework-angular-standalone\",\n \"web-framework-react\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-framework-vue-composition-api\",\n ],\n \"web-graphql-client\": [\"web-data-fetching-graphql-apollo\", \"web-data-fetching-graphql-urql\"],\n \"web-i18n\": [\"web-i18n-next-intl\", \"web-i18n-react-intl\", \"web-i18n-vue-i18n\"],\n \"web-maps\": [\"web-maps-leaflet\", \"web-maps-mapbox\"],\n \"web-meta-framework\": [\n \"web-meta-framework-astro\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-qwik\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-sveltekit\",\n ],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-performance\": [\"web-performance-web-performance\"],\n \"web-pwa\": [\"web-pwa-offline-first\", \"web-pwa-service-workers\"],\n \"web-realtime\": [\"web-realtime-socket-io\", \"web-realtime-websockets\"],\n \"web-routing\": [\"web-routing-react-router\", \"web-routing-tanstack-router\"],\n \"web-rpc\": [\"web-data-fetching-trpc\"],\n \"web-server-state\": [\"web-data-fetching-swr\", \"web-server-state-react-query\"],\n \"web-streaming\": [\"web-realtime-sse\"],\n \"web-styling\": [\n \"web-styling-cva\",\n \"web-styling-design-tokens\",\n \"web-styling-scss-modules\",\n \"web-styling-tailwind\",\n \"web-styling-theming\",\n ],\n \"web-testing\": [\n \"web-testing-react-testing-library\",\n \"web-testing-visual-regression\",\n \"web-testing-vitest\",\n \"web-testing-vue-test-utils\",\n ],\n \"web-tooling\": [\"web-tooling-component-library\", \"web-tooling-storybook\", \"web-tooling-vite\"],\n \"web-ui-components\": [\n \"web-ui-base-ui\",\n \"web-ui-headless-ui\",\n \"web-ui-radix-ui\",\n \"web-ui-tanstack-table\",\n ],\n \"web-ui-kit\": [\n \"web-ui-ant-design\",\n \"web-ui-chakra-ui\",\n \"web-ui-mantine\",\n \"web-ui-mui\",\n \"web-ui-shadcn-ui\",\n \"web-ui-vuetify\",\n ],\n \"web-utilities\": [\n \"web-utilities-date-fns\",\n \"web-utilities-native-js\",\n \"web-utilities-rxjs\",\n \"web-utilities-vueuse\",\n ],\n} as Record<Category, readonly SkillId[]>;\n\nexport const CATEGORIES_BY_DOMAIN: Record<Domain, readonly Category[]> = {\n ai: [\"ai-infrastructure\", \"ai-observability\", \"ai-orchestration\", \"ai-patterns\", \"ai-provider\"],\n api: [\n \"api-analytics\",\n \"api-api\",\n \"api-auth\",\n \"api-baas\",\n \"api-caching\",\n \"api-cms\",\n \"api-commerce\",\n \"api-db-host\",\n \"api-document\",\n \"api-email\",\n \"api-graphql\",\n \"api-kv\",\n \"api-messaging\",\n \"api-observability\",\n \"api-orm\",\n \"api-performance\",\n \"api-queue\",\n \"api-search\",\n \"api-specs\",\n \"api-sql-engine\",\n \"api-vector-db\",\n ],\n cli: [\"cli-framework\", \"cli-prompts\"],\n desktop: [\n \"desktop-backend\",\n \"desktop-framework\",\n \"desktop-ipc\",\n \"desktop-mobile\",\n \"desktop-multiwindow\",\n \"desktop-packaging\",\n \"desktop-plugins\",\n \"desktop-security\",\n \"desktop-storage\",\n \"desktop-testing\",\n \"desktop-ui\",\n \"desktop-updates\",\n ],\n infra: [\"infra-ci-cd\", \"infra-config\", \"infra-containers\", \"infra-iac\", \"infra-platform\"],\n meta: [\"meta-design\", \"meta-methodology\", \"meta-planning\", \"meta-reviewing\"],\n mobile: [\n \"mobile-animation\",\n \"mobile-background\",\n \"mobile-camera\",\n \"mobile-deep-linking\",\n \"mobile-deployment\",\n \"mobile-framework\",\n \"mobile-hardware\",\n \"mobile-navigation\",\n \"mobile-notifications\",\n \"mobile-performance\",\n \"mobile-security\",\n \"mobile-storage\",\n \"mobile-styling\",\n \"mobile-testing\",\n \"mobile-ui-components\",\n ],\n shared: [\n \"shared-lint\",\n \"shared-monorepo\",\n \"shared-security\",\n \"shared-task-runner\",\n \"shared-tooling\",\n ],\n web: [\n \"web-3d\",\n \"web-accessibility\",\n \"web-animation\",\n \"web-client-state\",\n \"web-dataviz\",\n \"web-dnd\",\n \"web-docs\",\n \"web-e2e\",\n \"web-editor\",\n \"web-error-handling\",\n \"web-file-upload\",\n \"web-files\",\n \"web-form-library\",\n \"web-forms\",\n \"web-framework\",\n \"web-graphql-client\",\n \"web-i18n\",\n \"web-maps\",\n \"web-meta-framework\",\n \"web-mocking\",\n \"web-performance\",\n \"web-pwa\",\n \"web-realtime\",\n \"web-routing\",\n \"web-rpc\",\n \"web-server-state\",\n \"web-streaming\",\n \"web-styling\",\n \"web-testing\",\n \"web-tooling\",\n \"web-ui-components\",\n \"web-ui-kit\",\n \"web-utilities\",\n ],\n} as Record<Domain, readonly Category[]>;\n","import { seatCatalog } from \"@workspace/compile\";\n\nimport { BUILT_IN_MATRIX } from \"../../types/generated/matrix\";\nimport { stripTerminalControls } from \"../../utils/string\";\nimport type { Category, Domain, MergedSkillsMatrix, ResolvedSkill, SkillId } from \"../../types\";\n\n/** The current matrix — starts as BUILT_IN_MATRIX, replaced after local skill merge on startup */\nexport let matrix: MergedSkillsMatrix = BUILT_IN_MATRIX;\n\n/**\n * Also seats `@workspace/compile`'s catalogue, so the CLI and the shared builder never disagree.\n */\nexport function initializeMatrix(merged: MergedSkillsMatrix): void {\n matrix = merged;\n seatCatalog(merged);\n}\n\nexport function getSkillById(id: SkillId): ResolvedSkill {\n const skill = matrix.skills[id];\n if (!skill) throw new Error(`Skill not found: ${id}`);\n return skill;\n}\n\n/**\n * Falls back to the raw id: callers render ids that may be absent from the current matrix. Inert,\n * since every caller prints it and a marketplace or a shared link wrote it.\n */\nexport function getSkillDisplayName(id: SkillId): string {\n return stripTerminalControls(matrix.skills[id]?.displayName ?? id);\n}\n\nexport function getCategoryDomain(category: string): Domain | undefined {\n // Boundary cast: matrix categories include auto-synthesized entries for custom skills\n return matrix.categories[category as Category]?.domain;\n}\n"],"mappings":"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","names":[]}
|