@agents-inc/cli 0.72.0 → 0.73.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 +13 -0
- package/dist/{chunk-OODTDGEM.js → chunk-3K6FSET7.js} +6 -6
- package/dist/{chunk-LBTW5HSY.js → chunk-3REVX6S5.js} +11 -11
- package/dist/chunk-3REVX6S5.js.map +1 -0
- package/dist/{chunk-HMJGSAKV.js → chunk-3VNQPCOE.js} +2510 -2687
- package/dist/chunk-3VNQPCOE.js.map +1 -0
- package/dist/{chunk-V2XIWRHP.js → chunk-4KLUOFP6.js} +6 -7
- package/dist/chunk-4KLUOFP6.js.map +1 -0
- package/dist/{chunk-MGQVO357.js → chunk-6JRQPSKV.js} +2 -2
- package/dist/chunk-6JRQPSKV.js.map +1 -0
- package/dist/{chunk-ZYUASJUN.js → chunk-BH4LN7XV.js} +8 -6
- package/dist/chunk-BH4LN7XV.js.map +1 -0
- package/dist/{chunk-6YMW4HMX.js → chunk-DNPJ5GUK.js} +6 -6
- package/dist/chunk-DNPJ5GUK.js.map +1 -0
- package/dist/chunk-E74Q7GUE.js +5132 -0
- package/dist/chunk-E74Q7GUE.js.map +1 -0
- package/dist/{chunk-AHZ34QVK.js → chunk-EMWP363L.js} +8 -10
- package/dist/chunk-EMWP363L.js.map +1 -0
- package/dist/chunk-EMX7PA2I.js +39 -0
- package/dist/chunk-EMX7PA2I.js.map +1 -0
- package/dist/{chunk-SEAL43IR.js → chunk-G23HPF6K.js} +3 -3
- package/dist/chunk-GDUOOT3J.js +689 -0
- package/dist/chunk-GDUOOT3J.js.map +1 -0
- package/dist/{chunk-HJVWBSLM.js → chunk-GSFZDUV2.js} +4 -4
- package/dist/chunk-GSFZDUV2.js.map +1 -0
- package/dist/{chunk-LM5YQUBR.js → chunk-H4ETXZVL.js} +6 -6
- package/dist/{chunk-ZFRALAK5.js → chunk-JHMECCBN.js} +4 -5
- package/dist/chunk-JHMECCBN.js.map +1 -0
- package/dist/{chunk-UQTG4ZBA.js → chunk-K7WYMQQB.js} +18 -20
- package/dist/chunk-K7WYMQQB.js.map +1 -0
- package/dist/{chunk-RJOLQ7EK.js → chunk-KE2EAVFQ.js} +4 -4
- package/dist/{chunk-CKPJTMNC.js → chunk-KSMT5FVM.js} +4 -4
- package/dist/chunk-KSMT5FVM.js.map +1 -0
- package/dist/{chunk-52THXN5G.js → chunk-NUJHWYCR.js} +2 -2
- package/dist/{chunk-URAXGHF2.js → chunk-OLWGGD4G.js} +20 -15
- package/dist/chunk-OLWGGD4G.js.map +1 -0
- package/dist/{chunk-FKRYJOPC.js → chunk-PNZCVOCE.js} +5 -5
- package/dist/chunk-PNZCVOCE.js.map +1 -0
- package/dist/chunk-SRIH4U5Y.js +159 -0
- package/dist/chunk-SRIH4U5Y.js.map +1 -0
- package/dist/{chunk-J4TVAB5H.js → chunk-T7QY777F.js} +2 -2
- package/dist/{chunk-Q3YMO5YG.js → chunk-TNSVPZHP.js} +20 -2
- package/dist/chunk-TNSVPZHP.js.map +1 -0
- package/dist/{chunk-WWHDP5CP.js → chunk-V5HR77EY.js} +94 -13
- package/dist/chunk-V5HR77EY.js.map +1 -0
- package/dist/{chunk-ZEJIEC2A.js → chunk-WJL4KU5V.js} +66 -240
- package/dist/chunk-WJL4KU5V.js.map +1 -0
- package/dist/{chunk-G3LNIYZG.js → chunk-Y47CLMWE.js} +2 -2
- package/dist/{chunk-3SLO2QPW.js → chunk-Y4VUU5BT.js} +12 -14
- package/dist/chunk-Y4VUU5BT.js.map +1 -0
- package/dist/{chunk-F43WGOGN.js → chunk-ZBLSWJFM.js} +2 -2
- package/dist/chunk-ZBLSWJFM.js.map +1 -0
- package/dist/commands/build/marketplace.js +4 -3
- package/dist/commands/build/marketplace.js.map +1 -1
- package/dist/commands/build/plugins.js +8 -7
- package/dist/commands/build/plugins.js.map +1 -1
- package/dist/commands/build/stack.js +8 -7
- package/dist/commands/build/stack.js.map +1 -1
- package/dist/commands/compile.js +13 -9
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/config/index.js +8 -7
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/config/path.js +7 -6
- package/dist/commands/config/path.js.map +1 -1
- package/dist/commands/config/show.js +8 -7
- package/dist/commands/diff.js +7 -6
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.js +12 -13
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +32 -34
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +14 -12
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +7 -6
- package/dist/commands/import/skill.js.map +1 -1
- package/dist/commands/info.js +11 -10
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +27 -26
- package/dist/commands/list.js +7 -6
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/agent.js +8 -7
- package/dist/commands/new/agent.js.map +1 -1
- package/dist/commands/new/marketplace.js +11 -14
- package/dist/commands/new/marketplace.js.map +1 -1
- package/dist/commands/new/skill.js +8 -7
- package/dist/commands/outdated.js +7 -6
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/search.js +8 -9
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +7 -6
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +9 -9
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +15 -17
- package/dist/commands/validate.js.map +1 -1
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/category-grid.test.js +16 -65
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/domain-selection.js +9 -8
- package/dist/components/wizard/source-grid.js +4 -4
- package/dist/components/wizard/source-grid.test.js +18 -16
- package/dist/components/wizard/source-grid.test.js.map +1 -1
- package/dist/components/wizard/stack-selection.js +8 -7
- package/dist/components/wizard/step-agents.js +9 -8
- package/dist/components/wizard/step-agents.test.js +14 -13
- package/dist/components/wizard/step-agents.test.js.map +1 -1
- package/dist/components/wizard/step-build.js +10 -9
- package/dist/components/wizard/step-build.test.js +16 -15
- package/dist/components/wizard/step-build.test.js.map +1 -1
- package/dist/components/wizard/step-confirm.js +5 -4
- package/dist/components/wizard/step-confirm.test.js +10 -9
- package/dist/components/wizard/step-confirm.test.js.map +1 -1
- package/dist/components/wizard/step-settings.js +8 -7
- package/dist/components/wizard/step-settings.test.js +11 -10
- package/dist/components/wizard/step-settings.test.js.map +1 -1
- package/dist/components/wizard/step-sources.js +13 -12
- package/dist/components/wizard/step-sources.test.js +18 -17
- package/dist/components/wizard/step-sources.test.js.map +1 -1
- package/dist/components/wizard/step-stack.js +11 -10
- package/dist/components/wizard/step-stack.test.js +15 -14
- package/dist/components/wizard/step-stack.test.js.map +1 -1
- package/dist/components/wizard/wizard-layout.js +8 -7
- package/dist/components/wizard/wizard.js +25 -24
- package/dist/hooks/init.js +27 -26
- package/dist/hooks/init.js.map +1 -1
- package/dist/{loader-KVKSTKWX.js → loader-XQ3WBTVP.js} +4 -3
- package/dist/{source-loader-65IAJPNV.js → source-loader-F4PGP6LH.js} +7 -6
- package/dist/source-manager-QCIO4XZK.js +20 -0
- package/dist/stores/wizard-store.js +7 -6
- package/dist/stores/wizard-store.test.js +29 -28
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +1 -1
- package/src/schemas/custom-metadata.schema.json +81 -0
- package/src/schemas/metadata.schema.json +127 -41
- package/src/schemas/stacks.schema.json +3 -45
- package/dist/chunk-3SLO2QPW.js.map +0 -1
- package/dist/chunk-6YMW4HMX.js.map +0 -1
- package/dist/chunk-AHZ34QVK.js.map +0 -1
- package/dist/chunk-BKL3DF2Q.js +0 -45
- package/dist/chunk-BKL3DF2Q.js.map +0 -1
- package/dist/chunk-CKPJTMNC.js.map +0 -1
- package/dist/chunk-D7FEORKC.js +0 -253
- package/dist/chunk-D7FEORKC.js.map +0 -1
- package/dist/chunk-F43WGOGN.js.map +0 -1
- package/dist/chunk-FKRYJOPC.js.map +0 -1
- package/dist/chunk-HJVWBSLM.js.map +0 -1
- package/dist/chunk-HMJGSAKV.js.map +0 -1
- package/dist/chunk-LBTW5HSY.js.map +0 -1
- package/dist/chunk-MGQVO357.js.map +0 -1
- package/dist/chunk-Q3YMO5YG.js.map +0 -1
- package/dist/chunk-T4EXUIBY.js +0 -19
- package/dist/chunk-T4EXUIBY.js.map +0 -1
- package/dist/chunk-UQTG4ZBA.js.map +0 -1
- package/dist/chunk-URAXGHF2.js.map +0 -1
- package/dist/chunk-V2XIWRHP.js.map +0 -1
- package/dist/chunk-WWHDP5CP.js.map +0 -1
- package/dist/chunk-ZEJIEC2A.js.map +0 -1
- package/dist/chunk-ZFRALAK5.js.map +0 -1
- package/dist/chunk-ZYUASJUN.js.map +0 -1
- package/dist/source-manager-LJH225GA.js +0 -19
- package/dist/stores/matrix-store.js +0 -15
- package/dist/stores/matrix-store.js.map +0 -1
- package/dist/stores/matrix-store.test.js +0 -127
- package/dist/stores/matrix-store.test.js.map +0 -1
- /package/dist/{chunk-OODTDGEM.js.map → chunk-3K6FSET7.js.map} +0 -0
- /package/dist/{chunk-SEAL43IR.js.map → chunk-G23HPF6K.js.map} +0 -0
- /package/dist/{chunk-LM5YQUBR.js.map → chunk-H4ETXZVL.js.map} +0 -0
- /package/dist/{chunk-RJOLQ7EK.js.map → chunk-KE2EAVFQ.js.map} +0 -0
- /package/dist/{chunk-52THXN5G.js.map → chunk-NUJHWYCR.js.map} +0 -0
- /package/dist/{chunk-J4TVAB5H.js.map → chunk-T7QY777F.js.map} +0 -0
- /package/dist/{chunk-G3LNIYZG.js.map → chunk-Y47CLMWE.js.map} +0 -0
- /package/dist/{loader-KVKSTKWX.js.map → loader-XQ3WBTVP.js.map} +0 -0
- /package/dist/{source-loader-65IAJPNV.js.map → source-loader-F4PGP6LH.js.map} +0 -0
- /package/dist/{source-manager-LJH225GA.js.map → source-manager-QCIO4XZK.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/types/generated/matrix.ts","../src/cli/lib/matrix/matrix-provider.ts"],"sourcesContent":["// 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, Next.js, Remix, Nuxt)\",\n domain: \"web\",\n exclusive: true,\n required: true,\n order: 1,\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 required: true,\n order: 3,\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 required: false,\n order: 4,\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 required: false,\n order: 5,\n },\n \"web-forms\": {\n id: \"web-forms\",\n displayName: \"Forms & Validation\",\n description: \"Form handling and schema validation\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 6,\n },\n \"web-testing\": {\n id: \"web-testing\",\n displayName: \"Testing\",\n description: \"Unit, integration, and E2E testing\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 7,\n },\n \"web-ui-components\": {\n id: \"web-ui-components\",\n displayName: \"UI Component Library\",\n description: \"Pre-built component systems (Radix, shadcn)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 8,\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 required: false,\n order: 10,\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 required: false,\n order: 11,\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 required: false,\n order: 12,\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 required: false,\n order: 13,\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 required: false,\n order: 14,\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 required: false,\n order: 15,\n },\n \"web-realtime\": {\n id: \"web-realtime\",\n displayName: \"Realtime\",\n description: \"WebSockets, SSE, and real-time communication\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 16,\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 required: false,\n order: 17,\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 required: false,\n order: 18,\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 required: false,\n order: 19,\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 required: false,\n order: 20,\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 required: true,\n order: 1,\n },\n \"api-database\": {\n id: \"api-database\",\n displayName: \"Database ORM\",\n description: \"Database access layer (Drizzle, Prisma)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 2,\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 required: false,\n order: 3,\n },\n \"api-observability\": {\n id: \"api-observability\",\n displayName: \"Observability\",\n description: \"Logging, monitoring, error tracking\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"api-analytics\": {\n id: \"api-analytics\",\n displayName: \"Analytics\",\n description: \"Product analytics and tracking\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 5,\n },\n \"api-email\": {\n id: \"api-email\",\n displayName: \"Email\",\n description: \"Transactional email (Resend, Sendgrid)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 6,\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 required: false,\n order: 7,\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: true,\n required: true,\n order: 1,\n },\n \"shared-monorepo\": {\n id: \"shared-monorepo\",\n displayName: \"Monorepo\",\n description: \"Monorepo tooling (Turborepo, Nx)\",\n domain: \"shared\",\n exclusive: true,\n required: false,\n order: 1,\n },\n \"shared-tooling\": {\n id: \"shared-tooling\",\n displayName: \"Build Tooling\",\n description: \"ESLint, Prettier, TypeScript, Vite\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 2,\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 required: false,\n order: 3,\n },\n \"shared-methodology\": {\n id: \"shared-methodology\",\n displayName: \"Methodology\",\n description: \"Development methodology and engineering principles\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"shared-research\": {\n id: \"shared-research\",\n displayName: \"Research\",\n description: \"Codebase investigation and research methodology\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 5,\n },\n \"shared-reviewing\": {\n id: \"shared-reviewing\",\n displayName: \"Code Review\",\n description: \"Code review patterns and guidance\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 6,\n },\n \"shared-ci-cd\": {\n id: \"shared-ci-cd\",\n displayName: \"CI/CD\",\n description: \"Continuous integration and deployment pipelines\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 7,\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 required: true,\n order: 1,\n },\n },\n skills: {\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 tags: [\"posthog\", \"analytics\", \"event-tracking\", \"user-identification\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Product analytics and feature flags\",\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"posthog\", \"setup\", \"analytics\", \"feature-flags\", \"installation\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"better-auth\", \"sessions\", \"oauth\", \"authentication\", \"authorization\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Full-featured auth solution\",\n requires: [\n {\n skillIds: [\"api-database-drizzle\", \"api-database-prisma\"],\n needsAny: true,\n reason: \"Better Auth requires a database adapter\",\n },\n ],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/api-auth-better-auth-drizzle-hono\",\n },\n \"api-ci-cd-github-actions\": {\n id: \"api-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: \"shared-ci-cd\",\n tags: [\"github-actions\", \"pipelines\", \"deployment\", \"ci\", \"cd\", \"automation\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/api-ci-cd-github-actions\",\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-database\",\n tags: [\"drizzle\", \"orm\", \"database\", \"migrations\", \"queries\", \"postgresql\"],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-prisma\",\n reason: \"Both are ORMs serving similar purposes\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Modern TypeScript-first ORM\",\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-prisma\",\n purpose: \"Database ORM\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/api-database-drizzle\",\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-database\",\n tags: [\n \"prisma\",\n \"orm\",\n \"database\",\n \"typescript\",\n \"migrations\",\n \"queries\",\n \"postgresql\",\n \"mysql\",\n \"sqlite\",\n \"type-safety\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-drizzle\",\n reason: \"Both are ORMs serving similar purposes\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Mature database ORM with great DX\",\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"Database ORM\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/api-database-prisma\",\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 tags: [\"resend\", \"react-email\", \"email\", \"templates\", \"transactional\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"resend\", \"setup\", \"email\", \"domain-verification\", \"installation\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"posthog\", \"feature-flags\", \"rollouts\", \"ab-testing\", \"experiments\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/api-flags-posthog-flags\",\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 tags: [\"express\", \"expressjs\", \"nodejs\", \"rest-api\", \"middleware\", \"routing\", \"http\"],\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 isRecommended: false,\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 discourages: [\n {\n skillId: \"api-framework-hono\",\n reason: \"Express is mature but Hono offers better performance and edge support\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"Express is mature but Fastify offers better performance\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"fastify\",\n \"nodejs\",\n \"high-performance\",\n \"rest-api\",\n \"json-schema\",\n \"schema-validation\",\n \"typebox\",\n \"typescript\",\n \"plugins\",\n \"encapsulation\",\n ],\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 isRecommended: false,\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 discourages: [\n {\n skillId: \"api-framework-express\",\n reason: \"Express is mature but Fastify offers better performance\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"hono\", \"openapi\", \"zod\", \"rest-api\", \"validation\"],\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 isRecommended: false,\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 discourages: [\n {\n skillId: \"api-framework-express\",\n reason: \"Express is mature but Hono offers better performance and edge support\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/api-framework-hono\",\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 tags: [\"pino\", \"sentry\", \"axiom\", \"logging\", \"error-tracking\", \"monitoring\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"pino\", \"axiom\", \"sentry\", \"setup\", \"installation\", \"logging\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"performance\", \"query-optimization\", \"caching\", \"indexing\", \"backend\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/api-performance-api-performance\",\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 tags: [\n \"cli\",\n \"commander\",\n \"clack\",\n \"prompts\",\n \"terminal\",\n \"node\",\n \"interactive\",\n \"wizard\",\n \"state-machine\",\n \"picocolors\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"cli-framework-oclif-ink\",\n reason: \"CLI frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"cli-framework-oclif-ink\",\n purpose: \"CLI Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"cli\", \"oclif\", \"ink\", \"react\", \"terminal\", \"framework\"],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"cli-framework-cli-commander\",\n reason: \"CLI frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"cli-framework-cli-commander\",\n purpose: \"CLI Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/cli-framework-oclif-ink\",\n },\n \"infra-env-setup-env\": {\n id: \"infra-env-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: \"shared-tooling\",\n tags: [\"environment\", \"env\", \"configuration\", \"zod\", \"validation\", \"dotenv\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/infra-env-setup-env\",\n },\n \"infra-monorepo-turborepo\": {\n id: \"infra-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-monorepo\",\n tags: [\n \"turborepo\",\n \"workspaces\",\n \"monorepo\",\n \"package-management\",\n \"bun\",\n \"package\",\n \"exports\",\n \"conventions\",\n \"internal-packages\",\n \"typescript\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/infra-monorepo-turborepo\",\n },\n \"infra-tooling-setup-tooling\": {\n id: \"infra-tooling-setup-tooling\",\n slug: \"setup-tooling\",\n displayName: \"Build Tooling\",\n description: \"Build tooling and linting\",\n usageGuidance:\n \"Use when configuring ESLint, Prettier, TypeScript, Vite, or git hooks for a project.\",\n category: \"shared-tooling\",\n tags: [\n \"eslint\",\n \"prettier\",\n \"typescript\",\n \"vite\",\n \"rolldown\",\n \"configuration\",\n \"linting\",\n \"formatting\",\n \"bundler\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/infra-tooling-setup-tooling\",\n },\n \"meta-methodology-anti-over-engineering\": {\n id: \"meta-methodology-anti-over-engineering\",\n slug: \"anti-over-engineering\",\n displayName: \"Anti-Over-Engineering\",\n description: \"Surgical implementation, not architectural innovation\",\n usageGuidance:\n 'Apply to every implementation task. Prevents scope creep, unnecessary abstractions, and \"while I\\'m here\" syndrome.',\n category: \"shared-methodology\",\n tags: [\"methodology\", \"foundational\", \"universal\", \"anti-patterns\", \"minimal-changes\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-methodology-anti-over-engineering\",\n },\n \"meta-methodology-context-management\": {\n id: \"meta-methodology-context-management\",\n slug: \"context-management\",\n displayName: \"Context Management\",\n description: \"Maintain continuity across sessions\",\n usageGuidance:\n \"Use for long-running agents and multi-session projects. Ensures context is preserved between sessions.\",\n category: \"shared-methodology\",\n tags: [\"methodology\", \"extended-session\", \"context\", \"continuity\", \"documentation\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-methodology-context-management\",\n },\n \"meta-methodology-improvement-protocol\": {\n id: \"meta-methodology-improvement-protocol\",\n slug: \"improvement-protocol\",\n displayName: \"Improvement Protocol\",\n description: \"Evidence-based self-improvement for agents\",\n usageGuidance:\n \"Use when agents need to improve their own prompts or configurations. Evidence-based changes only.\",\n category: \"shared-methodology\",\n tags: [\"methodology\", \"implementation\", \"self-improvement\", \"meta\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-methodology-improvement-protocol\",\n },\n \"meta-methodology-investigation-requirements\": {\n id: \"meta-methodology-investigation-requirements\",\n slug: \"investigation-requirements\",\n displayName: \"Investigation Requirements\",\n description: \"Never speculate - read actual code first\",\n usageGuidance:\n \"Apply before any implementation or analysis. Prevents hallucination by requiring evidence-based claims.\",\n category: \"shared-methodology\",\n tags: [\"methodology\", \"foundational\", \"universal\", \"investigation\", \"anti-hallucination\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-methodology-investigation-requirements\",\n },\n \"meta-methodology-success-criteria\": {\n id: \"meta-methodology-success-criteria\",\n slug: \"success-criteria\",\n displayName: \"Success Criteria\",\n description: \"Define done with measurable criteria\",\n usageGuidance:\n \"Define success criteria before starting any task. Verify each criterion and provide evidence after completion.\",\n category: \"shared-methodology\",\n tags: [\"methodology\", \"foundational\", \"universal\", \"verification\", \"quality\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-methodology-success-criteria\",\n },\n \"meta-methodology-write-verification\": {\n id: \"meta-methodology-write-verification\",\n slug: \"write-verification\",\n displayName: \"Write Verification\",\n description: \"Verify edits were actually saved\",\n usageGuidance:\n \"Apply after any file write or edit operation. Re-read and verify before reporting success.\",\n category: \"shared-methodology\",\n tags: [\"methodology\", \"implementation\", \"verification\", \"quality-assurance\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-methodology-write-verification\",\n },\n \"meta-research-research-methodology\": {\n id: \"meta-research-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: \"shared-research\",\n tags: [\"research\", \"investigation\", \"evidence-based\", \"methodology\", \"analysis\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-research-research-methodology\",\n },\n \"meta-reviewing-cli-reviewing\": {\n id: \"meta-reviewing-cli-reviewing\",\n slug: \"cli-reviewing\",\n displayName: \"CLI Reviewing\",\n description: \"CLI code review patterns for Commander.js and @clack/prompts\",\n usageGuidance:\n \"Use when reviewing CLI applications built with Commander.js, @clack/prompts, or similar tools. Covers exit codes, signal handling, cancellation, error messages, spinners, and testing adequacy.\",\n category: \"shared-reviewing\",\n tags: [\n \"cli\",\n \"review\",\n \"commander\",\n \"clack\",\n \"exit-codes\",\n \"signal-handling\",\n \"error-handling\",\n \"user-experience\",\n \"methodology\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-reviewing-cli-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: \"Use when reviewing code, PRs, or making approval/rejection decisions.\",\n category: \"shared-reviewing\",\n tags: [\"code-review\", \"feedback\", \"patterns\", \"review-principles\", \"quality\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/meta-reviewing-reviewing\",\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 tags: [\n \"expo\",\n \"expo-router\",\n \"eas-build\",\n \"eas-update\",\n \"expo-dev-client\",\n \"expo-prebuild\",\n \"managed-workflow\",\n \"ota-updates\",\n \"config-plugins\",\n \"react-native\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"react-native\",\n \"mobile\",\n \"ios\",\n \"android\",\n \"expo\",\n \"navigation\",\n \"react-navigation\",\n \"nativewind\",\n \"reanimated\",\n \"gesture-handler\",\n \"flatlist\",\n \"flashlist\",\n \"performance\",\n \"new-architecture\",\n \"fabric\",\n \"turbomodules\",\n \"jsi\",\n \"react-19\",\n \"box-shadow\",\n \"filter\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/mobile-framework-react-native\",\n },\n \"security-auth-security\": {\n id: \"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 tags: [\n \"security\",\n \"authentication\",\n \"authorization\",\n \"secrets\",\n \"xss\",\n \"csrf\",\n \"input-validation\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/security-auth-security\",\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 tags: [\n \"wcag\",\n \"wcag-22\",\n \"aria\",\n \"keyboard-navigation\",\n \"a11y\",\n \"accessibility\",\n \"screen-reader\",\n \"axe-core\",\n \"jest-axe\",\n \"vitest-axe\",\n \"cypress-axe\",\n \"prefers-reduced-motion\",\n \"focus-management\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"animation\",\n \"css\",\n \"transitions\",\n \"keyframes\",\n \"scroll-driven\",\n \"view-transitions\",\n \"accessibility\",\n \"performance\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"animation\",\n \"motion\",\n \"framer-motion\",\n \"motion-react\",\n \"transitions\",\n \"gestures\",\n \"scroll\",\n \"layout\",\n \"v11\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"view-transitions\",\n \"page-transitions\",\n \"shared-element\",\n \"hero-animation\",\n \"spa-transitions\",\n \"mpa-transitions\",\n \"css-animations\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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-server-state\",\n tags: [\n \"apollo-client\",\n \"graphql\",\n \"data-fetching\",\n \"caching\",\n \"real-time\",\n \"subscriptions\",\n \"optimistic-updates\",\n \"suspense\",\n \"use-suspense-query\",\n \"use-loadable-query\",\n \"apollo-client-v4\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-data-fetching-graphql-urql\",\n reason: \"Both are GraphQL clients\",\n },\n ],\n isRecommended: false,\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-angular-standalone\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-remix\",\n \"web-framework-nuxt\",\n ],\n needsAny: true,\n reason: \"Apollo Client requires a UI framework\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-data-fetching-graphql-urql\",\n purpose: \"GraphQL Client\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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-server-state\",\n tags: [\n \"urql\",\n \"graphql\",\n \"data-fetching\",\n \"caching\",\n \"real-time\",\n \"subscriptions\",\n \"exchanges\",\n \"graphcache\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-data-fetching-graphql-apollo\",\n reason: \"Both are GraphQL clients\",\n },\n ],\n isRecommended: false,\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-remix\",\n \"web-framework-nuxt\",\n ],\n needsAny: true,\n reason: \"URQL supports React, Vue, and Solid\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-data-fetching-graphql-apollo\",\n purpose: \"GraphQL Client\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"swr\",\n \"swr-v2\",\n \"data-fetching\",\n \"caching\",\n \"stale-while-revalidate\",\n \"react-hooks\",\n \"vercel\",\n \"use-swr-mutation\",\n \"preload\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-server-state-react-query\",\n reason: \"Both solve server state caching\",\n },\n ],\n isRecommended: false,\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-nextjs-app-router\",\n \"web-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 discourages: [\n {\n skillId: \"web-server-state-react-query\",\n reason: \"SWR is simpler but React Query has more features\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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-server-state\",\n tags: [\"trpc\", \"type-safe-api\", \"react-query\", \"typescript\", \"monorepo\", \"rpc\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-data-fetching-trpc\",\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 tags: [\n \"error-boundary\",\n \"error-handling\",\n \"fallback-ui\",\n \"react-error-boundary\",\n \"get-derived-state-from-error\",\n \"component-did-catch\",\n \"use-error-boundary\",\n \"error-recovery\",\n \"graceful-degradation\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"result-type\",\n \"either-type\",\n \"error-handling\",\n \"railway-oriented-programming\",\n \"typed-errors\",\n \"flat-map\",\n \"and-then\",\n \"try-catch\",\n \"discriminated-union\",\n \"neverthrow\",\n \"fp-ts\",\n \"error-as-value\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"file-upload\",\n \"drag-drop\",\n \"react-dropzone\",\n \"uppy\",\n \"tus-protocol\",\n \"s3-presigned\",\n \"multipart-upload\",\n \"file-validation\",\n \"progress-tracking\",\n \"accessibility\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"image-preview\",\n \"canvas-api\",\n \"image-resize\",\n \"image-compression\",\n \"exif-orientation\",\n \"object-url\",\n \"thumbnail\",\n \"blob\",\n \"file-api\",\n \"client-side-processing\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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-forms\",\n tags: [\"forms\", \"react-hook-form\", \"use-form\", \"use-field-array\", \"controller\", \"validation\"],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-forms-vee-validate\",\n reason: \"react-hook-form is React-only, vee-validate is Vue-only\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Best React form library\",\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"React Hook Form is React only\",\n },\n ],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-forms-react-hook-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-forms\",\n tags: [\n \"forms\",\n \"vee-validate\",\n \"vue\",\n \"use-form\",\n \"use-field\",\n \"define-field\",\n \"use-field-array\",\n \"validation\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-forms-react-hook-form\",\n reason: \"react-hook-form is React-only, vee-validate is Vue-only\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Vue community standard form validation\",\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-framework-nuxt\"],\n needsAny: true,\n reason: \"VeeValidate is Vue only\",\n },\n ],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"zod\",\n \"validation\",\n \"schema\",\n \"typescript\",\n \"type-inference\",\n \"runtime-validation\",\n \"zod-v3\",\n \"zod-v4\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Type-safe validation for forms and APIs\",\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"angular\",\n \"angular-19\",\n \"standalone\",\n \"signals\",\n \"linked-signal\",\n \"resource\",\n \"components\",\n \"control-flow\",\n \"dependency-injection\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-remix\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nuxt\",\n reason: \"Frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-remix\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nuxt\",\n purpose: \"Frontend Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-framework-angular-standalone\",\n },\n \"web-framework-nextjs-app-router\": {\n id: \"web-framework-nextjs-app-router\",\n slug: \"nextjs-app-router\",\n displayName: \"Next.js App Router\",\n description: \"Next.js App Router\",\n usageGuidance:\n \"Use when building Next.js apps with App Router, Server/Client Components, or streaming.\",\n category: \"web-framework\",\n tags: [\n \"nextjs\",\n \"app-router\",\n \"server-components\",\n \"streaming\",\n \"suspense\",\n \"ssr\",\n \"ssg\",\n \"routing\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-remix\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nuxt\",\n reason: \"Frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-remix\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nuxt\",\n purpose: \"Frontend Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-framework-nextjs-app-router\",\n },\n \"web-framework-nextjs-server-actions\": {\n id: \"web-framework-nextjs-server-actions\",\n slug: \"nextjs-server-actions\",\n displayName: \"Next.js Server Actions\",\n description: \"Next.js Server Actions\",\n usageGuidance:\n \"Use when implementing Server Actions for mutations, revalidation, or form handling.\",\n category: \"web-framework\",\n tags: [\"nextjs\", \"server-actions\", \"mutations\", \"revalidation\", \"forms\", \"app-router\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-framework-nextjs-server-actions\",\n },\n \"web-framework-nuxt\": {\n id: \"web-framework-nuxt\",\n slug: \"nuxt\",\n displayName: \"Nuxt\",\n description: \"Nuxt 3 full-stack framework\",\n usageGuidance: \"Use when building Nuxt 3 apps with useFetch, useState, or server routes.\",\n category: \"web-framework\",\n tags: [\n \"nuxt\",\n \"nuxt3\",\n \"vue\",\n \"vue3\",\n \"ssr\",\n \"ssg\",\n \"routing\",\n \"server-routes\",\n \"nitro\",\n \"usefetch\",\n \"useasyncdata\",\n \"usestate\",\n \"auto-imports\",\n \"file-based-routing\",\n \"seo\",\n \"universal-rendering\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-remix\",\n reason: \"Frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-remix\",\n purpose: \"Frontend Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-framework-nuxt\",\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 tags: [\n \"react\",\n \"react-19\",\n \"components\",\n \"hooks\",\n \"use-action-state\",\n \"use-form-status\",\n \"use-optimistic\",\n \"use\",\n \"actions\",\n \"jsx\",\n \"tsx\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-remix\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nuxt\",\n reason: \"Frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-remix\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nuxt\",\n purpose: \"Frontend Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-framework-react\",\n },\n \"web-framework-remix\": {\n id: \"web-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-framework\",\n tags: [\n \"remix\",\n \"remix-v2\",\n \"react-router-v7\",\n \"react-router\",\n \"react\",\n \"full-stack\",\n \"ssr\",\n \"loaders\",\n \"actions\",\n \"client-action\",\n \"single-fetch\",\n \"progressive-enhancement\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nuxt\",\n reason: \"Frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nuxt\",\n purpose: \"Frontend Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-framework-remix\",\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 tags: [\n \"solidjs\",\n \"signals\",\n \"fine-grained-reactivity\",\n \"stores\",\n \"create-resource\",\n \"jsx\",\n \"suspense\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-remix\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nuxt\",\n reason: \"Frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-remix\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nuxt\",\n purpose: \"Frontend Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-framework-solidjs\",\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 tags: [\n \"vue\",\n \"vue-35\",\n \"composition-api\",\n \"script-setup\",\n \"composables\",\n \"reactivity\",\n \"define-model\",\n \"use-template-ref\",\n \"use-id\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-remix\",\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-nuxt\",\n reason: \"Frameworks are mutually exclusive\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nextjs-app-router\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-remix\",\n purpose: \"Frontend Framework\",\n },\n {\n skillId: \"web-framework-nuxt\",\n purpose: \"Frontend Framework\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"next-intl\",\n \"i18n\",\n \"internationalization\",\n \"localization\",\n \"translations\",\n \"icu\",\n \"next-intl-v4\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"react-intl\",\n \"formatjs\",\n \"i18n\",\n \"internationalization\",\n \"localization\",\n \"translations\",\n \"icu\",\n \"formatted-message\",\n \"use-intl\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"vue-i18n\",\n \"i18n\",\n \"internationalization\",\n \"localization\",\n \"translations\",\n \"vue-3\",\n \"composition-api\",\n \"pluralization\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-i18n-vue-i18n\",\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 tags: [\"msw\", \"mock-service-worker\", \"mocking\", \"test-data\", \"api-mocking\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Network-level API mocking for tests\",\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"bundle-optimization\",\n \"render-performance\",\n \"code-splitting\",\n \"lazy-loading\",\n \"memoization\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"offline-first\",\n \"indexeddb\",\n \"dexie\",\n \"idb\",\n \"local-first\",\n \"sync-queue\",\n \"conflict-resolution\",\n \"optimistic-ui\",\n \"pwa\",\n \"background-sync\",\n \"version-vector\",\n \"delta-sync\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"service-worker\",\n \"pwa\",\n \"offline-first\",\n \"cache-first\",\n \"network-first\",\n \"stale-while-revalidate\",\n \"cache-api\",\n \"precache\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"socket-io\",\n \"realtime\",\n \"bidirectional\",\n \"rooms\",\n \"namespaces\",\n \"acknowledgments\",\n \"connection-management\",\n \"reconnection\",\n \"authentication\",\n \"binary-data\",\n \"typescript\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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-realtime\",\n tags: [\n \"sse\",\n \"server-sent-events\",\n \"eventsource\",\n \"streaming\",\n \"realtime\",\n \"server-push\",\n \"fetch-streaming\",\n \"llm-streaming\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"websocket\",\n \"realtime\",\n \"bidirectional\",\n \"connection-management\",\n \"heartbeat\",\n \"reconnection\",\n \"binary-data\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-realtime-websockets\",\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: \"Use when fetching API data, caching responses, or managing server state.\",\n category: \"web-server-state\",\n tags: [\"react-query\", \"tanstack-query\", \"data-fetching\", \"rest-api\", \"caching\"],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-data-fetching-swr\",\n reason: \"Both solve server state caching\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Modern server state caching for React\",\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-nextjs-app-router\",\n \"web-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 discourages: [\n {\n skillId: \"web-data-fetching-swr\",\n reason: \"SWR is simpler but React Query has more features\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"jotai\", \"state-management\", \"atoms\", \"client-state\", \"atomic-state\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\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 discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 (use React Query) or simple UI state (use useState/Zustand).\",\n category: \"web-client-state\",\n tags: [\"mobx\", \"state-management\", \"observable\", \"reactive\", \"computed\", \"actions\"],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-pinia\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-zustand\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-ngrx-signalstore\",\n reason: \"NgRx SignalStore is Angular-only\",\n },\n ],\n isRecommended: false,\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-remix\",\n ],\n needsAny: true,\n reason: \"Our MobX skill teaches React 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 discourages: [\n {\n skillId: \"web-state-zustand\",\n reason: \"Using multiple React state libraries adds complexity\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"Using multiple React state libraries adds complexity\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"ngrx\",\n \"signalstore\",\n \"angular\",\n \"signals\",\n \"state-management\",\n \"client-state\",\n \"entities\",\n \"rxjs\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-zustand\",\n reason: \"NgRx SignalStore is Angular-only\",\n },\n {\n skillId: \"web-state-pinia\",\n reason: \"NgRx SignalStore is Angular-only\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"NgRx SignalStore is Angular-only\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"NgRx SignalStore is Angular-only\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Angular Signals-based state management\",\n requires: [\n {\n skillIds: [\"web-framework-angular-standalone\"],\n needsAny: false,\n reason: \"NgRx SignalStore is Angular only\",\n },\n ],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"pinia\", \"state-management\", \"vue\", \"vue3\", \"stores\", \"client-state\"],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-zustand\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-ngrx-signalstore\",\n reason: \"NgRx SignalStore is Angular-only\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Vue community standard state management\",\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-framework-nuxt\"],\n needsAny: true,\n reason: \"Pinia is Vue only\",\n },\n ],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"redux\",\n \"redux-toolkit\",\n \"rtk-query\",\n \"state-management\",\n \"client-state\",\n \"entity-adapter\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-pinia\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-zustand\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-ngrx-signalstore\",\n reason: \"NgRx SignalStore is Angular-only\",\n },\n ],\n isRecommended: false,\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Our Redux Toolkit skill covers 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 discourages: [\n {\n skillId: \"web-state-zustand\",\n reason: \"Using multiple React state libraries adds complexity\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"Using multiple React state libraries adds complexity\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\"zustand\", \"state-management\", \"stores\", \"client-state\"],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-pinia\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skillId: \"web-state-ngrx-signalstore\",\n reason: \"NgRx SignalStore is Angular-only\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Best-in-class React state management\",\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Our Zustand skill covers 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 discourages: [\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"Using multiple React state libraries adds complexity\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"Using multiple React state libraries adds complexity\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"cva\",\n \"class-variance-authority\",\n \"variants\",\n \"type-safe\",\n \"component-styling\",\n \"typescript\",\n \"css-classes\",\n \"design-system\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Type-safe variant management for Tailwind\",\n requires: [],\n alternatives: [\n {\n skillId: \"web-styling-scss-modules\",\n purpose: \"Styling\",\n },\n {\n skillId: \"web-styling-tailwind\",\n purpose: \"Styling\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-styling-cva\",\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: \"Use when styling with SCSS Modules, design tokens, or CSS cascade layers.\",\n category: \"web-styling\",\n tags: [\"scss\", \"css-modules\", \"cva\", \"design-tokens\", \"styling\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-styling-tailwind\",\n purpose: \"Styling\",\n },\n {\n skillId: \"web-styling-cva\",\n purpose: \"Styling\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 integrating Tailwind with React components.\",\n category: \"web-styling\",\n tags: [\n \"tailwind\",\n \"tailwindcss\",\n \"css\",\n \"utility-first\",\n \"responsive\",\n \"styling\",\n \"dark-mode\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Utility-first CSS framework\",\n requires: [],\n alternatives: [\n {\n skillId: \"web-styling-scss-modules\",\n purpose: \"Styling\",\n },\n {\n skillId: \"web-styling-cva\",\n purpose: \"Styling\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-styling-tailwind\",\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-testing\",\n tags: [\n \"cypress\",\n \"e2e\",\n \"end-to-end\",\n \"browser-testing\",\n \"component-testing\",\n \"data-cy\",\n \"cy-intercept\",\n \"cypress-axe\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-testing-playwright-e2e\",\n reason: \"Both are E2E frameworks\",\n },\n ],\n isRecommended: false,\n requires: [],\n alternatives: [\n {\n skillId: \"web-testing-playwright-e2e\",\n purpose: \"E2E Testing\",\n },\n ],\n discourages: [\n {\n skillId: \"web-testing-playwright-e2e\",\n reason:\n \"Cypress excels at interactive debugging; Playwright has better cross-browser support and CI performance\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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-testing\",\n tags: [\n \"playwright\",\n \"e2e\",\n \"end-to-end\",\n \"browser-testing\",\n \"visual-regression\",\n \"page-object-model\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-testing-cypress-e2e\",\n reason: \"Both are E2E frameworks\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Cross-browser E2E testing\",\n requires: [],\n alternatives: [\n {\n skillId: \"web-testing-cypress-e2e\",\n purpose: \"E2E Testing\",\n },\n ],\n discourages: [\n {\n skillId: \"web-testing-cypress-e2e\",\n reason:\n \"Cypress excels at interactive debugging; Playwright has better cross-browser support and CI performance\",\n },\n ],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"react-testing-library\",\n \"testing\",\n \"component-testing\",\n \"accessibility\",\n \"user-event\",\n \"queries\",\n \"async-testing\",\n \"render-hook\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-testing-vue-test-utils\",\n reason: \"Framework-specific testing libraries\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Standard React component testing\",\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-remix\",\n ],\n needsAny: true,\n reason: \"React Testing Library is React only\",\n },\n ],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-testing-react-testing-library\",\n },\n \"web-testing-vitest\": {\n id: \"web-testing-vitest\",\n slug: \"vitest\",\n displayName: \"Vitest\",\n description: \"Unit and integration testing\",\n usageGuidance: \"Use when writing unit tests, integration tests, or configuring Vitest.\",\n category: \"web-testing\",\n tags: [\n \"playwright\",\n \"vitest\",\n \"react-testing-library\",\n \"e2e\",\n \"unit-testing\",\n \"integration-testing\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Fast, modern test runner for all frameworks\",\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"vue-test-utils\",\n \"testing\",\n \"component-testing\",\n \"mount\",\n \"shallow-mount\",\n \"wrapper\",\n \"trigger\",\n \"set-value\",\n \"flush-promises\",\n \"composables\",\n \"pinia-testing\",\n ],\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-testing-react-testing-library\",\n reason: \"Framework-specific testing libraries\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Vue component testing library\",\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-framework-nuxt\"],\n needsAny: true,\n reason: \"Vue Test Utils is Vue only\",\n },\n ],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-testing-vue-test-utils\",\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: \"shared-tooling\",\n tags: [\n \"storybook\",\n \"component-development\",\n \"documentation\",\n \"visual-testing\",\n \"interaction-testing\",\n \"csf3\",\n \"autodocs\",\n \"controls\",\n \"design-system\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-tooling-storybook\",\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: \"Use when building accessible UI with Radix primitives.\",\n category: \"web-ui-components\",\n tags: [\n \"radix\",\n \"radix-ui\",\n \"primitives\",\n \"headless\",\n \"accessibility\",\n \"compound-components\",\n \"as-child\",\n \"dialog\",\n \"popover\",\n \"tooltip\",\n \"dropdown\",\n \"react-19\",\n \"rsc\",\n \"otp\",\n \"password-toggle\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Accessible unstyled component primitives\",\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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-components\",\n tags: [\"shadcn\", \"ui-components\", \"radix\", \"theming\", \"dark-mode\", \"forms\", \"accessibility\"],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: true,\n recommendedReason: \"Best-in-class React + Tailwind component library\",\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-nextjs-app-router\",\n \"web-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 discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"table\",\n \"datagrid\",\n \"sorting\",\n \"filtering\",\n \"pagination\",\n \"row-selection\",\n \"virtual-scrolling\",\n \"server-side\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-ui-tanstack-table\",\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 tags: [\n \"date-fns\",\n \"dates\",\n \"time\",\n \"formatting\",\n \"parsing\",\n \"timezone\",\n \"internationalization\",\n \"manipulation\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\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 tags: [\n \"native-javascript\",\n \"es2023\",\n \"es2024\",\n \"es2025\",\n \"lodash-alternative\",\n \"array-methods\",\n \"object-methods\",\n \"set-operations\",\n \"structured-clone\",\n \"optional-chaining\",\n \"immutable-arrays\",\n ],\n author: \"@vince\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n requiresSetup: [],\n providesSetupFor: [],\n path: \"skills/web-utilities-native-js\",\n },\n },\n suggestedStacks: [\n {\n id: \"nextjs-fullstack\",\n name: \"Next.js Fullstack\",\n description: \"React + Hono full-stack\",\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-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-cli-commander\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-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 \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"cli-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-cli-reviewing\"],\n \"cli-framework\": [\"cli-framework-cli-commander\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-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-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-cli-commander\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-cli-commander\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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 \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-cli-commander\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"pattern-scout\": {\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-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pattern-critique\": {\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-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-cli-commander\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-cli-commander\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n documentor: {\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-database\": [\"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 \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-cli-commander\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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 \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\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 \"api-ci-cd-github-actions\",\n \"cli-framework-cli-commander\",\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: \"angular-stack\",\n name: \"Modern Angular Stack\",\n description: \"Angular + Signals stack\",\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-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-reviewer\": {\n \"shared-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 \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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 \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"pattern-scout\": {\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pattern-critique\": {\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n documentor: {\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n },\n allSkillIds: [\n \"web-framework-angular-standalone\",\n \"web-state-ngrx-signalstore\",\n \"web-testing-vitest\",\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\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: \"nuxt-stack\",\n name: \"Nuxt Full-Stack\",\n description: \"Vue + Nuxt full-stack\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-nuxt\", \"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-nuxt\", \"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-nuxt\", \"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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-nuxt\", \"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-nuxt\", \"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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-nuxt\", \"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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-nuxt\", \"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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-nuxt\", \"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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n documentor: {\n \"web-framework\": [\"web-framework-nuxt\", \"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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n },\n allSkillIds: [\n \"web-framework-nuxt\",\n \"web-framework-vue-composition-api\",\n \"web-state-pinia\",\n \"web-testing-vitest\",\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\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: \"remix-stack\",\n name: \"Remix Full-Stack\",\n description: \"Remix + form-centric DX\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n documentor: {\n \"web-framework\": [\"web-framework-remix\", \"web-framework-react\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n },\n allSkillIds: [\n \"web-framework-remix\",\n \"web-framework-react\",\n \"web-testing-vitest\",\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\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: \"vue-stack\",\n name: \"Modern Vue Stack\",\n description: \"Vue + Pinia + Tailwind\",\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-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-reviewer\": {\n \"shared-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 \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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 \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"pattern-scout\": {\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pattern-critique\": {\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n documentor: {\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-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n },\n allSkillIds: [\n \"web-framework-vue-composition-api\",\n \"web-state-pinia\",\n \"web-testing-vitest\",\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\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: \"solidjs-stack\",\n name: \"SolidJS Stack\",\n description: \"SolidJS + Hono full-stack\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n documentor: {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"shared-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\n ],\n },\n },\n allSkillIds: [\n \"web-framework-solidjs\",\n \"web-testing-vitest\",\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-context-management\",\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 slugMap: {\n slugToId: {\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 \"github-actions\": \"api-ci-cd-github-actions\",\n drizzle: \"api-database-drizzle\",\n prisma: \"api-database-prisma\",\n \"resend-react-email\": \"api-email-resend-react-email\",\n \"setup-resend\": \"api-email-setup-resend\",\n \"posthog-flags\": \"api-flags-posthog-flags\",\n express: \"api-framework-express\",\n fastify: \"api-framework-fastify\",\n hono: \"api-framework-hono\",\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 \"cli-commander\": \"cli-framework-cli-commander\",\n \"oclif-ink\": \"cli-framework-oclif-ink\",\n \"setup-env\": \"infra-env-setup-env\",\n turborepo: \"infra-monorepo-turborepo\",\n \"setup-tooling\": \"infra-tooling-setup-tooling\",\n \"anti-over-engineering\": \"meta-methodology-anti-over-engineering\",\n \"context-management\": \"meta-methodology-context-management\",\n \"improvement-protocol\": \"meta-methodology-improvement-protocol\",\n \"investigation-requirements\": \"meta-methodology-investigation-requirements\",\n \"success-criteria\": \"meta-methodology-success-criteria\",\n \"write-verification\": \"meta-methodology-write-verification\",\n \"research-methodology\": \"meta-research-research-methodology\",\n \"cli-reviewing\": \"meta-reviewing-cli-reviewing\",\n reviewing: \"meta-reviewing-reviewing\",\n expo: \"mobile-framework-expo\",\n \"react-native\": \"mobile-framework-react-native\",\n \"auth-security\": \"security-auth-security\",\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 \"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 \"vee-validate\": \"web-forms-vee-validate\",\n \"zod-validation\": \"web-forms-zod-validation\",\n \"angular-standalone\": \"web-framework-angular-standalone\",\n \"nextjs-app-router\": \"web-framework-nextjs-app-router\",\n \"nextjs-server-actions\": \"web-framework-nextjs-server-actions\",\n nuxt: \"web-framework-nuxt\",\n react: \"web-framework-react\",\n remix: \"web-framework-remix\",\n solidjs: \"web-framework-solidjs\",\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 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-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 \"scss-modules\": \"web-styling-scss-modules\",\n tailwind: \"web-styling-tailwind\",\n \"cypress-e2e\": \"web-testing-cypress-e2e\",\n \"playwright-e2e\": \"web-testing-playwright-e2e\",\n \"react-testing-library\": \"web-testing-react-testing-library\",\n vitest: \"web-testing-vitest\",\n \"vue-test-utils\": \"web-testing-vue-test-utils\",\n storybook: \"web-tooling-storybook\",\n \"radix-ui\": \"web-ui-radix-ui\",\n \"shadcn-ui\": \"web-ui-shadcn-ui\",\n \"tanstack-table\": \"web-ui-tanstack-table\",\n \"date-fns\": \"web-utilities-date-fns\",\n \"native-js\": \"web-utilities-native-js\",\n },\n idToSlug: {\n \"api-analytics-posthog-analytics\": \"posthog-analytics\",\n \"api-analytics-setup-posthog\": \"setup-posthog\",\n \"api-auth-better-auth-drizzle-hono\": \"better-auth-drizzle-hono\",\n \"api-ci-cd-github-actions\": \"github-actions\",\n \"api-database-drizzle\": \"drizzle\",\n \"api-database-prisma\": \"prisma\",\n \"api-email-resend-react-email\": \"resend-react-email\",\n \"api-email-setup-resend\": \"setup-resend\",\n \"api-flags-posthog-flags\": \"posthog-flags\",\n \"api-framework-express\": \"express\",\n \"api-framework-fastify\": \"fastify\",\n \"api-framework-hono\": \"hono\",\n \"api-observability-axiom-pino-sentry\": \"axiom-pino-sentry\",\n \"api-observability-setup-axiom-pino-sentry\": \"setup-axiom-pino-sentry\",\n \"api-performance-api-performance\": \"api-performance\",\n \"cli-framework-cli-commander\": \"cli-commander\",\n \"cli-framework-oclif-ink\": \"oclif-ink\",\n \"infra-env-setup-env\": \"setup-env\",\n \"infra-monorepo-turborepo\": \"turborepo\",\n \"infra-tooling-setup-tooling\": \"setup-tooling\",\n \"meta-methodology-anti-over-engineering\": \"anti-over-engineering\",\n \"meta-methodology-context-management\": \"context-management\",\n \"meta-methodology-improvement-protocol\": \"improvement-protocol\",\n \"meta-methodology-investigation-requirements\": \"investigation-requirements\",\n \"meta-methodology-success-criteria\": \"success-criteria\",\n \"meta-methodology-write-verification\": \"write-verification\",\n \"meta-research-research-methodology\": \"research-methodology\",\n \"meta-reviewing-cli-reviewing\": \"cli-reviewing\",\n \"meta-reviewing-reviewing\": \"reviewing\",\n \"mobile-framework-expo\": \"expo\",\n \"mobile-framework-react-native\": \"react-native\",\n \"security-auth-security\": \"auth-security\",\n \"web-accessibility-web-accessibility\": \"web-accessibility\",\n \"web-animation-css-animations\": \"css-animations\",\n \"web-animation-framer-motion\": \"framer-motion\",\n \"web-animation-view-transitions\": \"view-transitions\",\n \"web-data-fetching-graphql-apollo\": \"graphql-apollo\",\n \"web-data-fetching-graphql-urql\": \"graphql-urql\",\n \"web-data-fetching-swr\": \"swr\",\n \"web-data-fetching-trpc\": \"trpc\",\n \"web-error-handling-error-boundaries\": \"error-boundaries\",\n \"web-error-handling-result-types\": \"result-types\",\n \"web-files-file-upload-patterns\": \"file-upload-patterns\",\n \"web-files-image-handling\": \"image-handling\",\n \"web-forms-react-hook-form\": \"react-hook-form\",\n \"web-forms-vee-validate\": \"vee-validate\",\n \"web-forms-zod-validation\": \"zod-validation\",\n \"web-framework-angular-standalone\": \"angular-standalone\",\n \"web-framework-nextjs-app-router\": \"nextjs-app-router\",\n \"web-framework-nextjs-server-actions\": \"nextjs-server-actions\",\n \"web-framework-nuxt\": \"nuxt\",\n \"web-framework-react\": \"react\",\n \"web-framework-remix\": \"remix\",\n \"web-framework-solidjs\": \"solidjs\",\n \"web-framework-vue-composition-api\": \"vue-composition-api\",\n \"web-i18n-next-intl\": \"next-intl\",\n \"web-i18n-react-intl\": \"react-intl\",\n \"web-i18n-vue-i18n\": \"vue-i18n\",\n \"web-mocks-msw\": \"msw\",\n \"web-performance-web-performance\": \"web-performance\",\n \"web-pwa-offline-first\": \"offline-first\",\n \"web-pwa-service-workers\": \"service-workers\",\n \"web-realtime-socket-io\": \"socket-io\",\n \"web-realtime-sse\": \"sse\",\n \"web-realtime-websockets\": \"websockets\",\n \"web-server-state-react-query\": \"react-query\",\n \"web-state-jotai\": \"jotai\",\n \"web-state-mobx\": \"mobx\",\n \"web-state-ngrx-signalstore\": \"ngrx-signalstore\",\n \"web-state-pinia\": \"pinia\",\n \"web-state-redux-toolkit\": \"redux-toolkit\",\n \"web-state-zustand\": \"zustand\",\n \"web-styling-cva\": \"cva\",\n \"web-styling-scss-modules\": \"scss-modules\",\n \"web-styling-tailwind\": \"tailwind\",\n \"web-testing-cypress-e2e\": \"cypress-e2e\",\n \"web-testing-playwright-e2e\": \"playwright-e2e\",\n \"web-testing-react-testing-library\": \"react-testing-library\",\n \"web-testing-vitest\": \"vitest\",\n \"web-testing-vue-test-utils\": \"vue-test-utils\",\n \"web-tooling-storybook\": \"storybook\",\n \"web-ui-radix-ui\": \"radix-ui\",\n \"web-ui-shadcn-ui\": \"shadcn-ui\",\n \"web-ui-tanstack-table\": \"tanstack-table\",\n \"web-utilities-date-fns\": \"date-fns\",\n \"web-utilities-native-js\": \"native-js\",\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 \"api-analytics\": [\n \"api-analytics-posthog-analytics\",\n \"api-analytics-setup-posthog\",\n \"api-flags-posthog-flags\",\n ],\n \"api-api\": [\"api-framework-express\", \"api-framework-fastify\", \"api-framework-hono\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-database\": [\"api-database-drizzle\", \"api-database-prisma\"],\n \"api-email\": [\"api-email-resend-react-email\", \"api-email-setup-resend\"],\n \"api-observability\": [\n \"api-observability-axiom-pino-sentry\",\n \"api-observability-setup-axiom-pino-sentry\",\n ],\n \"api-performance\": [\"api-performance-api-performance\"],\n \"cli-framework\": [\"cli-framework-cli-commander\", \"cli-framework-oclif-ink\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"shared-ci-cd\": [\"api-ci-cd-github-actions\"],\n \"shared-methodology\": [\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-context-management\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n ],\n \"shared-monorepo\": [\"infra-monorepo-turborepo\"],\n \"shared-research\": [\"meta-research-research-methodology\"],\n \"shared-reviewing\": [\"meta-reviewing-cli-reviewing\", \"meta-reviewing-reviewing\"],\n \"shared-security\": [\"security-auth-security\"],\n \"shared-tooling\": [\"infra-env-setup-env\", \"infra-tooling-setup-tooling\", \"web-tooling-storybook\"],\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-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-forms\": [\"web-forms-react-hook-form\", \"web-forms-vee-validate\", \"web-forms-zod-validation\"],\n \"web-framework\": [\n \"web-framework-angular-standalone\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-nextjs-server-actions\",\n \"web-framework-nuxt\",\n \"web-framework-react\",\n \"web-framework-remix\",\n \"web-framework-solidjs\",\n \"web-framework-vue-composition-api\",\n ],\n \"web-i18n\": [\"web-i18n-next-intl\", \"web-i18n-react-intl\", \"web-i18n-vue-i18n\"],\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-sse\", \"web-realtime-websockets\"],\n \"web-server-state\": [\n \"web-data-fetching-graphql-apollo\",\n \"web-data-fetching-graphql-urql\",\n \"web-data-fetching-swr\",\n \"web-data-fetching-trpc\",\n \"web-server-state-react-query\",\n ],\n \"web-styling\": [\"web-styling-cva\", \"web-styling-scss-modules\", \"web-styling-tailwind\"],\n \"web-testing\": [\n \"web-testing-cypress-e2e\",\n \"web-testing-playwright-e2e\",\n \"web-testing-react-testing-library\",\n \"web-testing-vitest\",\n \"web-testing-vue-test-utils\",\n ],\n \"web-ui-components\": [\"web-ui-radix-ui\", \"web-ui-shadcn-ui\", \"web-ui-tanstack-table\"],\n \"web-utilities\": [\"web-utilities-date-fns\", \"web-utilities-native-js\"],\n} as Record<Category, readonly SkillId[]>;\n\nexport const CATEGORIES_BY_DOMAIN: Record<Domain, readonly Category[]> = {\n api: [\n \"api-analytics\",\n \"api-api\",\n \"api-auth\",\n \"api-database\",\n \"api-email\",\n \"api-observability\",\n \"api-performance\",\n ],\n cli: [\"cli-framework\"],\n mobile: [\"mobile-framework\"],\n shared: [\n \"shared-ci-cd\",\n \"shared-methodology\",\n \"shared-monorepo\",\n \"shared-research\",\n \"shared-reviewing\",\n \"shared-security\",\n \"shared-tooling\",\n ],\n web: [\n \"web-accessibility\",\n \"web-animation\",\n \"web-client-state\",\n \"web-error-handling\",\n \"web-file-upload\",\n \"web-files\",\n \"web-forms\",\n \"web-framework\",\n \"web-i18n\",\n \"web-mocking\",\n \"web-performance\",\n \"web-pwa\",\n \"web-realtime\",\n \"web-server-state\",\n \"web-styling\",\n \"web-testing\",\n \"web-ui-components\",\n \"web-utilities\",\n ],\n} as Record<Domain, readonly Category[]>;\n","import { BUILT_IN_MATRIX } from \"../../types/generated/matrix\";\nimport type {\n MergedSkillsMatrix,\n ResolvedSkill,\n ResolvedStack,\n SkillId,\n SkillSlug,\n} 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/** Merge local/custom skills on top of BUILT_IN_MATRIX. Called once on CLI startup. */\nexport function initializeMatrix(merged: MergedSkillsMatrix): void {\n matrix = merged;\n}\n\n/** Asserting skill lookup by ID — throws if not found. */\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/** Asserting skill lookup by slug — resolves slug to ID, throws if not found. */\nexport function getSkillBySlug(slug: SkillSlug): ResolvedSkill {\n const id = matrix.slugMap.slugToId[slug];\n if (!id) throw new Error(`Skill not found for slug: ${slug}`);\n return getSkillById(id);\n}\n\n/** Optional stack lookup by ID. */\nexport function findStack(stackId: string): ResolvedStack | undefined {\n return matrix.suggestedStacks.find((s) => s.id === stackId);\n}\n"],"mappings":"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","names":[]}
|