agents-inc 0.149.2 → 0.151.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 +2287 -0
- package/LICENSE +21 -0
- package/README.md +136 -19
- package/assets/demo.gif +0 -0
- package/assets/demo.tape +266 -0
- package/assets/logo.svg +75 -0
- package/dist/chunk-2RSNKBXC.js +84 -0
- package/dist/chunk-2RSNKBXC.js.map +1 -0
- package/dist/chunk-3LIU2ZEF.js +1355 -0
- package/dist/chunk-3LIU2ZEF.js.map +1 -0
- package/dist/chunk-3XFUQ6OL.js +68 -0
- package/dist/chunk-3XFUQ6OL.js.map +1 -0
- package/dist/chunk-3YGUHWLR.js +258 -0
- package/dist/chunk-3YGUHWLR.js.map +1 -0
- package/dist/chunk-44LLPS2N.js +1135 -0
- package/dist/chunk-44LLPS2N.js.map +1 -0
- package/dist/chunk-4R6PGHQQ.js +300 -0
- package/dist/chunk-4R6PGHQQ.js.map +1 -0
- package/dist/chunk-5V2O6C3T.js +112 -0
- package/dist/chunk-5V2O6C3T.js.map +1 -0
- package/dist/chunk-6RBQBOBS.js +287 -0
- package/dist/chunk-6RBQBOBS.js.map +1 -0
- package/dist/chunk-7QIHKQL5.js +181 -0
- package/dist/chunk-7QIHKQL5.js.map +1 -0
- package/dist/chunk-BNE4HHIH.js +28 -0
- package/dist/chunk-BNE4HHIH.js.map +1 -0
- package/dist/chunk-C55DN7GE.js +35 -0
- package/dist/chunk-C55DN7GE.js.map +1 -0
- package/dist/chunk-DAG2ULNF.js +125 -0
- package/dist/chunk-DAG2ULNF.js.map +1 -0
- package/dist/chunk-DG2NGZ7S.js +10929 -0
- package/dist/chunk-DG2NGZ7S.js.map +1 -0
- package/dist/chunk-DIBCRIMR.js +36 -0
- package/dist/chunk-DIBCRIMR.js.map +1 -0
- package/dist/chunk-DUVWGO6E.js +54 -0
- package/dist/chunk-DUVWGO6E.js.map +1 -0
- package/dist/chunk-EKWAUOQB.js +96 -0
- package/dist/chunk-EKWAUOQB.js.map +1 -0
- package/dist/chunk-ES3NJZON.js +31 -0
- package/dist/chunk-ES3NJZON.js.map +1 -0
- package/dist/chunk-EVXG3X6G.js +179 -0
- package/dist/chunk-EVXG3X6G.js.map +1 -0
- package/dist/chunk-EZ7STXUV.js +349 -0
- package/dist/chunk-EZ7STXUV.js.map +1 -0
- package/dist/chunk-FYPUUYSG.js +31 -0
- package/dist/chunk-FYPUUYSG.js.map +1 -0
- package/dist/chunk-GYG5SE2D.js +81 -0
- package/dist/chunk-GYG5SE2D.js.map +1 -0
- package/dist/chunk-I3XKEGHM.js +16383 -0
- package/dist/chunk-I3XKEGHM.js.map +1 -0
- package/dist/chunk-IHO75PMZ.js +40 -0
- package/dist/chunk-IHO75PMZ.js.map +1 -0
- package/dist/chunk-IOJR5TOY.js +47 -0
- package/dist/chunk-IOJR5TOY.js.map +1 -0
- package/dist/chunk-K3OU6TGX.js +77 -0
- package/dist/chunk-K3OU6TGX.js.map +1 -0
- package/dist/chunk-KIR7VYQD.js +63 -0
- package/dist/chunk-KIR7VYQD.js.map +1 -0
- package/dist/chunk-KOPEM3Q7.js +27 -0
- package/dist/chunk-KOPEM3Q7.js.map +1 -0
- package/dist/chunk-KSZ6PCY4.js +43 -0
- package/dist/chunk-KSZ6PCY4.js.map +1 -0
- package/dist/chunk-LAXAQ3PZ.js +235 -0
- package/dist/chunk-LAXAQ3PZ.js.map +1 -0
- package/dist/chunk-LYYXX2W5.js +87 -0
- package/dist/chunk-LYYXX2W5.js.map +1 -0
- package/dist/chunk-NGLQ5W7U.js +339 -0
- package/dist/chunk-NGLQ5W7U.js.map +1 -0
- package/dist/chunk-NHCGC6DG.js +111 -0
- package/dist/chunk-NHCGC6DG.js.map +1 -0
- package/dist/chunk-NIKUMXE7.js +24 -0
- package/dist/chunk-NIKUMXE7.js.map +1 -0
- package/dist/chunk-NM3EDGB5.js +300 -0
- package/dist/chunk-NM3EDGB5.js.map +1 -0
- package/dist/chunk-O5ASLZ2K.js +270 -0
- package/dist/chunk-O5ASLZ2K.js.map +1 -0
- package/dist/chunk-OJIESW5B.js +174 -0
- package/dist/chunk-OJIESW5B.js.map +1 -0
- package/dist/chunk-OZZGXBCN.js +15 -0
- package/dist/chunk-OZZGXBCN.js.map +1 -0
- package/dist/chunk-P3PN5SVI.js +27 -0
- package/dist/chunk-P3PN5SVI.js.map +1 -0
- package/dist/chunk-P56WJ5FA.js +50 -0
- package/dist/chunk-P56WJ5FA.js.map +1 -0
- package/dist/chunk-PG4G4IIK.js +24 -0
- package/dist/chunk-PG4G4IIK.js.map +1 -0
- package/dist/chunk-PV2HNW4I.js +382 -0
- package/dist/chunk-PV2HNW4I.js.map +1 -0
- package/dist/chunk-QQLRX4KI.js +41 -0
- package/dist/chunk-QQLRX4KI.js.map +1 -0
- package/dist/chunk-QTFQEYDA.js +789 -0
- package/dist/chunk-QTFQEYDA.js.map +1 -0
- package/dist/chunk-RBHYLCUB.js +31 -0
- package/dist/chunk-RBHYLCUB.js.map +1 -0
- package/dist/chunk-SHHOMVWC.js +62 -0
- package/dist/chunk-SHHOMVWC.js.map +1 -0
- package/dist/chunk-SI5FOARI.js +42 -0
- package/dist/chunk-SI5FOARI.js.map +1 -0
- package/dist/chunk-SYUOXSPU.js +510 -0
- package/dist/chunk-SYUOXSPU.js.map +1 -0
- package/dist/chunk-THKIOI32.js +939 -0
- package/dist/chunk-THKIOI32.js.map +1 -0
- package/dist/chunk-TVHRMRD3.js +6014 -0
- package/dist/chunk-TVHRMRD3.js.map +1 -0
- package/dist/chunk-TYJLR32W.js +128 -0
- package/dist/chunk-TYJLR32W.js.map +1 -0
- package/dist/chunk-UFURYGD3.js +20 -0
- package/dist/chunk-UFURYGD3.js.map +1 -0
- package/dist/chunk-UTFN6UJS.js +253 -0
- package/dist/chunk-UTFN6UJS.js.map +1 -0
- package/dist/chunk-V7QOSGQA.js +298 -0
- package/dist/chunk-V7QOSGQA.js.map +1 -0
- package/dist/chunk-VEP23B5W.js +27 -0
- package/dist/chunk-VEP23B5W.js.map +1 -0
- package/dist/chunk-VG2TVBFN.js +52 -0
- package/dist/chunk-VG2TVBFN.js.map +1 -0
- package/dist/chunk-WFWCZEMS.js +92 -0
- package/dist/chunk-WFWCZEMS.js.map +1 -0
- package/dist/chunk-WK4J2CHH.js +430 -0
- package/dist/chunk-WK4J2CHH.js.map +1 -0
- package/dist/chunk-XA57SX4T.js +115 -0
- package/dist/chunk-XA57SX4T.js.map +1 -0
- package/dist/chunk-Y4CXDA3I.js +181 -0
- package/dist/chunk-Y4CXDA3I.js.map +1 -0
- package/dist/chunk-YA4QQKKE.js +51 -0
- package/dist/chunk-YA4QQKKE.js.map +1 -0
- package/dist/chunk-YBVA7GPW.js +27 -0
- package/dist/chunk-YBVA7GPW.js.map +1 -0
- package/dist/chunk-YU2VGX5R.js +4205 -0
- package/dist/chunk-YU2VGX5R.js.map +1 -0
- package/dist/commands/build/marketplace.js +250 -0
- package/dist/commands/build/marketplace.js.map +1 -0
- package/dist/commands/build/plugins.js +176 -0
- package/dist/commands/build/plugins.js.map +1 -0
- package/dist/commands/compile.js +331 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/doctor.js +475 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/edit.js +765 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/eject.js +393 -0
- package/dist/commands/eject.js.map +1 -0
- package/dist/commands/import/skill.js +349 -0
- package/dist/commands/import/skill.js.map +1 -0
- package/dist/commands/init.js +66 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.js +115 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/new/agent.js +304 -0
- package/dist/commands/new/agent.js.map +1 -0
- package/dist/commands/new/marketplace.js +315 -0
- package/dist/commands/new/marketplace.js.map +1 -0
- package/dist/commands/new/skill.js +28 -0
- package/dist/commands/new/skill.js.map +1 -0
- package/dist/commands/search.js +176 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/uninstall.js +570 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.js +368 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.js +581 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/components/common/confirm.js +9 -0
- package/dist/components/common/confirm.js.map +1 -0
- package/dist/components/common/confirm.test.js +203 -0
- package/dist/components/common/confirm.test.js.map +1 -0
- package/dist/components/common/prompt-confirm.js +11 -0
- package/dist/components/common/prompt-confirm.js.map +1 -0
- package/dist/components/common/select-list.js +11 -0
- package/dist/components/common/select-list.js.map +1 -0
- package/dist/components/common/spinner.js +9 -0
- package/dist/components/common/spinner.js.map +1 -0
- package/dist/components/wizard/category-grid.js +16 -0
- package/dist/components/wizard/category-grid.js.map +1 -0
- package/dist/components/wizard/category-grid.test.js +1253 -0
- package/dist/components/wizard/category-grid.test.js.map +1 -0
- package/dist/components/wizard/checkbox-grid.js +14 -0
- package/dist/components/wizard/checkbox-grid.js.map +1 -0
- package/dist/components/wizard/checkbox-grid.test.js +264 -0
- package/dist/components/wizard/checkbox-grid.test.js.map +1 -0
- package/dist/components/wizard/domain-selection.js +22 -0
- package/dist/components/wizard/domain-selection.js.map +1 -0
- package/dist/components/wizard/run-wizard-session.js +47 -0
- package/dist/components/wizard/run-wizard-session.js.map +1 -0
- package/dist/components/wizard/scroll-affordance.js +10 -0
- package/dist/components/wizard/scroll-affordance.js.map +1 -0
- package/dist/components/wizard/search-modal.js +14 -0
- package/dist/components/wizard/search-modal.js.map +1 -0
- package/dist/components/wizard/search-modal.test.js +212 -0
- package/dist/components/wizard/search-modal.test.js.map +1 -0
- package/dist/components/wizard/selection-card.js +10 -0
- package/dist/components/wizard/selection-card.js.map +1 -0
- package/dist/components/wizard/skill-agent-summary.js +16 -0
- package/dist/components/wizard/skill-agent-summary.js.map +1 -0
- package/dist/components/wizard/source-grid.js +23 -0
- package/dist/components/wizard/source-grid.js.map +1 -0
- package/dist/components/wizard/source-grid.test.js +1094 -0
- package/dist/components/wizard/source-grid.test.js.map +1 -0
- package/dist/components/wizard/stack-selection.js +20 -0
- package/dist/components/wizard/stack-selection.js.map +1 -0
- package/dist/components/wizard/step-agents.js +22 -0
- package/dist/components/wizard/step-agents.js.map +1 -0
- package/dist/components/wizard/step-agents.test.js +204 -0
- package/dist/components/wizard/step-agents.test.js.map +1 -0
- package/dist/components/wizard/step-build.js +22 -0
- package/dist/components/wizard/step-build.js.map +1 -0
- package/dist/components/wizard/step-build.test.js +552 -0
- package/dist/components/wizard/step-build.test.js.map +1 -0
- package/dist/components/wizard/step-confirm.js +21 -0
- package/dist/components/wizard/step-confirm.js.map +1 -0
- package/dist/components/wizard/step-confirm.test.js +744 -0
- package/dist/components/wizard/step-confirm.test.js.map +1 -0
- package/dist/components/wizard/step-settings.js +19 -0
- package/dist/components/wizard/step-settings.js.map +1 -0
- package/dist/components/wizard/step-settings.test.js +244 -0
- package/dist/components/wizard/step-settings.test.js.map +1 -0
- package/dist/components/wizard/step-sources.js +28 -0
- package/dist/components/wizard/step-sources.js.map +1 -0
- package/dist/components/wizard/step-sources.test.js +155 -0
- package/dist/components/wizard/step-sources.test.js.map +1 -0
- package/dist/components/wizard/step-stack.js +21 -0
- package/dist/components/wizard/step-stack.js.map +1 -0
- package/dist/components/wizard/step-stack.test.js +262 -0
- package/dist/components/wizard/step-stack.test.js.map +1 -0
- package/dist/components/wizard/summary-panel.js +20 -0
- package/dist/components/wizard/summary-panel.js.map +1 -0
- package/dist/components/wizard/summary-panel.test.js +317 -0
- package/dist/components/wizard/summary-panel.test.js.map +1 -0
- package/dist/components/wizard/toast.js +10 -0
- package/dist/components/wizard/toast.js.map +1 -0
- package/dist/components/wizard/wizard-layout.js +26 -0
- package/dist/components/wizard/wizard-layout.js.map +1 -0
- package/dist/components/wizard/wizard-layout.test.js +200 -0
- package/dist/components/wizard/wizard-layout.test.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.js +20 -0
- package/dist/components/wizard/wizard-tabs.js.map +1 -0
- package/dist/components/wizard/wizard-tabs.test.js +290 -0
- package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
- package/dist/components/wizard/wizard.js +48 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/config-exports.js +20 -0
- package/dist/config-exports.js.map +1 -0
- package/dist/copy-local-skills-UPA2GUZV.js +15 -0
- package/dist/copy-local-skills-UPA2GUZV.js.map +1 -0
- package/dist/dist-VNJNNJK7.js +550 -0
- package/dist/dist-VNJNNJK7.js.map +1 -0
- package/dist/hooks/init.js +90 -0
- package/dist/hooks/init.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/load-agent-defs-SB4XAOVB.js +16 -0
- package/dist/load-agent-defs-SB4XAOVB.js.map +1 -0
- package/dist/loader-E2ERJYVA.js +23 -0
- package/dist/loader-E2ERJYVA.js.map +1 -0
- package/dist/magic-string.es-5TV73NJD.js +1316 -0
- package/dist/magic-string.es-5TV73NJD.js.map +1 -0
- package/dist/recompile-project-agents-U4ZY2GDX.js +20 -0
- package/dist/recompile-project-agents-U4ZY2GDX.js.map +1 -0
- package/dist/source-loader-5UNRU7EZ.js +20 -0
- package/dist/source-loader-5UNRU7EZ.js.map +1 -0
- package/dist/source-manager-3O54SIIB.js +18 -0
- package/dist/source-manager-3O54SIIB.js.map +1 -0
- package/dist/src/agents/_templates/agent.liquid +161 -0
- package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
- package/dist/src/agents/_templates/methodologies/context-management.liquid +162 -0
- package/dist/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
- package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
- package/dist/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
- package/dist/src/agents/_templates/methodologies/write-verification.liquid +43 -0
- package/dist/src/agents/developer/ai-developer/critical-reminders.md +54 -0
- package/dist/src/agents/developer/ai-developer/critical-requirements.md +59 -0
- package/dist/src/agents/developer/ai-developer/identity.md +51 -0
- package/dist/src/agents/developer/ai-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/ai-developer/output.md +366 -0
- package/dist/src/agents/developer/ai-developer/playbook.md +335 -0
- package/dist/src/agents/developer/api-developer/critical-reminders.md +46 -0
- package/dist/src/agents/developer/api-developer/critical-requirements.md +44 -0
- package/dist/src/agents/developer/api-developer/identity.md +49 -0
- package/dist/src/agents/developer/api-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/api-developer/output.md +432 -0
- package/dist/src/agents/developer/api-developer/playbook.md +352 -0
- package/dist/src/agents/developer/cli-developer/critical-reminders.md +51 -0
- package/dist/src/agents/developer/cli-developer/critical-requirements.md +51 -0
- package/dist/src/agents/developer/cli-developer/identity.md +51 -0
- package/dist/src/agents/developer/cli-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/cli-developer/output.md +285 -0
- package/dist/src/agents/developer/cli-developer/playbook.md +386 -0
- package/dist/src/agents/developer/web-architecture/critical-reminders.md +48 -0
- package/dist/src/agents/developer/web-architecture/critical-requirements.md +65 -0
- package/dist/src/agents/developer/web-architecture/identity.md +64 -0
- package/dist/src/agents/developer/web-architecture/metadata.yaml +12 -0
- package/dist/src/agents/developer/web-architecture/output.md +449 -0
- package/dist/src/agents/developer/web-architecture/playbook.md +481 -0
- package/dist/src/agents/developer/web-developer/critical-reminders.md +40 -0
- package/dist/src/agents/developer/web-developer/critical-requirements.md +39 -0
- package/dist/src/agents/developer/web-developer/identity.md +32 -0
- package/dist/src/agents/developer/web-developer/metadata.yaml +12 -0
- package/dist/src/agents/developer/web-developer/output.md +323 -0
- package/dist/src/agents/developer/web-developer/playbook.md +349 -0
- package/dist/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
- package/dist/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
- package/dist/src/agents/meta/agent-summoner/identity.md +34 -0
- package/dist/src/agents/meta/agent-summoner/metadata.yaml +12 -0
- package/dist/src/agents/meta/agent-summoner/output.md +296 -0
- package/dist/src/agents/meta/agent-summoner/playbook.md +1469 -0
- package/dist/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
- package/dist/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
- package/dist/src/agents/meta/codex-keeper/identity.md +45 -0
- package/dist/src/agents/meta/codex-keeper/metadata.yaml +12 -0
- package/dist/src/agents/meta/codex-keeper/output.md +384 -0
- package/dist/src/agents/meta/codex-keeper/playbook.md +1183 -0
- package/dist/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
- package/dist/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
- package/dist/src/agents/meta/convention-keeper/identity.md +33 -0
- package/dist/src/agents/meta/convention-keeper/metadata.yaml +12 -0
- package/dist/src/agents/meta/convention-keeper/output.md +206 -0
- package/dist/src/agents/meta/convention-keeper/playbook.md +180 -0
- package/dist/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
- package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/dist/src/agents/meta/skill-summoner/identity.md +31 -0
- package/dist/src/agents/meta/skill-summoner/metadata.yaml +13 -0
- package/dist/src/agents/meta/skill-summoner/output.md +390 -0
- package/dist/src/agents/meta/skill-summoner/playbook.md +1457 -0
- package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
- package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
- package/dist/src/agents/pattern/pattern-scout/identity.md +25 -0
- package/dist/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
- package/dist/src/agents/pattern/pattern-scout/output.md +290 -0
- package/dist/src/agents/pattern/pattern-scout/playbook.md +1806 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
- package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
- package/dist/src/agents/pattern/web-pattern-critique/identity.md +41 -0
- package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
- package/dist/src/agents/pattern/web-pattern-critique/output.md +314 -0
- package/dist/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
- package/dist/src/agents/planning/api-pm/critical-reminders.md +48 -0
- package/dist/src/agents/planning/api-pm/critical-requirements.md +41 -0
- package/dist/src/agents/planning/api-pm/identity.md +39 -0
- package/dist/src/agents/planning/api-pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/api-pm/output.md +475 -0
- package/dist/src/agents/planning/api-pm/playbook.md +129 -0
- package/dist/src/agents/planning/web-pm/critical-reminders.md +36 -0
- package/dist/src/agents/planning/web-pm/critical-requirements.md +32 -0
- package/dist/src/agents/planning/web-pm/identity.md +26 -0
- package/dist/src/agents/planning/web-pm/metadata.yaml +12 -0
- package/dist/src/agents/planning/web-pm/output.md +314 -0
- package/dist/src/agents/planning/web-pm/playbook.md +318 -0
- package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/dist/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
- package/dist/src/agents/researcher/api-researcher/identity.md +71 -0
- package/dist/src/agents/researcher/api-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/api-researcher/output.md +254 -0
- package/dist/src/agents/researcher/api-researcher/playbook.md +201 -0
- package/dist/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
- package/dist/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
- package/dist/src/agents/researcher/web-researcher/identity.md +69 -0
- package/dist/src/agents/researcher/web-researcher/metadata.yaml +10 -0
- package/dist/src/agents/researcher/web-researcher/output.md +241 -0
- package/dist/src/agents/researcher/web-researcher/playbook.md +217 -0
- package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
- package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
- package/dist/src/agents/reviewer/ai-reviewer/identity.md +51 -0
- package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
- package/dist/src/agents/reviewer/ai-reviewer/output.md +395 -0
- package/dist/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
- package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
- package/dist/src/agents/reviewer/api-reviewer/identity.md +51 -0
- package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/api-reviewer/output.md +343 -0
- package/dist/src/agents/reviewer/api-reviewer/playbook.md +288 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
- package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
- package/dist/src/agents/reviewer/cli-reviewer/identity.md +44 -0
- package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/cli-reviewer/output.md +414 -0
- package/dist/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
- package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
- package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
- package/dist/src/agents/reviewer/infra-reviewer/identity.md +53 -0
- package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
- package/dist/src/agents/reviewer/infra-reviewer/output.md +364 -0
- package/dist/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
- package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
- package/dist/src/agents/reviewer/web-reviewer/identity.md +40 -0
- package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
- package/dist/src/agents/reviewer/web-reviewer/output.md +333 -0
- package/dist/src/agents/reviewer/web-reviewer/playbook.md +156 -0
- package/dist/src/agents/tester/api-tester/critical-reminders.md +41 -0
- package/dist/src/agents/tester/api-tester/critical-requirements.md +41 -0
- package/dist/src/agents/tester/api-tester/identity.md +47 -0
- package/dist/src/agents/tester/api-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/api-tester/output.md +284 -0
- package/dist/src/agents/tester/api-tester/playbook.md +275 -0
- package/dist/src/agents/tester/cli-tester/critical-reminders.md +36 -0
- package/dist/src/agents/tester/cli-tester/critical-requirements.md +36 -0
- package/dist/src/agents/tester/cli-tester/identity.md +43 -0
- package/dist/src/agents/tester/cli-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/cli-tester/output.md +313 -0
- package/dist/src/agents/tester/cli-tester/playbook.md +221 -0
- package/dist/src/agents/tester/web-tester/critical-reminders.md +31 -0
- package/dist/src/agents/tester/web-tester/critical-requirements.md +28 -0
- package/dist/src/agents/tester/web-tester/identity.md +41 -0
- package/dist/src/agents/tester/web-tester/metadata.yaml +12 -0
- package/dist/src/agents/tester/web-tester/output.md +321 -0
- package/dist/src/agents/tester/web-tester/playbook.md +428 -0
- package/dist/stores/d227-same-scope-tombstone-duplicate.test.js +118 -0
- package/dist/stores/d227-same-scope-tombstone-duplicate.test.js.map +1 -0
- package/dist/stores/wizard-store.js +21 -0
- package/dist/stores/wizard-store.js.map +1 -0
- package/dist/stores/wizard-store.test.js +3053 -0
- package/dist/stores/wizard-store.test.js.map +1 -0
- package/package.json +130 -12
- package/src/agents/_templates/agent.liquid +161 -0
- package/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
- package/src/agents/_templates/methodologies/context-management.liquid +162 -0
- package/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
- package/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
- package/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
- package/src/agents/_templates/methodologies/write-verification.liquid +43 -0
- package/src/agents/developer/ai-developer/critical-reminders.md +54 -0
- package/src/agents/developer/ai-developer/critical-requirements.md +59 -0
- package/src/agents/developer/ai-developer/identity.md +51 -0
- package/src/agents/developer/ai-developer/metadata.yaml +12 -0
- package/src/agents/developer/ai-developer/output.md +366 -0
- package/src/agents/developer/ai-developer/playbook.md +335 -0
- package/src/agents/developer/api-developer/critical-reminders.md +46 -0
- package/src/agents/developer/api-developer/critical-requirements.md +44 -0
- package/src/agents/developer/api-developer/identity.md +49 -0
- package/src/agents/developer/api-developer/metadata.yaml +12 -0
- package/src/agents/developer/api-developer/output.md +432 -0
- package/src/agents/developer/api-developer/playbook.md +352 -0
- package/src/agents/developer/cli-developer/critical-reminders.md +51 -0
- package/src/agents/developer/cli-developer/critical-requirements.md +51 -0
- package/src/agents/developer/cli-developer/identity.md +51 -0
- package/src/agents/developer/cli-developer/metadata.yaml +12 -0
- package/src/agents/developer/cli-developer/output.md +285 -0
- package/src/agents/developer/cli-developer/playbook.md +386 -0
- package/src/agents/developer/web-architecture/critical-reminders.md +48 -0
- package/src/agents/developer/web-architecture/critical-requirements.md +65 -0
- package/src/agents/developer/web-architecture/identity.md +64 -0
- package/src/agents/developer/web-architecture/metadata.yaml +12 -0
- package/src/agents/developer/web-architecture/output.md +449 -0
- package/src/agents/developer/web-architecture/playbook.md +481 -0
- package/src/agents/developer/web-developer/critical-reminders.md +40 -0
- package/src/agents/developer/web-developer/critical-requirements.md +39 -0
- package/src/agents/developer/web-developer/identity.md +32 -0
- package/src/agents/developer/web-developer/metadata.yaml +12 -0
- package/src/agents/developer/web-developer/output.md +323 -0
- package/src/agents/developer/web-developer/playbook.md +349 -0
- package/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
- package/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
- package/src/agents/meta/agent-summoner/identity.md +34 -0
- package/src/agents/meta/agent-summoner/metadata.yaml +12 -0
- package/src/agents/meta/agent-summoner/output.md +296 -0
- package/src/agents/meta/agent-summoner/playbook.md +1469 -0
- package/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
- package/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
- package/src/agents/meta/codex-keeper/identity.md +45 -0
- package/src/agents/meta/codex-keeper/metadata.yaml +12 -0
- package/src/agents/meta/codex-keeper/output.md +384 -0
- package/src/agents/meta/codex-keeper/playbook.md +1183 -0
- package/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
- package/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
- package/src/agents/meta/convention-keeper/identity.md +33 -0
- package/src/agents/meta/convention-keeper/metadata.yaml +12 -0
- package/src/agents/meta/convention-keeper/output.md +206 -0
- package/src/agents/meta/convention-keeper/playbook.md +180 -0
- package/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
- package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
- package/src/agents/meta/skill-summoner/identity.md +31 -0
- package/src/agents/meta/skill-summoner/metadata.yaml +13 -0
- package/src/agents/meta/skill-summoner/output.md +390 -0
- package/src/agents/meta/skill-summoner/playbook.md +1457 -0
- package/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
- package/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
- package/src/agents/pattern/pattern-scout/identity.md +25 -0
- package/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
- package/src/agents/pattern/pattern-scout/output.md +290 -0
- package/src/agents/pattern/pattern-scout/playbook.md +1806 -0
- package/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
- package/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
- package/src/agents/pattern/web-pattern-critique/identity.md +41 -0
- package/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
- package/src/agents/pattern/web-pattern-critique/output.md +314 -0
- package/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
- package/src/agents/planning/api-pm/critical-reminders.md +48 -0
- package/src/agents/planning/api-pm/critical-requirements.md +41 -0
- package/src/agents/planning/api-pm/identity.md +39 -0
- package/src/agents/planning/api-pm/metadata.yaml +12 -0
- package/src/agents/planning/api-pm/output.md +475 -0
- package/src/agents/planning/api-pm/playbook.md +129 -0
- package/src/agents/planning/web-pm/critical-reminders.md +36 -0
- package/src/agents/planning/web-pm/critical-requirements.md +32 -0
- package/src/agents/planning/web-pm/identity.md +26 -0
- package/src/agents/planning/web-pm/metadata.yaml +12 -0
- package/src/agents/planning/web-pm/output.md +314 -0
- package/src/agents/planning/web-pm/playbook.md +318 -0
- package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
- package/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
- package/src/agents/researcher/api-researcher/identity.md +71 -0
- package/src/agents/researcher/api-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/api-researcher/output.md +254 -0
- package/src/agents/researcher/api-researcher/playbook.md +201 -0
- package/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
- package/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
- package/src/agents/researcher/web-researcher/identity.md +69 -0
- package/src/agents/researcher/web-researcher/metadata.yaml +10 -0
- package/src/agents/researcher/web-researcher/output.md +241 -0
- package/src/agents/researcher/web-researcher/playbook.md +217 -0
- package/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
- package/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
- package/src/agents/reviewer/ai-reviewer/identity.md +51 -0
- package/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
- package/src/agents/reviewer/ai-reviewer/output.md +395 -0
- package/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
- package/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
- package/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
- package/src/agents/reviewer/api-reviewer/identity.md +51 -0
- package/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/api-reviewer/output.md +343 -0
- package/src/agents/reviewer/api-reviewer/playbook.md +288 -0
- package/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
- package/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
- package/src/agents/reviewer/cli-reviewer/identity.md +44 -0
- package/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/cli-reviewer/output.md +414 -0
- package/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
- package/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
- package/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
- package/src/agents/reviewer/infra-reviewer/identity.md +53 -0
- package/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
- package/src/agents/reviewer/infra-reviewer/output.md +364 -0
- package/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
- package/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
- package/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
- package/src/agents/reviewer/web-reviewer/identity.md +40 -0
- package/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
- package/src/agents/reviewer/web-reviewer/output.md +333 -0
- package/src/agents/reviewer/web-reviewer/playbook.md +156 -0
- package/src/agents/tester/api-tester/critical-reminders.md +41 -0
- package/src/agents/tester/api-tester/critical-requirements.md +41 -0
- package/src/agents/tester/api-tester/identity.md +47 -0
- package/src/agents/tester/api-tester/metadata.yaml +12 -0
- package/src/agents/tester/api-tester/output.md +284 -0
- package/src/agents/tester/api-tester/playbook.md +275 -0
- package/src/agents/tester/cli-tester/critical-reminders.md +36 -0
- package/src/agents/tester/cli-tester/critical-requirements.md +36 -0
- package/src/agents/tester/cli-tester/identity.md +43 -0
- package/src/agents/tester/cli-tester/metadata.yaml +12 -0
- package/src/agents/tester/cli-tester/output.md +313 -0
- package/src/agents/tester/cli-tester/playbook.md +221 -0
- package/src/agents/tester/web-tester/critical-reminders.md +31 -0
- package/src/agents/tester/web-tester/critical-requirements.md +28 -0
- package/src/agents/tester/web-tester/identity.md +41 -0
- package/src/agents/tester/web-tester/metadata.yaml +12 -0
- package/src/agents/tester/web-tester/output.md +321 -0
- package/src/agents/tester/web-tester/playbook.md +428 -0
- package/src/schemas/agent-frontmatter.schema.json +88 -0
- package/src/schemas/agent.schema.json +103 -0
- package/src/schemas/custom-metadata.schema.json +74 -0
- package/src/schemas/hooks.schema.json +47 -0
- package/src/schemas/marketplace.schema.json +119 -0
- package/src/schemas/metadata.schema.json +387 -0
- package/src/schemas/plugin.schema.json +127 -0
- package/src/schemas/project-config.schema.json +189 -0
- package/src/schemas/project-source-config.schema.json +96 -0
- package/src/schemas/skill-frontmatter.schema.json +42 -0
- package/src/schemas/stack.schema.json +191 -0
- package/src/schemas/stacks.schema.json +107 -0
- package/bin/run.js +0 -3
|
@@ -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)\",\n domain: \"web\",\n exclusive: true,\n required: true,\n order: 1,\n },\n \"web-meta-framework\": {\n id: \"web-meta-framework\",\n displayName: \"Meta-Framework\",\n description: \"Full-stack meta-framework (Next.js, Remix, Nuxt, SvelteKit)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 2,\n },\n \"web-routing\": {\n id: \"web-routing\",\n displayName: \"Routing\",\n description: \"Client-side routing (TanStack Router)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 3,\n },\n \"web-styling\": {\n id: \"web-styling\",\n displayName: \"Styling\",\n description: \"CSS approach (SCSS Modules, Tailwind, CVA)\",\n domain: \"web\",\n exclusive: false,\n required: true,\n order: 4,\n },\n \"web-client-state\": {\n id: \"web-client-state\",\n displayName: \"Client State Management\",\n description: \"UI state, forms, local data (Zustand, Redux, MobX)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 5,\n },\n \"web-server-state\": {\n id: \"web-server-state\",\n displayName: \"Server State / Data Fetching\",\n description: \"API data caching (React Query, SWR)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 6,\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: 7,\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: 8,\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: 9,\n },\n \"web-tooling\": {\n id: \"web-tooling\",\n displayName: \"Build Tools\",\n description: \"Frontend build tools and bundlers (Vite, Webpack)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 10,\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: 11,\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: 12,\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: 13,\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: 14,\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: 15,\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: 16,\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: 17,\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: 18,\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: 19,\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: 20,\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: 21,\n },\n \"web-3d\": {\n id: \"web-3d\",\n displayName: \"3D Graphics\",\n description: \"3D rendering (React Three Fiber)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 22,\n },\n \"web-dataviz\": {\n id: \"web-dataviz\",\n displayName: \"Data Visualization\",\n description: \"Charts and data visualization (D3, Recharts)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 23,\n },\n \"web-dnd\": {\n id: \"web-dnd\",\n displayName: \"Drag & Drop\",\n description: \"Drag-and-drop interactions (dnd-kit)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 24,\n },\n \"web-editor\": {\n id: \"web-editor\",\n displayName: \"Rich Text Editor\",\n description: \"Rich text editing (Lexical, Tiptap)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 25,\n },\n \"web-maps\": {\n id: \"web-maps\",\n displayName: \"Maps\",\n description: \"Interactive maps (Leaflet, Mapbox)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 26,\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 \"ai-provider\": {\n id: \"ai-provider\",\n displayName: \"AI Provider\",\n description: \"AI model provider SDKs (Anthropic, OpenAI, Google, etc.)\",\n domain: \"ai\",\n exclusive: false,\n required: false,\n order: 1,\n },\n \"ai-orchestration\": {\n id: \"ai-orchestration\",\n displayName: \"AI Orchestration\",\n description: \"Multi-model AI workflow frameworks (LangChain, LlamaIndex, Vercel AI)\",\n domain: \"ai\",\n exclusive: false,\n required: false,\n order: 2,\n },\n \"ai-observability\": {\n id: \"ai-observability\",\n displayName: \"AI Observability\",\n description: \"LLM monitoring, evaluation, and tracing (Langfuse, Promptfoo)\",\n domain: \"ai\",\n exclusive: false,\n required: false,\n order: 3,\n },\n \"ai-infrastructure\": {\n id: \"ai-infrastructure\",\n displayName: \"AI Infrastructure\",\n description: \"Model hosting, serving, and inference gateways\",\n domain: \"ai\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"ai-patterns\": {\n id: \"ai-patterns\",\n displayName: \"AI Patterns\",\n description: \"Cross-cutting AI usage patterns (tool use, prompting)\",\n domain: \"ai\",\n exclusive: false,\n required: false,\n order: 5,\n },\n \"api-baas\": {\n id: \"api-baas\",\n displayName: \"Backend as a Service\",\n description: \"Managed backend platforms (Supabase, Firebase)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 8,\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: 9,\n },\n \"api-cms\": {\n id: \"api-cms\",\n displayName: \"CMS\",\n description: \"CMS platforms (Payload, Sanity, Strapi)\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 10,\n },\n \"api-commerce\": {\n id: \"api-commerce\",\n displayName: \"Commerce\",\n description: \"Commerce platforms (Stripe)\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 11,\n },\n \"api-framework\": {\n id: \"api-framework\",\n displayName: \"API Framework\",\n description: \"API frameworks (Elysia)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 12,\n },\n \"api-search\": {\n id: \"api-search\",\n displayName: \"Search\",\n description: \"Search engines (Elasticsearch, Meilisearch)\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 13,\n },\n \"api-vector-db\": {\n id: \"api-vector-db\",\n displayName: \"Vector Database\",\n description: \"Vector databases (Pinecone, Qdrant, Chroma, Weaviate)\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 14,\n },\n \"api-caching\": {\n id: \"api-caching\",\n displayName: \"Caching\",\n description: \"API caching strategies and patterns\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 15,\n },\n \"api-graphql\": {\n id: \"api-graphql\",\n displayName: \"GraphQL Server\",\n description: \"GraphQL servers (Apollo Server, Mercurius, Yoga)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 16,\n },\n \"api-messaging\": {\n id: \"api-messaging\",\n displayName: \"Messaging\",\n description: \"Webhooks and event-driven messaging\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 17,\n },\n \"api-queue\": {\n id: \"api-queue\",\n displayName: \"Queues\",\n description: \"Background job queues (BullMQ)\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 18,\n },\n \"api-specs\": {\n id: \"api-specs\",\n displayName: \"API Specifications\",\n description: \"API specification formats (OpenAPI)\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 19,\n },\n \"mobile-framework\": {\n id: \"mobile-framework\",\n displayName: \"Mobile Framework\",\n description: \"Native mobile framework (React Native, Expo)\",\n domain: \"mobile\",\n exclusive: false,\n required: true,\n order: 1,\n },\n \"mobile-animation\": {\n id: \"mobile-animation\",\n displayName: \"Mobile Animation\",\n description: \"Native animation and gestures (Reanimated, Gesture Handler, Skia)\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 6,\n },\n \"mobile-background\": {\n id: \"mobile-background\",\n displayName: \"Background Tasks\",\n description: \"Background task scheduling and execution\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 12,\n },\n \"mobile-camera\": {\n id: \"mobile-camera\",\n displayName: \"Camera\",\n description: \"Camera integration (Vision Camera)\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 10,\n },\n \"mobile-deep-linking\": {\n id: \"mobile-deep-linking\",\n displayName: \"Deep Linking\",\n description: \"Deep links and universal/app links\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 9,\n },\n \"mobile-deployment\": {\n id: \"mobile-deployment\",\n displayName: \"Deployment\",\n description: \"App builds and store releases (EAS)\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 15,\n },\n \"mobile-hardware\": {\n id: \"mobile-hardware\",\n displayName: \"Hardware\",\n description: \"Device hardware access (BLE, NFC)\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 11,\n },\n \"mobile-navigation\": {\n id: \"mobile-navigation\",\n displayName: \"Navigation\",\n description: \"Screen navigation (Expo Router, React Navigation)\",\n domain: \"mobile\",\n exclusive: true,\n required: false,\n order: 2,\n },\n \"mobile-notifications\": {\n id: \"mobile-notifications\",\n displayName: \"Notifications\",\n description: \"Push and local notifications\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 8,\n },\n \"mobile-performance\": {\n id: \"mobile-performance\",\n displayName: \"Mobile Performance\",\n description: \"React Native performance optimization\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 13,\n },\n \"mobile-security\": {\n id: \"mobile-security\",\n displayName: \"Mobile Security\",\n description: \"Mobile app security patterns (React Native)\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 14,\n },\n \"mobile-storage\": {\n id: \"mobile-storage\",\n displayName: \"Mobile Storage\",\n description: \"On-device storage and offline databases (MMKV, SQLite, WatermelonDB)\",\n domain: \"mobile\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"mobile-styling\": {\n id: \"mobile-styling\",\n displayName: \"Mobile Styling\",\n description: \"Native styling (NativeWind, Unistyles)\",\n domain: \"mobile\",\n exclusive: true,\n required: false,\n order: 3,\n },\n \"mobile-testing\": {\n id: \"mobile-testing\",\n displayName: \"Mobile Testing\",\n description: \"Mobile E2E testing (Detox, Maestro)\",\n domain: \"mobile\",\n exclusive: true,\n required: false,\n order: 7,\n },\n \"mobile-ui-components\": {\n id: \"mobile-ui-components\",\n displayName: \"Mobile UI Components\",\n description: \"Native UI component libraries (React Native Paper, Tamagui)\",\n domain: \"mobile\",\n exclusive: true,\n required: false,\n order: 5,\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 \"meta-reviewing\": {\n id: \"meta-reviewing\",\n displayName: \"Code Review\",\n description: \"Code review patterns and methodology\",\n domain: \"meta\",\n exclusive: false,\n required: false,\n order: 1,\n },\n \"meta-methodology\": {\n id: \"meta-methodology\",\n displayName: \"Methodology\",\n description: \"Research and investigation methodology\",\n domain: \"meta\",\n exclusive: false,\n required: false,\n order: 2,\n },\n \"meta-design\": {\n id: \"meta-design\",\n displayName: \"Software Design\",\n description: \"Software design patterns and paradigms\",\n domain: \"meta\",\n exclusive: false,\n required: false,\n order: 3,\n },\n \"infra-ci-cd\": {\n id: \"infra-ci-cd\",\n displayName: \"CI/CD\",\n description: \"Continuous integration and deployment pipelines\",\n domain: \"infra\",\n exclusive: false,\n required: false,\n order: 1,\n },\n \"infra-platform\": {\n id: \"infra-platform\",\n displayName: \"Platform\",\n description: \"Edge compute and deployment platforms\",\n domain: \"infra\",\n exclusive: false,\n required: false,\n order: 2,\n },\n \"infra-config\": {\n id: \"infra-config\",\n displayName: \"Configuration\",\n description: \"Environment and infrastructure configuration\",\n domain: \"infra\",\n exclusive: false,\n required: false,\n order: 3,\n },\n \"infra-containers\": {\n id: \"infra-containers\",\n displayName: \"Containers\",\n description: \"Container orchestration (Kubernetes)\",\n domain: \"infra\",\n exclusive: false,\n required: false,\n order: 5,\n },\n \"infra-iac\": {\n id: \"infra-iac\",\n displayName: \"Infrastructure as Code\",\n description: \"Infrastructure as code (Pulumi, SST, Terraform)\",\n domain: \"infra\",\n exclusive: true,\n required: false,\n order: 4,\n },\n \"cli-framework\": {\n id: \"cli-framework\",\n displayName: \"CLI Framework\",\n description: \"CLI application framework (Commander, oclif)\",\n domain: \"cli\",\n exclusive: true,\n required: true,\n order: 1,\n },\n \"cli-prompts\": {\n id: \"cli-prompts\",\n displayName: \"CLI Prompts\",\n description: \"Interactive CLI prompts (Clack)\",\n domain: \"cli\",\n exclusive: false,\n required: false,\n order: 2,\n },\n \"desktop-framework\": {\n id: \"desktop-framework\",\n displayName: \"Desktop Framework\",\n description: \"Desktop application framework (Tauri, Electron)\",\n domain: \"desktop\",\n exclusive: true,\n required: true,\n order: 1,\n },\n \"desktop-backend\": {\n id: \"desktop-backend\",\n displayName: \"Desktop Backend\",\n description: \"Desktop backend integration (Tauri)\",\n domain: \"desktop\",\n exclusive: false,\n required: false,\n order: 3,\n },\n \"desktop-ipc\": {\n id: \"desktop-ipc\",\n displayName: \"IPC\",\n description: \"Inter-process communication (Electron)\",\n domain: \"desktop\",\n exclusive: false,\n required: false,\n order: 2,\n },\n \"desktop-mobile\": {\n id: \"desktop-mobile\",\n displayName: \"Mobile Support\",\n description: \"Desktop-to-mobile platform support (Tauri)\",\n domain: \"desktop\",\n exclusive: false,\n required: false,\n order: 12,\n },\n \"desktop-multiwindow\": {\n id: \"desktop-multiwindow\",\n displayName: \"Multi-Window\",\n description: \"Multi-window management (Electron, Tauri)\",\n domain: \"desktop\",\n exclusive: true,\n required: false,\n order: 5,\n },\n \"desktop-packaging\": {\n id: \"desktop-packaging\",\n displayName: \"Packaging\",\n description: \"App packaging and distribution (Electron Forge, Tauri)\",\n domain: \"desktop\",\n exclusive: true,\n required: false,\n order: 9,\n },\n \"desktop-plugins\": {\n id: \"desktop-plugins\",\n displayName: \"Plugins\",\n description: \"Desktop plugin systems (Tauri)\",\n domain: \"desktop\",\n exclusive: false,\n required: false,\n order: 11,\n },\n \"desktop-security\": {\n id: \"desktop-security\",\n displayName: \"Desktop Security\",\n description: \"Desktop app security hardening (Electron, Tauri)\",\n domain: \"desktop\",\n exclusive: true,\n required: false,\n order: 7,\n },\n \"desktop-storage\": {\n id: \"desktop-storage\",\n displayName: \"Desktop Storage\",\n description: \"Desktop data persistence (Electron)\",\n domain: \"desktop\",\n exclusive: false,\n required: false,\n order: 6,\n },\n \"desktop-testing\": {\n id: \"desktop-testing\",\n displayName: \"Desktop Testing\",\n description: \"Desktop app testing (Electron)\",\n domain: \"desktop\",\n exclusive: false,\n required: false,\n order: 8,\n },\n \"desktop-ui\": {\n id: \"desktop-ui\",\n displayName: \"Desktop UI\",\n description: \"Desktop UI patterns (Electron)\",\n domain: \"desktop\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"desktop-updates\": {\n id: \"desktop-updates\",\n displayName: \"Auto-Updates\",\n description: \"Application auto-updates (electron-updater)\",\n domain: \"desktop\",\n exclusive: false,\n required: false,\n order: 10,\n },\n },\n skills: {\n \"ai-infrastructure-huggingface-inference\": {\n id: \"ai-infrastructure-huggingface-inference\",\n slug: \"huggingface-inference\",\n displayName: \"Hugging Face Inference\",\n description: \"Access 200k+ models via Hugging Face Inference API and Inference Endpoints\",\n usageGuidance:\n \"Use when accessing ML models via Hugging Face — text generation, chat completion, embeddings, image generation, audio transcription, translation, summarization, and custom Inference Endpoints for dedicated deployments.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-infrastructure-huggingface-inference\",\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 author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches React Query integration patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-server-state-react-query\",\n purpose: \"Server State / Data Fetching\",\n },\n {\n skillId: \"web-data-fetching-swr\",\n purpose: \"Server State / Data Fetching\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-data-fetching-trpc\",\n },\n \"ai-provider-cohere-sdk\": {\n id: \"ai-provider-cohere-sdk\",\n slug: \"cohere-sdk\",\n displayName: \"Cohere SDK\",\n description: \"Official TypeScript SDK for Cohere with chat, embeddings, rerank, and RAG\",\n usageGuidance:\n \"Use when integrating Cohere AI -- chat completions with Command models, embeddings for semantic search, rerank for relevance scoring, RAG with inline documents and citations, tool use / function calling, and streaming.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-provider-cohere-sdk\",\n },\n \"shared-tooling-biome\": {\n id: \"shared-tooling-biome\",\n slug: \"biome\",\n displayName: \"Biome\",\n description: \"Biome unified linter and formatter\",\n usageGuidance:\n \"Use when configuring Biome as an all-in-one linter, formatter, and import organizer — replacing ESLint and Prettier with a single fast tool.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"shared-tooling-eslint-prettier\",\n reason: \"Linting and formatting tools are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"shared-tooling-eslint-prettier\",\n purpose: \"Linting / Formatting\",\n },\n ],\n isRecommended: false,\n path: \"skills/shared-tooling-biome\",\n },\n \"api-framework-hono\": {\n id: \"api-framework-hono\",\n slug: \"hono\",\n displayName: \"Hono\",\n description: \"Hono API framework\",\n usageGuidance:\n \"Use when building API routes with Hono, implementing OpenAPI specs, or Zod validation.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-express\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-elysia\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-nestjs\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-express\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-fastify\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-elysia\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-nestjs\",\n purpose: \"API Framework\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Fast, lightweight API framework with edge support\",\n path: \"skills/api-framework-hono\",\n },\n \"meta-design-expressive-typescript\": {\n id: \"meta-design-expressive-typescript\",\n slug: \"expressive-typescript\",\n displayName: \"Expressive TypeScript\",\n description:\n \"Readable functional patterns — orchestrators, pure functions, named abstractions\",\n usageGuidance:\n \"Use when writing or refactoring TypeScript functions, data transformations, store actions, or any code that mixes logic levels. Apply the orchestrator pattern and extract until the code reads like prose.\",\n category: \"meta-design\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/meta-design-expressive-typescript\",\n },\n \"mobile-security-react-native\": {\n id: \"mobile-security-react-native\",\n slug: \"react-native-security\",\n displayName: \"React Native Security\",\n description: \"Mobile app security hardening\",\n usageGuidance:\n \"Use when implementing secure storage, certificate pinning, biometric authentication, jailbreak/root detection, code obfuscation, screenshot prevention, or network security in React Native apps.\",\n category: \"mobile-security\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-security-react-native\",\n },\n \"web-ui-vuetify\": {\n id: \"web-ui-vuetify\",\n slug: \"vuetify\",\n displayName: \"Vuetify\",\n description: \"Material Design component library for Vue 3\",\n usageGuidance:\n \"Use when building Vue 3 UIs with Vuetify — theming, global defaults, data tables, form validation, SASS variable customization, composables, and Material Design 3 patterns.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"Vuetify is Vue only\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-ui-vuetify\",\n },\n \"api-database-mongodb\": {\n id: \"api-database-mongodb\",\n slug: \"mongodb\",\n displayName: \"MongoDB\",\n description: \"MongoDB with Mongoose ODM\",\n usageGuidance:\n \"Use when building with MongoDB, Mongoose schemas, or document-based data models.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-mongoose\",\n reason: \"Raw MongoDB driver and Mongoose ODM are alternative approaches\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-mongoose\",\n purpose: \"MongoDB\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-mongodb\",\n },\n \"infra-iac-pulumi\": {\n id: \"infra-iac-pulumi\",\n slug: \"pulumi\",\n displayName: \"Pulumi\",\n description: \"TypeScript-native Infrastructure as Code with Pulumi\",\n usageGuidance:\n \"Use when writing Pulumi programs in TypeScript — resource definitions, component resources, stack references, config/secrets, providers, automation API, and deployment workflows.\",\n category: \"infra-iac\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-iac-pulumi\",\n },\n \"api-analytics-setup-posthog\": {\n id: \"api-analytics-setup-posthog\",\n slug: \"setup-posthog\",\n displayName: \"PostHog Setup\",\n description: \"PostHog initial setup\",\n usageGuidance: \"Use when setting up PostHog analytics or feature flags for the first time.\",\n category: \"api-analytics\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-analytics-setup-posthog\",\n },\n \"web-framework-react\": {\n id: \"web-framework-react\",\n slug: \"react\",\n displayName: \"React\",\n description: \"React component patterns\",\n usageGuidance: \"Use when building React components, hooks, or following React 19 patterns.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-svelte\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-animation-framer-motion\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-error-handling-error-boundaries\",\n \"web-files-file-upload-patterns\",\n \"web-files-image-handling\",\n \"web-forms-react-hook-form\",\n \"mobile-framework-react-native\",\n \"web-i18n-react-intl\",\n \"web-server-state-react-query\",\n \"web-data-fetching-swr\",\n \"web-data-fetching-trpc\",\n \"web-state-jotai\",\n \"web-state-mobx\",\n \"web-state-redux-toolkit\",\n \"web-state-zustand\",\n \"web-testing-react-testing-library\",\n \"web-ui-radix-ui\",\n \"web-ui-shadcn-ui\",\n \"web-ui-tanstack-table\",\n \"web-routing-tanstack-router\",\n \"web-data-fetching-graphql-apollo\",\n \"web-data-fetching-graphql-urql\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n \"web-routing-react-router\",\n \"web-ui-chakra-ui\",\n \"web-ui-mantine\",\n \"web-ui-mui\",\n \"web-ui-ant-design\",\n \"web-ui-headless-ui\",\n \"web-tooling-storybook\",\n \"web-framework-angular-standalone\",\n \"web-forms-tanstack-form\",\n \"api-email-resend-react-email\",\n ],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-svelte\",\n purpose: \"Base Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-framework-react\",\n },\n \"api-database-typeorm\": {\n id: \"api-database-typeorm\",\n slug: \"typeorm\",\n displayName: \"TypeORM\",\n description: \"Decorator-based TypeScript ORM with Data Mapper patterns\",\n usageGuidance:\n \"Use when building TypeScript applications with relational databases — entity decorators, repository pattern, migrations, relations, query builder, and transaction management.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-drizzle\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-prisma\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-sequelize\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-knex\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-prisma\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-sequelize\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-knex\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-typeorm\",\n },\n \"ai-infrastructure-together-ai\": {\n id: \"ai-infrastructure-together-ai\",\n slug: \"together-ai\",\n displayName: \"Together AI\",\n description: \"Multi-model inference API for open-source LLMs\",\n usageGuidance:\n \"Use when running open-source LLMs on Together AI — chat completions, streaming, embeddings, image generation, function calling, JSON mode, structured output, fine-tuning, and OpenAI-compatible endpoints.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-infrastructure-together-ai\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-drizzle\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-sequelize\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-typeorm\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-knex\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-sequelize\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-typeorm\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-knex\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Mature database ORM with great DX\",\n path: \"skills/api-database-prisma\",\n },\n \"api-database-vercel-postgres\": {\n id: \"api-database-vercel-postgres\",\n slug: \"vercel-postgres\",\n displayName: \"Vercel Postgres\",\n description: \"Serverless PostgreSQL on Vercel with edge-compatible SDK\",\n usageGuidance:\n \"Use when deploying PostgreSQL on Vercel -- sql tagged template for edge functions, createPool/createClient for Node.js, automatic connection management via POSTGRES_URL env vars. NOTE: @vercel/postgres is deprecated (Dec 2024). For new projects, use @neondatabase/serverless instead.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-baas-neon\",\n reason: \"Managed PostgreSQL-compatible providers are mutually exclusive\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n reason: \"Managed PostgreSQL-compatible providers are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-neon\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-planetscale\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-turso\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n purpose: \"Managed Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-vercel-postgres\",\n },\n \"web-files-file-upload-patterns\": {\n id: \"web-files-file-upload-patterns\",\n slug: \"file-upload-patterns\",\n displayName: \"File Upload\",\n description: \"File upload handling\",\n usageGuidance: \"Use when implementing file uploads, drag-drop, or chunked uploads.\",\n category: \"web-file-upload\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches React-based file upload patterns\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-files-file-upload-patterns\",\n },\n \"desktop-mobile-tauri\": {\n id: \"desktop-mobile-tauri\",\n slug: \"tauri-mobile\",\n displayName: \"Tauri Mobile\",\n description: \"Mobile app development with Tauri 2.x\",\n usageGuidance:\n \"Use when building iOS or Android mobile apps with Tauri 2.x, initializing mobile targets, using mobile-specific plugins (biometric, barcode-scanner, NFC, haptics, geolocation), writing platform-specific Swift/Kotlin plugin code, configuring mobile permissions (AndroidManifest.xml, Info.plist), or debugging on mobile devices and emulators.\",\n category: \"desktop-mobile\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-mobile-tauri\",\n },\n \"web-forms-zod-validation\": {\n id: \"web-forms-zod-validation\",\n slug: \"zod-validation\",\n displayName: \"Zod\",\n description: \"Schema validation\",\n usageGuidance: \"Use when defining validation schemas, type inference, or data transforms.\",\n category: \"web-forms\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Type-safe validation for forms and APIs\",\n path: \"skills/web-forms-zod-validation\",\n },\n \"web-utilities-rxjs\": {\n id: \"web-utilities-rxjs\",\n slug: \"rxjs\",\n displayName: \"RxJS\",\n description: \"Reactive programming with Observables, operators, and async stream composition\",\n usageGuidance:\n \"Use when handling complex async flows with RxJS — Observables, operators (map, filter, switchMap, mergeMap), Subjects, error handling, unsubscription, and reactive patterns for event streams and HTTP requests.\",\n category: \"web-utilities\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-utilities-rxjs\",\n },\n \"web-ui-headless-ui\": {\n id: \"web-ui-headless-ui\",\n slug: \"headless-ui\",\n displayName: \"Headless UI\",\n description: \"Unstyled accessible UI components by Tailwind Labs\",\n usageGuidance:\n \"Use when building accessible UI with Headless UI — Dialog, Menu, Listbox, Combobox, Popover, Tabs, Disclosure, and other unstyled primitives designed for Tailwind CSS.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Headless UI v2 is React only\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-ui-headless-ui\",\n },\n \"mobile-hardware-ble-nfc\": {\n id: \"mobile-hardware-ble-nfc\",\n slug: \"ble-nfc\",\n displayName: \"BLE & NFC\",\n description: \"Bluetooth LE and NFC hardware access\",\n usageGuidance:\n \"Use when implementing BLE scanning, connecting, reading/writing characteristics, or NFC tag reading/writing with react-native-ble-plx and react-native-nfc-manager. Not for classic Bluetooth, peripheral mode, or Wi-Fi Direct.\",\n category: \"mobile-hardware\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-hardware-ble-nfc\",\n },\n \"api-cms-payload\": {\n id: \"api-cms-payload\",\n slug: \"payload\",\n displayName: \"Payload CMS\",\n description: \"TypeScript-native headless CMS with code-first schema and built-in admin panel\",\n usageGuidance:\n \"Use when building content-managed applications with Payload — collection configs, field types, hooks, access control, REST/GraphQL/Local API, admin panel customization, and database adapter pattern.\",\n category: \"api-cms\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-cms-sanity\",\n reason: \"CMS platforms are mutually exclusive\",\n },\n {\n skillId: \"api-cms-strapi\",\n reason: \"CMS platforms are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-cms-sanity\",\n purpose: \"CMS\",\n },\n {\n skillId: \"api-cms-strapi\",\n purpose: \"CMS\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-cms-payload\",\n },\n \"mobile-testing-maestro\": {\n id: \"mobile-testing-maestro\",\n slug: \"maestro\",\n displayName: \"Maestro\",\n description: \"YAML-based mobile UI testing\",\n usageGuidance:\n \"Use when writing or debugging Maestro YAML flows for mobile E2E testing, working with selectors, flow control, environment variables, Maestro Studio, Maestro Cloud CI, JavaScript expressions, or device interaction commands.\",\n category: \"mobile-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-testing-maestro\",\n },\n \"api-database-mysql\": {\n id: \"api-database-mysql\",\n slug: \"mysql\",\n displayName: \"MySQL\",\n description: \"Direct MySQL database access with mysql2 driver\",\n usageGuidance:\n \"Use when interacting directly with MySQL -- connection pools, prepared statements, transactions, streaming, and promise-based API with mysql2.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-postgresql\",\n reason: \"SQL database engines are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-postgresql\",\n purpose: \"SQL Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-mysql\",\n },\n \"cli-framework-cli-commander\": {\n id: \"cli-framework-cli-commander\",\n slug: \"cli-commander\",\n displayName: \"CLI Commander\",\n description: \"CLI dev with Commander.js, clack, picocolors\",\n usageGuidance:\n \"Use when building CLI applications, interactive prompts, wizard flows, or command-line tools with Node.js.\",\n category: \"cli-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"cli-framework-oclif-ink\",\n reason: \"CLI frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"cli-framework-oclif-ink\",\n purpose: \"CLI Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/cli-framework-cli-commander\",\n },\n \"web-framework-angular-standalone\": {\n id: \"web-framework-angular-standalone\",\n slug: \"angular-standalone\",\n displayName: \"Angular\",\n description: \"Angular standalone components\",\n usageGuidance:\n \"Use when building Angular 17+ apps with standalone components, signals, or DI.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-svelte\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-state-ngrx-signalstore\",\n \"web-tooling-storybook\",\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n \"web-forms-tanstack-form\",\n ],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-svelte\",\n purpose: \"Base Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-framework-angular-standalone\",\n },\n \"mobile-styling-nativewind\": {\n id: \"mobile-styling-nativewind\",\n slug: \"nativewind\",\n displayName: \"NativeWind\",\n description: \"Tailwind CSS styling for React Native\",\n usageGuidance:\n \"Use when styling React Native components with Tailwind CSS utility classes via NativeWind, implementing dark mode, theming with CSS variables, platform-specific styles, or integrating className support with third-party components.\",\n category: \"mobile-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-styling-nativewind\",\n },\n \"shared-tooling-git-hooks\": {\n id: \"shared-tooling-git-hooks\",\n slug: \"git-hooks\",\n displayName: \"Git Hooks\",\n description: \"Husky, lint-staged, commitlint\",\n usageGuidance:\n \"Use when setting up pre-commit hooks with Husky, configuring lint-staged for staged file linting, or adding commitlint for conventional commits.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/shared-tooling-git-hooks\",\n },\n \"web-pwa-offline-first\": {\n id: \"web-pwa-offline-first\",\n slug: \"offline-first\",\n displayName: \"Offline First\",\n description: \"Offline-first patterns\",\n usageGuidance: \"Use when building offline-first apps with IndexedDB or sync queues.\",\n category: \"web-pwa\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-pwa-offline-first\",\n },\n \"api-observability-axiom-pino-sentry\": {\n id: \"api-observability-axiom-pino-sentry\",\n slug: \"axiom-pino-sentry\",\n displayName: \"Observability\",\n description: \"Logging and error tracking\",\n usageGuidance:\n \"Use when implementing structured logging, error tracking, or performance monitoring.\",\n category: \"api-observability\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-observability-axiom-pino-sentry\",\n },\n \"mobile-framework-expo\": {\n id: \"mobile-framework-expo\",\n slug: \"expo\",\n displayName: \"Expo\",\n description: \"Expo managed workflow\",\n usageGuidance:\n \"Use when building React Native apps with Expo, configuring EAS builds, or using Expo Router.\",\n category: \"mobile-framework\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\"mobile-framework-react-native\"],\n requires: [\n {\n skillIds: [\"mobile-framework-react-native\"],\n needsAny: false,\n reason: \"Expo is a React Native framework\",\n },\n ],\n alternatives: [\n {\n skillId: \"mobile-framework-react-native\",\n purpose: \"Mobile\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Best-in-class React Native development experience\",\n path: \"skills/mobile-framework-expo\",\n },\n \"mobile-notifications-push\": {\n id: \"mobile-notifications-push\",\n slug: \"push\",\n displayName: \"Push Notifications\",\n description: \"Push notification patterns for React Native\",\n usageGuidance:\n \"Use when implementing push notifications (remote or local), requesting notification permissions, handling push tokens, listening for foreground/background/tap events, scheduling local notifications, managing Android channels, or configuring notification categories and actions in React Native.\",\n category: \"mobile-notifications\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-notifications-push\",\n },\n \"web-routing-react-router\": {\n id: \"web-routing-react-router\",\n slug: \"react-router\",\n displayName: \"React Router\",\n description: \"Client-side and server-side routing for React applications\",\n usageGuidance:\n \"Use when building React apps with client-side routing — nested routes, loaders, actions, error boundaries, lazy loading, and URL-based state.\",\n category: \"web-routing\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-routing-tanstack-router\",\n reason: \"React client-side routers are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\"web-framework-react\", \"web-meta-framework-remix\"],\n requires: [\n {\n skillIds: [\"web-framework-react\", \"web-meta-framework-remix\"],\n needsAny: true,\n reason: \"React Router is a React routing library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-routing-tanstack-router\",\n purpose: \"Routing (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-routing-react-router\",\n },\n \"web-state-jotai\": {\n id: \"web-state-jotai\",\n slug: \"jotai\",\n displayName: \"Jotai\",\n description: \"Atomic client state\",\n usageGuidance: \"Use when managing atomic state with bottom-up composition.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-zustand\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Jotai is a React atomic state library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-state-zustand\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-mobx\",\n purpose: \"Client State (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-state-jotai\",\n },\n \"desktop-storage-electron\": {\n id: \"desktop-storage-electron\",\n slug: \"electron-storage\",\n displayName: \"Electron Storage & Credentials\",\n description: \"Persistent storage and credential management\",\n usageGuidance:\n \"Use when persisting user preferences with electron-store, storing structured data with better-sqlite3, encrypting secrets with safeStorage, choosing between storage solutions, or working with app.getPath() storage directories.\",\n category: \"desktop-storage\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-storage-electron\",\n },\n \"ai-infrastructure-litellm\": {\n id: \"ai-infrastructure-litellm\",\n slug: \"litellm\",\n displayName: \"LiteLLM\",\n description: \"Unified LLM proxy supporting 100+ providers with OpenAI-compatible API\",\n usageGuidance:\n \"Use when routing LLM requests through LiteLLM proxy — unified OpenAI-compatible API across providers, model fallbacks, load balancing, spend tracking, and rate limiting. Covers proxy server config.yaml setup, TypeScript client via OpenAI SDK, virtual keys, and production deployment.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-infrastructure-litellm\",\n },\n \"infra-iac-sst\": {\n id: \"infra-iac-sst\",\n slug: \"sst\",\n displayName: \"SST\",\n description: \"Serverless Stack (SST) for full-stack TypeScript on AWS\",\n usageGuidance:\n \"Use when building with SST (Ion) — constructs for Lambda, API Gateway, S3, DynamoDB, Aurora, queues, cron jobs, Next.js/Remix/Astro deployments, and live Lambda dev mode.\",\n category: \"infra-iac\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-iac-sst\",\n },\n \"infra-containers-kubernetes\": {\n id: \"infra-containers-kubernetes\",\n slug: \"kubernetes\",\n displayName: \"Kubernetes\",\n description: \"Kubernetes manifests, Helm charts, and resource patterns\",\n usageGuidance:\n \"Use when writing Kubernetes manifests, Helm charts, or Kustomize overlays — deployments, services, ingress, configmaps, secrets, RBAC, health checks, resource limits, and scaling patterns.\",\n category: \"infra-containers\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-containers-kubernetes\",\n },\n \"api-caching-strategies\": {\n id: \"api-caching-strategies\",\n slug: \"strategies\",\n displayName: \"Caching\",\n description: \"Application-level caching strategies and cache invalidation patterns\",\n usageGuidance:\n \"Use when implementing caching in backend applications — cache-aside, write-through, write-behind, TTL strategies, cache invalidation, CDN caching headers, HTTP caching, in-memory caching, and distributed cache patterns.\",\n category: \"api-caching\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-caching-strategies\",\n },\n \"api-cms-sanity\": {\n id: \"api-cms-sanity\",\n slug: \"sanity\",\n displayName: \"Sanity\",\n description:\n \"Structured content platform with GROQ query language and real-time collaboration\",\n usageGuidance:\n \"Use when building content-managed applications with Sanity — schema definitions, GROQ queries, @sanity/client for data fetching, image handling with @sanity/image-url, Portable Text for rich text, and Sanity Studio customization.\",\n category: \"api-cms\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-cms-payload\",\n reason: \"CMS platforms are mutually exclusive\",\n },\n {\n skillId: \"api-cms-strapi\",\n reason: \"CMS platforms are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-cms-payload\",\n purpose: \"CMS\",\n },\n {\n skillId: \"api-cms-strapi\",\n purpose: \"CMS\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-cms-sanity\",\n },\n \"api-observability-setup-axiom-pino-sentry\": {\n id: \"api-observability-setup-axiom-pino-sentry\",\n slug: \"setup-axiom-pino-sentry\",\n displayName: \"Observability Setup\",\n description: \"Logging and monitoring setup\",\n usageGuidance: \"Use when setting up Pino logging, Axiom, or Sentry for the first time.\",\n category: \"api-observability\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-observability-setup-axiom-pino-sentry\",\n },\n \"web-realtime-websockets\": {\n id: \"web-realtime-websockets\",\n slug: \"websockets\",\n displayName: \"WebSockets\",\n description: \"Bidirectional real-time communication\",\n usageGuidance:\n \"Use when implementing WebSocket connections, reconnection, or message handling.\",\n category: \"web-realtime\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-realtime-socket-io\",\n reason: \"Socket.IO replaces raw WebSocket usage with its own protocol\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-realtime-socket-io\",\n purpose: \"Realtime\",\n },\n {\n skillId: \"web-realtime-sse\",\n purpose: \"Realtime\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-realtime-websockets\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-data-fetching-graphql-urql\",\n reason: \"Both are GraphQL clients\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches React Apollo Client patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-data-fetching-graphql-urql\",\n purpose: \"GraphQL Client\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-data-fetching-graphql-apollo\",\n },\n \"web-state-redux-toolkit\": {\n id: \"web-state-redux-toolkit\",\n slug: \"redux-toolkit\",\n displayName: \"Redux Toolkit\",\n description: \"Enterprise client state\",\n usageGuidance: \"Use when managing enterprise-scale state, needing DevTools, or RTK Query.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-zustand\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-jotai\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Skill teaches React/React Native patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-state-zustand\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-mobx\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-jotai\",\n purpose: \"Client State (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-state-redux-toolkit\",\n },\n \"api-baas-turso\": {\n id: \"api-baas-turso\",\n slug: \"turso\",\n displayName: \"Turso\",\n description: \"Edge-hosted SQLite database with libSQL driver and embedded replicas\",\n usageGuidance:\n \"Use when deploying SQLite on Turso — libSQL client for edge/serverless, embedded replicas for zero-latency reads, database groups for multi-region, and schema migrations with branching.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-neon\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-planetscale\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n purpose: \"Managed Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-baas-turso\",\n },\n \"web-state-pinia\": {\n id: \"web-state-pinia\",\n slug: \"pinia\",\n displayName: \"Pinia\",\n description: \"Vue client state\",\n usageGuidance: \"Use when managing state in Vue apps with Options or Setup stores.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"Pinia is Vue only\",\n },\n ],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Vue community standard state management\",\n path: \"skills/web-state-pinia\",\n },\n \"api-specs-openapi\": {\n id: \"api-specs-openapi\",\n slug: \"openapi\",\n displayName: \"OpenAPI\",\n description: \"OpenAPI specification, schema design, and client/server code generation\",\n usageGuidance:\n \"Use when designing API contracts with OpenAPI (Swagger) — spec authoring (YAML/JSON), schema definitions, path operations, request/response types, code generation (client/server), validation, and documentation generation.\",\n category: \"api-specs\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-specs-openapi\",\n },\n \"api-auth-clerk\": {\n id: \"api-auth-clerk\",\n slug: \"clerk\",\n displayName: \"Clerk\",\n description: \"Clerk managed authentication and user management\",\n usageGuidance:\n \"Use when building with Clerk for auth, user management, organizations, or pre-built UI components.\",\n category: \"api-auth\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-auth-better-auth-drizzle-hono\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n {\n skillId: \"api-auth-nextauth\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\"web-meta-framework-nextjs\"],\n requires: [\n {\n skillIds: [\"web-meta-framework-nextjs\"],\n needsAny: false,\n reason: \"Skill teaches @clerk/nextjs patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"api-auth-better-auth-drizzle-hono\",\n purpose: \"Auth\",\n },\n {\n skillId: \"api-auth-nextauth\",\n purpose: \"Auth\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-auth-clerk\",\n },\n \"api-framework-elysia\": {\n id: \"api-framework-elysia\",\n slug: \"elysia\",\n displayName: \"Elysia\",\n description: \"Bun-native HTTP framework with end-to-end type safety\",\n usageGuidance:\n \"Use when building APIs on Bun runtime — end-to-end type safety via Eden Treaty, plugin-based architecture, schema validation with TypeBox, lifecycle hooks, and high-performance routing.\",\n category: \"api-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-hono\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-express\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-nestjs\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-hono\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-express\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-fastify\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-nestjs\",\n purpose: \"API Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-framework-elysia\",\n },\n \"web-tooling-vite\": {\n id: \"web-tooling-vite\",\n slug: \"vite\",\n displayName: \"Vite\",\n description: \"Vite build tool configuration\",\n usageGuidance:\n \"Use when configuring Vite build tool, path aliases, vendor chunk splitting, environment-specific builds, or migrating to Rolldown.\",\n category: \"web-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-tooling-vite\",\n },\n \"api-search-meilisearch\": {\n id: \"api-search-meilisearch\",\n slug: \"meilisearch\",\n displayName: \"Meilisearch\",\n description: \"Fast, typo-tolerant search engine with instant results and faceted filtering\",\n usageGuidance:\n \"Use when adding search to applications with Meilisearch -- instant typo-tolerant search, faceted filtering, geo search, multi-index search, and real-time document indexing.\",\n category: \"api-search\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-search-elasticsearch\",\n reason: \"Search engines are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-search-elasticsearch\",\n purpose: \"Search Engine\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-search-meilisearch\",\n },\n \"mobile-camera-vision-camera\": {\n id: \"mobile-camera-vision-camera\",\n slug: \"vision-camera\",\n displayName: \"VisionCamera\",\n description: \"Camera capture, scanning, frame processing\",\n usageGuidance:\n \"Use when implementing camera features with react-native-vision-camera: photo/video capture, QR/barcode scanning, real-time frame processing, zoom/focus/exposure controls, or HDR. Not for image picking from gallery.\",\n category: \"mobile-camera\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-camera-vision-camera\",\n },\n \"api-search-elasticsearch\": {\n id: \"api-search-elasticsearch\",\n slug: \"elasticsearch\",\n displayName: \"Elasticsearch\",\n description:\n \"Distributed search and analytics engine with full-text search, aggregations, and vector search\",\n usageGuidance:\n \"Use when building search with Elasticsearch -- full-text search, structured queries, aggregations, vector/semantic search, index management, and bulk operations.\",\n category: \"api-search\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-search-meilisearch\",\n reason: \"Search engines are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-search-meilisearch\",\n purpose: \"Search Engine\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-search-elasticsearch\",\n },\n \"mobile-animation-gesture-handler\": {\n id: \"mobile-animation-gesture-handler\",\n slug: \"gesture-handler\",\n displayName: \"Gesture Handler\",\n description: \"Native gesture system for React Native\",\n usageGuidance:\n \"Use when implementing touch gestures (pan, pinch, tap, rotation, long press, fling, hover), composing multiple gestures on the same view, building swipeable list rows, or replacing React Native's built-in Gesture Responder System.\",\n category: \"mobile-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-animation-gesture-handler\",\n },\n \"web-utilities-date-fns\": {\n id: \"web-utilities-date-fns\",\n slug: \"date-fns\",\n displayName: \"date-fns\",\n description: \"Date utilities\",\n usageGuidance: \"Use when formatting, parsing, or manipulating dates with date-fns.\",\n category: \"web-utilities\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-utilities-date-fns\",\n },\n \"web-tooling-storybook\": {\n id: \"web-tooling-storybook\",\n slug: \"storybook\",\n displayName: \"Storybook\",\n description: \"Component documentation\",\n usageGuidance:\n \"Use when documenting components with Storybook, writing stories, or interaction tests.\",\n category: \"web-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-angular-standalone\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-angular-standalone\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n ],\n needsAny: true,\n reason: \"Storybook requires a UI framework\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-tooling-storybook\",\n },\n \"ai-provider-claude-vision\": {\n id: \"ai-provider-claude-vision\",\n slug: \"claude-vision\",\n displayName: \"Claude Vision\",\n description:\n \"Image understanding and document analysis with Claude's multimodal capabilities\",\n usageGuidance:\n \"Use when processing images and documents with Claude — image analysis, document extraction, chart interpretation, multi-image comparison, and PDF processing with the Anthropic API.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [\n {\n skillIds: [\"ai-provider-anthropic-sdk\"],\n needsAny: false,\n reason: \"Claude Vision uses the Anthropic SDK\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/ai-provider-claude-vision\",\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: \"meta-reviewing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/meta-reviewing-cli-reviewing\",\n },\n \"desktop-ui-electron\": {\n id: \"desktop-ui-electron\",\n slug: \"electron-ui\",\n displayName: \"Electron Desktop UI\",\n description: \"Frameless windows, custom title bars, tray, menus\",\n usageGuidance:\n \"Use when customizing Electron window appearance (frameless, transparent, vibrancy), building custom title bars with drag regions, positioning macOS traffic lights, creating system tray icons, application/context menus, dock badges, splash screens, kiosk mode, or persisting window state.\",\n category: \"desktop-ui\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-ui-electron\",\n },\n \"api-baas-planetscale\": {\n id: \"api-baas-planetscale\",\n slug: \"planetscale\",\n displayName: \"PlanetScale\",\n description:\n \"Serverless MySQL platform with branching, deploy requests, and edge-compatible driver\",\n usageGuidance:\n \"Use when deploying MySQL on PlanetScale — serverless driver for edge/serverless, database branching, deploy requests for schema changes, connection pooling, and Vitess-powered horizontal scaling.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-neon\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-turso\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n purpose: \"Managed Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-baas-planetscale\",\n },\n \"api-database-upstash\": {\n id: \"api-database-upstash\",\n slug: \"upstash\",\n displayName: \"Upstash\",\n description: \"Serverless Redis via REST for edge and serverless runtimes\",\n usageGuidance:\n \"Use when deploying Redis on Upstash -- REST-based Redis for edge/serverless compatibility, automatic JSON serialization, pipeline support, rate limiting with @upstash/ratelimit, and global replication.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-redis\",\n reason: \"Cache and KV store providers are mutually exclusive\",\n },\n {\n skillId: \"api-database-vercel-kv\",\n reason: \"Cache and KV store providers are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-redis\",\n purpose: \"Cache / KV Store\",\n },\n {\n skillId: \"api-database-vercel-kv\",\n purpose: \"Cache / KV Store\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-upstash\",\n },\n \"mobile-performance-react-native\": {\n id: \"mobile-performance-react-native\",\n slug: \"react-native-performance\",\n displayName: \"React Native Performance\",\n description: \"RN profiling, optimization, memory\",\n usageGuidance:\n \"Use when profiling React Native performance, optimizing re-renders, improving list scrolling, reducing bundle size, fixing memory leaks, or analyzing JS thread vs UI thread bottlenecks. Not for general React Native component architecture (use mobile-framework-react-native).\",\n category: \"mobile-performance\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-performance-react-native\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-ui-mui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-mantine\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-ant-design\",\n reason: \"React UI component libraries define competing design systems\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"shadcn/ui requires a React-based framework\",\n },\n {\n skillIds: [\"web-styling-tailwind\"],\n needsAny: false,\n reason: \"shadcn/ui requires Tailwind CSS\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-mui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mantine\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-ant-design\",\n purpose: \"UI Components (React)\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Best-in-class React + Tailwind component library\",\n path: \"skills/web-ui-shadcn-ui\",\n },\n \"api-auth-nextauth\": {\n id: \"api-auth-nextauth\",\n slug: \"nextauth\",\n displayName: \"Auth.js\",\n description: \"Auth.js (NextAuth v5) authentication\",\n usageGuidance:\n \"Use when implementing authentication with Auth.js/NextAuth for Next.js, SvelteKit, or other frameworks.\",\n category: \"api-auth\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-auth-better-auth-drizzle-hono\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n {\n skillId: \"api-auth-clerk\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-auth-better-auth-drizzle-hono\",\n purpose: \"Auth\",\n },\n {\n skillId: \"api-auth-clerk\",\n purpose: \"Auth\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-auth-nextauth\",\n },\n \"ai-provider-openai-whisper\": {\n id: \"ai-provider-openai-whisper\",\n slug: \"openai-whisper\",\n displayName: \"OpenAI Whisper\",\n description: \"Speech-to-text transcription and translation via OpenAI Audio API\",\n usageGuidance:\n \"Use when transcribing or translating audio with OpenAI Whisper -- file transcription, streaming transcription, translation to English, timestamp generation, and custom vocabulary prompting.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [\n {\n skillIds: [\"ai-provider-openai-sdk\"],\n needsAny: false,\n reason: \"Whisper API uses the OpenAI SDK\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/ai-provider-openai-whisper\",\n },\n \"ai-observability-promptfoo\": {\n id: \"ai-observability-promptfoo\",\n slug: \"promptfoo\",\n displayName: \"Promptfoo\",\n description: \"Testing and evaluation framework for LLM prompts and applications\",\n usageGuidance:\n \"Use when testing LLM prompts and applications — promptfooconfig.yaml for test definitions, assertion types, model-graded evals, red teaming, CI integration, and comparative evaluation across providers.\",\n category: \"ai-observability\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-observability-langfuse\",\n purpose: \"AI Evaluation / Observability\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-observability-promptfoo\",\n },\n \"mobile-framework-react-native\": {\n id: \"mobile-framework-react-native\",\n slug: \"react-native\",\n displayName: \"React Native\",\n description: \"React Native mobile apps\",\n usageGuidance:\n \"Use when building cross-platform mobile apps, working with native modules, or React Navigation.\",\n category: \"mobile-framework\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-forms-react-hook-form\",\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-server-state-react-query\",\n \"web-data-fetching-swr\",\n \"web-state-jotai\",\n \"web-state-mobx\",\n \"web-state-redux-toolkit\",\n \"web-state-zustand\",\n \"mobile-framework-expo\",\n ],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"React Native is built on React\",\n },\n ],\n alternatives: [\n {\n skillId: \"mobile-framework-expo\",\n purpose: \"Mobile\",\n },\n ],\n isRecommended: false,\n path: \"skills/mobile-framework-react-native\",\n },\n \"desktop-framework-tauri\": {\n id: \"desktop-framework-tauri\",\n slug: \"tauri\",\n displayName: \"Tauri\",\n description: \"Desktop and mobile apps with system webview and Rust backend\",\n usageGuidance:\n \"Use when building desktop or mobile applications with Tauri 2.x, defining Rust commands and IPC bridge, configuring the permission/capability system, using official plugins, system tray, window management, or packaging for distribution.\",\n category: \"desktop-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"desktop-framework-electron\",\n reason: \"Desktop frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"desktop-framework-electron\",\n purpose: \"Desktop Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/desktop-framework-tauri\",\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 author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-realtime-websockets\",\n purpose: \"Realtime\",\n },\n {\n skillId: \"web-realtime-socket-io\",\n purpose: \"Realtime\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-realtime-sse\",\n },\n \"web-framework-vue-composition-api\": {\n id: \"web-framework-vue-composition-api\",\n slug: \"vue-composition-api\",\n displayName: \"Vue\",\n description: \"Vue 3 Composition API\",\n usageGuidance:\n \"Use when building Vue 3 apps with Composition API, composables, or reactivity.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-svelte\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-forms-vee-validate\",\n \"web-meta-framework-nuxt\",\n \"web-i18n-vue-i18n\",\n \"web-state-pinia\",\n \"web-testing-vue-test-utils\",\n \"web-data-fetching-graphql-urql\",\n \"web-framework-react\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-sveltekit\",\n \"web-utilities-vueuse\",\n \"web-tooling-storybook\",\n \"web-framework-angular-standalone\",\n \"web-forms-tanstack-form\",\n \"web-ui-vuetify\",\n ],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-svelte\",\n purpose: \"Base Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-framework-vue-composition-api\",\n },\n \"ai-orchestration-langchain\": {\n id: \"ai-orchestration-langchain\",\n slug: \"langchain\",\n displayName: \"LangChain\",\n description: \"LLM application framework with chains, agents, RAG, and memory\",\n usageGuidance:\n \"Use when building LLM-powered applications with LangChain.js — chat models, prompt templates, output parsers, chains (LCEL), agents with tools, RAG pipelines, vector stores, and memory.\",\n category: \"ai-orchestration\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-orchestration-vercel-ai-sdk\",\n purpose: \"AI SDK\",\n },\n {\n skillId: \"ai-orchestration-llamaindex\",\n purpose: \"AI SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-orchestration-langchain\",\n },\n \"api-vector-db-chroma\": {\n id: \"api-vector-db-chroma\",\n slug: \"chroma\",\n displayName: \"Chroma\",\n description:\n \"Lightweight embedding database with automatic vectorization and metadata filtering\",\n usageGuidance:\n \"Use when building semantic search or RAG with Chroma -- collection management, automatic embedding generation, metadata filtering, document storage, and multi-modal embeddings.\",\n category: \"api-vector-db\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-vector-db-pinecone\",\n reason: \"Vector databases are mutually exclusive\",\n },\n {\n skillId: \"api-vector-db-qdrant\",\n reason: \"Vector databases are mutually exclusive\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n reason: \"Vector databases are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-vector-db-pinecone\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-qdrant\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n purpose: \"Vector Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-vector-db-chroma\",\n },\n \"cli-prompts-clack\": {\n id: \"cli-prompts-clack\",\n slug: \"clack\",\n displayName: \"Clack\",\n description: \"Beautiful interactive CLI prompts with @clack/prompts\",\n usageGuidance:\n \"Use when building interactive CLI experiences with @clack/prompts — text input, select, multiselect, confirm, spinner, group prompts, cancellation handling, and themed output. Triggers: @clack/prompts, @clack/core, clack, isCancel, intro, outro, spinner, group, text prompt, select prompt, confirm prompt, multiselect, note, log, tasks, progress bar, taskLog.\",\n category: \"cli-prompts\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/cli-prompts-clack\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-forms-tanstack-form\",\n reason: \"Vue form libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"VeeValidate is Vue only\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-forms-tanstack-form\",\n purpose: \"Forms (Vue)\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Vue community standard form validation\",\n path: \"skills/web-forms-vee-validate\",\n },\n \"web-testing-vue-test-utils\": {\n id: \"web-testing-vue-test-utils\",\n slug: \"vue-test-utils\",\n displayName: \"Vue Test Utils\",\n description: \"Vue component testing\",\n usageGuidance:\n \"Use when testing Vue components with mount, shallowMount, or testing composables.\",\n category: \"web-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"Vue Test Utils is Vue only\",\n },\n ],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Vue component testing library\",\n path: \"skills/web-testing-vue-test-utils\",\n },\n \"web-ui-chakra-ui\": {\n id: \"web-ui-chakra-ui\",\n slug: \"chakra-ui\",\n displayName: \"Chakra UI\",\n description: \"Accessible React component library with style props and theming\",\n usageGuidance:\n \"Use when building React UIs with Chakra UI — style props, responsive design, theming, accessible components, and composable component patterns.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-ui-shadcn-ui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-mui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-mantine\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-ant-design\",\n reason: \"React UI component libraries define competing design systems\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Chakra UI is a React component library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-shadcn-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mantine\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-ant-design\",\n purpose: \"UI Components (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-ui-chakra-ui\",\n },\n \"web-state-zustand\": {\n id: \"web-state-zustand\",\n slug: \"zustand\",\n displayName: \"Zustand\",\n description: \"Lightweight client state\",\n usageGuidance:\n \"Use when managing global UI state, replacing Context misuse, or handling cross-component state.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-mobx\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-jotai\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Skill teaches React/React Native patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-state-redux-toolkit\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-mobx\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-jotai\",\n purpose: \"Client State (React)\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Best-in-class React state management\",\n path: \"skills/web-state-zustand\",\n },\n \"desktop-ipc-electron\": {\n id: \"desktop-ipc-electron\",\n slug: \"electron-ipc\",\n displayName: \"Electron Type-Safe IPC\",\n description: \"Type-safe Electron IPC patterns\",\n usageGuidance:\n \"Use when implementing type-safe IPC between Electron main and renderer processes, setting up electron-trpc for end-to-end type safety, creating typed channel maps with shared payload types, building typed preload APIs with contextBridge, using MessagePort for high-throughput communication, or implementing utility process IPC.\",\n category: \"desktop-ipc\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-ipc-electron\",\n },\n \"web-ui-radix-ui\": {\n id: \"web-ui-radix-ui\",\n slug: \"radix-ui\",\n displayName: \"Radix UI\",\n description: \"Accessible UI primitives\",\n usageGuidance:\n \"Use when building accessible overlay components (dialogs, popovers, dropdowns, tooltips), compound component APIs, keyboard navigation, focus management, or polymorphic components with asChild and Slot patterns.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Radix UI primitives are React-specific\",\n },\n ],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Accessible unstyled component primitives\",\n path: \"skills/web-ui-radix-ui\",\n },\n \"web-state-ngrx-signalstore\": {\n id: \"web-state-ngrx-signalstore\",\n slug: \"ngrx-signalstore\",\n displayName: \"NgRx SignalStore\",\n description: \"Angular signal-based state\",\n usageGuidance: \"Use when managing Angular state with Signals and SignalStore.\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\"web-framework-angular-standalone\"],\n requires: [\n {\n skillIds: [\"web-framework-angular-standalone\"],\n needsAny: false,\n reason: \"NgRx SignalStore is Angular only\",\n },\n ],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Angular Signals-based state management\",\n path: \"skills/web-state-ngrx-signalstore\",\n },\n \"ai-orchestration-llamaindex\": {\n id: \"ai-orchestration-llamaindex\",\n slug: \"llamaindex\",\n displayName: \"LlamaIndex\",\n description:\n \"Data framework for LLM applications with indexing, retrieval, and query engines\",\n usageGuidance:\n \"Use when building RAG and data-aware LLM applications — document loading, text chunking, vector indexing, query engines, chat engines, and agentic RAG with LlamaIndex.TS.\",\n category: \"ai-orchestration\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-orchestration-vercel-ai-sdk\",\n purpose: \"AI SDK\",\n },\n {\n skillId: \"ai-orchestration-langchain\",\n purpose: \"AI SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-orchestration-llamaindex\",\n },\n \"web-meta-framework-vitepress\": {\n id: \"web-meta-framework-vitepress\",\n slug: \"vitepress\",\n displayName: \"VitePress\",\n description: \"VitePress documentation site generator\",\n usageGuidance:\n \"Use when building documentation sites with VitePress — configuring navigation, extending themes, writing data loaders, and customizing markdown rendering.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-docusaurus\",\n reason: \"Documentation frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\"],\n needsAny: false,\n reason: \"VitePress is built on Vue\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-docusaurus\",\n purpose: \"Documentation Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-meta-framework-vitepress\",\n },\n \"api-flags-posthog-flags\": {\n id: \"api-flags-posthog-flags\",\n slug: \"posthog-flags\",\n displayName: \"PostHog Flags\",\n description: \"Feature flags and A/B testing\",\n usageGuidance:\n \"Use when implementing feature flags, gradual rollouts, A/B tests, or remote configuration.\",\n category: \"api-analytics\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-flags-posthog-flags\",\n },\n \"web-editor-lexical\": {\n id: \"web-editor-lexical\",\n slug: \"lexical\",\n displayName: \"Lexical\",\n description: \"Extensible text editor framework by Meta with Lexical\",\n usageGuidance:\n \"Use when building rich text editors with Lexical — editor setup, nodes, plugins, commands, decorators, collaboration, serialization, and custom toolbar/menu creation.\",\n category: \"web-editor\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-editor-lexical\",\n },\n \"shared-tooling-eslint-prettier\": {\n id: \"shared-tooling-eslint-prettier\",\n slug: \"eslint-prettier\",\n displayName: \"ESLint & Prettier\",\n description: \"ESLint 9/10 flat config and Prettier formatting\",\n usageGuidance:\n \"Use when configuring ESLint 9 flat config, Prettier formatting, shared linting configs, or migrating from legacy .eslintrc to flat config.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"shared-tooling-biome\",\n reason: \"Linting and formatting tools are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"shared-tooling-biome\",\n purpose: \"Linting / Formatting\",\n },\n ],\n isRecommended: false,\n path: \"skills/shared-tooling-eslint-prettier\",\n },\n \"ai-provider-openai-sdk\": {\n id: \"ai-provider-openai-sdk\",\n slug: \"openai-sdk\",\n displayName: \"OpenAI SDK\",\n description: \"Official OpenAI SDK for TypeScript/Node.js\",\n usageGuidance:\n \"Use when building applications with OpenAI's API — GPT models, chat completions, Responses API, embeddings, function calling, structured outputs, vision, audio, streaming, and batch processing.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-provider-openai-sdk\",\n },\n \"web-animation-framer-motion\": {\n id: \"web-animation-framer-motion\",\n slug: \"framer-motion\",\n displayName: \"Motion\",\n description: \"Motion animation library\",\n usageGuidance: \"Use when animating React components with Motion (Framer Motion).\",\n category: \"web-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Motion (Framer Motion) is a React animation library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-animation-css-animations\",\n purpose: \"Animation\",\n },\n {\n skillId: \"web-animation-view-transitions\",\n purpose: \"Animation\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-animation-framer-motion\",\n },\n \"ai-orchestration-vercel-ai-sdk\": {\n id: \"ai-orchestration-vercel-ai-sdk\",\n slug: \"vercel-ai-sdk\",\n displayName: \"Vercel AI SDK\",\n description: \"Vercel AI SDK for streaming AI applications\",\n usageGuidance:\n \"Use when building AI-powered features with streaming, chat UIs, or multi-provider AI integrations. Covers generateText, streamText, structured output with Zod, tool calling, useChat/useCompletion hooks, embeddings, and RAG patterns.\",\n category: \"ai-orchestration\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-orchestration-langchain\",\n purpose: \"AI SDK\",\n },\n {\n skillId: \"ai-orchestration-llamaindex\",\n purpose: \"AI SDK\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Provider-agnostic AI integration with streaming\",\n path: \"skills/ai-orchestration-vercel-ai-sdk\",\n },\n \"mobile-deep-linking-app-links\": {\n id: \"mobile-deep-linking-app-links\",\n slug: \"app-links\",\n displayName: \"Deep Linking & App Links\",\n description: \"Universal Links, App Links, URI schemes\",\n usageGuidance:\n \"Use when implementing deep linking, Universal Links (iOS), App Links (Android), custom URI schemes, or configuring navigation to handle incoming URLs in React Native.\",\n category: \"mobile-deep-linking\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-deep-linking-app-links\",\n },\n \"ai-provider-anthropic-sdk\": {\n id: \"ai-provider-anthropic-sdk\",\n slug: \"anthropic-sdk\",\n displayName: \"Anthropic SDK\",\n description:\n \"Official TypeScript SDK for Claude API with messages, streaming, tool use, and vision\",\n usageGuidance:\n \"Use when integrating Claude via the Anthropic API — messages API, streaming responses, tool use (function calling), vision (image input), extended thinking, batch API, and prompt caching.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Direct Claude API access with tool use and vision\",\n path: \"skills/ai-provider-anthropic-sdk\",\n },\n \"ai-provider-mistral-sdk\": {\n id: \"ai-provider-mistral-sdk\",\n slug: \"mistral-sdk\",\n displayName: \"Mistral SDK\",\n description:\n \"Official TypeScript SDK for Mistral AI with chat, embeddings, function calling, and code generation\",\n usageGuidance:\n \"Use when integrating Mistral AI models — chat completions, streaming, function calling, embeddings, JSON mode, structured outputs with Zod, vision with supported models, and Codestral for code generation / FIM.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-provider-mistral-sdk\",\n },\n \"mobile-animation-reanimated\": {\n id: \"mobile-animation-reanimated\",\n slug: \"reanimated\",\n displayName: \"Reanimated\",\n description: \"React Native animations and gestures\",\n usageGuidance:\n \"Use when implementing animations in React Native with Reanimated 4 - shared values, animated styles, spring/timing/decay animations, layout animations, gesture-driven animations, scroll-driven animations, interpolation, or worklet functions.\",\n category: \"mobile-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-animation-reanimated\",\n },\n \"desktop-updates-electron-updater\": {\n id: \"desktop-updates-electron-updater\",\n slug: \"electron-updater\",\n displayName: \"Electron Auto-Updates\",\n description: \"Cross-platform auto-update with electron-updater\",\n usageGuidance:\n \"Use when implementing auto-updates in Electron apps using electron-updater from the electron-builder ecosystem. Covers update providers (GitHub, S3, generic server), update channels (stable/beta/alpha), staged rollouts, differential downloads, manual update control, error handling, and local testing.\",\n category: \"desktop-updates\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-updates-electron-updater\",\n },\n \"infra-config-setup-env\": {\n id: \"infra-config-setup-env\",\n slug: \"setup-env\",\n displayName: \"Environment\",\n description: \"Environment variable management\",\n usageGuidance:\n \"Use when setting up environment variables, .env files, or Zod validation for config.\",\n category: \"infra-config\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-config-setup-env\",\n },\n \"desktop-multiwindow-electron\": {\n id: \"desktop-multiwindow-electron\",\n slug: \"electron-multiwindow\",\n displayName: \"Electron Multi-Window\",\n description: \"Multi-window, WebContentsView, window lifecycle\",\n usageGuidance:\n \"Use when managing multiple windows or embedded views in Electron: BaseWindow with WebContentsView for tabs/panels/split views, parent/child and modal windows, window registries, inter-window communication via MessagePort, window state persistence, or multi-monitor placement with the screen API.\",\n category: \"desktop-multiwindow\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-multiwindow-electron\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-testing-cypress-e2e\",\n reason: \"Both are E2E frameworks\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-testing-cypress-e2e\",\n purpose: \"E2E Testing\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Cross-browser E2E testing\",\n path: \"skills/web-testing-playwright-e2e\",\n },\n \"web-error-handling-error-boundaries\": {\n id: \"web-error-handling-error-boundaries\",\n slug: \"error-boundaries\",\n displayName: \"Error Boundaries\",\n description: \"Error UI handling\",\n usageGuidance: \"Use when implementing React error boundaries, fallback UIs, or retry logic.\",\n category: \"web-error-handling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Error boundaries are a React concept\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-error-handling-error-boundaries\",\n },\n \"web-i18n-next-intl\": {\n id: \"web-i18n-next-intl\",\n slug: \"next-intl\",\n displayName: \"next-intl\",\n description: \"Next.js internationalization\",\n usageGuidance: \"Use when implementing i18n in Next.js with next-intl.\",\n category: \"web-i18n\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-i18n-react-intl\",\n reason: \"React internationalization libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\"web-meta-framework-nextjs\"],\n requires: [\n {\n skillIds: [\"web-meta-framework-nextjs\"],\n needsAny: false,\n reason: \"next-intl is built specifically for Next.js\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-i18n-react-intl\",\n purpose: \"Internationalization (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-i18n-next-intl\",\n },\n \"desktop-testing-electron\": {\n id: \"desktop-testing-electron\",\n slug: \"electron-testing\",\n displayName: \"Electron Testing\",\n description: \"E2E, unit, and IPC testing for Electron\",\n usageGuidance:\n \"Use when writing E2E tests with Playwright for Electron apps (_electron.launch), unit testing main process code, testing IPC handlers, mocking Electron modules (dialog, BrowserWindow, ipcMain/ipcRenderer), testing preload scripts, running Electron tests in CI (xvfb), or migrating from Spectron.\",\n category: \"desktop-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-testing-electron\",\n },\n \"web-framework-solidjs\": {\n id: \"web-framework-solidjs\",\n slug: \"solidjs\",\n displayName: \"SolidJS\",\n description: \"SolidJS reactive patterns\",\n usageGuidance: \"Use when building SolidJS apps with signals, effects, or SolidStart.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-svelte\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-data-fetching-graphql-urql\",\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n \"web-tooling-storybook\",\n \"web-framework-angular-standalone\",\n \"web-forms-tanstack-form\",\n ],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-svelte\",\n purpose: \"Base Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-framework-solidjs\",\n },\n \"web-meta-framework-astro\": {\n id: \"web-meta-framework-astro\",\n slug: \"astro\",\n displayName: \"Astro\",\n description: \"Astro content-first framework\",\n usageGuidance:\n \"Use when building Astro sites with islands architecture, content collections, or hybrid rendering.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-meta-framework-astro\",\n },\n \"api-baas-neon\": {\n id: \"api-baas-neon\",\n slug: \"neon\",\n displayName: \"Neon\",\n description: \"Serverless PostgreSQL with branching, autoscaling, and edge-compatible driver\",\n usageGuidance:\n \"Use when deploying PostgreSQL on Neon — serverless driver for edge/serverless functions, database branching for dev/preview, autoscaling, connection pooling, and the Neon API for programmatic management.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-vercel-postgres\",\n reason: \"Managed PostgreSQL-compatible providers are mutually exclusive\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n reason: \"Managed PostgreSQL-compatible providers are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-planetscale\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-turso\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-cockroachdb\",\n purpose: \"Managed Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-baas-neon\",\n },\n \"api-database-edgedb\": {\n id: \"api-database-edgedb\",\n slug: \"edgedb\",\n displayName: \"Gel (EdgeDB)\",\n description: \"Graph-relational database with EdgeQL and code-first schema\",\n usageGuidance:\n \"Use when working with Gel (formerly EdgeDB) — EdgeQL for type-safe queries, code-first schema with migrations, link-based relations, computed properties, and the query builder for fully typed TypeScript queries.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-database-edgedb\",\n },\n \"web-maps-leaflet\": {\n id: \"web-maps-leaflet\",\n slug: \"leaflet\",\n displayName: \"Leaflet\",\n description: \"Lightweight interactive maps with Leaflet\",\n usageGuidance:\n \"Use when building interactive maps with Leaflet -- map initialization, tile layers, markers, popups, GeoJSON, custom controls, plugins, marker clustering, and event handling.\",\n category: \"web-maps\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-maps-leaflet\",\n },\n \"api-vector-db-weaviate\": {\n id: \"api-vector-db-weaviate\",\n slug: \"weaviate\",\n displayName: \"Weaviate\",\n description: \"Open-source vector database with built-in vectorization and hybrid search\",\n usageGuidance:\n \"Use when building semantic search or RAG with Weaviate — collection management, built-in vectorization modules, hybrid search (vector + keyword), filtering, multi-tenancy, and generative search.\",\n category: \"api-vector-db\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-vector-db-pinecone\",\n reason: \"Vector databases are mutually exclusive\",\n },\n {\n skillId: \"api-vector-db-qdrant\",\n reason: \"Vector databases are mutually exclusive\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n reason: \"Vector databases are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-vector-db-pinecone\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-qdrant\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n purpose: \"Vector Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-vector-db-weaviate\",\n },\n \"web-pwa-service-workers\": {\n id: \"web-pwa-service-workers\",\n slug: \"service-workers\",\n displayName: \"Service Workers\",\n description: \"Offline caching strategies\",\n usageGuidance:\n \"Use when implementing service workers, caching strategies, or offline support.\",\n category: \"web-pwa\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-pwa-service-workers\",\n },\n \"web-forms-tanstack-form\": {\n id: \"web-forms-tanstack-form\",\n slug: \"tanstack-form\",\n displayName: \"TanStack Form\",\n description: \"Type-safe, headless form management\",\n usageGuidance:\n \"Use when building forms with TanStack Form — type-safe, framework-agnostic form state, validation, and submission.\",\n category: \"web-forms\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-forms-react-hook-form\",\n reason: \"React form libraries are mutually exclusive\",\n },\n {\n skillId: \"web-forms-vee-validate\",\n reason: \"Vue form libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-angular-standalone\",\n \"web-framework-solidjs\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-angular-standalone\",\n \"web-framework-solidjs\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n ],\n needsAny: true,\n reason: \"TanStack Form requires a UI framework\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-forms-react-hook-form\",\n purpose: \"Forms (React)\",\n },\n {\n skillId: \"web-forms-vee-validate\",\n purpose: \"Forms (Vue)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-forms-tanstack-form\",\n },\n \"mobile-storage-watermelondb\": {\n id: \"mobile-storage-watermelondb\",\n slug: \"watermelondb\",\n displayName: \"WatermelonDB\",\n description: \"Reactive local database for React Native\",\n usageGuidance:\n \"Use when building offline-first React Native apps with WatermelonDB - schema and model definitions, reactive queries with observe/withObservables, relations, writer/reader actions, batch operations, migrations, or sync with pullChanges/pushChanges.\",\n category: \"mobile-storage\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-storage-watermelondb\",\n },\n \"infra-platform-cloudflare-workers\": {\n id: \"infra-platform-cloudflare-workers\",\n slug: \"cloudflare-workers\",\n displayName: \"Cloudflare Workers\",\n description: \"Cloudflare Workers edge compute platform\",\n usageGuidance:\n \"Use when deploying to Cloudflare Workers — Wrangler CLI, KV storage, D1 databases, R2 object storage, Durable Objects, Queues, and edge-first TypeScript patterns.\",\n category: \"infra-platform\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-platform-cloudflare-workers\",\n },\n \"web-testing-react-testing-library\": {\n id: \"web-testing-react-testing-library\",\n slug: \"react-testing-library\",\n displayName: \"React Testing Library\",\n description: \"React component testing\",\n usageGuidance: \"Use when testing React components with user-centric queries.\",\n category: \"web-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"React Testing Library is React only\",\n },\n ],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Standard React component testing\",\n path: \"skills/web-testing-react-testing-library\",\n },\n \"meta-methodology-research-methodology\": {\n id: \"meta-methodology-research-methodology\",\n slug: \"research-methodology\",\n displayName: \"Research\",\n description: \"Codebase investigation\",\n usageGuidance:\n \"Use when investigating codebase patterns, researching implementations, or discovering how things work.\",\n category: \"meta-methodology\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/meta-methodology-research-methodology\",\n },\n \"ai-infrastructure-replicate\": {\n id: \"ai-infrastructure-replicate\",\n slug: \"replicate\",\n displayName: \"Replicate\",\n description: \"API for running open-source ML models with serverless GPU inference\",\n usageGuidance:\n \"Use when running open-source models on Replicate — model predictions, streaming, webhooks, file handling, model versioning, and serverless GPU deployment.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-infrastructure-replicate\",\n },\n \"api-queue-bullmq\": {\n id: \"api-queue-bullmq\",\n slug: \"bullmq\",\n displayName: \"BullMQ\",\n description: \"Job queues and background processing with BullMQ\",\n usageGuidance:\n \"Use when implementing job queues, background processing, or task scheduling with BullMQ -- queue creation, workers, job scheduling, rate limiting, concurrency, flows, events, and Redis connection patterns.\",\n category: \"api-queue\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-queue-bullmq\",\n },\n \"api-database-knex\": {\n id: \"api-database-knex\",\n slug: \"knex\",\n displayName: \"Knex.js\",\n description: \"SQL query builder for PostgreSQL, MySQL, SQLite, and MSSQL\",\n usageGuidance:\n \"Use when building SQL queries programmatically -- fluent query builder, schema builder, migrations, seeds, transactions, and raw queries with parameter binding.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-drizzle\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-prisma\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-sequelize\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-typeorm\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-prisma\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-sequelize\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-typeorm\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-knex\",\n },\n \"api-graphql-yoga\": {\n id: \"api-graphql-yoga\",\n slug: \"yoga\",\n displayName: \"GraphQL Yoga\",\n description: \"GraphQL server with GraphQL Yoga v5 and Envelop plugin system\",\n usageGuidance:\n \"Use when building GraphQL APIs with GraphQL Yoga — schema definition, resolvers, Envelop plugins, subscriptions (SSE/WebSocket), file uploads, error handling, and server framework integration.\",\n category: \"api-graphql\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-graphql-yoga\",\n },\n \"desktop-packaging-tauri\": {\n id: \"desktop-packaging-tauri\",\n slug: \"tauri-bundling\",\n displayName: \"Tauri Bundling & Distribution\",\n description: \"Bundle config, signing, updater, CI/CD\",\n usageGuidance:\n \"Use when configuring tauri.conf.json bundle settings, building platform-specific installers (NSIS/MSI, DMG, deb/rpm/AppImage), setting up code signing or notarization, configuring the auto-updater with signature verification, optimizing app size, adding sidecar binaries, or creating CI/CD pipelines for cross-platform Tauri builds.\",\n category: \"desktop-packaging\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-packaging-tauri\",\n },\n \"web-styling-cva\": {\n id: \"web-styling-cva\",\n slug: \"cva\",\n displayName: \"CVA\",\n description: \"Component variant styling\",\n usageGuidance: \"Use when building component variants with class-variance-authority.\",\n category: \"web-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Type-safe variant management for Tailwind\",\n path: \"skills/web-styling-cva\",\n },\n \"api-messaging-webhooks\": {\n id: \"api-messaging-webhooks\",\n slug: \"webhooks\",\n displayName: \"Webhooks\",\n description: \"Webhook patterns — receiving, sending, signature verification, and retry logic\",\n usageGuidance:\n \"Use when implementing webhook endpoints or sending webhooks — signature verification (HMAC), idempotency, retry logic with exponential backoff, payload validation, event routing, and dead letter queues.\",\n category: \"api-messaging\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-messaging-webhooks\",\n },\n \"web-mocks-msw\": {\n id: \"web-mocks-msw\",\n slug: \"msw\",\n displayName: \"MSW\",\n description: \"API mocking\",\n usageGuidance: \"Use when mocking APIs for development or testing with MSW handlers.\",\n category: \"web-mocking\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Network-level API mocking for tests\",\n path: \"skills/web-mocks-msw\",\n },\n \"mobile-navigation-expo-router\": {\n id: \"mobile-navigation-expo-router\",\n slug: \"expo-router\",\n displayName: \"Expo Router\",\n description: \"File-based routing for React Native\",\n usageGuidance:\n \"Use when implementing navigation with Expo Router: file-based routing, layout routes, dynamic/catch-all routes, tab/stack navigation, modal routes, authentication flows with Stack.Protected, API routes, typed routes, deep linking, or static rendering for web.\",\n category: \"mobile-navigation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-navigation-expo-router\",\n },\n \"mobile-background-tasks\": {\n id: \"mobile-background-tasks\",\n slug: \"tasks\",\n displayName: \"Background Tasks\",\n description: \"Background fetch, processing, location\",\n usageGuidance:\n \"Use when implementing background fetch, periodic sync, background location tracking, headless JS tasks, or any work that must execute while the app is backgrounded or terminated.\",\n category: \"mobile-background\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-background-tasks\",\n },\n \"shared-monorepo-turborepo\": {\n id: \"shared-monorepo-turborepo\",\n slug: \"turborepo\",\n displayName: \"Turborepo\",\n description: \"Monorepo orchestration\",\n usageGuidance:\n \"Use when configuring monorepo pipelines, workspaces, or package architecture.\",\n category: \"shared-monorepo\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"shared-monorepo-nx\",\n reason: \"Monorepo build orchestrators are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"shared-monorepo-nx\",\n purpose: \"Monorepo Orchestrator\",\n },\n ],\n isRecommended: false,\n path: \"skills/shared-monorepo-turborepo\",\n },\n \"mobile-animation-skia\": {\n id: \"mobile-animation-skia\",\n slug: \"skia\",\n displayName: \"Skia\",\n description: \"GPU-accelerated 2D graphics with Skia\",\n usageGuidance:\n \"Use when implementing custom 2D graphics, shaders, blur effects, path animations, text layout with Paragraph API, sprite batch rendering with Atlas, or GPU-accelerated drawing in React Native using @shopify/react-native-skia.\",\n category: \"mobile-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-animation-skia\",\n },\n \"ai-provider-google-gemini-sdk\": {\n id: \"ai-provider-google-gemini-sdk\",\n slug: \"google-gemini-sdk\",\n displayName: \"Google Gemini SDK\",\n description:\n \"Official TypeScript SDK for Google Gemini with multimodal input, function calling, and structured output\",\n usageGuidance:\n \"Use when integrating Google Gemini — text generation, multimodal input (images, video, audio, PDF), function calling, structured JSON output, streaming, embeddings, and context caching.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-ollama\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-provider-google-gemini-sdk\",\n },\n \"web-i18n-vue-i18n\": {\n id: \"web-i18n-vue-i18n\",\n slug: \"vue-i18n\",\n displayName: \"Vue I18n\",\n description: \"Vue internationalization\",\n usageGuidance: \"Use when implementing i18n in Vue with vue-i18n.\",\n category: \"web-i18n\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"vue-i18n is Vue 3 only\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-i18n-vue-i18n\",\n },\n \"web-routing-tanstack-router\": {\n id: \"web-routing-tanstack-router\",\n slug: \"tanstack-router\",\n displayName: \"TanStack Router\",\n description: \"Type-safe client-side routing for React\",\n usageGuidance:\n \"Use when building React SPAs with type-safe routing — file-based routes, search params validation, route loaders, code splitting, and nested layouts.\",\n category: \"web-routing\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-routing-react-router\",\n reason: \"React client-side routers are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\"web-framework-react\"],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"TanStack Router is a React routing library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-routing-react-router\",\n purpose: \"Routing (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-routing-tanstack-router\",\n },\n \"ai-patterns-tool-use-patterns\": {\n id: \"ai-patterns-tool-use-patterns\",\n slug: \"tool-use-patterns\",\n displayName: \"Tool Use Patterns\",\n description: \"Provider-agnostic patterns for LLM function calling\",\n usageGuidance:\n \"Use when implementing LLM tool use -- tool definition schemas, the tool call loop pattern, parallel tool calls, error reporting back to the model, multi-step agent workflows, human-in-the-loop patterns, and tool choice control. Provider-agnostic -- shows generic TypeScript patterns, not provider-specific SDK code.\",\n category: \"ai-patterns\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/ai-patterns-tool-use-patterns\",\n },\n \"api-vector-db-qdrant\": {\n id: \"api-vector-db-qdrant\",\n slug: \"qdrant\",\n displayName: \"Qdrant\",\n description:\n \"High-performance vector database with filtering, payload indexing, and quantization\",\n usageGuidance:\n \"Use when building semantic search or RAG with Qdrant -- collection management, vector upsert/search, payload filtering, named vectors, quantization, and recommendation API.\",\n category: \"api-vector-db\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-vector-db-pinecone\",\n reason: \"Vector databases are mutually exclusive\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n reason: \"Vector databases are mutually exclusive\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n reason: \"Vector databases are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-vector-db-pinecone\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n purpose: \"Vector Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-vector-db-qdrant\",\n },\n \"web-files-image-handling\": {\n id: \"web-files-image-handling\",\n slug: \"image-handling\",\n displayName: \"Image Handling\",\n description: \"Client-side image processing\",\n usageGuidance: \"Use when processing images client-side, resizing, or format conversion.\",\n category: \"web-files\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches React-based image handling hooks\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-files-image-handling\",\n },\n \"api-email-setup-resend\": {\n id: \"api-email-setup-resend\",\n slug: \"setup-resend\",\n displayName: \"Email Setup\",\n description: \"Email service setup\",\n usageGuidance: \"Use when configuring Resend email service or domain verification.\",\n category: \"api-email\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-email-setup-resend\",\n },\n \"web-server-state-react-query\": {\n id: \"web-server-state-react-query\",\n slug: \"react-query\",\n displayName: \"React Query\",\n description: \"Server state and caching\",\n usageGuidance:\n \"Use when fetching API data with React Query, generating API clients from OpenAPI specs with hey-api, or configuring query caching and error handling.\",\n category: \"web-server-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-data-fetching-swr\",\n reason: \"Both solve server state caching\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"TanStack Query's React adapter\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-data-fetching-swr\",\n purpose: \"Server State / Data Fetching\",\n },\n {\n skillId: \"web-data-fetching-trpc\",\n purpose: \"Server State / Data Fetching\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Modern server state caching for React\",\n path: \"skills/web-server-state-react-query\",\n },\n \"web-framework-svelte\": {\n id: \"web-framework-svelte\",\n slug: \"svelte\",\n displayName: \"Svelte\",\n description: \"Svelte 5 with Runes reactivity\",\n usageGuidance:\n \"Use when building Svelte 5 apps with Runes ($state, $derived, $effect), components, or snippets.\",\n category: \"web-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-framework-react\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-framework-solidjs\",\n reason: \"Base frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-data-fetching-graphql-urql\",\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n \"web-tooling-storybook\",\n \"web-framework-angular-standalone\",\n ],\n requires: [],\n alternatives: [\n {\n skillId: \"web-framework-react\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-vue-composition-api\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-angular-standalone\",\n purpose: \"Base Framework\",\n },\n {\n skillId: \"web-framework-solidjs\",\n purpose: \"Base Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-framework-svelte\",\n },\n \"api-performance-api-performance\": {\n id: \"api-performance-api-performance\",\n slug: \"api-performance\",\n displayName: \"Backend Performance\",\n description: \"Query and caching optimization\",\n usageGuidance:\n \"Use when optimizing database queries, implementing caching, or improving API response times.\",\n category: \"api-performance\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-performance-api-performance\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-data-fetching-graphql-apollo\",\n reason: \"Both are GraphQL clients\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n ],\n needsAny: true,\n reason: \"URQL supports React, Vue, Solid, and Svelte\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-data-fetching-graphql-apollo\",\n purpose: \"GraphQL Client\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-data-fetching-graphql-urql\",\n },\n \"web-dnd-dnd-kit\": {\n id: \"web-dnd-dnd-kit\",\n slug: \"dnd-kit\",\n displayName: \"dnd-kit\",\n description: \"Drag and drop toolkit with @dnd-kit\",\n usageGuidance:\n \"Use when implementing drag and drop with @dnd-kit — sortable lists, Kanban boards, droppable containers, drag overlays, collision detection, keyboard/screen reader accessibility, and multi-container sorting.\",\n category: \"web-dnd\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-dnd-dnd-kit\",\n },\n \"web-ui-ant-design\": {\n id: \"web-ui-ant-design\",\n slug: \"ant-design\",\n displayName: \"Ant Design\",\n description: \"Ant Design enterprise UI library for React\",\n usageGuidance:\n \"Use when building React UIs with Ant Design — ConfigProvider theming, Table, Form, Layout, data entry components, and enterprise design patterns.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-ui-shadcn-ui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-mui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-mantine\",\n reason: \"React UI component libraries define competing design systems\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Ant Design is a React component library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-shadcn-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mantine\",\n purpose: \"UI Components (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-ui-ant-design\",\n },\n \"mobile-storage-sqlite-powersync\": {\n id: \"mobile-storage-sqlite-powersync\",\n slug: \"sqlite-powersync\",\n displayName: \"SQLite + PowerSync\",\n description: \"Offline-first SQLite sync engine\",\n usageGuidance:\n \"Use when building offline-first React Native apps with @powersync/react-native - local SQLite database with cloud sync, schema definition, watched queries, CRUD operations, backend connectors, conflict resolution, or attachment handling.\",\n category: \"mobile-storage\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-storage-sqlite-powersync\",\n },\n \"infra-ci-cd-turborepo-ci\": {\n id: \"infra-ci-cd-turborepo-ci\",\n slug: \"turborepo-ci\",\n displayName: \"Turborepo CI\",\n description: \"Turborepo CI pipelines with remote caching and affected detection\",\n usageGuidance:\n \"Use when configuring CI/CD for Turborepo monorepos — remote caching, affected detection, task pipelines, parallel execution, and CI provider integration.\",\n category: \"infra-ci-cd\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-ci-cd-turborepo-ci\",\n },\n \"web-meta-framework-nuxt\": {\n id: \"web-meta-framework-nuxt\",\n slug: \"nuxt\",\n displayName: \"Nuxt\",\n description: \"Nuxt full-stack framework\",\n usageGuidance: \"Use when building Nuxt apps with useFetch, useState, or server routes.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-forms-vee-validate\",\n \"web-framework-vue-composition-api\",\n \"web-i18n-vue-i18n\",\n \"web-state-pinia\",\n \"web-testing-vue-test-utils\",\n \"web-data-fetching-graphql-urql\",\n \"web-framework-react\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-sveltekit\",\n \"web-utilities-vueuse\",\n \"web-tooling-storybook\",\n \"web-framework-angular-standalone\",\n \"web-forms-tanstack-form\",\n \"web-ui-vuetify\",\n ],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\"],\n needsAny: false,\n reason: \"Nuxt is built on Vue\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-meta-framework-nuxt\",\n },\n \"api-baas-supabase\": {\n id: \"api-baas-supabase\",\n slug: \"supabase\",\n displayName: \"Supabase\",\n description: \"Supabase backend-as-a-service platform\",\n usageGuidance:\n \"Use when building with Supabase Auth, Database, Realtime, Storage, or Edge Functions. Covers client setup, typed queries, RLS policies, realtime subscriptions, file storage, and Deno edge functions.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-baas-firebase\",\n reason: \"Backend-as-a-Service platforms are mutually exclusive\",\n },\n {\n skillId: \"api-baas-appwrite\",\n reason: \"Backend-as-a-Service platforms are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-firebase\",\n purpose: \"Backend as a Service\",\n },\n {\n skillId: \"api-baas-appwrite\",\n purpose: \"Backend as a Service\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-baas-supabase\",\n },\n \"api-database-mongoose\": {\n id: \"api-database-mongoose\",\n slug: \"mongoose\",\n displayName: \"Mongoose\",\n description: \"MongoDB ODM with schemas, validation, middleware, and TypeScript support\",\n usageGuidance:\n \"Use when working with MongoDB via Mongoose — schema definitions, model creation, queries, population, middleware hooks, virtuals, and TypeScript integration.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-mongodb\",\n reason: \"Raw MongoDB driver and Mongoose ODM are alternative approaches\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-mongodb\",\n purpose: \"MongoDB\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-mongoose\",\n },\n \"web-dataviz-d3\": {\n id: \"web-dataviz-d3\",\n slug: \"d3\",\n displayName: \"D3.js\",\n description: \"Data-driven visualizations with D3.js\",\n usageGuidance:\n \"Use when building custom data visualizations with D3.js — selections, data joins, scales, axes, shapes, transitions, force layouts, geographic projections, and integrating D3 with component frameworks.\",\n category: \"web-dataviz\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-dataviz-d3\",\n },\n \"web-state-mobx\": {\n id: \"web-state-mobx\",\n slug: \"mobx\",\n displayName: \"MobX\",\n description: \"Observable reactive state management\",\n usageGuidance:\n \"Use when implementing client-side state with MobX observables, computed values, actions, reactions, or the observer HOC from mobx-react-lite. Not for server state or simple local UI state (use useState).\",\n category: \"web-client-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-state-zustand\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n {\n skillId: \"web-state-jotai\",\n reason: \"React state management libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"Skill teaches React/React Native patterns\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-state-zustand\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-redux-toolkit\",\n purpose: \"Client State (React)\",\n },\n {\n skillId: \"web-state-jotai\",\n purpose: \"Client State (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-state-mobx\",\n },\n \"infra-platform-netlify\": {\n id: \"infra-platform-netlify\",\n slug: \"netlify\",\n displayName: \"Netlify\",\n description: \"Netlify deployment platform, serverless functions, and edge functions\",\n usageGuidance:\n \"Use when deploying to Netlify — site configuration, serverless functions, edge functions, redirects/rewrites, forms, environment variables, build plugins, and deployment workflows.\",\n category: \"infra-platform\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-platform-netlify\",\n },\n \"web-animation-css-animations\": {\n id: \"web-animation-css-animations\",\n slug: \"css-animations\",\n displayName: \"CSS Animations\",\n description: \"Native CSS animations\",\n usageGuidance:\n \"Use when implementing CSS transitions, keyframes, or scroll-driven animations.\",\n category: \"web-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-animation-framer-motion\",\n purpose: \"Animation\",\n },\n {\n skillId: \"web-animation-view-transitions\",\n purpose: \"Animation\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-animation-css-animations\",\n },\n \"web-editor-tiptap\": {\n id: \"web-editor-tiptap\",\n slug: \"tiptap\",\n displayName: \"TipTap\",\n description: \"Rich text editor framework with TipTap and ProseMirror\",\n usageGuidance:\n \"Use when building rich text editors with TipTap — editor setup, extensions, custom nodes/marks, menus (bubble/floating), collaborative editing, content serialization, keyboard shortcuts, and schema customization.\",\n category: \"web-editor\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-editor-tiptap\",\n },\n \"api-auth-better-auth-drizzle-hono\": {\n id: \"api-auth-better-auth-drizzle-hono\",\n slug: \"better-auth-drizzle-hono\",\n displayName: \"Better Auth\",\n description: \"Authentication and sessions\",\n usageGuidance: \"Use when implementing authentication, sessions, OAuth, or user management.\",\n category: \"api-auth\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-auth-nextauth\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n {\n skillId: \"api-auth-clerk\",\n reason: \"Authentication solutions are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [\n {\n skillIds: [\"api-database-drizzle\"],\n needsAny: false,\n reason: \"Skill teaches Better Auth with the Drizzle adapter\",\n },\n ],\n alternatives: [\n {\n skillId: \"api-auth-nextauth\",\n purpose: \"Auth\",\n },\n {\n skillId: \"api-auth-clerk\",\n purpose: \"Auth\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Full-featured auth solution\",\n path: \"skills/api-auth-better-auth-drizzle-hono\",\n },\n \"shared-monorepo-nx\": {\n id: \"shared-monorepo-nx\",\n slug: \"nx\",\n displayName: \"Nx\",\n description: \"Nx monorepo build system and task orchestration\",\n usageGuidance:\n \"Use when setting up or working with Nx monorepos — workspace configuration, project graph, task pipelines, caching, generators, and plugins.\",\n category: \"shared-monorepo\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"shared-monorepo-turborepo\",\n reason: \"Monorepo build orchestrators are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"shared-monorepo-turborepo\",\n purpose: \"Monorepo Orchestrator\",\n },\n ],\n isRecommended: false,\n path: \"skills/shared-monorepo-nx\",\n },\n \"mobile-navigation-react-navigation\": {\n id: \"mobile-navigation-react-navigation\",\n slug: \"react-navigation\",\n displayName: \"React Navigation\",\n description: \"Type-safe mobile navigation patterns\",\n usageGuidance:\n \"Use when implementing navigation in React Native apps: stack/tab/drawer navigators, deep linking, type-safe navigation with TypeScript, authentication flows, screen preloading, or header customization. Covers both static and dynamic APIs.\",\n category: \"mobile-navigation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-navigation-react-navigation\",\n },\n \"api-baas-appwrite\": {\n id: \"api-baas-appwrite\",\n slug: \"appwrite\",\n displayName: \"Appwrite\",\n description: \"Open-source backend-as-a-service with auth, databases, storage, and functions\",\n usageGuidance:\n \"Use when building with Appwrite — client/server SDKs for authentication, TablesDB (tables, rows, columns), file storage with buckets, serverless functions, and realtime subscriptions.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-baas-supabase\",\n reason: \"Backend-as-a-Service platforms are mutually exclusive\",\n },\n {\n skillId: \"api-baas-firebase\",\n reason: \"Backend-as-a-Service platforms are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-supabase\",\n purpose: \"Backend as a Service\",\n },\n {\n skillId: \"api-baas-firebase\",\n purpose: \"Backend as a Service\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-baas-appwrite\",\n },\n \"cli-framework-oclif-ink\": {\n id: \"cli-framework-oclif-ink\",\n slug: \"oclif-ink\",\n displayName: \"oclif + Ink\",\n description: \"CLI dev with oclif framework and Ink React\",\n usageGuidance:\n \"Use when building command-line interfaces with oclif framework, React-based terminal UIs with Ink, or integrating both for interactive CLI applications. Triggers: oclif, Ink, @oclif/core, @inkjs/ui, terminal React, CLI commands, useInput, useApp, render(), Command class, Flags, Args.\",\n category: \"cli-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"cli-framework-cli-commander\",\n reason: \"CLI frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"cli-framework-cli-commander\",\n purpose: \"CLI Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/cli-framework-oclif-ink\",\n },\n \"api-cms-strapi\": {\n id: \"api-cms-strapi\",\n slug: \"strapi\",\n displayName: \"Strapi\",\n description: \"Open-source headless CMS with content types, REST/GraphQL API, and admin panel\",\n usageGuidance:\n \"Use when building content-managed applications with Strapi — content type schemas, REST API (filters, populate, pagination), Document Service API (find, create, update, delete, publish), custom controllers, services, policies, middlewares, lifecycle hooks, authentication (register, login, JWT), roles and permissions, media upload, and TypeScript support.\",\n category: \"api-cms\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-cms-payload\",\n reason: \"CMS platforms are mutually exclusive\",\n },\n {\n skillId: \"api-cms-sanity\",\n reason: \"CMS platforms are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-cms-payload\",\n purpose: \"CMS\",\n },\n {\n skillId: \"api-cms-sanity\",\n purpose: \"CMS\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-cms-strapi\",\n },\n \"api-graphql-apollo-server\": {\n id: \"api-graphql-apollo-server\",\n slug: \"apollo-server\",\n displayName: \"Apollo Server\",\n description: \"GraphQL API server with Apollo Server\",\n usageGuidance:\n \"Use when building GraphQL APIs with Apollo Server — schema definition, resolvers, context, data sources, error handling, subscriptions, caching, and federation patterns.\",\n category: \"api-graphql\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-graphql-apollo-server\",\n },\n \"api-graphql-mercurius\": {\n id: \"api-graphql-mercurius\",\n slug: \"mercurius\",\n displayName: \"Mercurius\",\n description: \"GraphQL server for Fastify with Mercurius\",\n usageGuidance:\n \"Use when building GraphQL APIs on Fastify with Mercurius — schema definition, resolvers, loaders (DataLoader-like batching), subscriptions, federation, gateway, and Fastify plugin integration.\",\n category: \"api-graphql\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-graphql-mercurius\",\n },\n \"web-utilities-vueuse\": {\n id: \"web-utilities-vueuse\",\n slug: \"vueuse\",\n displayName: \"Vueuse\",\n description: \"Vue Composition API utility collection with 250+ composable functions\",\n usageGuidance:\n \"Use when building Vue apps with VueUse — browser APIs (useLocalStorage, useClipboard, useFetch), sensors (useMouse, useScroll), animations, state management helpers, and component utilities.\",\n category: \"web-utilities\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n requires: [\n {\n skillIds: [\"web-framework-vue-composition-api\", \"web-meta-framework-nuxt\"],\n needsAny: true,\n reason: \"VueUse composables require Vue 3\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-utilities-vueuse\",\n },\n \"api-baas-firebase\": {\n id: \"api-baas-firebase\",\n slug: \"firebase\",\n displayName: \"Firebase\",\n description: \"Google Firebase platform for web and mobile\",\n usageGuidance:\n \"Use when building with Firebase — Firestore, Authentication, Cloud Functions, Storage, Hosting, Realtime Database, and Firebase Admin SDK.\",\n category: \"api-baas\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-baas-supabase\",\n reason: \"Backend-as-a-Service platforms are mutually exclusive\",\n },\n {\n skillId: \"api-baas-appwrite\",\n reason: \"Backend-as-a-Service platforms are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-supabase\",\n purpose: \"Backend as a Service\",\n },\n {\n skillId: \"api-baas-appwrite\",\n purpose: \"Backend as a Service\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-baas-firebase\",\n },\n \"desktop-backend-tauri\": {\n id: \"desktop-backend-tauri\",\n slug: \"tauri-backend\",\n displayName: \"Tauri Rust Backend\",\n description: \"Rust command patterns, state, error handling\",\n usageGuidance:\n \"Use when writing Tauri Rust backend code: defining #[tauri::command] handlers (sync and async), managing state with app.manage() and State<T>, implementing error types with thiserror + serde::Serialize, emitting events from Rust, streaming data via Channel<T>, or testing Rust commands with the mock runtime.\",\n category: \"desktop-backend\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-backend-tauri\",\n },\n \"infra-iac-terraform\": {\n id: \"infra-iac-terraform\",\n slug: \"terraform\",\n displayName: \"Terraform\",\n description: \"Infrastructure as Code with HashiCorp Terraform\",\n usageGuidance:\n \"Use when writing Terraform/OpenTofu configurations — HCL syntax, resource definitions, modules, state management, providers, workspaces, and plan/apply workflows.\",\n category: \"infra-iac\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-iac-terraform\",\n },\n \"api-database-redis\": {\n id: \"api-database-redis\",\n slug: \"redis\",\n displayName: \"Redis\",\n description: \"Redis in-memory data store with ioredis\",\n usageGuidance:\n \"Use when implementing caching, session storage, rate limiting, pub/sub messaging, queues, or real-time leaderboards with Redis.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-upstash\",\n reason: \"Cache and KV store providers are mutually exclusive\",\n },\n {\n skillId: \"api-database-vercel-kv\",\n reason: \"Cache and KV store providers are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-upstash\",\n purpose: \"Cache / KV Store\",\n },\n {\n skillId: \"api-database-vercel-kv\",\n purpose: \"Cache / KV Store\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-redis\",\n },\n \"desktop-security-tauri\": {\n id: \"desktop-security-tauri\",\n slug: \"tauri-security\",\n displayName: \"Tauri Capabilities & ACL\",\n description: \"Deny-by-default security, capabilities, permissions, scopes\",\n usageGuidance:\n \"Use when configuring Tauri 2.x capabilities, permissions, or scopes. Covers capability file structure, window-specific permissions, allow/deny scopes, custom permission definitions, permission sets, remote domain access, debugging permission errors, and migrating from the Tauri 1.x allowlist. Not for Tauri commands, IPC, plugins, or window management (use desktop-framework-tauri).\",\n category: \"desktop-security\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-security-tauri\",\n },\n \"desktop-multiwindow-tauri\": {\n id: \"desktop-multiwindow-tauri\",\n slug: \"tauri-multiwindow\",\n displayName: \"Tauri Multi-Window & Events\",\n description: \"Multi-window management and event system\",\n usageGuidance:\n \"Use when creating or managing multiple windows in a Tauri 2.x app, communicating between windows via events (emit, emitTo, emit_filter), handling close confirmation, persisting window state, or setting up parent/child and modal window relationships.\",\n category: \"desktop-multiwindow\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-multiwindow-tauri\",\n },\n \"mobile-deployment-eas\": {\n id: \"mobile-deployment-eas\",\n slug: \"eas\",\n displayName: \"EAS\",\n description: \"EAS Build, Update, Submit patterns\",\n usageGuidance:\n \"Use when configuring EAS Build profiles, publishing OTA updates with EAS Update, submitting to app stores with EAS Submit, managing credentials, setting up CI/CD with EAS Workflows, or configuring eas.json for any Expo project.\",\n category: \"mobile-deployment\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-deployment-eas\",\n },\n \"web-dataviz-recharts\": {\n id: \"web-dataviz-recharts\",\n slug: \"recharts\",\n displayName: \"Recharts\",\n description: \"Composable chart components with Recharts\",\n usageGuidance:\n \"Use when building charts and data visualizations with Recharts — line charts, bar charts, area charts, pie charts, scatter plots, composed charts, responsive containers, custom tooltips, animations, and real-time data updates.\",\n category: \"web-dataviz\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-dataviz-recharts\",\n },\n \"web-meta-framework-docusaurus\": {\n id: \"web-meta-framework-docusaurus\",\n slug: \"docusaurus\",\n displayName: \"Docusaurus\",\n description: \"Docusaurus 3.x documentation site framework\",\n usageGuidance:\n \"Use when building or maintaining documentation sites with Docusaurus 3.x — configuring docs/blog plugins, sidebars, versioning, MDX content, swizzling theme components, or deploying static builds.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-vitepress\",\n reason: \"Documentation frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"Docusaurus is built on React\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-vitepress\",\n purpose: \"Documentation Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-meta-framework-docusaurus\",\n },\n \"shared-monorepo-pnpm-workspaces\": {\n id: \"shared-monorepo-pnpm-workspaces\",\n slug: \"pnpm-workspaces\",\n displayName: \"pnpm Workspaces\",\n description: \"pnpm workspace protocol for monorepo management\",\n usageGuidance:\n \"Use when managing monorepos with pnpm — workspace protocol, filtering, shared dependencies, publishConfig, and catalog for version synchronization.\",\n category: \"shared-monorepo\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/shared-monorepo-pnpm-workspaces\",\n },\n \"mobile-styling-unistyles\": {\n id: \"mobile-styling-unistyles\",\n slug: \"unistyles\",\n displayName: \"Unistyles\",\n description: \"C++ powered React Native styling\",\n usageGuidance:\n \"Use when styling React Native components with Unistyles 3.0: theming with StyleSheet.configure, breakpoints and media queries, variants and compound variants, dynamic functions, runtime values (insets, screen, fontScale), scoped themes, or migrating from Unistyles 2.x.\",\n category: \"mobile-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-styling-unistyles\",\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: \"meta-reviewing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/meta-reviewing-reviewing\",\n },\n \"web-ui-mui\": {\n id: \"web-ui-mui\",\n slug: \"mui\",\n displayName: \"MUI (Material UI)\",\n description: \"Material UI component library for React\",\n usageGuidance:\n \"Use when building React UIs with MUI — theming, component customization, sx prop, styled API, data grids, date pickers, and Material Design patterns.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-ui-shadcn-ui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-mantine\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-ant-design\",\n reason: \"React UI component libraries define competing design systems\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"MUI is a React component library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-shadcn-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mantine\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-ant-design\",\n purpose: \"UI Components (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-ui-mui\",\n },\n \"desktop-packaging-electron-forge\": {\n id: \"desktop-packaging-electron-forge\",\n slug: \"electron-forge\",\n displayName: \"Electron Forge\",\n description: \"Electron build toolchain, makers, publishers, signing\",\n usageGuidance:\n \"Use when configuring Electron Forge (forge.config.ts), setting up makers for platform-specific installers, configuring publishers for release distribution, code signing and notarization, Electron Fuses, build hooks, or choosing between Forge and electron-builder.\",\n category: \"desktop-packaging\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-packaging-electron-forge\",\n },\n \"ai-infrastructure-modal\": {\n id: \"ai-infrastructure-modal\",\n slug: \"modal\",\n displayName: \"Modal\",\n description: \"Serverless GPU compute platform for AI model deployment and inference\",\n usageGuidance:\n \"Use when deploying ML models or GPU workloads on Modal — web endpoints for API access from TypeScript, serverless GPU functions, model serving, scheduled jobs, and container-based deployments.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/ai-infrastructure-modal\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-prisma\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-sequelize\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-typeorm\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-knex\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-prisma\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-sequelize\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-typeorm\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-knex\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Modern TypeScript-first ORM\",\n path: \"skills/api-database-drizzle\",\n },\n \"api-database-surrealdb\": {\n id: \"api-database-surrealdb\",\n slug: \"surrealdb\",\n displayName: \"SurrealDB\",\n description:\n \"Multi-model database with SQL-like query language, graph relations, and real-time subscriptions\",\n usageGuidance:\n \"Use when working with SurrealDB — SurrealQL queries, record links for graph relations, live queries for real-time, schema-full and schema-less modes, and multi-tenancy with namespaces and databases.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-database-surrealdb\",\n },\n \"web-testing-vitest\": {\n id: \"web-testing-vitest\",\n slug: \"vitest\",\n displayName: \"Vitest\",\n description: \"Vite-native test runner\",\n usageGuidance:\n \"Use when writing unit tests, integration tests, configuring Vitest, or using vi.fn/vi.mock/vi.spyOn.\",\n category: \"web-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Fast, modern test runner for all frameworks\",\n path: \"skills/web-testing-vitest\",\n },\n \"web-meta-framework-nextjs\": {\n id: \"web-meta-framework-nextjs\",\n slug: \"nextjs\",\n displayName: \"Next.js\",\n description: \"Next.js full-stack framework\",\n usageGuidance:\n \"Use when building Next.js apps with App Router, Server/Client Components, Server Actions, or streaming.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-animation-framer-motion\",\n \"web-framework-react\",\n \"web-meta-framework-remix\",\n \"web-error-handling-error-boundaries\",\n \"web-files-file-upload-patterns\",\n \"web-files-image-handling\",\n \"web-forms-react-hook-form\",\n \"mobile-framework-react-native\",\n \"web-i18n-react-intl\",\n \"web-server-state-react-query\",\n \"web-data-fetching-swr\",\n \"web-data-fetching-trpc\",\n \"web-state-jotai\",\n \"web-state-mobx\",\n \"web-state-redux-toolkit\",\n \"web-state-zustand\",\n \"web-testing-react-testing-library\",\n \"web-ui-radix-ui\",\n \"web-ui-shadcn-ui\",\n \"web-ui-tanstack-table\",\n \"web-data-fetching-graphql-apollo\",\n \"web-i18n-next-intl\",\n \"api-auth-clerk\",\n \"web-data-fetching-graphql-urql\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n \"web-ui-chakra-ui\",\n \"web-ui-mantine\",\n \"web-ui-mui\",\n \"web-ui-ant-design\",\n \"web-ui-headless-ui\",\n \"web-tooling-storybook\",\n \"web-framework-angular-standalone\",\n \"web-forms-tanstack-form\",\n \"api-email-resend-react-email\",\n ],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"Next.js is built on React\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-meta-framework-nextjs\",\n },\n \"api-database-cockroachdb\": {\n id: \"api-database-cockroachdb\",\n slug: \"cockroachdb\",\n displayName: \"CockroachDB\",\n description: \"Distributed SQL with PostgreSQL wire protocol\",\n usageGuidance:\n \"Use when working with CockroachDB -- PostgreSQL-compatible wire protocol, distributed transactions with serializable isolation, automatic sharding, multi-region locality, and transaction retry logic.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-baas-neon\",\n reason: \"Managed PostgreSQL-compatible providers are mutually exclusive\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n reason: \"Managed PostgreSQL-compatible providers are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-baas-neon\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-planetscale\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-baas-turso\",\n purpose: \"Managed Database\",\n },\n {\n skillId: \"api-database-vercel-postgres\",\n purpose: \"Managed Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-cockroachdb\",\n },\n \"web-animation-view-transitions\": {\n id: \"web-animation-view-transitions\",\n slug: \"view-transitions\",\n displayName: \"View Transitions\",\n description: \"Page transition animations\",\n usageGuidance: \"Use when implementing page transitions with View Transitions API.\",\n category: \"web-animation\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-animation-framer-motion\",\n purpose: \"Animation\",\n },\n {\n skillId: \"web-animation-css-animations\",\n purpose: \"Animation\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-animation-view-transitions\",\n },\n \"shared-tooling-changesets\": {\n id: \"shared-tooling-changesets\",\n slug: \"changesets\",\n displayName: \"Changesets\",\n description: \"Versioning and changelog management with Changesets\",\n usageGuidance:\n \"Use when managing package versioning and changelogs with @changesets/cli — adding changesets, version bumping, changelog generation, monorepo publishing, pre-release modes, and CI automation.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/shared-tooling-changesets\",\n },\n \"api-framework-nestjs\": {\n id: \"api-framework-nestjs\",\n slug: \"nestjs\",\n displayName: \"NestJS\",\n description: \"NestJS structured backend framework\",\n usageGuidance:\n \"Use when building NestJS apps with modules, controllers, services, or decorators.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-hono\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-express\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-elysia\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-hono\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-express\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-fastify\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-elysia\",\n purpose: \"API Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-framework-nestjs\",\n },\n \"api-email-resend-react-email\": {\n id: \"api-email-resend-react-email\",\n slug: \"resend-react-email\",\n displayName: \"Resend\",\n description: \"Transactional email templates\",\n usageGuidance: \"Use when sending transactional emails or building React Email templates.\",\n category: \"api-email\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"React Email uses React for email templates\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/api-email-resend-react-email\",\n },\n \"web-3d-react-three-fiber\": {\n id: \"web-3d-react-three-fiber\",\n slug: \"react-three-fiber\",\n displayName: \"React Three Fiber\",\n description: \"3D rendering with React Three Fiber and Three.js\",\n usageGuidance:\n \"Use when building 3D experiences with React Three Fiber (R3F) — scene setup, meshes, materials, lights, cameras, animations, physics (rapier), post-processing, performance optimization, and interaction/events.\",\n category: \"web-3d\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-3d-react-three-fiber\",\n },\n \"web-maps-mapbox\": {\n id: \"web-maps-mapbox\",\n slug: \"mapbox\",\n displayName: \"Mapbox GL JS\",\n description: \"Interactive maps with Mapbox GL JS\",\n usageGuidance:\n \"Use when building interactive maps with Mapbox GL JS — map initialization, markers, popups, layers, sources, expressions, geocoding, directions, clustering, 3D terrain, and style customization.\",\n category: \"web-maps\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-maps-mapbox\",\n },\n \"mobile-ui-components-tamagui\": {\n id: \"mobile-ui-components-tamagui\",\n slug: \"tamagui\",\n displayName: \"Tamagui\",\n description: \"Universal UI for React Native and web\",\n usageGuidance:\n \"Use when building universal React Native + web UIs with Tamagui styled components, token system, themes, optimizing compiler, responsive media queries, animations, or Tamagui UI kit components (Sheet, Dialog, Button, Input).\",\n category: \"mobile-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-ui-components-tamagui\",\n },\n \"api-framework-express\": {\n id: \"api-framework-express\",\n slug: \"express\",\n displayName: \"Express\",\n description: \"Express API framework\",\n usageGuidance: \"Use when building Express.js APIs, middleware chains, or error handling.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-hono\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-fastify\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-elysia\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-nestjs\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-hono\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-fastify\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-elysia\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-nestjs\",\n purpose: \"API Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-framework-express\",\n },\n \"desktop-plugins-tauri\": {\n id: \"desktop-plugins-tauri\",\n slug: \"tauri-plugins\",\n displayName: \"Tauri Plugins\",\n description: \"Official plugin ecosystem and custom plugin development\",\n usageGuidance:\n \"Use when installing, configuring, or using official Tauri 2.x plugins (fs, http, store, dialog, notification, shell, updater, log, sql, stronghold, deep-link, global-shortcut, autostart, clipboard, window-state, barcode-scanner, biometric, single-instance, os, process), or when developing custom plugins with the Rust Builder pattern and optional mobile (Swift/Kotlin) support.\",\n category: \"desktop-plugins\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-plugins-tauri\",\n },\n \"desktop-security-electron\": {\n id: \"desktop-security-electron\",\n slug: \"electron-security\",\n displayName: \"Electron Security & Fuses\",\n description: \"Electron fuses, ASAR integrity, sandbox hardening\",\n usageGuidance:\n \"Use when hardening an Electron app's security posture: flipping fuses with @electron/fuses, configuring ASAR integrity validation, enforcing sandbox and contextIsolation defaults, setting Content Security Policy, restricting permissions, or validating deep link URLs.\",\n category: \"desktop-security\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/desktop-security-electron\",\n },\n \"web-ui-tanstack-table\": {\n id: \"web-ui-tanstack-table\",\n slug: \"tanstack-table\",\n displayName: \"TanStack Table\",\n description: \"Data table component\",\n usageGuidance: \"Use when building data tables with sorting, filtering, or pagination.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Skill teaches @tanstack/react-table patterns\",\n },\n ],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-ui-tanstack-table\",\n },\n \"infra-platform-vercel\": {\n id: \"infra-platform-vercel\",\n slug: \"vercel\",\n displayName: \"Vercel\",\n description: \"Vercel deployment platform, edge functions, and middleware\",\n usageGuidance:\n \"Use when deploying to Vercel — project configuration (vercel.json/vercel.ts), serverless and edge functions, Routing Middleware, cron jobs, environment variables, monorepo setup, regions, headers, redirects, rewrites, and deployment workflows.\",\n category: \"infra-platform\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-platform-vercel\",\n },\n \"ai-observability-langfuse\": {\n id: \"ai-observability-langfuse\",\n slug: \"langfuse\",\n displayName: \"Langfuse\",\n description: \"LLM observability platform with tracing, evaluations, and prompt management\",\n usageGuidance:\n \"Use when adding observability to LLM applications — tracing LLM calls, tracking costs, evaluations, prompt management, session tracking, user feedback, and datasets for testing with Langfuse.\",\n category: \"ai-observability\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-observability-promptfoo\",\n purpose: \"AI Evaluation / Observability\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-observability-langfuse\",\n },\n \"web-meta-framework-remix\": {\n id: \"web-meta-framework-remix\",\n slug: \"remix\",\n displayName: \"Remix\",\n description: \"Remix full-stack framework\",\n usageGuidance: \"Use when building Remix apps with loaders, actions, or useFetcher.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-animation-framer-motion\",\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-error-handling-error-boundaries\",\n \"web-files-file-upload-patterns\",\n \"web-files-image-handling\",\n \"web-forms-react-hook-form\",\n \"mobile-framework-react-native\",\n \"web-i18n-react-intl\",\n \"web-server-state-react-query\",\n \"web-data-fetching-swr\",\n \"web-data-fetching-trpc\",\n \"web-state-jotai\",\n \"web-state-mobx\",\n \"web-state-redux-toolkit\",\n \"web-state-zustand\",\n \"web-testing-react-testing-library\",\n \"web-ui-radix-ui\",\n \"web-ui-shadcn-ui\",\n \"web-ui-tanstack-table\",\n \"web-data-fetching-graphql-apollo\",\n \"web-data-fetching-graphql-urql\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-sveltekit\",\n \"web-routing-react-router\",\n \"web-ui-chakra-ui\",\n \"web-ui-mantine\",\n \"web-ui-mui\",\n \"web-ui-ant-design\",\n \"web-ui-headless-ui\",\n \"web-tooling-storybook\",\n \"web-framework-angular-standalone\",\n \"web-forms-tanstack-form\",\n \"api-email-resend-react-email\",\n ],\n requires: [\n {\n skillIds: [\"web-framework-react\"],\n needsAny: false,\n reason: \"Remix is built on React\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-meta-framework-remix\",\n },\n \"web-error-handling-result-types\": {\n id: \"web-error-handling-result-types\",\n slug: \"result-types\",\n displayName: \"Result Types\",\n description: \"Type-safe error handling\",\n usageGuidance: \"Use when implementing Result/Either types for type-safe error handling.\",\n category: \"web-error-handling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-error-handling-result-types\",\n },\n \"web-performance-web-performance\": {\n id: \"web-performance-web-performance\",\n slug: \"web-performance\",\n displayName: \"Frontend Performance\",\n description: \"Bundle and render optimization\",\n usageGuidance:\n \"Use when optimizing bundle size, render performance, or implementing memoization.\",\n category: \"web-performance\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-performance-web-performance\",\n },\n \"shared-tooling-typescript-config\": {\n id: \"shared-tooling-typescript-config\",\n slug: \"typescript-config\",\n displayName: \"TypeScript Config\",\n description: \"Shared TypeScript strict configs\",\n usageGuidance:\n \"Use when configuring TypeScript strict mode, shared tsconfig patterns, path aliases, or TS 5.x module settings.\",\n category: \"shared-tooling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/shared-tooling-typescript-config\",\n },\n \"web-styling-tailwind\": {\n id: \"web-styling-tailwind\",\n slug: \"tailwind\",\n displayName: \"Tailwind CSS\",\n description: \"Utility-first CSS framework v4\",\n usageGuidance:\n \"Use when styling with Tailwind CSS v4 utility classes, configuring themes with @theme directive, implementing dark mode, responsive design, custom utilities with @utility, or composing component classes with cn() and tailwind-merge.\",\n category: \"web-styling\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-styling-scss-modules\",\n purpose: \"Styling\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Utility-first CSS framework\",\n path: \"skills/web-styling-tailwind\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-forms-tanstack-form\",\n reason: \"React form libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"React Hook Form is React only\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-forms-tanstack-form\",\n purpose: \"Forms (React)\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Best React form library\",\n path: \"skills/web-forms-react-hook-form\",\n },\n \"api-database-postgresql\": {\n id: \"api-database-postgresql\",\n slug: \"postgresql\",\n displayName: \"PostgreSQL\",\n description: \"Direct PostgreSQL database access with node-postgres (pg)\",\n usageGuidance:\n \"Use when interacting directly with PostgreSQL -- connection pools, parameterized queries, transactions, migrations, and type-safe query results with pg.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-mysql\",\n reason: \"SQL database engines are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-mysql\",\n purpose: \"SQL Database\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-postgresql\",\n },\n \"web-meta-framework-sveltekit\": {\n id: \"web-meta-framework-sveltekit\",\n slug: \"sveltekit\",\n displayName: \"SvelteKit\",\n description: \"SvelteKit full-stack framework\",\n usageGuidance:\n \"Use when building SvelteKit apps with load functions, form actions, or server hooks.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-data-fetching-graphql-urql\",\n \"web-framework-react\",\n \"web-framework-vue-composition-api\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-nuxt\",\n \"web-tooling-storybook\",\n \"web-framework-angular-standalone\",\n ],\n requires: [\n {\n skillIds: [\"web-framework-svelte\"],\n needsAny: false,\n reason: \"SvelteKit is built on Svelte\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-qwik\",\n purpose: \"Meta-Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-meta-framework-sveltekit\",\n },\n \"web-realtime-socket-io\": {\n id: \"web-realtime-socket-io\",\n slug: \"socket-io\",\n displayName: \"Socket.IO\",\n description: \"Bidirectional real-time communication\",\n usageGuidance: \"Use when implementing Socket.IO client connections, rooms, or namespaces.\",\n category: \"web-realtime\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-realtime-websockets\",\n reason: \"Socket.IO replaces raw WebSocket usage with its own protocol\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-realtime-websockets\",\n purpose: \"Realtime\",\n },\n {\n skillId: \"web-realtime-sse\",\n purpose: \"Realtime\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-realtime-socket-io\",\n },\n \"desktop-framework-electron\": {\n id: \"desktop-framework-electron\",\n slug: \"electron\",\n displayName: \"Electron\",\n description: \"Cross-platform desktop apps with web technologies\",\n usageGuidance:\n \"Use when building desktop applications with Electron, configuring main/renderer process architecture, IPC communication, preload scripts, security hardening, native API integration, or packaging for distribution.\",\n category: \"desktop-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"desktop-framework-tauri\",\n reason: \"Desktop frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"desktop-framework-tauri\",\n purpose: \"Desktop Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/desktop-framework-electron\",\n },\n \"api-vector-db-pinecone\": {\n id: \"api-vector-db-pinecone\",\n slug: \"pinecone\",\n displayName: \"Pinecone\",\n description: \"Serverless vector database for similarity search and RAG applications\",\n usageGuidance:\n \"Use when building semantic search or RAG with Pinecone -- index management, vector upsert/query, metadata filtering, namespaces, sparse-dense hybrid search, and serverless scaling.\",\n category: \"api-vector-db\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-vector-db-qdrant\",\n reason: \"Vector databases are mutually exclusive\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n reason: \"Vector databases are mutually exclusive\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n reason: \"Vector databases are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-vector-db-qdrant\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-chroma\",\n purpose: \"Vector Database\",\n },\n {\n skillId: \"api-vector-db-weaviate\",\n purpose: \"Vector Database\",\n },\n ],\n isRecommended: true,\n recommendedReason: \"Managed vector database for AI applications\",\n path: \"skills/api-vector-db-pinecone\",\n },\n \"web-accessibility-web-accessibility\": {\n id: \"web-accessibility-web-accessibility\",\n slug: \"web-accessibility\",\n displayName: \"Accessibility\",\n description: \"WCAG accessibility patterns\",\n usageGuidance:\n \"Use when implementing WCAG compliance, ARIA attributes, or keyboard navigation.\",\n category: \"web-accessibility\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-accessibility-web-accessibility\",\n },\n \"infra-platform-aws-sdk\": {\n id: \"infra-platform-aws-sdk\",\n slug: \"aws-sdk\",\n displayName: \"AWS SDK\",\n description: \"AWS SDK v3 for TypeScript — S3, DynamoDB, SQS, Lambda, and more\",\n usageGuidance:\n \"Use when integrating AWS services via the AWS SDK v3 for JavaScript/TypeScript — S3 operations, DynamoDB queries, SQS messaging, Lambda invocations, SNS notifications, Secrets Manager, and IAM patterns.\",\n category: \"infra-platform\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-platform-aws-sdk\",\n },\n \"infra-ci-cd-docker\": {\n id: \"infra-ci-cd-docker\",\n slug: \"docker\",\n displayName: \"Docker\",\n description: \"Docker containerization for development and deployment\",\n usageGuidance:\n \"Use when creating Dockerfiles, docker-compose configs, multi-stage builds, or containerized development environments for Node.js/TypeScript applications.\",\n category: \"infra-ci-cd\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-ci-cd-docker\",\n },\n \"mobile-storage-mmkv\": {\n id: \"mobile-storage-mmkv\",\n slug: \"mmkv\",\n displayName: \"MMKV\",\n description: \"High-performance key-value storage\",\n usageGuidance:\n \"Use when persisting key-value data in React Native with react-native-mmkv - synchronous reads/writes, encryption, multiple instances, hooks, or migrating from AsyncStorage.\",\n category: \"mobile-storage\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-storage-mmkv\",\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 author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-styling-tailwind\",\n purpose: \"Styling\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-styling-scss-modules\",\n },\n \"web-ui-mantine\": {\n id: \"web-ui-mantine\",\n slug: \"mantine\",\n displayName: \"Mantine\",\n description: \"Full-featured React component library with hooks, forms, and theming\",\n usageGuidance:\n \"Use when building React UIs with Mantine — 100+ components, CSS modules styling, theme customization, built-in hooks, form management with @mantine/form, and notification system.\",\n category: \"web-ui-components\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-ui-shadcn-ui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-mui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n reason: \"React UI component libraries define competing design systems\",\n },\n {\n skillId: \"web-ui-ant-design\",\n reason: \"React UI component libraries define competing design systems\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"Mantine is a React component library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-ui-shadcn-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-mui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-chakra-ui\",\n purpose: \"UI Components (React)\",\n },\n {\n skillId: \"web-ui-ant-design\",\n purpose: \"UI Components (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-ui-mantine\",\n },\n \"mobile-testing-detox\": {\n id: \"mobile-testing-detox\",\n slug: \"detox\",\n displayName: \"Detox\",\n description: \"React Native E2E gray-box testing\",\n usageGuidance:\n \"Use when writing end-to-end tests for React Native apps with Detox, configuring .detoxrc.js, using element matchers/actions/expectations, waitFor polling, device API, mocking with Metro, or setting up CI artifacts.\",\n category: \"mobile-testing\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-testing-detox\",\n },\n \"shared-security-auth-security\": {\n id: \"shared-security-auth-security\",\n slug: \"auth-security\",\n displayName: \"Security\",\n description: \"Application security patterns\",\n usageGuidance:\n \"Use when implementing authentication, authorization, XSS prevention, CSRF protection, CSP headers, or managing secrets.\",\n category: \"shared-security\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/shared-security-auth-security\",\n },\n \"web-utilities-native-js\": {\n id: \"web-utilities-native-js\",\n slug: \"native-js\",\n displayName: \"Native JS\",\n description: \"Native JS utilities\",\n usageGuidance: \"Use when using modern JS methods instead of lodash utilities.\",\n category: \"web-utilities\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/web-utilities-native-js\",\n },\n \"api-commerce-stripe\": {\n id: \"api-commerce-stripe\",\n slug: \"stripe\",\n displayName: \"Stripe\",\n description: \"Payment processing with subscriptions, checkout, webhooks, and Connect\",\n usageGuidance:\n \"Use when integrating payments with Stripe — Checkout Sessions, Payment Intents, subscriptions, webhooks, customer management, Connect for platforms, and Stripe Elements.\",\n category: \"api-commerce\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Industry-standard payment processing\",\n path: \"skills/api-commerce-stripe\",\n },\n \"api-framework-fastify\": {\n id: \"api-framework-fastify\",\n slug: \"fastify\",\n displayName: \"Fastify\",\n description: \"Fastify API framework\",\n usageGuidance:\n \"Use when building Fastify APIs, using JSON Schema validation, or plugin architecture.\",\n category: \"api-api\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-framework-hono\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-express\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-elysia\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skillId: \"api-framework-nestjs\",\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-framework-hono\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-express\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-elysia\",\n purpose: \"API Framework\",\n },\n {\n skillId: \"api-framework-nestjs\",\n purpose: \"API Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-framework-fastify\",\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 author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-testing-playwright-e2e\",\n reason: \"Both are E2E frameworks\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-testing-playwright-e2e\",\n purpose: \"E2E Testing\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-testing-cypress-e2e\",\n },\n \"api-database-vercel-kv\": {\n id: \"api-database-vercel-kv\",\n slug: \"vercel-kv\",\n displayName: \"Vercel KV\",\n description: \"Serverless Redis-compatible key-value store on Vercel\",\n usageGuidance:\n \"Use when deploying Redis-compatible KV storage on Vercel -- automatic connection via UPSTASH_REDIS_REST_URL env vars, edge-compatible REST API, Redis command compatibility, and TTL-based caching.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-redis\",\n reason: \"Cache and KV store providers are mutually exclusive\",\n },\n {\n skillId: \"api-database-upstash\",\n reason: \"Cache and KV store providers are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-redis\",\n purpose: \"Cache / KV Store\",\n },\n {\n skillId: \"api-database-upstash\",\n purpose: \"Cache / KV Store\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-vercel-kv\",\n },\n \"infra-ci-cd-github-actions\": {\n id: \"infra-ci-cd-github-actions\",\n slug: \"github-actions\",\n displayName: \"GitHub Actions\",\n description: \"CI/CD pipelines\",\n usageGuidance:\n \"Use when configuring CI/CD pipelines, GitHub workflows, or deployment automation.\",\n category: \"infra-ci-cd\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/infra-ci-cd-github-actions\",\n },\n \"mobile-ui-components-react-native-paper\": {\n id: \"mobile-ui-components-react-native-paper\",\n slug: \"react-native-paper\",\n displayName: \"React Native Paper\",\n description: \"Material Design 3 components for React Native\",\n usageGuidance:\n \"Use when building Material Design UIs with React Native Paper v5+, configuring PaperProvider theming (MD3 light/dark, custom themes, dynamic color), or using Paper components (Button, Card, TextInput, FAB, Appbar, Dialog, Snackbar, SegmentedButtons, BottomNavigation). Not for general React Native patterns.\",\n category: \"mobile-ui-components\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/mobile-ui-components-react-native-paper\",\n },\n \"api-analytics-posthog-analytics\": {\n id: \"api-analytics-posthog-analytics\",\n slug: \"posthog-analytics\",\n displayName: \"PostHog Analytics\",\n description: \"Product analytics tracking\",\n usageGuidance:\n \"Use when tracking user events, setting up funnels, or implementing GDPR-compliant analytics.\",\n category: \"api-analytics\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: true,\n recommendedReason: \"Product analytics and feature flags\",\n path: \"skills/api-analytics-posthog-analytics\",\n },\n \"web-meta-framework-qwik\": {\n id: \"web-meta-framework-qwik\",\n slug: \"qwik\",\n displayName: \"Qwik\",\n description: \"Resumable framework with zero JS hydration and fine-grained lazy loading\",\n usageGuidance:\n \"Use when building web apps that need instant interactivity — resumability eliminates hydration, $ suffixed functions mark lazy boundaries, and Qwik City provides file-based routing with server loaders and actions.\",\n category: \"web-meta-framework\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-meta-framework-nextjs\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n reason: \"Meta-frameworks are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"web-meta-framework-nextjs\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-remix\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-nuxt\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-sveltekit\",\n purpose: \"Meta-Framework\",\n },\n {\n skillId: \"web-meta-framework-astro\",\n purpose: \"Meta-Framework\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-meta-framework-qwik\",\n },\n \"ai-provider-elevenlabs\": {\n id: \"ai-provider-elevenlabs\",\n slug: \"elevenlabs\",\n displayName: \"ElevenLabs\",\n description: \"AI voice synthesis with text-to-speech, voice cloning, and real-time streaming\",\n usageGuidance:\n \"Use when generating speech with ElevenLabs — text-to-speech, streaming audio, voice cloning, voice selection, pronunciation control (SSML), and real-time conversational AI.\",\n category: \"ai-provider\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [],\n isRecommended: false,\n path: \"skills/ai-provider-elevenlabs\",\n },\n \"ai-infrastructure-ollama\": {\n id: \"ai-infrastructure-ollama\",\n slug: \"ollama\",\n displayName: \"Ollama\",\n description: \"Local LLM inference with the Ollama JavaScript client\",\n usageGuidance:\n \"Use when running LLMs locally with Ollama — chat completions, streaming, tool calling, vision, embeddings, model management, structured output with JSON schemas, and the OpenAI-compatible endpoint.\",\n category: \"ai-infrastructure\",\n author: \"@vince\",\n conflictsWith: [],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"ai-provider-anthropic-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-openai-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-google-gemini-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-mistral-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-provider-cohere-sdk\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-together-ai\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-replicate\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-huggingface-inference\",\n purpose: \"AI Provider SDK\",\n },\n {\n skillId: \"ai-infrastructure-litellm\",\n purpose: \"AI Provider SDK\",\n },\n ],\n isRecommended: false,\n path: \"skills/ai-infrastructure-ollama\",\n },\n \"web-data-fetching-swr\": {\n id: \"web-data-fetching-swr\",\n slug: \"swr\",\n displayName: \"SWR\",\n description: \"Server state and caching\",\n usageGuidance: \"Use when implementing stale-while-revalidate data fetching patterns.\",\n category: \"web-server-state\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-server-state-react-query\",\n reason: \"Both solve server state caching\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n \"mobile-framework-react-native\",\n ],\n needsAny: true,\n reason: \"SWR is a React Hooks library\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-server-state-react-query\",\n purpose: \"Server State / Data Fetching\",\n },\n {\n skillId: \"web-data-fetching-trpc\",\n purpose: \"Server State / Data Fetching\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-data-fetching-swr\",\n },\n \"api-database-sequelize\": {\n id: \"api-database-sequelize\",\n slug: \"sequelize\",\n displayName: \"Sequelize\",\n description: \"Promise-based ORM for SQL databases with model definitions and migrations\",\n usageGuidance:\n \"Use when working with SQL databases via Sequelize — model definitions, associations, queries, transactions, migrations, hooks, and scopes.\",\n category: \"api-database\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"api-database-drizzle\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-prisma\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-typeorm\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n {\n skillId: \"api-database-knex\",\n reason: \"SQL ORMs and query builders are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [],\n requires: [],\n alternatives: [\n {\n skillId: \"api-database-drizzle\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-prisma\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-typeorm\",\n purpose: \"SQL ORM / Query Builder\",\n },\n {\n skillId: \"api-database-knex\",\n purpose: \"SQL ORM / Query Builder\",\n },\n ],\n isRecommended: false,\n path: \"skills/api-database-sequelize\",\n },\n \"web-i18n-react-intl\": {\n id: \"web-i18n-react-intl\",\n slug: \"react-intl\",\n displayName: \"React Intl\",\n description: \"React internationalization\",\n usageGuidance: \"Use when implementing i18n in React with FormatJS/react-intl.\",\n category: \"web-i18n\",\n author: \"@vince\",\n conflictsWith: [\n {\n skillId: \"web-i18n-next-intl\",\n reason: \"React internationalization libraries are mutually exclusive\",\n },\n ],\n discourages: [],\n compatibleWith: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n requires: [\n {\n skillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-remix\",\n ],\n needsAny: true,\n reason: \"React Intl (FormatJS) is React only\",\n },\n ],\n alternatives: [\n {\n skillId: \"web-i18n-next-intl\",\n purpose: \"Internationalization (React)\",\n },\n ],\n isRecommended: false,\n path: \"skills/web-i18n-react-intl\",\n },\n },\n suggestedStacks: [\n {\n id: \"nextjs-fullstack\",\n name: \"Next.js Full-Stack\",\n description: \"Hono, Drizzle, Better Auth, Zustand\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-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 },\n \"api-reviewer\": {\n \"meta-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 },\n \"cli-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-cli-reviewing\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-scss-modules\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Ship fast, iterate faster\",\n },\n {\n id: \"nextjs-t3-stack\",\n name: \"Next.js T3 Stack\",\n description: \"tRPC, Prisma, NextAuth, Tailwind\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n },\n \"web-architecture\": {\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-server-state\": [\"web-data-fetching-trpc\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-database\": [\"api-database-prisma\"],\n \"api-auth\": [\"api-auth-nextauth\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-tailwind\",\n \"web-data-fetching-trpc\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-database-prisma\",\n \"api-auth-nextauth\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"End-to-end type safety with great DX\",\n },\n {\n id: \"nextjs-supabase-fullstack\",\n name: \"Next.js Supabase Full-Stack\",\n description: \"Supabase, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-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 },\n \"api-reviewer\": {\n \"meta-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-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"cli-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-cli-reviewing\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-baas\": [\"api-baas-supabase\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-scss-modules\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-baas-supabase\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Full-stack with Supabase backend-as-a-service\",\n },\n {\n id: \"nextjs-turborepo-fullstack\",\n name: \"Next.js Turborepo Full-Stack\",\n description: \"Turborepo, pnpm Workspaces, Hono, Drizzle\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"api-reviewer\": {\n \"meta-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-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"cli-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-cli-reviewing\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-monorepo\": [\"shared-monorepo-turborepo\", \"shared-monorepo-pnpm-workspaces\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-scss-modules\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"shared-monorepo-turborepo\",\n \"shared-monorepo-pnpm-workspaces\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Monorepo architecture with Turborepo and pnpm\",\n },\n {\n id: \"react-old-school\",\n name: \"React Old School\",\n description: \"Redux Toolkit, SCSS Modules, Vite, Vitest\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-redux-toolkit\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-routing\": [\"web-routing-react-router\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-state-redux-toolkit\",\n \"web-styling-scss-modules\",\n \"web-routing-react-router\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Classic React with proven patterns\",\n },\n {\n id: \"react-hono-fullstack\",\n name: \"React Hono Full-Stack\",\n description: \"Vite, Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-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 },\n \"api-reviewer\": {\n \"meta-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 },\n \"cli-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-cli-reviewing\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-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 \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-styling-scss-modules\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"React SPA with Hono backend\",\n },\n {\n id: \"remix-fullstack\",\n name: \"Remix Full-Stack\",\n description: \"Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-reviewer\": {\n \"meta-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 },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\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 },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-remix\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-remix\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Web standards and excellent forms handling\",\n },\n {\n id: \"sveltekit-fullstack\",\n name: \"SvelteKit Full-Stack\",\n description: \"Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-reviewer\": {\n \"meta-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 },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\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 },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-svelte\"],\n \"web-meta-framework\": [\"web-meta-framework-sveltekit\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-framework-svelte\",\n \"web-meta-framework-sveltekit\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Write less, do more with compiler magic\",\n },\n {\n id: \"solidjs-fullstack\",\n name: \"SolidJS Full-Stack\",\n description: \"Hono, Drizzle, Better Auth, Vitest\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-reviewer\": {\n \"meta-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 },\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 },\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 },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\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 },\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 \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\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 \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-solidjs\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-framework-solidjs\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Maximum performance with minimal overhead\",\n },\n {\n id: \"astro-content-fullstack\",\n name: \"Astro Content Full-Stack\",\n description: \"Hono, Drizzle\",\n skills: {\n \"web-developer\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n },\n \"web-pm\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n },\n \"web-researcher\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n },\n \"pattern-scout\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n },\n \"web-pattern-critique\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-meta-framework\": [\"web-meta-framework-astro\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-cms\": [\"api-cms-sanity\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-meta-framework-astro\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-observability-axiom-pino-sentry\",\n \"api-cms-sanity\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Ship less JavaScript, faster by default\",\n },\n {\n id: \"vue-modern-fullstack\",\n name: \"Vue Modern Full-Stack\",\n description: \"Pinia, Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-reviewer\": {\n \"meta-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 },\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 },\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 },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\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 },\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 \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\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 \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-framework-vue-composition-api\",\n \"web-state-pinia\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Progressive and approachable\",\n },\n {\n id: \"nuxt-fullstack\",\n name: \"Nuxt Full-Stack\",\n description: \"Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-reviewer\": {\n \"meta-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 },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\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 },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n \"web-meta-framework\": [\"web-meta-framework-nuxt\"],\n \"web-client-state\": [\"web-state-pinia\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-framework-vue-composition-api\",\n \"web-meta-framework-nuxt\",\n \"web-state-pinia\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Progressive Vue with Nuxt power\",\n },\n {\n id: \"angular-modern-fullstack\",\n name: \"Angular Modern Full-Stack\",\n description: \"NgRx, Hono, Drizzle, Better Auth\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-reviewer\": {\n \"meta-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 },\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 },\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 },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\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 },\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 \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\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 \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-angular-standalone\"],\n \"web-client-state\": [\"web-state-ngrx-signalstore\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n },\n },\n allSkillIds: [\n \"web-framework-angular-standalone\",\n \"web-state-ngrx-signalstore\",\n \"web-testing-vitest\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"meta-reviewing-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Enterprise-grade and type-safe\",\n },\n {\n id: \"nextjs-ai-saas\",\n name: \"Next.js AI SaaS\",\n description: \"Vercel AI, Anthropic, Drizzle, Pinecone\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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 \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"api-reviewer\": {\n \"meta-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 \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"cli-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-cli-reviewing\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"ai-orchestration\": [\"ai-orchestration-vercel-ai-sdk\"],\n \"ai-provider\": [\"ai-provider-anthropic-sdk\"],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"api-vector-db\": [\"api-vector-db-pinecone\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-tailwind\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"ai-orchestration-vercel-ai-sdk\",\n \"ai-provider-anthropic-sdk\",\n \"ai-patterns-tool-use-patterns\",\n \"api-vector-db-pinecone\",\n \"api-observability-axiom-pino-sentry\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"AI-first full-stack with streaming and tool use\",\n },\n {\n id: \"nextjs-saas-starter\",\n name: \"Next.js SaaS Starter\",\n description: \"Better Auth, Stripe, Drizzle, Resend, PostHog\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n \"web-tooling\": [\"web-tooling-vite\"],\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-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\", \"api-flags-posthog-flags\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"api-reviewer\": {\n \"meta-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-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n },\n \"cli-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-cli-reviewing\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-playwright-e2e\", \"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-architecture\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-meta-framework\": [\"web-meta-framework-nextjs\"],\n \"web-styling\": [\"web-styling-tailwind\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-analytics\": [\"api-analytics-posthog-analytics\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"web-meta-framework-nextjs\",\n \"web-styling-tailwind\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"web-accessibility-web-accessibility\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"web-tooling-vite\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-commerce-stripe\",\n \"api-observability-axiom-pino-sentry\",\n \"api-analytics-posthog-analytics\",\n \"api-flags-posthog-flags\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n \"web-testing-playwright-e2e\",\n ],\n philosophy: \"Ship your SaaS fast with auth, payments, and analytics\",\n },\n {\n id: \"expo-mobile-fullstack\",\n name: \"Expo Mobile Full-Stack\",\n description: \"Zustand, React Query, Hono, Drizzle\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\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-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"api-reviewer\": {\n \"meta-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 },\n \"cli-reviewer\": {\n \"meta-reviewing\": [\"meta-reviewing-cli-reviewing\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-tester\": {\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"web-pm\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-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-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"web-researcher\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n },\n \"api-researcher\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n },\n \"pattern-scout\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"agent-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"skill-summoner\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"codex-keeper\": {\n \"web-framework\": [\"web-framework-react\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-server-state\": [\"web-server-state-react-query\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\"],\n \"api-observability\": [\"api-observability-axiom-pino-sentry\"],\n \"api-email\": [\"api-email-resend-react-email\"],\n \"infra-ci-cd\": [\"infra-ci-cd-github-actions\"],\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n },\n \"cli-tester\": {},\n },\n allSkillIds: [\n \"web-framework-react\",\n \"mobile-framework-expo\",\n \"mobile-framework-react-native\",\n \"web-state-zustand\",\n \"web-server-state-react-query\",\n \"web-testing-vitest\",\n \"web-mocks-msw\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-email-resend-react-email\",\n \"infra-ci-cd-github-actions\",\n \"cli-framework-oclif-ink\",\n \"meta-reviewing-reviewing\",\n \"meta-reviewing-cli-reviewing\",\n ],\n philosophy: \"Cross-platform mobile with shared React patterns\",\n },\n {\n id: \"cli-ink-oclif\",\n name: \"CLI Tool\",\n description: \"oclif, Ink, Zustand, Vitest\",\n skills: {\n \"cli-developer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"cli-reviewer\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"cli-tester\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-pm\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"web-researcher\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"agent-summoner\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"skill-summoner\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n \"codex-keeper\": {\n \"cli-framework\": [\"cli-framework-oclif-ink\"],\n \"web-framework\": [\"web-framework-react\"],\n \"web-forms\": [\"web-forms-zod-validation\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-testing\": [\"web-testing-vitest\"],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-reviewing\": [\"meta-reviewing-reviewing\"],\n \"shared-tooling\": [\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n },\n },\n allSkillIds: [\n \"cli-framework-oclif-ink\",\n \"web-framework-react\",\n \"web-forms-zod-validation\",\n \"web-state-zustand\",\n \"web-testing-vitest\",\n \"meta-design-expressive-typescript\",\n \"meta-reviewing-reviewing\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-typescript-config\",\n \"shared-tooling-git-hooks\",\n ],\n philosophy: \"Terminal-native CLI with interactive React-based wizard UI\",\n },\n ],\n slugMap: {\n slugToId: {\n \"huggingface-inference\": \"ai-infrastructure-huggingface-inference\",\n trpc: \"web-data-fetching-trpc\",\n \"cohere-sdk\": \"ai-provider-cohere-sdk\",\n biome: \"shared-tooling-biome\",\n hono: \"api-framework-hono\",\n \"expressive-typescript\": \"meta-design-expressive-typescript\",\n \"react-native-security\": \"mobile-security-react-native\",\n vuetify: \"web-ui-vuetify\",\n mongodb: \"api-database-mongodb\",\n pulumi: \"infra-iac-pulumi\",\n \"setup-posthog\": \"api-analytics-setup-posthog\",\n react: \"web-framework-react\",\n typeorm: \"api-database-typeorm\",\n \"together-ai\": \"ai-infrastructure-together-ai\",\n prisma: \"api-database-prisma\",\n \"vercel-postgres\": \"api-database-vercel-postgres\",\n \"file-upload-patterns\": \"web-files-file-upload-patterns\",\n \"tauri-mobile\": \"desktop-mobile-tauri\",\n \"zod-validation\": \"web-forms-zod-validation\",\n rxjs: \"web-utilities-rxjs\",\n \"headless-ui\": \"web-ui-headless-ui\",\n \"ble-nfc\": \"mobile-hardware-ble-nfc\",\n payload: \"api-cms-payload\",\n maestro: \"mobile-testing-maestro\",\n mysql: \"api-database-mysql\",\n \"cli-commander\": \"cli-framework-cli-commander\",\n \"angular-standalone\": \"web-framework-angular-standalone\",\n nativewind: \"mobile-styling-nativewind\",\n \"git-hooks\": \"shared-tooling-git-hooks\",\n \"offline-first\": \"web-pwa-offline-first\",\n \"axiom-pino-sentry\": \"api-observability-axiom-pino-sentry\",\n expo: \"mobile-framework-expo\",\n push: \"mobile-notifications-push\",\n \"react-router\": \"web-routing-react-router\",\n jotai: \"web-state-jotai\",\n \"electron-storage\": \"desktop-storage-electron\",\n litellm: \"ai-infrastructure-litellm\",\n sst: \"infra-iac-sst\",\n kubernetes: \"infra-containers-kubernetes\",\n strategies: \"api-caching-strategies\",\n sanity: \"api-cms-sanity\",\n \"setup-axiom-pino-sentry\": \"api-observability-setup-axiom-pino-sentry\",\n websockets: \"web-realtime-websockets\",\n \"graphql-apollo\": \"web-data-fetching-graphql-apollo\",\n \"redux-toolkit\": \"web-state-redux-toolkit\",\n turso: \"api-baas-turso\",\n pinia: \"web-state-pinia\",\n openapi: \"api-specs-openapi\",\n clerk: \"api-auth-clerk\",\n elysia: \"api-framework-elysia\",\n vite: \"web-tooling-vite\",\n meilisearch: \"api-search-meilisearch\",\n \"vision-camera\": \"mobile-camera-vision-camera\",\n elasticsearch: \"api-search-elasticsearch\",\n \"gesture-handler\": \"mobile-animation-gesture-handler\",\n \"date-fns\": \"web-utilities-date-fns\",\n storybook: \"web-tooling-storybook\",\n \"claude-vision\": \"ai-provider-claude-vision\",\n \"cli-reviewing\": \"meta-reviewing-cli-reviewing\",\n \"electron-ui\": \"desktop-ui-electron\",\n planetscale: \"api-baas-planetscale\",\n upstash: \"api-database-upstash\",\n \"react-native-performance\": \"mobile-performance-react-native\",\n \"shadcn-ui\": \"web-ui-shadcn-ui\",\n nextauth: \"api-auth-nextauth\",\n \"openai-whisper\": \"ai-provider-openai-whisper\",\n promptfoo: \"ai-observability-promptfoo\",\n \"react-native\": \"mobile-framework-react-native\",\n tauri: \"desktop-framework-tauri\",\n sse: \"web-realtime-sse\",\n \"vue-composition-api\": \"web-framework-vue-composition-api\",\n langchain: \"ai-orchestration-langchain\",\n chroma: \"api-vector-db-chroma\",\n clack: \"cli-prompts-clack\",\n \"vee-validate\": \"web-forms-vee-validate\",\n \"vue-test-utils\": \"web-testing-vue-test-utils\",\n \"chakra-ui\": \"web-ui-chakra-ui\",\n zustand: \"web-state-zustand\",\n \"electron-ipc\": \"desktop-ipc-electron\",\n \"radix-ui\": \"web-ui-radix-ui\",\n \"ngrx-signalstore\": \"web-state-ngrx-signalstore\",\n llamaindex: \"ai-orchestration-llamaindex\",\n vitepress: \"web-meta-framework-vitepress\",\n \"posthog-flags\": \"api-flags-posthog-flags\",\n lexical: \"web-editor-lexical\",\n \"eslint-prettier\": \"shared-tooling-eslint-prettier\",\n \"openai-sdk\": \"ai-provider-openai-sdk\",\n \"framer-motion\": \"web-animation-framer-motion\",\n \"vercel-ai-sdk\": \"ai-orchestration-vercel-ai-sdk\",\n \"app-links\": \"mobile-deep-linking-app-links\",\n \"anthropic-sdk\": \"ai-provider-anthropic-sdk\",\n \"mistral-sdk\": \"ai-provider-mistral-sdk\",\n reanimated: \"mobile-animation-reanimated\",\n \"electron-updater\": \"desktop-updates-electron-updater\",\n \"setup-env\": \"infra-config-setup-env\",\n \"electron-multiwindow\": \"desktop-multiwindow-electron\",\n \"playwright-e2e\": \"web-testing-playwright-e2e\",\n \"error-boundaries\": \"web-error-handling-error-boundaries\",\n \"next-intl\": \"web-i18n-next-intl\",\n \"electron-testing\": \"desktop-testing-electron\",\n solidjs: \"web-framework-solidjs\",\n astro: \"web-meta-framework-astro\",\n neon: \"api-baas-neon\",\n edgedb: \"api-database-edgedb\",\n leaflet: \"web-maps-leaflet\",\n weaviate: \"api-vector-db-weaviate\",\n \"service-workers\": \"web-pwa-service-workers\",\n \"tanstack-form\": \"web-forms-tanstack-form\",\n watermelondb: \"mobile-storage-watermelondb\",\n \"cloudflare-workers\": \"infra-platform-cloudflare-workers\",\n \"react-testing-library\": \"web-testing-react-testing-library\",\n \"research-methodology\": \"meta-methodology-research-methodology\",\n replicate: \"ai-infrastructure-replicate\",\n bullmq: \"api-queue-bullmq\",\n knex: \"api-database-knex\",\n yoga: \"api-graphql-yoga\",\n \"tauri-bundling\": \"desktop-packaging-tauri\",\n cva: \"web-styling-cva\",\n webhooks: \"api-messaging-webhooks\",\n msw: \"web-mocks-msw\",\n \"expo-router\": \"mobile-navigation-expo-router\",\n tasks: \"mobile-background-tasks\",\n turborepo: \"shared-monorepo-turborepo\",\n skia: \"mobile-animation-skia\",\n \"google-gemini-sdk\": \"ai-provider-google-gemini-sdk\",\n \"vue-i18n\": \"web-i18n-vue-i18n\",\n \"tanstack-router\": \"web-routing-tanstack-router\",\n \"tool-use-patterns\": \"ai-patterns-tool-use-patterns\",\n qdrant: \"api-vector-db-qdrant\",\n \"image-handling\": \"web-files-image-handling\",\n \"setup-resend\": \"api-email-setup-resend\",\n \"react-query\": \"web-server-state-react-query\",\n svelte: \"web-framework-svelte\",\n \"api-performance\": \"api-performance-api-performance\",\n \"graphql-urql\": \"web-data-fetching-graphql-urql\",\n \"dnd-kit\": \"web-dnd-dnd-kit\",\n \"ant-design\": \"web-ui-ant-design\",\n \"sqlite-powersync\": \"mobile-storage-sqlite-powersync\",\n \"turborepo-ci\": \"infra-ci-cd-turborepo-ci\",\n nuxt: \"web-meta-framework-nuxt\",\n supabase: \"api-baas-supabase\",\n mongoose: \"api-database-mongoose\",\n d3: \"web-dataviz-d3\",\n mobx: \"web-state-mobx\",\n netlify: \"infra-platform-netlify\",\n \"css-animations\": \"web-animation-css-animations\",\n tiptap: \"web-editor-tiptap\",\n \"better-auth-drizzle-hono\": \"api-auth-better-auth-drizzle-hono\",\n nx: \"shared-monorepo-nx\",\n \"react-navigation\": \"mobile-navigation-react-navigation\",\n appwrite: \"api-baas-appwrite\",\n \"oclif-ink\": \"cli-framework-oclif-ink\",\n strapi: \"api-cms-strapi\",\n \"apollo-server\": \"api-graphql-apollo-server\",\n mercurius: \"api-graphql-mercurius\",\n vueuse: \"web-utilities-vueuse\",\n firebase: \"api-baas-firebase\",\n \"tauri-backend\": \"desktop-backend-tauri\",\n terraform: \"infra-iac-terraform\",\n redis: \"api-database-redis\",\n \"tauri-security\": \"desktop-security-tauri\",\n \"tauri-multiwindow\": \"desktop-multiwindow-tauri\",\n eas: \"mobile-deployment-eas\",\n recharts: \"web-dataviz-recharts\",\n docusaurus: \"web-meta-framework-docusaurus\",\n \"pnpm-workspaces\": \"shared-monorepo-pnpm-workspaces\",\n unistyles: \"mobile-styling-unistyles\",\n reviewing: \"meta-reviewing-reviewing\",\n mui: \"web-ui-mui\",\n \"electron-forge\": \"desktop-packaging-electron-forge\",\n modal: \"ai-infrastructure-modal\",\n drizzle: \"api-database-drizzle\",\n surrealdb: \"api-database-surrealdb\",\n vitest: \"web-testing-vitest\",\n nextjs: \"web-meta-framework-nextjs\",\n cockroachdb: \"api-database-cockroachdb\",\n \"view-transitions\": \"web-animation-view-transitions\",\n changesets: \"shared-tooling-changesets\",\n nestjs: \"api-framework-nestjs\",\n \"resend-react-email\": \"api-email-resend-react-email\",\n \"react-three-fiber\": \"web-3d-react-three-fiber\",\n mapbox: \"web-maps-mapbox\",\n tamagui: \"mobile-ui-components-tamagui\",\n express: \"api-framework-express\",\n \"tauri-plugins\": \"desktop-plugins-tauri\",\n \"electron-security\": \"desktop-security-electron\",\n \"tanstack-table\": \"web-ui-tanstack-table\",\n vercel: \"infra-platform-vercel\",\n langfuse: \"ai-observability-langfuse\",\n remix: \"web-meta-framework-remix\",\n \"result-types\": \"web-error-handling-result-types\",\n \"web-performance\": \"web-performance-web-performance\",\n \"typescript-config\": \"shared-tooling-typescript-config\",\n tailwind: \"web-styling-tailwind\",\n \"react-hook-form\": \"web-forms-react-hook-form\",\n postgresql: \"api-database-postgresql\",\n sveltekit: \"web-meta-framework-sveltekit\",\n \"socket-io\": \"web-realtime-socket-io\",\n electron: \"desktop-framework-electron\",\n pinecone: \"api-vector-db-pinecone\",\n \"web-accessibility\": \"web-accessibility-web-accessibility\",\n \"aws-sdk\": \"infra-platform-aws-sdk\",\n docker: \"infra-ci-cd-docker\",\n mmkv: \"mobile-storage-mmkv\",\n \"scss-modules\": \"web-styling-scss-modules\",\n mantine: \"web-ui-mantine\",\n detox: \"mobile-testing-detox\",\n \"auth-security\": \"shared-security-auth-security\",\n \"native-js\": \"web-utilities-native-js\",\n stripe: \"api-commerce-stripe\",\n fastify: \"api-framework-fastify\",\n \"cypress-e2e\": \"web-testing-cypress-e2e\",\n \"vercel-kv\": \"api-database-vercel-kv\",\n \"github-actions\": \"infra-ci-cd-github-actions\",\n \"react-native-paper\": \"mobile-ui-components-react-native-paper\",\n \"posthog-analytics\": \"api-analytics-posthog-analytics\",\n qwik: \"web-meta-framework-qwik\",\n elevenlabs: \"ai-provider-elevenlabs\",\n ollama: \"ai-infrastructure-ollama\",\n swr: \"web-data-fetching-swr\",\n sequelize: \"api-database-sequelize\",\n \"react-intl\": \"web-i18n-react-intl\",\n },\n idToSlug: {\n \"ai-infrastructure-huggingface-inference\": \"huggingface-inference\",\n \"web-data-fetching-trpc\": \"trpc\",\n \"ai-provider-cohere-sdk\": \"cohere-sdk\",\n \"shared-tooling-biome\": \"biome\",\n \"api-framework-hono\": \"hono\",\n \"meta-design-expressive-typescript\": \"expressive-typescript\",\n \"mobile-security-react-native\": \"react-native-security\",\n \"web-ui-vuetify\": \"vuetify\",\n \"api-database-mongodb\": \"mongodb\",\n \"infra-iac-pulumi\": \"pulumi\",\n \"api-analytics-setup-posthog\": \"setup-posthog\",\n \"web-framework-react\": \"react\",\n \"api-database-typeorm\": \"typeorm\",\n \"ai-infrastructure-together-ai\": \"together-ai\",\n \"api-database-prisma\": \"prisma\",\n \"api-database-vercel-postgres\": \"vercel-postgres\",\n \"web-files-file-upload-patterns\": \"file-upload-patterns\",\n \"desktop-mobile-tauri\": \"tauri-mobile\",\n \"web-forms-zod-validation\": \"zod-validation\",\n \"web-utilities-rxjs\": \"rxjs\",\n \"web-ui-headless-ui\": \"headless-ui\",\n \"mobile-hardware-ble-nfc\": \"ble-nfc\",\n \"api-cms-payload\": \"payload\",\n \"mobile-testing-maestro\": \"maestro\",\n \"api-database-mysql\": \"mysql\",\n \"cli-framework-cli-commander\": \"cli-commander\",\n \"web-framework-angular-standalone\": \"angular-standalone\",\n \"mobile-styling-nativewind\": \"nativewind\",\n \"shared-tooling-git-hooks\": \"git-hooks\",\n \"web-pwa-offline-first\": \"offline-first\",\n \"api-observability-axiom-pino-sentry\": \"axiom-pino-sentry\",\n \"mobile-framework-expo\": \"expo\",\n \"mobile-notifications-push\": \"push\",\n \"web-routing-react-router\": \"react-router\",\n \"web-state-jotai\": \"jotai\",\n \"desktop-storage-electron\": \"electron-storage\",\n \"ai-infrastructure-litellm\": \"litellm\",\n \"infra-iac-sst\": \"sst\",\n \"infra-containers-kubernetes\": \"kubernetes\",\n \"api-caching-strategies\": \"strategies\",\n \"api-cms-sanity\": \"sanity\",\n \"api-observability-setup-axiom-pino-sentry\": \"setup-axiom-pino-sentry\",\n \"web-realtime-websockets\": \"websockets\",\n \"web-data-fetching-graphql-apollo\": \"graphql-apollo\",\n \"web-state-redux-toolkit\": \"redux-toolkit\",\n \"api-baas-turso\": \"turso\",\n \"web-state-pinia\": \"pinia\",\n \"api-specs-openapi\": \"openapi\",\n \"api-auth-clerk\": \"clerk\",\n \"api-framework-elysia\": \"elysia\",\n \"web-tooling-vite\": \"vite\",\n \"api-search-meilisearch\": \"meilisearch\",\n \"mobile-camera-vision-camera\": \"vision-camera\",\n \"api-search-elasticsearch\": \"elasticsearch\",\n \"mobile-animation-gesture-handler\": \"gesture-handler\",\n \"web-utilities-date-fns\": \"date-fns\",\n \"web-tooling-storybook\": \"storybook\",\n \"ai-provider-claude-vision\": \"claude-vision\",\n \"meta-reviewing-cli-reviewing\": \"cli-reviewing\",\n \"desktop-ui-electron\": \"electron-ui\",\n \"api-baas-planetscale\": \"planetscale\",\n \"api-database-upstash\": \"upstash\",\n \"mobile-performance-react-native\": \"react-native-performance\",\n \"web-ui-shadcn-ui\": \"shadcn-ui\",\n \"api-auth-nextauth\": \"nextauth\",\n \"ai-provider-openai-whisper\": \"openai-whisper\",\n \"ai-observability-promptfoo\": \"promptfoo\",\n \"mobile-framework-react-native\": \"react-native\",\n \"desktop-framework-tauri\": \"tauri\",\n \"web-realtime-sse\": \"sse\",\n \"web-framework-vue-composition-api\": \"vue-composition-api\",\n \"ai-orchestration-langchain\": \"langchain\",\n \"api-vector-db-chroma\": \"chroma\",\n \"cli-prompts-clack\": \"clack\",\n \"web-forms-vee-validate\": \"vee-validate\",\n \"web-testing-vue-test-utils\": \"vue-test-utils\",\n \"web-ui-chakra-ui\": \"chakra-ui\",\n \"web-state-zustand\": \"zustand\",\n \"desktop-ipc-electron\": \"electron-ipc\",\n \"web-ui-radix-ui\": \"radix-ui\",\n \"web-state-ngrx-signalstore\": \"ngrx-signalstore\",\n \"ai-orchestration-llamaindex\": \"llamaindex\",\n \"web-meta-framework-vitepress\": \"vitepress\",\n \"api-flags-posthog-flags\": \"posthog-flags\",\n \"web-editor-lexical\": \"lexical\",\n \"shared-tooling-eslint-prettier\": \"eslint-prettier\",\n \"ai-provider-openai-sdk\": \"openai-sdk\",\n \"web-animation-framer-motion\": \"framer-motion\",\n \"ai-orchestration-vercel-ai-sdk\": \"vercel-ai-sdk\",\n \"mobile-deep-linking-app-links\": \"app-links\",\n \"ai-provider-anthropic-sdk\": \"anthropic-sdk\",\n \"ai-provider-mistral-sdk\": \"mistral-sdk\",\n \"mobile-animation-reanimated\": \"reanimated\",\n \"desktop-updates-electron-updater\": \"electron-updater\",\n \"infra-config-setup-env\": \"setup-env\",\n \"desktop-multiwindow-electron\": \"electron-multiwindow\",\n \"web-testing-playwright-e2e\": \"playwright-e2e\",\n \"web-error-handling-error-boundaries\": \"error-boundaries\",\n \"web-i18n-next-intl\": \"next-intl\",\n \"desktop-testing-electron\": \"electron-testing\",\n \"web-framework-solidjs\": \"solidjs\",\n \"web-meta-framework-astro\": \"astro\",\n \"api-baas-neon\": \"neon\",\n \"api-database-edgedb\": \"edgedb\",\n \"web-maps-leaflet\": \"leaflet\",\n \"api-vector-db-weaviate\": \"weaviate\",\n \"web-pwa-service-workers\": \"service-workers\",\n \"web-forms-tanstack-form\": \"tanstack-form\",\n \"mobile-storage-watermelondb\": \"watermelondb\",\n \"infra-platform-cloudflare-workers\": \"cloudflare-workers\",\n \"web-testing-react-testing-library\": \"react-testing-library\",\n \"meta-methodology-research-methodology\": \"research-methodology\",\n \"ai-infrastructure-replicate\": \"replicate\",\n \"api-queue-bullmq\": \"bullmq\",\n \"api-database-knex\": \"knex\",\n \"api-graphql-yoga\": \"yoga\",\n \"desktop-packaging-tauri\": \"tauri-bundling\",\n \"web-styling-cva\": \"cva\",\n \"api-messaging-webhooks\": \"webhooks\",\n \"web-mocks-msw\": \"msw\",\n \"mobile-navigation-expo-router\": \"expo-router\",\n \"mobile-background-tasks\": \"tasks\",\n \"shared-monorepo-turborepo\": \"turborepo\",\n \"mobile-animation-skia\": \"skia\",\n \"ai-provider-google-gemini-sdk\": \"google-gemini-sdk\",\n \"web-i18n-vue-i18n\": \"vue-i18n\",\n \"web-routing-tanstack-router\": \"tanstack-router\",\n \"ai-patterns-tool-use-patterns\": \"tool-use-patterns\",\n \"api-vector-db-qdrant\": \"qdrant\",\n \"web-files-image-handling\": \"image-handling\",\n \"api-email-setup-resend\": \"setup-resend\",\n \"web-server-state-react-query\": \"react-query\",\n \"web-framework-svelte\": \"svelte\",\n \"api-performance-api-performance\": \"api-performance\",\n \"web-data-fetching-graphql-urql\": \"graphql-urql\",\n \"web-dnd-dnd-kit\": \"dnd-kit\",\n \"web-ui-ant-design\": \"ant-design\",\n \"mobile-storage-sqlite-powersync\": \"sqlite-powersync\",\n \"infra-ci-cd-turborepo-ci\": \"turborepo-ci\",\n \"web-meta-framework-nuxt\": \"nuxt\",\n \"api-baas-supabase\": \"supabase\",\n \"api-database-mongoose\": \"mongoose\",\n \"web-dataviz-d3\": \"d3\",\n \"web-state-mobx\": \"mobx\",\n \"infra-platform-netlify\": \"netlify\",\n \"web-animation-css-animations\": \"css-animations\",\n \"web-editor-tiptap\": \"tiptap\",\n \"api-auth-better-auth-drizzle-hono\": \"better-auth-drizzle-hono\",\n \"shared-monorepo-nx\": \"nx\",\n \"mobile-navigation-react-navigation\": \"react-navigation\",\n \"api-baas-appwrite\": \"appwrite\",\n \"cli-framework-oclif-ink\": \"oclif-ink\",\n \"api-cms-strapi\": \"strapi\",\n \"api-graphql-apollo-server\": \"apollo-server\",\n \"api-graphql-mercurius\": \"mercurius\",\n \"web-utilities-vueuse\": \"vueuse\",\n \"api-baas-firebase\": \"firebase\",\n \"desktop-backend-tauri\": \"tauri-backend\",\n \"infra-iac-terraform\": \"terraform\",\n \"api-database-redis\": \"redis\",\n \"desktop-security-tauri\": \"tauri-security\",\n \"desktop-multiwindow-tauri\": \"tauri-multiwindow\",\n \"mobile-deployment-eas\": \"eas\",\n \"web-dataviz-recharts\": \"recharts\",\n \"web-meta-framework-docusaurus\": \"docusaurus\",\n \"shared-monorepo-pnpm-workspaces\": \"pnpm-workspaces\",\n \"mobile-styling-unistyles\": \"unistyles\",\n \"meta-reviewing-reviewing\": \"reviewing\",\n \"web-ui-mui\": \"mui\",\n \"desktop-packaging-electron-forge\": \"electron-forge\",\n \"ai-infrastructure-modal\": \"modal\",\n \"api-database-drizzle\": \"drizzle\",\n \"api-database-surrealdb\": \"surrealdb\",\n \"web-testing-vitest\": \"vitest\",\n \"web-meta-framework-nextjs\": \"nextjs\",\n \"api-database-cockroachdb\": \"cockroachdb\",\n \"web-animation-view-transitions\": \"view-transitions\",\n \"shared-tooling-changesets\": \"changesets\",\n \"api-framework-nestjs\": \"nestjs\",\n \"api-email-resend-react-email\": \"resend-react-email\",\n \"web-3d-react-three-fiber\": \"react-three-fiber\",\n \"web-maps-mapbox\": \"mapbox\",\n \"mobile-ui-components-tamagui\": \"tamagui\",\n \"api-framework-express\": \"express\",\n \"desktop-plugins-tauri\": \"tauri-plugins\",\n \"desktop-security-electron\": \"electron-security\",\n \"web-ui-tanstack-table\": \"tanstack-table\",\n \"infra-platform-vercel\": \"vercel\",\n \"ai-observability-langfuse\": \"langfuse\",\n \"web-meta-framework-remix\": \"remix\",\n \"web-error-handling-result-types\": \"result-types\",\n \"web-performance-web-performance\": \"web-performance\",\n \"shared-tooling-typescript-config\": \"typescript-config\",\n \"web-styling-tailwind\": \"tailwind\",\n \"web-forms-react-hook-form\": \"react-hook-form\",\n \"api-database-postgresql\": \"postgresql\",\n \"web-meta-framework-sveltekit\": \"sveltekit\",\n \"web-realtime-socket-io\": \"socket-io\",\n \"desktop-framework-electron\": \"electron\",\n \"api-vector-db-pinecone\": \"pinecone\",\n \"web-accessibility-web-accessibility\": \"web-accessibility\",\n \"infra-platform-aws-sdk\": \"aws-sdk\",\n \"infra-ci-cd-docker\": \"docker\",\n \"mobile-storage-mmkv\": \"mmkv\",\n \"web-styling-scss-modules\": \"scss-modules\",\n \"web-ui-mantine\": \"mantine\",\n \"mobile-testing-detox\": \"detox\",\n \"shared-security-auth-security\": \"auth-security\",\n \"web-utilities-native-js\": \"native-js\",\n \"api-commerce-stripe\": \"stripe\",\n \"api-framework-fastify\": \"fastify\",\n \"web-testing-cypress-e2e\": \"cypress-e2e\",\n \"api-database-vercel-kv\": \"vercel-kv\",\n \"infra-ci-cd-github-actions\": \"github-actions\",\n \"mobile-ui-components-react-native-paper\": \"react-native-paper\",\n \"api-analytics-posthog-analytics\": \"posthog-analytics\",\n \"web-meta-framework-qwik\": \"qwik\",\n \"ai-provider-elevenlabs\": \"elevenlabs\",\n \"ai-infrastructure-ollama\": \"ollama\",\n \"web-data-fetching-swr\": \"swr\",\n \"api-database-sequelize\": \"sequelize\",\n \"web-i18n-react-intl\": \"react-intl\",\n },\n },\n generatedAt: \"build\",\n} as MergedSkillsMatrix;\n\n// ── Derived Lookup Maps ───────────────────────────────────────\n\nexport const SKILL_IDS_BY_CATEGORY: Record<Category, readonly SkillId[]> = {\n \"ai-infrastructure\": [\n \"ai-infrastructure-huggingface-inference\",\n \"ai-infrastructure-litellm\",\n \"ai-infrastructure-modal\",\n \"ai-infrastructure-ollama\",\n \"ai-infrastructure-replicate\",\n \"ai-infrastructure-together-ai\",\n ],\n \"ai-observability\": [\"ai-observability-langfuse\", \"ai-observability-promptfoo\"],\n \"ai-orchestration\": [\n \"ai-orchestration-langchain\",\n \"ai-orchestration-llamaindex\",\n \"ai-orchestration-vercel-ai-sdk\",\n ],\n \"ai-patterns\": [\"ai-patterns-tool-use-patterns\"],\n \"ai-provider\": [\n \"ai-provider-anthropic-sdk\",\n \"ai-provider-claude-vision\",\n \"ai-provider-cohere-sdk\",\n \"ai-provider-elevenlabs\",\n \"ai-provider-google-gemini-sdk\",\n \"ai-provider-mistral-sdk\",\n \"ai-provider-openai-sdk\",\n \"ai-provider-openai-whisper\",\n ],\n \"api-analytics\": [\n \"api-analytics-posthog-analytics\",\n \"api-analytics-setup-posthog\",\n \"api-flags-posthog-flags\",\n ],\n \"api-api\": [\n \"api-framework-express\",\n \"api-framework-fastify\",\n \"api-framework-hono\",\n \"api-framework-nestjs\",\n ],\n \"api-auth\": [\"api-auth-better-auth-drizzle-hono\", \"api-auth-clerk\", \"api-auth-nextauth\"],\n \"api-baas\": [\n \"api-baas-appwrite\",\n \"api-baas-firebase\",\n \"api-baas-neon\",\n \"api-baas-planetscale\",\n \"api-baas-supabase\",\n \"api-baas-turso\",\n ],\n \"api-caching\": [\"api-caching-strategies\"],\n \"api-cms\": [\"api-cms-payload\", \"api-cms-sanity\", \"api-cms-strapi\"],\n \"api-commerce\": [\"api-commerce-stripe\"],\n \"api-database\": [\n \"api-database-cockroachdb\",\n \"api-database-drizzle\",\n \"api-database-edgedb\",\n \"api-database-knex\",\n \"api-database-mongodb\",\n \"api-database-mongoose\",\n \"api-database-mysql\",\n \"api-database-postgresql\",\n \"api-database-prisma\",\n \"api-database-redis\",\n \"api-database-sequelize\",\n \"api-database-surrealdb\",\n \"api-database-typeorm\",\n \"api-database-upstash\",\n \"api-database-vercel-kv\",\n \"api-database-vercel-postgres\",\n ],\n \"api-email\": [\"api-email-resend-react-email\", \"api-email-setup-resend\"],\n \"api-framework\": [\"api-framework-elysia\"],\n \"api-graphql\": [\"api-graphql-apollo-server\", \"api-graphql-mercurius\", \"api-graphql-yoga\"],\n \"api-messaging\": [\"api-messaging-webhooks\"],\n \"api-observability\": [\n \"api-observability-axiom-pino-sentry\",\n \"api-observability-setup-axiom-pino-sentry\",\n ],\n \"api-performance\": [\"api-performance-api-performance\"],\n \"api-queue\": [\"api-queue-bullmq\"],\n \"api-search\": [\"api-search-elasticsearch\", \"api-search-meilisearch\"],\n \"api-specs\": [\"api-specs-openapi\"],\n \"api-vector-db\": [\n \"api-vector-db-chroma\",\n \"api-vector-db-pinecone\",\n \"api-vector-db-qdrant\",\n \"api-vector-db-weaviate\",\n ],\n \"cli-framework\": [\"cli-framework-cli-commander\", \"cli-framework-oclif-ink\"],\n \"cli-prompts\": [\"cli-prompts-clack\"],\n \"desktop-backend\": [\"desktop-backend-tauri\"],\n \"desktop-framework\": [\"desktop-framework-electron\", \"desktop-framework-tauri\"],\n \"desktop-ipc\": [\"desktop-ipc-electron\"],\n \"desktop-mobile\": [\"desktop-mobile-tauri\"],\n \"desktop-multiwindow\": [\"desktop-multiwindow-electron\", \"desktop-multiwindow-tauri\"],\n \"desktop-packaging\": [\"desktop-packaging-electron-forge\", \"desktop-packaging-tauri\"],\n \"desktop-plugins\": [\"desktop-plugins-tauri\"],\n \"desktop-security\": [\"desktop-security-electron\", \"desktop-security-tauri\"],\n \"desktop-storage\": [\"desktop-storage-electron\"],\n \"desktop-testing\": [\"desktop-testing-electron\"],\n \"desktop-ui\": [\"desktop-ui-electron\"],\n \"desktop-updates\": [\"desktop-updates-electron-updater\"],\n \"infra-ci-cd\": [\"infra-ci-cd-docker\", \"infra-ci-cd-github-actions\", \"infra-ci-cd-turborepo-ci\"],\n \"infra-config\": [\"infra-config-setup-env\"],\n \"infra-containers\": [\"infra-containers-kubernetes\"],\n \"infra-iac\": [\"infra-iac-pulumi\", \"infra-iac-sst\", \"infra-iac-terraform\"],\n \"infra-platform\": [\n \"infra-platform-aws-sdk\",\n \"infra-platform-cloudflare-workers\",\n \"infra-platform-netlify\",\n \"infra-platform-vercel\",\n ],\n \"meta-design\": [\"meta-design-expressive-typescript\"],\n \"meta-methodology\": [\"meta-methodology-research-methodology\"],\n \"meta-reviewing\": [\"meta-reviewing-cli-reviewing\", \"meta-reviewing-reviewing\"],\n \"mobile-animation\": [\n \"mobile-animation-gesture-handler\",\n \"mobile-animation-reanimated\",\n \"mobile-animation-skia\",\n ],\n \"mobile-background\": [\"mobile-background-tasks\"],\n \"mobile-camera\": [\"mobile-camera-vision-camera\"],\n \"mobile-deep-linking\": [\"mobile-deep-linking-app-links\"],\n \"mobile-deployment\": [\"mobile-deployment-eas\"],\n \"mobile-framework\": [\"mobile-framework-expo\", \"mobile-framework-react-native\"],\n \"mobile-hardware\": [\"mobile-hardware-ble-nfc\"],\n \"mobile-navigation\": [\"mobile-navigation-expo-router\", \"mobile-navigation-react-navigation\"],\n \"mobile-notifications\": [\"mobile-notifications-push\"],\n \"mobile-performance\": [\"mobile-performance-react-native\"],\n \"mobile-security\": [\"mobile-security-react-native\"],\n \"mobile-storage\": [\n \"mobile-storage-mmkv\",\n \"mobile-storage-sqlite-powersync\",\n \"mobile-storage-watermelondb\",\n ],\n \"mobile-styling\": [\"mobile-styling-nativewind\", \"mobile-styling-unistyles\"],\n \"mobile-testing\": [\"mobile-testing-detox\", \"mobile-testing-maestro\"],\n \"mobile-ui-components\": [\n \"mobile-ui-components-react-native-paper\",\n \"mobile-ui-components-tamagui\",\n ],\n \"shared-monorepo\": [\n \"shared-monorepo-nx\",\n \"shared-monorepo-pnpm-workspaces\",\n \"shared-monorepo-turborepo\",\n ],\n \"shared-security\": [\"shared-security-auth-security\"],\n \"shared-tooling\": [\n \"shared-tooling-biome\",\n \"shared-tooling-changesets\",\n \"shared-tooling-eslint-prettier\",\n \"shared-tooling-git-hooks\",\n \"shared-tooling-typescript-config\",\n ],\n \"web-3d\": [\"web-3d-react-three-fiber\"],\n \"web-accessibility\": [\"web-accessibility-web-accessibility\"],\n \"web-animation\": [\n \"web-animation-css-animations\",\n \"web-animation-framer-motion\",\n \"web-animation-view-transitions\",\n ],\n \"web-client-state\": [\n \"web-state-jotai\",\n \"web-state-mobx\",\n \"web-state-ngrx-signalstore\",\n \"web-state-pinia\",\n \"web-state-redux-toolkit\",\n \"web-state-zustand\",\n ],\n \"web-dataviz\": [\"web-dataviz-d3\", \"web-dataviz-recharts\"],\n \"web-dnd\": [\"web-dnd-dnd-kit\"],\n \"web-editor\": [\"web-editor-lexical\", \"web-editor-tiptap\"],\n \"web-error-handling\": [\"web-error-handling-error-boundaries\", \"web-error-handling-result-types\"],\n \"web-file-upload\": [\"web-files-file-upload-patterns\"],\n \"web-files\": [\"web-files-image-handling\"],\n \"web-forms\": [\n \"web-forms-react-hook-form\",\n \"web-forms-tanstack-form\",\n \"web-forms-vee-validate\",\n \"web-forms-zod-validation\",\n ],\n \"web-framework\": [\n \"web-framework-angular-standalone\",\n \"web-framework-react\",\n \"web-framework-solidjs\",\n \"web-framework-svelte\",\n \"web-framework-vue-composition-api\",\n ],\n \"web-i18n\": [\"web-i18n-next-intl\", \"web-i18n-react-intl\", \"web-i18n-vue-i18n\"],\n \"web-maps\": [\"web-maps-leaflet\", \"web-maps-mapbox\"],\n \"web-meta-framework\": [\n \"web-meta-framework-astro\",\n \"web-meta-framework-docusaurus\",\n \"web-meta-framework-nextjs\",\n \"web-meta-framework-nuxt\",\n \"web-meta-framework-qwik\",\n \"web-meta-framework-remix\",\n \"web-meta-framework-sveltekit\",\n \"web-meta-framework-vitepress\",\n ],\n \"web-mocking\": [\"web-mocks-msw\"],\n \"web-performance\": [\"web-performance-web-performance\"],\n \"web-pwa\": [\"web-pwa-offline-first\", \"web-pwa-service-workers\"],\n \"web-realtime\": [\"web-realtime-socket-io\", \"web-realtime-sse\", \"web-realtime-websockets\"],\n \"web-routing\": [\"web-routing-react-router\", \"web-routing-tanstack-router\"],\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-tooling\": [\"web-tooling-storybook\", \"web-tooling-vite\"],\n \"web-ui-components\": [\n \"web-ui-ant-design\",\n \"web-ui-chakra-ui\",\n \"web-ui-headless-ui\",\n \"web-ui-mantine\",\n \"web-ui-mui\",\n \"web-ui-radix-ui\",\n \"web-ui-shadcn-ui\",\n \"web-ui-tanstack-table\",\n \"web-ui-vuetify\",\n ],\n \"web-utilities\": [\n \"web-utilities-date-fns\",\n \"web-utilities-native-js\",\n \"web-utilities-rxjs\",\n \"web-utilities-vueuse\",\n ],\n} as Record<Category, readonly SkillId[]>;\n\nexport const CATEGORIES_BY_DOMAIN: Record<Domain, readonly Category[]> = {\n ai: [\"ai-infrastructure\", \"ai-observability\", \"ai-orchestration\", \"ai-patterns\", \"ai-provider\"],\n api: [\n \"api-analytics\",\n \"api-api\",\n \"api-auth\",\n \"api-baas\",\n \"api-caching\",\n \"api-cms\",\n \"api-commerce\",\n \"api-database\",\n \"api-email\",\n \"api-framework\",\n \"api-graphql\",\n \"api-messaging\",\n \"api-observability\",\n \"api-performance\",\n \"api-queue\",\n \"api-search\",\n \"api-specs\",\n \"api-vector-db\",\n ],\n cli: [\"cli-framework\", \"cli-prompts\"],\n desktop: [\n \"desktop-backend\",\n \"desktop-framework\",\n \"desktop-ipc\",\n \"desktop-mobile\",\n \"desktop-multiwindow\",\n \"desktop-packaging\",\n \"desktop-plugins\",\n \"desktop-security\",\n \"desktop-storage\",\n \"desktop-testing\",\n \"desktop-ui\",\n \"desktop-updates\",\n ],\n infra: [\"infra-ci-cd\", \"infra-config\", \"infra-containers\", \"infra-iac\", \"infra-platform\"],\n meta: [\"meta-design\", \"meta-methodology\", \"meta-reviewing\"],\n mobile: [\n \"mobile-animation\",\n \"mobile-background\",\n \"mobile-camera\",\n \"mobile-deep-linking\",\n \"mobile-deployment\",\n \"mobile-framework\",\n \"mobile-hardware\",\n \"mobile-navigation\",\n \"mobile-notifications\",\n \"mobile-performance\",\n \"mobile-security\",\n \"mobile-storage\",\n \"mobile-styling\",\n \"mobile-testing\",\n \"mobile-ui-components\",\n ],\n shared: [\"shared-monorepo\", \"shared-security\", \"shared-tooling\"],\n web: [\n \"web-3d\",\n \"web-accessibility\",\n \"web-animation\",\n \"web-client-state\",\n \"web-dataviz\",\n \"web-dnd\",\n \"web-editor\",\n \"web-error-handling\",\n \"web-file-upload\",\n \"web-files\",\n \"web-forms\",\n \"web-framework\",\n \"web-i18n\",\n \"web-maps\",\n \"web-meta-framework\",\n \"web-mocking\",\n \"web-performance\",\n \"web-pwa\",\n \"web-realtime\",\n \"web-routing\",\n \"web-server-state\",\n \"web-styling\",\n \"web-testing\",\n \"web-tooling\",\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 Category,\n Domain,\n MergedSkillsMatrix,\n ResolvedSkill,\n ResolvedStack,\n SkillId,\n SkillSlug,\n} from \"../../types\";\nimport { typedEntries, typedValues } from \"../../utils/typed-object\";\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/**\n * Display label for a skill ID, falling back to the raw ID. Optional chaining is\n * sanctioned here (unlike getSkillById) because callers render IDs that may be\n * absent from the current matrix — e.g. a removed skill, or a foreign/local id\n * not present in this source — and want a graceful label rather than a throw.\n */\nexport function getSkillDisplayName(id: SkillId): string {\n return matrix.skills[id]?.displayName ?? id;\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/** All resolved skills in the current matrix (skips sparse-record holes). */\nexport function allSkills(): ResolvedSkill[] {\n return typedValues(matrix.skills);\n}\n\n/** Returns IDs of all custom skills in the current matrix. */\nexport function getCustomSkillIds(): Set<SkillId> {\n return new Set(\n typedEntries(matrix.skills)\n .filter(([_, skill]) => skill?.custom)\n .map(([id]) => id),\n );\n}\n\n/** Look up a category's domain from the matrix (handles auto-synthesized categories for custom skills). */\nexport function getCategoryDomain(category: string): Domain | undefined {\n // Boundary cast: matrix categories include auto-synthesized entries for custom skills\n return matrix.categories[category as Category]?.domain;\n}\n\n/** Check if a skill ID exists in the current matrix (built-in + custom). */\nexport function hasSkill(id: string): boolean {\n return id in matrix.skills;\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":[]}
|