@agents-inc/cli 0.74.13 → 0.76.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 +37 -0
- package/dist/{chunk-SXGBPQY6.js → chunk-2I5SXGXR.js} +2 -2
- package/dist/{chunk-MYSIW4HY.js → chunk-36YW5E7G.js} +5 -5
- package/dist/{chunk-T5DJCIUP.js → chunk-3REKTRAN.js} +2 -2
- package/dist/{chunk-ICJV3JJF.js → chunk-6F3CZLD6.js} +32 -73
- package/dist/chunk-6F3CZLD6.js.map +1 -0
- package/dist/{chunk-GHBZ7NUI.js → chunk-7NACNRFG.js} +21 -9
- package/dist/chunk-7NACNRFG.js.map +1 -0
- package/dist/{chunk-RKZFLLER.js → chunk-7PMFIL5L.js} +3 -3
- package/dist/{chunk-TKNPMYKJ.js → chunk-7PZFDI46.js} +4 -4
- package/dist/{chunk-NKKYTCBH.js → chunk-7XUKTYVD.js} +706 -327
- package/dist/chunk-7XUKTYVD.js.map +1 -0
- package/dist/{chunk-4EPFKZB5.js → chunk-AE2QHAFO.js} +23 -17
- package/dist/chunk-AE2QHAFO.js.map +1 -0
- package/dist/{chunk-OZ4DXMRF.js → chunk-CBJTSEI2.js} +5 -5
- package/dist/{chunk-HT5KOOUQ.js → chunk-CCSU4R65.js} +3 -4
- package/dist/chunk-CCSU4R65.js.map +1 -0
- package/dist/{chunk-W6NWOYMS.js → chunk-CKU7FJNV.js} +4 -4
- package/dist/{chunk-SASGCSBZ.js → chunk-EEZSCHS2.js} +9 -9
- package/dist/{chunk-CBXMOWQY.js → chunk-ERHTXNIF.js} +3 -3
- package/dist/{chunk-2YFC7IJ6.js → chunk-EWBNSS5Y.js} +6 -6
- package/dist/{chunk-TQLDQ3XZ.js → chunk-EYFBODHL.js} +2 -2
- package/dist/{chunk-AUNBGZS4.js → chunk-FFMWFEUH.js} +2 -2
- package/dist/{chunk-EGMQ3SXN.js → chunk-FMYAYX6W.js} +1 -1
- package/dist/chunk-FMYAYX6W.js.map +1 -0
- package/dist/{chunk-7Q6RMYR3.js → chunk-I2SUTL7S.js} +5 -5
- package/dist/{chunk-RRBWNEG3.js → chunk-I534EWJQ.js} +3 -3
- package/dist/{chunk-2PZ7LBFT.js → chunk-IDN2OZJY.js} +2 -2
- package/dist/{chunk-NG2GGK6P.js → chunk-JWMYAJHD.js} +2974 -3454
- package/dist/chunk-JWMYAJHD.js.map +1 -0
- package/dist/{chunk-MWGDG4QN.js → chunk-K63OEZW7.js} +2 -2
- package/dist/{chunk-BM5Y6LIC.js → chunk-KPRCP3MZ.js} +3 -3
- package/dist/{chunk-746DCNGM.js → chunk-LO5QGAP2.js} +5 -5
- package/dist/{chunk-IJNNVCS4.js → chunk-M4ZDKHJV.js} +3 -3
- package/dist/{chunk-IJNNVCS4.js.map → chunk-M4ZDKHJV.js.map} +1 -1
- package/dist/{chunk-CXRVM7BA.js → chunk-M76LNKMY.js} +2 -2
- package/dist/{chunk-WF5PMBIR.js → chunk-MLXAZODL.js} +2 -2
- package/dist/{chunk-UFKDY45I.js → chunk-NWW3OJH5.js} +3 -3
- package/dist/{chunk-ARGCINJC.js → chunk-O5CPXIC4.js} +7 -9
- package/dist/chunk-O5CPXIC4.js.map +1 -0
- package/dist/{chunk-A5TTDOP4.js → chunk-ODVQXXEO.js} +45 -16
- package/dist/{chunk-A5TTDOP4.js.map → chunk-ODVQXXEO.js.map} +1 -1
- package/dist/{chunk-EWGFIBBU.js → chunk-PRG7PKZM.js} +5 -5
- package/dist/{chunk-SRIH4U5Y.js → chunk-Q4PJSAMP.js} +33 -13
- package/dist/chunk-Q4PJSAMP.js.map +1 -0
- package/dist/{chunk-Q3F36QZZ.js → chunk-R7F5YQMI.js} +2 -2
- package/dist/{chunk-JQSJH72Q.js → chunk-S6DKM6MJ.js} +6 -6
- package/dist/{chunk-XMLCXRTS.js → chunk-SQ7WINEU.js} +3 -3
- package/dist/{chunk-LVNNP7T4.js → chunk-UBNHVBSV.js} +4 -4
- package/dist/{chunk-NPMGVQM4.js → chunk-VQV3DSHD.js} +6 -6
- package/dist/{chunk-ZU7AOE3X.js → chunk-WMMU5FOO.js} +15 -16
- package/dist/chunk-WMMU5FOO.js.map +1 -0
- package/dist/{chunk-4CRWKTNQ.js → chunk-WN2TUP4M.js} +4 -10
- package/dist/chunk-WN2TUP4M.js.map +1 -0
- package/dist/{chunk-6W4H2K3Z.js → chunk-WS3TL2AO.js} +35 -21
- package/dist/chunk-WS3TL2AO.js.map +1 -0
- package/dist/{chunk-7X4F4HCO.js → chunk-WZ5S4LGX.js} +6 -6
- package/dist/{chunk-IJLAVOKZ.js → chunk-XYZ7B5BY.js} +2 -2
- package/dist/commands/build/marketplace.js +5 -5
- package/dist/commands/build/plugins.js +9 -9
- package/dist/commands/build/stack.js +9 -9
- package/dist/commands/compile.js +10 -10
- package/dist/commands/config/index.js +9 -9
- package/dist/commands/config/path.js +8 -8
- package/dist/commands/config/show.js +9 -9
- package/dist/commands/diff.js +8 -8
- package/dist/commands/doctor.js +8 -8
- package/dist/commands/edit.js +33 -33
- package/dist/commands/eject.js +8 -8
- package/dist/commands/import/skill.js +9 -9
- package/dist/commands/info.js +9 -17
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +33 -33
- package/dist/commands/list.js +8 -8
- package/dist/commands/new/agent.js +9 -9
- package/dist/commands/new/marketplace.js +10 -10
- package/dist/commands/new/skill.js +9 -9
- package/dist/commands/outdated.js +8 -8
- package/dist/commands/search.js +14 -15
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +9 -9
- package/dist/commands/update.js +10 -10
- package/dist/commands/validate.js +9 -9
- package/dist/components/common/select-list.js +2 -2
- package/dist/components/skill-search/skill-search.js +3 -3
- package/dist/components/wizard/category-grid.js +4 -4
- package/dist/components/wizard/category-grid.test.js +18 -19
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/checkbox-grid.js +4 -4
- package/dist/components/wizard/checkbox-grid.test.js +4 -4
- package/dist/components/wizard/domain-selection.js +13 -13
- package/dist/components/wizard/help-modal.js +2 -2
- package/dist/components/wizard/menu-item.js +1 -1
- package/dist/components/wizard/search-modal.js +3 -3
- package/dist/components/wizard/search-modal.test.js +3 -3
- package/dist/components/wizard/section-progress.js +2 -2
- package/dist/components/wizard/section-progress.test.js +2 -2
- package/dist/components/wizard/selection-card.js +2 -2
- package/dist/components/wizard/source-grid.js +6 -6
- package/dist/components/wizard/source-grid.test.js +15 -15
- package/dist/components/wizard/stack-selection.js +11 -11
- package/dist/components/wizard/step-agents.js +12 -12
- package/dist/components/wizard/step-agents.test.js +15 -15
- package/dist/components/wizard/step-build.js +12 -12
- package/dist/components/wizard/step-build.test.js +14 -14
- package/dist/components/wizard/step-confirm.js +5 -5
- package/dist/components/wizard/step-confirm.test.js +11 -11
- package/dist/components/wizard/step-refine.js +2 -2
- package/dist/components/wizard/step-refine.test.js +2 -2
- package/dist/components/wizard/step-settings.js +10 -10
- package/dist/components/wizard/step-settings.test.js +13 -13
- package/dist/components/wizard/step-sources.js +14 -14
- package/dist/components/wizard/step-sources.test.js +17 -17
- package/dist/components/wizard/step-stack.js +16 -16
- package/dist/components/wizard/step-stack.test.js +17 -17
- package/dist/components/wizard/wizard-layout.js +11 -11
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +2 -2
- package/dist/components/wizard/wizard.js +30 -30
- package/dist/config-exports.js +1 -1
- package/dist/hooks/init.js +33 -33
- package/dist/{loader-NHUCFMFQ.js → loader-7RQ4G4TH.js} +5 -5
- package/dist/plugins/dummy-skill/.claude-plugin/.content-hash +1 -0
- package/dist/plugins/dummy-skill/.claude-plugin/plugin.json +13 -0
- package/dist/{source-loader-42GVUFZA.js → source-loader-CXCIDGWV.js} +8 -8
- package/dist/source-manager-TPLO2DVS.js +19 -0
- package/dist/src/agents/_templates/agent.liquid +24 -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/meta/agent-summoner/workflow.md +2 -2
- package/dist/src/agents/meta/skill-summoner/workflow.md +48 -3
- package/dist/stores/wizard-store.js +8 -8
- package/dist/stores/wizard-store.test.js +36 -36
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +1 -1
- package/src/agents/_templates/agent.liquid +24 -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/meta/agent-summoner/workflow.md +2 -2
- package/src/agents/meta/skill-summoner/workflow.md +48 -3
- package/src/schemas/custom-metadata.schema.json +0 -7
- package/src/schemas/metadata.schema.json +0 -7
- package/dist/chunk-4CRWKTNQ.js.map +0 -1
- package/dist/chunk-4EPFKZB5.js.map +0 -1
- package/dist/chunk-6W4H2K3Z.js.map +0 -1
- package/dist/chunk-ARGCINJC.js.map +0 -1
- package/dist/chunk-EGMQ3SXN.js.map +0 -1
- package/dist/chunk-GHBZ7NUI.js.map +0 -1
- package/dist/chunk-HT5KOOUQ.js.map +0 -1
- package/dist/chunk-ICJV3JJF.js.map +0 -1
- package/dist/chunk-NG2GGK6P.js.map +0 -1
- package/dist/chunk-NKKYTCBH.js.map +0 -1
- package/dist/chunk-SRIH4U5Y.js.map +0 -1
- package/dist/chunk-ZU7AOE3X.js.map +0 -1
- package/dist/source-manager-WRZBOTEH.js +0 -19
- /package/dist/{chunk-SXGBPQY6.js.map → chunk-2I5SXGXR.js.map} +0 -0
- /package/dist/{chunk-MYSIW4HY.js.map → chunk-36YW5E7G.js.map} +0 -0
- /package/dist/{chunk-T5DJCIUP.js.map → chunk-3REKTRAN.js.map} +0 -0
- /package/dist/{chunk-RKZFLLER.js.map → chunk-7PMFIL5L.js.map} +0 -0
- /package/dist/{chunk-TKNPMYKJ.js.map → chunk-7PZFDI46.js.map} +0 -0
- /package/dist/{chunk-OZ4DXMRF.js.map → chunk-CBJTSEI2.js.map} +0 -0
- /package/dist/{chunk-W6NWOYMS.js.map → chunk-CKU7FJNV.js.map} +0 -0
- /package/dist/{chunk-SASGCSBZ.js.map → chunk-EEZSCHS2.js.map} +0 -0
- /package/dist/{chunk-CBXMOWQY.js.map → chunk-ERHTXNIF.js.map} +0 -0
- /package/dist/{chunk-2YFC7IJ6.js.map → chunk-EWBNSS5Y.js.map} +0 -0
- /package/dist/{chunk-TQLDQ3XZ.js.map → chunk-EYFBODHL.js.map} +0 -0
- /package/dist/{chunk-AUNBGZS4.js.map → chunk-FFMWFEUH.js.map} +0 -0
- /package/dist/{chunk-7Q6RMYR3.js.map → chunk-I2SUTL7S.js.map} +0 -0
- /package/dist/{chunk-RRBWNEG3.js.map → chunk-I534EWJQ.js.map} +0 -0
- /package/dist/{chunk-2PZ7LBFT.js.map → chunk-IDN2OZJY.js.map} +0 -0
- /package/dist/{chunk-MWGDG4QN.js.map → chunk-K63OEZW7.js.map} +0 -0
- /package/dist/{chunk-BM5Y6LIC.js.map → chunk-KPRCP3MZ.js.map} +0 -0
- /package/dist/{chunk-746DCNGM.js.map → chunk-LO5QGAP2.js.map} +0 -0
- /package/dist/{chunk-CXRVM7BA.js.map → chunk-M76LNKMY.js.map} +0 -0
- /package/dist/{chunk-WF5PMBIR.js.map → chunk-MLXAZODL.js.map} +0 -0
- /package/dist/{chunk-UFKDY45I.js.map → chunk-NWW3OJH5.js.map} +0 -0
- /package/dist/{chunk-EWGFIBBU.js.map → chunk-PRG7PKZM.js.map} +0 -0
- /package/dist/{chunk-Q3F36QZZ.js.map → chunk-R7F5YQMI.js.map} +0 -0
- /package/dist/{chunk-JQSJH72Q.js.map → chunk-S6DKM6MJ.js.map} +0 -0
- /package/dist/{chunk-XMLCXRTS.js.map → chunk-SQ7WINEU.js.map} +0 -0
- /package/dist/{chunk-LVNNP7T4.js.map → chunk-UBNHVBSV.js.map} +0 -0
- /package/dist/{chunk-NPMGVQM4.js.map → chunk-VQV3DSHD.js.map} +0 -0
- /package/dist/{chunk-7X4F4HCO.js.map → chunk-WZ5S4LGX.js.map} +0 -0
- /package/dist/{chunk-IJLAVOKZ.js.map → chunk-XYZ7B5BY.js.map} +0 -0
- /package/dist/{loader-NHUCFMFQ.js.map → loader-7RQ4G4TH.js.map} +0 -0
- /package/dist/{source-loader-42GVUFZA.js.map → source-loader-CXCIDGWV.js.map} +0 -0
- /package/dist/{source-manager-WRZBOTEH.js.map → source-manager-TPLO2DVS.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/lib/configuration/define-config.ts","../src/cli/lib/configuration/default-categories.ts","../src/cli/lib/configuration/default-rules.ts","../src/cli/lib/configuration/default-stacks.ts"],"sourcesContent":["import type { ProjectConfig } from \"../../types\";\n\n/**\n * Type-safe config helper for project configuration.\n * Uses const generics so literal types are preserved through the call.\n *\n * Config MUST be defined inline for full type inference --\n * extracting the object to a variable widens literal types.\n */\nexport function defineConfig<const T extends ProjectConfig>(config: T): T {\n return config;\n}\n","import type { CategoryMap } from \"../../types\";\n\n/**\n * Built-in category definitions, equivalent to config/skill-categories.ts.\n * Source repos may override or extend these via their own config files.\n */\nexport const defaultCategories: CategoryMap = {\n \"web-framework\": {\n id: \"web-framework\",\n displayName: \"Framework\",\n description: \"UI framework (React, Vue, Angular, SolidJS, Next.js, Remix, Nuxt)\",\n domain: \"web\",\n exclusive: true,\n required: true,\n order: 1,\n },\n \"web-styling\": {\n id: \"web-styling\",\n displayName: \"Styling\",\n description: \"CSS approach (SCSS Modules, Tailwind, CVA)\",\n domain: \"web\",\n exclusive: false,\n required: true,\n order: 3,\n },\n \"web-client-state\": {\n id: \"web-client-state\",\n displayName: \"Client State Management\",\n description: \"UI state, forms, local data (Zustand, Redux, MobX)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 4,\n },\n \"web-server-state\": {\n id: \"web-server-state\",\n displayName: \"Server State / Data Fetching\",\n description: \"API data caching (React Query, SWR)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 5,\n },\n \"web-forms\": {\n id: \"web-forms\",\n displayName: \"Forms & Validation\",\n description: \"Form handling and schema validation\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 6,\n },\n \"web-testing\": {\n id: \"web-testing\",\n displayName: \"Testing\",\n description: \"Unit, integration, and E2E testing\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 7,\n },\n \"web-ui-components\": {\n id: \"web-ui-components\",\n displayName: \"UI Component Library\",\n description: \"Pre-built component systems (Radix, shadcn)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 8,\n },\n \"web-mocking\": {\n id: \"web-mocking\",\n displayName: \"API Mocking\",\n description: \"Mock Service Worker for development and testing\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 10,\n },\n \"web-error-handling\": {\n id: \"web-error-handling\",\n displayName: \"Error Handling\",\n description: \"Error boundaries, result types, and error patterns\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 11,\n },\n \"web-i18n\": {\n id: \"web-i18n\",\n displayName: \"Internationalization\",\n description: \"i18n libraries (next-intl, react-intl, vue-i18n)\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 12,\n },\n \"web-file-upload\": {\n id: \"web-file-upload\",\n displayName: \"File Upload\",\n description: \"File upload patterns and handling\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 13,\n },\n \"web-files\": {\n id: \"web-files\",\n displayName: \"Files & Images\",\n description: \"Image handling and file processing\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 14,\n },\n \"web-utilities\": {\n id: \"web-utilities\",\n displayName: \"Utilities\",\n description: \"Utility libraries (date-fns, native JS patterns)\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 15,\n },\n \"web-realtime\": {\n id: \"web-realtime\",\n displayName: \"Realtime\",\n description: \"WebSockets, SSE, and real-time communication\",\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 16,\n },\n \"web-animation\": {\n id: \"web-animation\",\n displayName: \"Animation\",\n description: \"Animation libraries and CSS animations\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 17,\n },\n \"web-pwa\": {\n id: \"web-pwa\",\n displayName: \"Progressive Web App\",\n description: \"Service workers, offline-first patterns, and PWA features\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 18,\n },\n \"web-accessibility\": {\n id: \"web-accessibility\",\n displayName: \"Accessibility\",\n description: \"WCAG compliance, ARIA, and keyboard navigation\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 19,\n },\n \"web-performance\": {\n id: \"web-performance\",\n displayName: \"Web Performance\",\n description: \"Bundle optimization, render performance, and code splitting\",\n domain: \"web\",\n exclusive: false,\n required: false,\n order: 20,\n },\n \"api-api\": {\n id: \"api-api\",\n displayName: \"API Framework\",\n description: \"Backend framework (Hono, Express, Fastify)\",\n domain: \"api\",\n exclusive: true,\n required: true,\n order: 1,\n },\n \"api-database\": {\n id: \"api-database\",\n displayName: \"Database ORM\",\n description: \"Database access layer (Drizzle, Prisma)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 2,\n },\n \"api-auth\": {\n id: \"api-auth\",\n displayName: \"Authentication\",\n description: \"Auth solution (Better Auth, Auth.js)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 3,\n },\n \"api-observability\": {\n id: \"api-observability\",\n displayName: \"Observability\",\n description: \"Logging, monitoring, error tracking\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"api-analytics\": {\n id: \"api-analytics\",\n displayName: \"Analytics\",\n description: \"Product analytics and tracking\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 5,\n },\n \"api-email\": {\n id: \"api-email\",\n displayName: \"Email\",\n description: \"Transactional email (Resend, Sendgrid)\",\n domain: \"api\",\n exclusive: true,\n required: false,\n order: 6,\n },\n \"api-performance\": {\n id: \"api-performance\",\n displayName: \"Performance\",\n description: \"API performance patterns and optimization\",\n domain: \"api\",\n exclusive: false,\n required: false,\n order: 7,\n },\n \"mobile-framework\": {\n id: \"mobile-framework\",\n displayName: \"Mobile Framework\",\n description: \"Native mobile framework (React Native, Expo)\",\n domain: \"mobile\",\n exclusive: true,\n required: true,\n order: 1,\n },\n \"shared-monorepo\": {\n id: \"shared-monorepo\",\n displayName: \"Monorepo\",\n description: \"Monorepo tooling (Turborepo, Nx)\",\n domain: \"shared\",\n exclusive: true,\n required: false,\n order: 1,\n },\n \"shared-tooling\": {\n id: \"shared-tooling\",\n displayName: \"Build Tooling\",\n description: \"ESLint, Prettier, TypeScript, Vite\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 2,\n },\n \"shared-security\": {\n id: \"shared-security\",\n displayName: \"Security\",\n description: \"Authentication security patterns and best practices\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 3,\n },\n \"shared-methodology\": {\n id: \"shared-methodology\",\n displayName: \"Methodology\",\n description: \"Development methodology and engineering principles\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 4,\n },\n \"shared-research\": {\n id: \"shared-research\",\n displayName: \"Research\",\n description: \"Codebase investigation and research methodology\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 5,\n },\n \"shared-reviewing\": {\n id: \"shared-reviewing\",\n displayName: \"Code Review\",\n description: \"Code review patterns and guidance\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 6,\n },\n \"shared-ci-cd\": {\n id: \"shared-ci-cd\",\n displayName: \"CI/CD\",\n description: \"Continuous integration and deployment pipelines\",\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 7,\n },\n \"cli-framework\": {\n id: \"cli-framework\",\n displayName: \"CLI Framework\",\n description: \"CLI application framework (Commander, oclif)\",\n domain: \"cli\",\n exclusive: true,\n required: true,\n order: 1,\n },\n};\n","import type { SkillRulesConfig } from \"../../types\";\n\n/**\n * Built-in skill rules, equivalent to config/skill-rules.ts.\n * Source repos may override or extend these via their own config files.\n */\nexport const defaultRules: SkillRulesConfig = {\n version: \"1.0.0\",\n relationships: {\n conflicts: [\n {\n skills: [\n \"react\",\n \"vue-composition-api\",\n \"angular-standalone\",\n \"solidjs\",\n \"nextjs-app-router\",\n \"remix\",\n \"nuxt\",\n ],\n reason: \"Frameworks are mutually exclusive\",\n },\n {\n skills: [\"pinia\", \"zustand\", \"redux-toolkit\", \"mobx\"],\n reason: \"Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns\",\n },\n {\n skills: [\"ngrx-signalstore\", \"zustand\", \"pinia\", \"redux-toolkit\", \"mobx\"],\n reason: \"NgRx SignalStore is Angular-only\",\n },\n {\n skills: [\"react-query\", \"swr\"],\n reason: \"Both solve server state caching\",\n },\n {\n skills: [\"graphql-apollo\", \"graphql-urql\"],\n reason: \"Both are GraphQL clients\",\n },\n {\n skills: [\"playwright-e2e\", \"cypress-e2e\"],\n reason: \"Both are E2E frameworks\",\n },\n {\n skills: [\"react-hook-form\", \"vee-validate\"],\n reason: \"react-hook-form is React-only, vee-validate is Vue-only\",\n },\n {\n skills: [\"react-testing-library\", \"vue-test-utils\"],\n reason: \"Framework-specific testing libraries\",\n },\n {\n skills: [\"hono\", \"express\", \"fastify\"],\n reason: \"API frameworks are mutually exclusive within a single service\",\n },\n {\n skills: [\"drizzle\", \"prisma\"],\n reason: \"Both are ORMs serving similar purposes\",\n },\n {\n skills: [\"cli-commander\", \"oclif-ink\"],\n reason: \"CLI frameworks are mutually exclusive\",\n },\n ],\n discourages: [\n {\n skills: [\"zustand\", \"redux-toolkit\", \"mobx\"],\n reason: \"Using multiple React state libraries adds complexity\",\n },\n {\n skills: [\"redux-toolkit\", \"zustand\"],\n reason: \"Redux Toolkit adds more boilerplate than Zustand\",\n },\n {\n skills: [\"swr\", \"react-query\"],\n reason: \"SWR is simpler but React Query has more features\",\n },\n {\n skills: [\"express\", \"hono\"],\n reason: \"Express is mature but Hono offers better performance and edge support\",\n },\n {\n skills: [\"express\", \"fastify\"],\n reason: \"Express is mature but Fastify offers better performance\",\n },\n {\n skills: [\"cypress-e2e\", \"playwright-e2e\"],\n reason:\n \"Cypress excels at interactive debugging; Playwright has better cross-browser support and CI performance\",\n },\n ],\n recommends: [\n { skill: \"zustand\", reason: \"Best-in-class React state management\" },\n { skill: \"react-query\", reason: \"Modern server state caching for React\" },\n { skill: \"vitest\", reason: \"Fast, modern test runner for all frameworks\" },\n { skill: \"react-hook-form\", reason: \"Best React form library\" },\n { skill: \"react-testing-library\", reason: \"Standard React component testing\" },\n { skill: \"shadcn-ui\", reason: \"Best-in-class React + Tailwind component library\" },\n { skill: \"zod-validation\", reason: \"Type-safe validation for forms and APIs\" },\n { skill: \"pinia\", reason: \"Vue community standard state management\" },\n { skill: \"vee-validate\", reason: \"Vue community standard form validation\" },\n { skill: \"vue-test-utils\", reason: \"Vue component testing library\" },\n { skill: \"ngrx-signalstore\", reason: \"Angular Signals-based state management\" },\n { skill: \"tailwind\", reason: \"Utility-first CSS framework\" },\n { skill: \"drizzle\", reason: \"Modern TypeScript-first ORM\" },\n { skill: \"better-auth-drizzle-hono\", reason: \"Full-featured auth solution\" },\n { skill: \"radix-ui\", reason: \"Accessible unstyled component primitives\" },\n { skill: \"cva\", reason: \"Type-safe variant management for Tailwind\" },\n { skill: \"msw\", reason: \"Network-level API mocking for tests\" },\n { skill: \"playwright-e2e\", reason: \"Cross-browser E2E testing\" },\n { skill: \"posthog-analytics\", reason: \"Product analytics and feature flags\" },\n { skill: \"prisma\", reason: \"Mature database ORM with great DX\" },\n ],\n requires: [\n {\n skill: \"zustand\",\n needs: [\"react\", \"nextjs-app-router\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"Our Zustand skill covers React/React Native patterns\",\n },\n {\n skill: \"redux-toolkit\",\n needs: [\"react\", \"nextjs-app-router\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"Our Redux Toolkit skill covers React/React Native patterns\",\n },\n {\n skill: \"mobx\",\n needs: [\"react\", \"nextjs-app-router\", \"remix\"],\n needsAny: true,\n reason: \"Our MobX skill teaches React patterns\",\n },\n {\n skill: \"react-query\",\n needs: [\"react\", \"nextjs-app-router\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"TanStack Query's React adapter\",\n },\n {\n skill: \"swr\",\n needs: [\"react\", \"nextjs-app-router\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"SWR is a React Hooks library\",\n },\n {\n skill: \"react-hook-form\",\n needs: [\"react\", \"nextjs-app-router\", \"remix\", \"react-native\"],\n needsAny: true,\n reason: \"React Hook Form is React only\",\n },\n {\n skill: \"react-testing-library\",\n needs: [\"react\", \"nextjs-app-router\", \"remix\"],\n needsAny: true,\n reason: \"React Testing Library is React only\",\n },\n {\n skill: \"pinia\",\n needs: [\"vue-composition-api\", \"nuxt\"],\n needsAny: true,\n reason: \"Pinia is Vue only\",\n },\n {\n skill: \"vee-validate\",\n needs: [\"vue-composition-api\", \"nuxt\"],\n needsAny: true,\n reason: \"VeeValidate is Vue only\",\n },\n {\n skill: \"vue-test-utils\",\n needs: [\"vue-composition-api\", \"nuxt\"],\n needsAny: true,\n reason: \"Vue Test Utils is Vue only\",\n },\n {\n skill: \"ngrx-signalstore\",\n needs: [\"angular-standalone\"],\n reason: \"NgRx SignalStore is Angular only\",\n },\n {\n skill: \"better-auth-drizzle-hono\",\n needs: [\"drizzle\", \"prisma\"],\n needsAny: true,\n reason: \"Better Auth requires a database adapter\",\n },\n {\n skill: \"shadcn-ui\",\n needs: [\"react\", \"nextjs-app-router\", \"remix\"],\n needsAny: true,\n reason: \"shadcn/ui requires a React-based framework\",\n },\n {\n skill: \"shadcn-ui\",\n needs: [\"tailwind\"],\n reason: \"shadcn/ui requires Tailwind CSS\",\n },\n {\n skill: \"graphql-apollo\",\n needs: [\n \"react\",\n \"vue-composition-api\",\n \"angular-standalone\",\n \"nextjs-app-router\",\n \"remix\",\n \"nuxt\",\n ],\n needsAny: true,\n reason: \"Apollo Client requires a UI framework\",\n },\n {\n skill: \"graphql-urql\",\n needs: [\"react\", \"vue-composition-api\", \"solidjs\", \"nextjs-app-router\", \"remix\", \"nuxt\"],\n needsAny: true,\n reason: \"URQL supports React, Vue, and Solid\",\n },\n ],\n alternatives: [\n {\n purpose: \"Frontend Framework\",\n skills: [\n \"react\",\n \"vue-composition-api\",\n \"angular-standalone\",\n \"solidjs\",\n \"nextjs-app-router\",\n \"remix\",\n \"nuxt\",\n ],\n },\n {\n purpose: \"Styling\",\n skills: [\"scss-modules\", \"tailwind\", \"cva\"],\n },\n {\n purpose: \"Client State (React)\",\n skills: [\"zustand\", \"redux-toolkit\", \"mobx\", \"jotai\"],\n },\n { purpose: \"Client State (Vue)\", skills: [\"pinia\"] },\n { purpose: \"Client State (Angular)\", skills: [\"ngrx-signalstore\"] },\n {\n purpose: \"Server State / Data Fetching\",\n skills: [\"react-query\", \"swr\"],\n },\n {\n purpose: \"GraphQL Client\",\n skills: [\"graphql-apollo\", \"graphql-urql\"],\n },\n {\n purpose: \"API Framework\",\n skills: [\"hono\", \"express\", \"fastify\"],\n },\n { purpose: \"Database ORM\", skills: [\"drizzle\", \"prisma\"] },\n { purpose: \"Forms (React)\", skills: [\"react-hook-form\"] },\n { purpose: \"Forms (Vue)\", skills: [\"vee-validate\"] },\n { purpose: \"Validation\", skills: [\"zod-validation\"] },\n { purpose: \"Unit Testing\", skills: [\"vitest\"] },\n { purpose: \"Component Testing (React)\", skills: [\"react-testing-library\"] },\n { purpose: \"Component Testing (Vue)\", skills: [\"vue-test-utils\"] },\n {\n purpose: \"E2E Testing\",\n skills: [\"playwright-e2e\", \"cypress-e2e\"],\n },\n { purpose: \"API Mocking\", skills: [\"msw\"] },\n { purpose: \"UI Components (React + Tailwind)\", skills: [\"shadcn-ui\"] },\n { purpose: \"Mobile\", skills: [\"react-native\"] },\n {\n purpose: \"CLI Framework\",\n skills: [\"cli-commander\", \"oclif-ink\"],\n },\n ],\n },\n};\n","import type { SkillAssignment, Stack } from \"../../types\";\n\n/**\n * Built-in stack definitions, equivalent to config/stacks.ts.\n * Source repos may override or extend these via their own stacks files.\n *\n * All values are already in normalized form (SkillAssignment[] with { id, preloaded }).\n */\n\nconst SHARED_METHODOLOGY: SkillAssignment[] = [\n { id: \"meta-methodology-investigation-requirements\", preloaded: true },\n { id: \"meta-methodology-anti-over-engineering\", preloaded: true },\n { id: \"meta-methodology-success-criteria\", preloaded: true },\n { id: \"meta-methodology-write-verification\", preloaded: true },\n { id: \"meta-methodology-improvement-protocol\", preloaded: true },\n { id: \"meta-methodology-context-management\", preloaded: true },\n];\n\nexport const defaultStacks: Stack[] = [\n {\n id: \"nextjs-fullstack\",\n name: \"Next.js Fullstack\",\n description: \"React + Hono full-stack\",\n philosophy: \"Ship fast, iterate faster\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: true }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"cli-developer\": {\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: true }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"cli-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-cli-reviewing\", preloaded: true }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: false }],\n \"web-styling\": [{ id: \"web-styling-scss-modules\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-zustand\", preloaded: false }],\n \"web-server-state\": [{ id: \"web-server-state-react-query\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"web-mocking\": [{ id: \"web-mocks-msw\", preloaded: false }],\n \"web-accessibility\": [{ id: \"web-accessibility-web-accessibility\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"api-analytics\": [{ id: \"api-analytics-posthog-analytics\", preloaded: false }],\n \"api-email\": [{ id: \"api-email-resend-react-email\", preloaded: false }],\n \"shared-ci-cd\": [{ id: \"api-ci-cd-github-actions\", preloaded: false }],\n \"cli-framework\": [{ id: \"cli-framework-cli-commander\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"cli-tester\": {},\n },\n },\n {\n id: \"angular-stack\",\n name: \"Modern Angular Stack\",\n description: \"Angular + Signals stack\",\n philosophy: \"Enterprise-grade and type-safe\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: true }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-angular-standalone\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-ngrx-signalstore\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n },\n },\n {\n id: \"nuxt-stack\",\n name: \"Nuxt Full-Stack\",\n description: \"Vue + Nuxt full-stack\",\n philosophy: \"Progressive Vue with Nuxt power\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: true },\n { id: \"web-framework-vue-composition-api\", preloaded: true },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: false },\n { id: \"web-framework-vue-composition-api\", preloaded: false },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pm\": {\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: false },\n { id: \"web-framework-vue-composition-api\", preloaded: false },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-researcher\": {\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: false },\n { id: \"web-framework-vue-composition-api\", preloaded: false },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"pattern-scout\": {\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: false },\n { id: \"web-framework-vue-composition-api\", preloaded: false },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: false },\n { id: \"web-framework-vue-composition-api\", preloaded: false },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"agent-summoner\": {\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: false },\n { id: \"web-framework-vue-composition-api\", preloaded: false },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"skill-summoner\": {\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: false },\n { id: \"web-framework-vue-composition-api\", preloaded: false },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n documentor: {\n \"web-framework\": [\n { id: \"web-framework-nuxt\", preloaded: false },\n { id: \"web-framework-vue-composition-api\", preloaded: false },\n ],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n },\n },\n {\n id: \"remix-stack\",\n name: \"Remix Full-Stack\",\n description: \"Remix + form-centric DX\",\n philosophy: \"Web standards and excellent forms handling\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: true },\n { id: \"web-framework-react\", preloaded: true },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: false },\n { id: \"web-framework-react\", preloaded: false },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pm\": {\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: false },\n { id: \"web-framework-react\", preloaded: false },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-researcher\": {\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: false },\n { id: \"web-framework-react\", preloaded: false },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"pattern-scout\": {\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: false },\n { id: \"web-framework-react\", preloaded: false },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pattern-critique\": {\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: false },\n { id: \"web-framework-react\", preloaded: false },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"agent-summoner\": {\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: false },\n { id: \"web-framework-react\", preloaded: false },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"skill-summoner\": {\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: false },\n { id: \"web-framework-react\", preloaded: false },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n documentor: {\n \"web-framework\": [\n { id: \"web-framework-remix\", preloaded: false },\n { id: \"web-framework-react\", preloaded: false },\n ],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n },\n },\n {\n id: \"vue-stack\",\n name: \"Modern Vue Stack\",\n description: \"Vue + Pinia + Tailwind\",\n philosophy: \"Progressive and approachable\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: true }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-vue-composition-api\", preloaded: false }],\n \"web-client-state\": [{ id: \"web-state-pinia\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n },\n },\n {\n id: \"solidjs-stack\",\n name: \"SolidJS Stack\",\n description: \"SolidJS + Hono full-stack\",\n philosophy: \"Maximum performance with minimal overhead\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: true }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-developer\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: true }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: true }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-reviewer\": {\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pm\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-architecture\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-researcher\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"api-researcher\": {\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"pattern-scout\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-pattern-critique\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: true }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"agent-summoner\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"skill-summoner\": {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n documentor: {\n \"web-framework\": [{ id: \"web-framework-solidjs\", preloaded: false }],\n \"web-testing\": [{ id: \"web-testing-vitest\", preloaded: false }],\n \"api-api\": [{ id: \"api-framework-hono\", preloaded: false }],\n \"api-database\": [{ id: \"api-database-drizzle\", preloaded: false }],\n \"api-auth\": [{ id: \"api-auth-better-auth-drizzle-hono\", preloaded: false }],\n \"api-observability\": [{ id: \"api-observability-axiom-pino-sentry\", preloaded: false }],\n \"shared-reviewing\": [{ id: \"meta-reviewing-reviewing\", preloaded: false }],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n \"web-tester\": {\n \"web-testing\": [\n { id: \"web-testing-playwright-e2e\", preloaded: false },\n { id: \"web-testing-vitest\", preloaded: false },\n ],\n \"shared-methodology\": SHARED_METHODOLOGY,\n },\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/types/generated/source-types.ts"],"sourcesContent":["// AUTO-GENERATED from skills source and agent metadata — do not edit manually\n// Run: bun run generate:types\n\n// ── Skill Map (slug → ID) ─────────────────────────────────────\n\nexport const SKILL_MAP = {\n \"angular-standalone\": \"web-framework-angular-standalone\",\n \"anti-over-engineering\": \"meta-methodology-anti-over-engineering\",\n \"api-performance\": \"api-performance-api-performance\",\n \"auth-security\": \"security-auth-security\",\n \"axiom-pino-sentry\": \"api-observability-axiom-pino-sentry\",\n \"better-auth-drizzle-hono\": \"api-auth-better-auth-drizzle-hono\",\n \"cli-commander\": \"cli-framework-cli-commander\",\n \"cli-reviewing\": \"meta-reviewing-cli-reviewing\",\n \"context-management\": \"meta-methodology-context-management\",\n \"css-animations\": \"web-animation-css-animations\",\n cva: \"web-styling-cva\",\n \"cypress-e2e\": \"web-testing-cypress-e2e\",\n \"date-fns\": \"web-utilities-date-fns\",\n drizzle: \"api-database-drizzle\",\n \"error-boundaries\": \"web-error-handling-error-boundaries\",\n expo: \"mobile-framework-expo\",\n express: \"api-framework-express\",\n fastify: \"api-framework-fastify\",\n \"file-upload-patterns\": \"web-files-file-upload-patterns\",\n \"framer-motion\": \"web-animation-framer-motion\",\n \"github-actions\": \"api-ci-cd-github-actions\",\n \"graphql-apollo\": \"web-data-fetching-graphql-apollo\",\n \"graphql-urql\": \"web-data-fetching-graphql-urql\",\n hono: \"api-framework-hono\",\n \"image-handling\": \"web-files-image-handling\",\n \"improvement-protocol\": \"meta-methodology-improvement-protocol\",\n \"investigation-requirements\": \"meta-methodology-investigation-requirements\",\n jotai: \"web-state-jotai\",\n mobx: \"web-state-mobx\",\n msw: \"web-mocks-msw\",\n \"native-js\": \"web-utilities-native-js\",\n \"next-intl\": \"web-i18n-next-intl\",\n \"nextjs-app-router\": \"web-framework-nextjs-app-router\",\n \"nextjs-server-actions\": \"web-framework-nextjs-server-actions\",\n \"ngrx-signalstore\": \"web-state-ngrx-signalstore\",\n nuxt: \"web-framework-nuxt\",\n \"oclif-ink\": \"cli-framework-oclif-ink\",\n \"offline-first\": \"web-pwa-offline-first\",\n pinia: \"web-state-pinia\",\n \"playwright-e2e\": \"web-testing-playwright-e2e\",\n \"posthog-analytics\": \"api-analytics-posthog-analytics\",\n \"posthog-flags\": \"api-flags-posthog-flags\",\n prisma: \"api-database-prisma\",\n \"radix-ui\": \"web-ui-radix-ui\",\n react: \"web-framework-react\",\n \"react-hook-form\": \"web-forms-react-hook-form\",\n \"react-intl\": \"web-i18n-react-intl\",\n \"react-native\": \"mobile-framework-react-native\",\n \"react-query\": \"web-server-state-react-query\",\n \"react-testing-library\": \"web-testing-react-testing-library\",\n \"redux-toolkit\": \"web-state-redux-toolkit\",\n remix: \"web-framework-remix\",\n \"research-methodology\": \"meta-research-research-methodology\",\n \"resend-react-email\": \"api-email-resend-react-email\",\n \"result-types\": \"web-error-handling-result-types\",\n reviewing: \"meta-reviewing-reviewing\",\n \"scss-modules\": \"web-styling-scss-modules\",\n \"service-workers\": \"web-pwa-service-workers\",\n \"setup-axiom-pino-sentry\": \"api-observability-setup-axiom-pino-sentry\",\n \"setup-env\": \"infra-env-setup-env\",\n \"setup-posthog\": \"api-analytics-setup-posthog\",\n \"setup-resend\": \"api-email-setup-resend\",\n \"setup-tooling\": \"infra-tooling-setup-tooling\",\n \"shadcn-ui\": \"web-ui-shadcn-ui\",\n \"socket-io\": \"web-realtime-socket-io\",\n solidjs: \"web-framework-solidjs\",\n sse: \"web-realtime-sse\",\n storybook: \"web-tooling-storybook\",\n \"success-criteria\": \"meta-methodology-success-criteria\",\n swr: \"web-data-fetching-swr\",\n tailwind: \"web-styling-tailwind\",\n \"tanstack-table\": \"web-ui-tanstack-table\",\n trpc: \"web-data-fetching-trpc\",\n turborepo: \"infra-monorepo-turborepo\",\n \"vee-validate\": \"web-forms-vee-validate\",\n \"view-transitions\": \"web-animation-view-transitions\",\n vitest: \"web-testing-vitest\",\n \"vue-composition-api\": \"web-framework-vue-composition-api\",\n \"vue-i18n\": \"web-i18n-vue-i18n\",\n \"vue-test-utils\": \"web-testing-vue-test-utils\",\n \"web-accessibility\": \"web-accessibility-web-accessibility\",\n \"web-performance\": \"web-performance-web-performance\",\n websockets: \"web-realtime-websockets\",\n \"write-verification\": \"meta-methodology-write-verification\",\n \"zod-validation\": \"web-forms-zod-validation\",\n zustand: \"web-state-zustand\",\n} as const;\n\nexport type SkillSlug = keyof typeof SKILL_MAP;\nexport type SkillId = (typeof SKILL_MAP)[SkillSlug];\n\n// Derived arrays for Zod enum compatibility\n// (z.enum() requires a readonly tuple, not Object.keys/values)\nexport const SKILL_SLUGS = [\n \"angular-standalone\",\n \"anti-over-engineering\",\n \"api-performance\",\n \"auth-security\",\n \"axiom-pino-sentry\",\n \"better-auth-drizzle-hono\",\n \"cli-commander\",\n \"cli-reviewing\",\n \"context-management\",\n \"css-animations\",\n \"cva\",\n \"cypress-e2e\",\n \"date-fns\",\n \"drizzle\",\n \"error-boundaries\",\n \"expo\",\n \"express\",\n \"fastify\",\n \"file-upload-patterns\",\n \"framer-motion\",\n \"github-actions\",\n \"graphql-apollo\",\n \"graphql-urql\",\n \"hono\",\n \"image-handling\",\n \"improvement-protocol\",\n \"investigation-requirements\",\n \"jotai\",\n \"mobx\",\n \"msw\",\n \"native-js\",\n \"next-intl\",\n \"nextjs-app-router\",\n \"nextjs-server-actions\",\n \"ngrx-signalstore\",\n \"nuxt\",\n \"oclif-ink\",\n \"offline-first\",\n \"pinia\",\n \"playwright-e2e\",\n \"posthog-analytics\",\n \"posthog-flags\",\n \"prisma\",\n \"radix-ui\",\n \"react\",\n \"react-hook-form\",\n \"react-intl\",\n \"react-native\",\n \"react-query\",\n \"react-testing-library\",\n \"redux-toolkit\",\n \"remix\",\n \"research-methodology\",\n \"resend-react-email\",\n \"result-types\",\n \"reviewing\",\n \"scss-modules\",\n \"service-workers\",\n \"setup-axiom-pino-sentry\",\n \"setup-env\",\n \"setup-posthog\",\n \"setup-resend\",\n \"setup-tooling\",\n \"shadcn-ui\",\n \"socket-io\",\n \"solidjs\",\n \"sse\",\n \"storybook\",\n \"success-criteria\",\n \"swr\",\n \"tailwind\",\n \"tanstack-table\",\n \"trpc\",\n \"turborepo\",\n \"vee-validate\",\n \"view-transitions\",\n \"vitest\",\n \"vue-composition-api\",\n \"vue-i18n\",\n \"vue-test-utils\",\n \"web-accessibility\",\n \"web-performance\",\n \"websockets\",\n \"write-verification\",\n \"zod-validation\",\n \"zustand\",\n] as const satisfies readonly SkillSlug[];\n\nexport const SKILL_IDS = [\n \"api-analytics-posthog-analytics\",\n \"api-analytics-setup-posthog\",\n \"api-auth-better-auth-drizzle-hono\",\n \"api-ci-cd-github-actions\",\n \"api-database-drizzle\",\n \"api-database-prisma\",\n \"api-email-resend-react-email\",\n \"api-email-setup-resend\",\n \"api-flags-posthog-flags\",\n \"api-framework-express\",\n \"api-framework-fastify\",\n \"api-framework-hono\",\n \"api-observability-axiom-pino-sentry\",\n \"api-observability-setup-axiom-pino-sentry\",\n \"api-performance-api-performance\",\n \"cli-framework-cli-commander\",\n \"cli-framework-oclif-ink\",\n \"infra-env-setup-env\",\n \"infra-monorepo-turborepo\",\n \"infra-tooling-setup-tooling\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-context-management\",\n \"meta-methodology-improvement-protocol\",\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-success-criteria\",\n \"meta-methodology-write-verification\",\n \"meta-research-research-methodology\",\n \"meta-reviewing-cli-reviewing\",\n \"meta-reviewing-reviewing\",\n \"mobile-framework-expo\",\n \"mobile-framework-react-native\",\n \"security-auth-security\",\n \"web-accessibility-web-accessibility\",\n \"web-animation-css-animations\",\n \"web-animation-framer-motion\",\n \"web-animation-view-transitions\",\n \"web-data-fetching-graphql-apollo\",\n \"web-data-fetching-graphql-urql\",\n \"web-data-fetching-swr\",\n \"web-data-fetching-trpc\",\n \"web-error-handling-error-boundaries\",\n \"web-error-handling-result-types\",\n \"web-files-file-upload-patterns\",\n \"web-files-image-handling\",\n \"web-forms-react-hook-form\",\n \"web-forms-vee-validate\",\n \"web-forms-zod-validation\",\n \"web-framework-angular-standalone\",\n \"web-framework-nextjs-app-router\",\n \"web-framework-nextjs-server-actions\",\n \"web-framework-nuxt\",\n \"web-framework-react\",\n \"web-framework-remix\",\n \"web-framework-solidjs\",\n \"web-framework-vue-composition-api\",\n \"web-i18n-next-intl\",\n \"web-i18n-react-intl\",\n \"web-i18n-vue-i18n\",\n \"web-mocks-msw\",\n \"web-performance-web-performance\",\n \"web-pwa-offline-first\",\n \"web-pwa-service-workers\",\n \"web-realtime-socket-io\",\n \"web-realtime-sse\",\n \"web-realtime-websockets\",\n \"web-server-state-react-query\",\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 \"web-styling-cva\",\n \"web-styling-scss-modules\",\n \"web-styling-tailwind\",\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 \"web-tooling-storybook\",\n \"web-ui-radix-ui\",\n \"web-ui-shadcn-ui\",\n \"web-ui-tanstack-table\",\n \"web-utilities-date-fns\",\n \"web-utilities-native-js\",\n] as const satisfies readonly SkillId[];\n\n// ── Categories ─────────────────────────────────────────────────\n\nexport const CATEGORIES = [\n \"api-analytics\",\n \"api-api\",\n \"api-auth\",\n \"api-database\",\n \"api-email\",\n \"api-observability\",\n \"api-performance\",\n \"cli-framework\",\n \"mobile-framework\",\n \"shared-ci-cd\",\n \"shared-methodology\",\n \"shared-monorepo\",\n \"shared-research\",\n \"shared-reviewing\",\n \"shared-security\",\n \"shared-tooling\",\n \"web-accessibility\",\n \"web-animation\",\n \"web-client-state\",\n \"web-error-handling\",\n \"web-file-upload\",\n \"web-files\",\n \"web-forms\",\n \"web-framework\",\n \"web-i18n\",\n \"web-mocking\",\n \"web-performance\",\n \"web-pwa\",\n \"web-realtime\",\n \"web-server-state\",\n \"web-styling\",\n \"web-testing\",\n \"web-ui-components\",\n \"web-utilities\",\n] as const;\n\nexport type Category = (typeof CATEGORIES)[number];\n\n// ── Domains ────────────────────────────────────────────────────\n\nexport const DOMAINS = [\"api\", \"cli\", \"mobile\", \"shared\", \"web\"] as const;\n\nexport type Domain = (typeof DOMAINS)[number];\n\n// ── Agent Names ────────────────────────────────────────────────\n\nexport const AGENT_NAMES = [\n \"agent-summoner\",\n \"api-developer\",\n \"api-researcher\",\n \"api-reviewer\",\n \"cli-developer\",\n \"cli-reviewer\",\n \"cli-tester\",\n \"documentor\",\n \"pattern-scout\",\n \"skill-summoner\",\n \"web-architecture\",\n \"web-developer\",\n \"web-pattern-critique\",\n \"web-pm\",\n \"web-researcher\",\n \"web-reviewer\",\n \"web-tester\",\n] as const;\n\nexport type AgentName = (typeof AGENT_NAMES)[number];\n"],"mappings":";;;;;;AAAA;AAmGO,IAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AA6FO,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,IAAM,UAAU,CAAC,OAAO,OAAO,UAAU,UAAU,KAAK;AAMxD,IAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/lib/__tests__/test-fixtures.ts","../src/cli/lib/__tests__/helpers.ts","../src/cli/lib/__tests__/content-generators.ts"],"sourcesContent":["import type { ResolvedSkill } from \"../../types\";\nimport { createMockSkill, createMockCategory } from \"./helpers\";\n\n// ---------------------------------------------------------------------------\n// Canonical SKILLS registry — single source of truth for all test ResolvedSkills.\n// Use SKILLS.react, SKILLS.hono etc. directly in new test code.\n// ---------------------------------------------------------------------------\n\nexport const SKILLS = {\n // Web domain\n react: createMockSkill(\"web-framework-react\"),\n vue: createMockSkill(\"web-framework-vue-composition-api\"),\n zustand: createMockSkill(\"web-state-zustand\", {\n compatibleWith: [\"web-framework-react\"],\n }),\n pinia: createMockSkill(\"web-state-pinia\", {\n compatibleWith: [\"web-framework-vue-composition-api\"],\n }),\n scss: createMockSkill(\"web-styling-scss-modules\"),\n tailwind: createMockSkill(\"web-styling-tailwind\"),\n vitest: createMockSkill(\"web-testing-vitest\"),\n // API domain\n hono: createMockSkill(\"api-framework-hono\"),\n drizzle: createMockSkill(\"api-database-drizzle\"),\n // Methodology\n antiOverEng: createMockSkill(\"meta-methodology-anti-over-engineering\", {\n description: \"Surgical implementation, not architectural innovation\",\n }),\n} satisfies Record<string, ResolvedSkill>;\n\n// ---------------------------------------------------------------------------\n// Shared base category fixtures — canonical defaults with no overrides.\n// Use spread for per-test customization: `{ ...TEST_CATEGORIES.framework, required: true }`\n// ---------------------------------------------------------------------------\n\nexport const TEST_CATEGORIES = {\n // Web domain\n framework: createMockCategory(\"web-framework\", \"Framework\"),\n clientState: createMockCategory(\"web-client-state\", \"Client State\"),\n styling: createMockCategory(\"web-styling\", \"Styling\"),\n testing: createMockCategory(\"web-testing\", \"Testing\"),\n serverState: createMockCategory(\"web-server-state\", \"Server State\"),\n animation: createMockCategory(\"web-animation\", \"Animation\"),\n accessibility: createMockCategory(\"web-accessibility\", \"Accessibility\"),\n // API domain\n api: createMockCategory(\"api-api\", \"Backend Framework\"),\n database: createMockCategory(\"api-database\", \"Database\"),\n observability: createMockCategory(\"api-observability\", \"Observability\"),\n // Shared domain\n methodology: createMockCategory(\"shared-methodology\", \"Methodology\"),\n tooling: createMockCategory(\"shared-tooling\", \"Tooling\"),\n security: createMockCategory(\"shared-security\", \"Security\"),\n // CLI domain\n cliFramework: createMockCategory(\"cli-framework\", \"CLI Framework\"),\n // Mobile domain\n mobileFramework: createMockCategory(\"mobile-framework\", \"Mobile Framework\"),\n};\n","import path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { mkdir, writeFile, readFile } from \"fs/promises\";\nimport { parse as parseYaml, stringify as stringifyYaml } from \"yaml\";\nimport { run, Errors } from \"@oclif/core\";\nimport ansis from \"ansis\";\nimport { createJiti } from \"jiti\";\nimport {\n CLAUDE_DIR,\n CLAUDE_SRC_DIR,\n DEFAULT_PLUGIN_NAME,\n PLUGINS_SUBDIR,\n STANDARD_DIRS,\n STANDARD_FILES,\n} from \"../../consts\";\nimport { matrix } from \"../matrix/matrix-provider\";\nimport { typedEntries } from \"../../utils/typed-object\";\nimport { computeSkillFolderHash } from \"../versioning\";\nimport { renderSkillMd, renderAgentYaml, renderConfigTs } from \"./content-generators\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport const CLI_ROOT = path.resolve(__dirname, \"../../../..\");\n\n/** Resolve @agents-inc/cli/config to the source config-exports.ts so jiti can load it in dev. */\nconst CONFIG_EXPORTS_PATH = path.resolve(__dirname, \"../../config-exports.ts\");\n\n/**\n * Run a CLI command and capture its output.\n *\n * Bun's `console.log` does not go through `process.stdout.write`, so\n * `@oclif/test`'s `runCommand` (which only intercepts `process.stdout.write`)\n * returns empty stdout/stderr in bun. This helper intercepts both layers\n * to work correctly in both Node.js and bun environments.\n */\nexport async function runCliCommand(args: string[]) {\n const origStdoutWrite = process.stdout.write;\n const origStderrWrite = process.stderr.write;\n const origLog = console.log;\n const origWarn = console.warn;\n const origError = console.error;\n\n const stdoutBuf: string[] = [];\n const stderrBuf: string[] = [];\n\n // Intercept process.stdout/stderr.write (Node.js path)\n process.stdout.write = function (str: unknown, encoding?: unknown, cb?: unknown): boolean {\n stdoutBuf.push(String(str));\n if (typeof encoding === \"function\") {\n (encoding as () => void)();\n } else if (typeof cb === \"function\") {\n (cb as () => void)();\n }\n return true;\n } as typeof process.stdout.write;\n\n process.stderr.write = function (str: unknown, encoding?: unknown, cb?: unknown): boolean {\n stderrBuf.push(String(str));\n if (typeof encoding === \"function\") {\n (encoding as () => void)();\n } else if (typeof cb === \"function\") {\n (cb as () => void)();\n }\n return true;\n } as typeof process.stderr.write;\n\n // Intercept console methods (bun path — console.log bypasses process.stdout.write)\n console.log = (...logArgs: unknown[]) => {\n stdoutBuf.push(logArgs.map(String).join(\" \") + \"\\n\");\n };\n console.warn = (...warnArgs: unknown[]) => {\n stderrBuf.push(warnArgs.map(String).join(\" \") + \"\\n\");\n };\n console.error = (...errArgs: unknown[]) => {\n stderrBuf.push(errArgs.map(String).join(\" \") + \"\\n\");\n };\n\n let error: (Error & Partial<Errors.CLIError>) | undefined;\n try {\n await run(args, { root: CLI_ROOT });\n } catch (e) {\n if (e instanceof Error) {\n error = Object.assign(e, { message: ansis.strip(e.message) }) as Error &\n Partial<Errors.CLIError>;\n }\n } finally {\n process.stdout.write = origStdoutWrite;\n process.stderr.write = origStderrWrite;\n console.log = origLog;\n console.warn = origWarn;\n console.error = origError;\n }\n\n return {\n stdout: stdoutBuf.map((s) => ansis.strip(s)).join(\"\"),\n stderr: stderrBuf.map((s) => ansis.strip(s)).join(\"\"),\n error,\n };\n}\nimport type {\n AgentConfig,\n AgentDefinition,\n AgentName,\n AgentScopeConfig,\n CategoryDefinition,\n CategoryPath,\n CompiledAgentData,\n CompileAgentConfig,\n CompileConfig,\n CompileContext,\n Domain,\n DomainSelections,\n ExtractedSkillMetadata,\n Marketplace,\n MarketplacePlugin,\n MergedSkillsMatrix,\n ProjectConfig,\n ResolvedSkill,\n ResolvedStack,\n Skill,\n SkillAssignment,\n SkillConfig,\n SkillDefinition,\n SkillSlug,\n SkillSlugMap,\n SkillId,\n SkillSource,\n SkillSourceType,\n RelationshipDefinitions,\n RawStacksConfig,\n Stack,\n StackAgentConfig,\n Category,\n} from \"../../types\";\nimport type { CompiledStackPlugin } from \"../stacks/stack-plugin-compiler\";\nimport type { WizardResultV2 } from \"../../components/wizard/wizard\";\nimport type { SourceLoadResult } from \"../loading/source-loader\";\nimport type { ResolvedConfig } from \"../configuration/config\";\nimport { useWizardStore } from \"../../stores/wizard-store\";\nimport { resolveAlias, validateSelection } from \"../matrix\";\nimport type { TestProjectConfig, TestSkill } from \"./fixtures/create-test-source\";\nimport { SKILLS, TEST_CATEGORIES } from \"./test-fixtures\";\n\nexport { fileExists, directoryExists } from \"./test-fs-utils\";\n\nexport async function readTestYaml<T>(filePath: string): Promise<T> {\n const content = await readFile(filePath, \"utf-8\");\n // Boundary cast: YAML parse returns `unknown`, caller provides expected type\n return parseYaml(content) as T;\n}\n\n/**\n * Load a config file using jiti. Handles defineConfig(), satisfies, and plain exports.\n */\nexport async function readTestTsConfig<T>(filePath: string): Promise<T> {\n const jiti = createJiti(import.meta.url, {\n moduleCache: false,\n interopDefault: true,\n alias: { \"@agents-inc/cli/config\": CONFIG_EXPORTS_PATH },\n });\n // Boundary cast: jiti returns unknown, caller provides expected type\n const result = await jiti.import(filePath, { default: true });\n return result as T;\n}\n\n/** Writes a config file with the given object into the given subdirectory (defaults to CLAUDE_SRC_DIR) */\nexport async function writeTestTsConfig(\n projectDir: string,\n config: Record<string, unknown>,\n configSubdir: string = CLAUDE_SRC_DIR,\n): Promise<void> {\n const configDir = path.join(projectDir, configSubdir);\n await mkdir(configDir, { recursive: true });\n await writeFile(path.join(configDir, STANDARD_FILES.CONFIG_TS), renderConfigTs(config));\n}\n\nexport function buildSourceConfig(overrides?: Record<string, unknown>): Record<string, unknown> {\n return {\n source: \"github:test-org/skills\",\n ...overrides,\n };\n}\n\nexport function buildProjectConfig(overrides?: Partial<ProjectConfig>): ProjectConfig {\n return {\n name: \"test-project\",\n agents: [{ name: \"web-developer\", scope: \"project\" }],\n skills: buildSkillConfigs([\"web-framework-react\"]),\n ...overrides,\n };\n}\n\nexport function buildWizardResult(\n skills: SkillConfig[],\n overrides?: Partial<WizardResultV2>,\n): WizardResultV2 {\n return {\n skills,\n selectedAgents: [],\n agentConfigs: [],\n selectedStackId: null,\n domainSelections: {} as DomainSelections,\n selectedDomains: [],\n cancelled: false,\n validation: { valid: true, errors: [], warnings: [] },\n ...overrides,\n };\n}\n\n/** Build a SkillConfig array from skill IDs with default scope and source */\nexport function buildSkillConfigs(\n skillIds: SkillId[],\n overrides?: Partial<Omit<SkillConfig, \"id\">>,\n): SkillConfig[] {\n return skillIds.map((id) => ({\n id,\n scope: overrides?.scope ?? \"project\",\n source: overrides?.source ?? \"local\",\n }));\n}\n\nexport function buildAgentConfigs(\n agentNames: string[],\n overrides?: Partial<Omit<AgentScopeConfig, \"name\">>,\n): AgentScopeConfig[] {\n return agentNames.map((name) => ({\n // Boundary cast: test factory accepts arbitrary agent names for test isolation\n name: name as AgentName,\n scope: overrides?.scope ?? \"project\",\n }));\n}\n\nexport function buildSourceResult(\n matrix: MergedSkillsMatrix,\n sourcePath: string,\n overrides?: Partial<SourceLoadResult>,\n): SourceLoadResult {\n const sourceConfig: ResolvedConfig = {\n source: sourcePath,\n sourceOrigin: \"flag\",\n };\n return {\n matrix,\n sourceConfig,\n sourcePath,\n isLocal: true,\n ...overrides,\n };\n}\n\n/**\n * Lightweight frontmatter parser for test assertions.\n * Returns raw key-value pairs (unlike the production parseFrontmatter which\n * returns typed SkillFrontmatter with Zod validation).\n */\nexport function parseTestFrontmatter(content: string): Record<string, unknown> | null {\n if (!content.startsWith(\"---\")) {\n return null;\n }\n\n const endIndex = content.indexOf(\"---\", 3);\n if (endIndex === -1) {\n return null;\n }\n\n const yamlContent = content.slice(3, endIndex).trim();\n try {\n // Boundary cast: YAML parse returns `unknown`\n return parseYaml(yamlContent) as Record<string, unknown>;\n } catch {\n return null;\n }\n}\n\nimport { createTempDir, cleanupTempDir } from \"./test-fs-utils\";\nexport { createTempDir, cleanupTempDir };\n\nexport interface PluginTestDirs {\n tempDir: string;\n projectDir: string;\n pluginDir: string;\n skillsDir: string;\n agentsDir: string;\n}\n\nexport async function createTestDirs(prefix = \"ai-test-\"): Promise<PluginTestDirs> {\n const tempDir = await createTempDir(prefix);\n const projectDir = path.join(tempDir, \"project\");\n const pluginDir = path.join(projectDir, CLAUDE_DIR, PLUGINS_SUBDIR, DEFAULT_PLUGIN_NAME);\n const skillsDir = path.join(pluginDir, STANDARD_DIRS.SKILLS);\n const agentsDir = path.join(pluginDir, \"agents\");\n\n await mkdir(skillsDir, { recursive: true });\n await mkdir(agentsDir, { recursive: true });\n\n return { tempDir, projectDir, pluginDir, skillsDir, agentsDir };\n}\n\nexport async function cleanupTestDirs(dirs: PluginTestDirs): Promise<void> {\n await cleanupTempDir(dirs.tempDir);\n}\n\n/**\n * Canonical category for known test skills.\n * createMockSkill() looks up from here when no category override is provided.\n * Custom/novel skills must pass { category } in overrides.\n *\n * Uses a lazy singleton to avoid circular initialization issues:\n * test-fixtures.ts calls createMockSkill() at module level during import,\n * and ESM hoists all imports before evaluating any `const` declarations.\n */\n// eslint-disable-next-line no-var -- `var` avoids TDZ in circular ESM imports (let/const would throw)\n// Boundary cast: test factory maps arbitrary skill IDs to category strings (not all are valid Category union members)\nvar _canonicalSkillCategories: Record<string, string> | undefined;\nfunction getCanonicalSkillCategories(): Record<string, string> {\n if (!_canonicalSkillCategories) {\n _canonicalSkillCategories = {\n \"web-framework-react\": \"web-framework\",\n \"web-framework-vue-composition-api\": \"web-framework\",\n \"web-framework-original\": \"web-framework\",\n \"web-framework-simple\": \"web-framework\",\n \"web-framework-arbitrary\": \"web-framework\",\n \"web-framework-unknown\": \"web-framework\",\n \"web-styling-tailwind\": \"web-styling\",\n \"web-styling-scss-modules\": \"web-styling\",\n \"web-styling-custom\": \"web-styling\",\n \"web-state-zustand\": \"web-client-state\",\n \"web-state-pinia\": \"web-client-state\",\n \"web-state-mobx\": \"web-client-state\",\n \"web-testing-vitest\": \"web-testing\",\n \"web-testing-copier\": \"web-testing\",\n \"web-testing-metadata\": \"web-testing\",\n \"web-testing-playwright\": \"web-testing\",\n \"web-testing-cypress-e2e\": \"web-testing\",\n \"web-testing-playwright-e2e\": \"web-testing\",\n \"web-server-state-react-query\": \"web-server-state\",\n \"web-data-fetching-react-query\": \"web-server-state\",\n \"web-tooling-vite\": \"shared-tooling\",\n \"web-tooling-acme\": \"web-tooling\",\n \"web-tooling-custom\": \"web-tooling\",\n \"web-tooling-nometadata\": \"web-tooling\",\n \"web-tooling-personal\": \"web-tooling\",\n \"web-tooling-valid\": \"web-tooling\",\n \"web-tooling-incomplete\": \"web-tooling\",\n \"web-tooling-my-skill\": \"web-tooling\",\n \"web-tooling-forked-skill\": \"web-tooling\",\n \"web-tooling-test-minimal\": \"web-tooling\",\n \"web-tooling-local-skill\": \"web-tooling\",\n \"web-skill-a\": \"web-framework\",\n \"web-skill-a-v\": \"web-framework\",\n \"web-skill-b\": \"web-framework\",\n \"web-skill-b-v\": \"web-framework\",\n \"web-skill-c\": \"web-framework\",\n \"web-skill-d\": \"web-framework\",\n \"web-skill-setup\": \"web-framework\",\n \"web-skill-usage\": \"web-framework\",\n \"web-local-skill\": \"local\",\n \"web-custom-skill\": \"web-framework\",\n \"web-missing-skill\": \"web-framework\",\n \"web-unknown-skill\": \"web-framework\",\n \"web-nonexistent-skill\": \"web-framework\",\n \"api-framework-hono\": \"api-api\",\n \"api-framework-express\": \"api-api\",\n \"api-database-drizzle\": \"api-database\",\n \"api-security-auth-patterns\": \"api-security\",\n \"api-observability-datadog\": \"api-observability\",\n \"cli-framework-commander\": \"cli-framework\",\n \"infra-setup-env\": \"shared-tooling\",\n \"infra-tooling-linter\": \"unmapped-category\",\n \"infra-tooling-docker\": \"shared-tooling\",\n \"infra-ci-cd-github-actions\": \"shared-ci-cd\",\n \"infra-ci-cd-gitlab-ci\": \"shared-ci-cd\",\n \"web-accessibility-a11y\": \"web-accessibility\",\n \"web-animation-framer\": \"web-animation\",\n \"meta-methodology-investigation\": \"shared-methodology\",\n \"meta-methodology-success-criteria\": \"shared-methodology\",\n \"meta-methodology-investigation-requirements\": \"shared-methodology\",\n \"meta-methodology-anti-over-engineering\": \"shared-methodology\",\n \"meta-methodology-write-verification\": \"shared-methodology\",\n \"meta-methodology-improvement-protocol\": \"shared-methodology\",\n \"meta-methodology-context-management\": \"shared-methodology\",\n \"meta-company-patterns\": \"local\",\n \"meta-test-skill\": \"shared-methodology\",\n \"web-framework-nonexistent\": \"web-framework\",\n \"web-framework-react-pro\": \"web-framework\",\n \"web-framework-react-strict\": \"web-framework\",\n \"web-framework-react-minimal\": \"web-framework\",\n };\n }\n return _canonicalSkillCategories;\n}\n\n/** Maps non-domain SkillIdPrefix values to their corresponding Domain */\nconst DOMAIN_PREFIX_MAP: Record<string, Domain> = {\n meta: \"shared\",\n infra: \"shared\",\n security: \"shared\",\n};\n\n/**\n * Creates a TestSkill for disk-based integration tests (createTestSource).\n * Derives slug, displayName, domain, and category from the skill ID,\n * using the canonical category registry for correct category mapping.\n */\nexport function createTestSkill(\n id: SkillId,\n description: string,\n overrides?: Partial<TestSkill>,\n): TestSkill {\n const segments = id.split(\"-\");\n const rawPrefix = segments[0] ?? \"web\";\n const domain = (DOMAIN_PREFIX_MAP[rawPrefix] ?? rawPrefix) as Domain;\n const canonicalCategories = getCanonicalSkillCategories();\n // Boundary cast: category registry returns arbitrary strings for non-canonical IDs\n const category = (canonicalCategories[id] ?? `${segments[0]}-${segments[1]}`) as CategoryPath;\n const slug = (segments.length >= 3 ? segments.slice(2).join(\"-\") : id) as SkillSlug;\n const displayName = slug\n .split(\"-\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n\n return {\n id,\n slug,\n displayName,\n description,\n category,\n author: \"@test\",\n domain,\n tags: [],\n ...overrides,\n };\n}\n\nexport function createMockSkill(id: SkillId, overrides?: Partial<ResolvedSkill>): ResolvedSkill {\n // Boundary cast: category registry returns arbitrary strings for non-canonical IDs\n const category = (overrides?.category ?? getCanonicalSkillCategories()[id]) as\n | CategoryPath\n | undefined;\n\n if (!category) {\n throw new Error(\n `createMockSkill: \"${id}\" not in canonical registry — provide { category } in overrides`,\n );\n }\n\n // Derive slug from skill ID: strip domain-category prefix to get the last segment(s)\n // e.g., \"web-framework-react\" -> \"react\", \"meta-methodology-anti-over-engineering\" -> \"anti-over-engineering\"\n const segments = id.split(\"-\");\n const defaultSlug = (segments.length >= 3 ? segments.slice(2).join(\"-\") : id) as SkillSlug;\n\n // Derive display name from slug: title-case each segment\n const defaultDisplayName = defaultSlug\n .split(\"-\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n\n return {\n id,\n slug: defaultSlug,\n displayName: defaultDisplayName,\n description: `${id} skill`,\n category,\n tags: [],\n author: \"@test\",\n conflictsWith: [],\n isRecommended: false,\n requires: [],\n alternatives: [],\n discourages: [],\n compatibleWith: [],\n path: `skills/${category}/${id}/`,\n ...overrides,\n };\n}\n\nexport function createMockSkillSource(\n type: SkillSourceType,\n overrides?: Partial<SkillSource>,\n): SkillSource {\n const defaults: Record<SkillSourceType, SkillSource> = {\n public: { name: \"public\", type: \"public\", installed: false },\n private: {\n name: \"private-source\",\n type: \"private\",\n url: \"github:org/skills\",\n installed: false,\n },\n local: { name: \"local\", type: \"local\", installed: true, installMode: \"local\" },\n };\n return { ...defaults[type], ...overrides };\n}\n\n/**\n * Creates a mock ExtractedSkillMetadata for testing.\n * Used when mocking extractAllSkills() return values.\n */\nexport function createMockExtractedSkill(\n id: SkillId,\n overrides?: Partial<ExtractedSkillMetadata>,\n): ExtractedSkillMetadata {\n // Derive directory path and category from the skill ID convention: \"domain-category-name\"\n const segments = id.split(\"-\");\n const domain = segments[0] ?? \"web\";\n const category = segments[1] ?? \"framework\";\n const name = segments.slice(2).join(\"-\") || \"skill\";\n const directoryPath = `${domain}/${category}/${name}`;\n\n return {\n id,\n directoryPath,\n description: `${id} skill`,\n category: `${domain}-${category}` as CategoryPath,\n author: \"@test\",\n tags: [],\n path: `skills/${directoryPath}/`,\n domain: domain as Domain,\n displayName: name,\n slug: name as SkillSlug,\n ...overrides,\n };\n}\n\nexport function createMockMatrix(\n skillsOrFirstSkill?: Record<string, ResolvedSkill> | ResolvedSkill,\n ...rest: (ResolvedSkill | Partial<MergedSkillsMatrix>)[]\n): MergedSkillsMatrix {\n let skillsRecord: Record<string, ResolvedSkill>;\n let overrides: Partial<MergedSkillsMatrix> | undefined;\n\n if (skillsOrFirstSkill === undefined) {\n // Empty call: createMockMatrix()\n skillsRecord = {};\n } else if (\n \"id\" in skillsOrFirstSkill &&\n typeof (skillsOrFirstSkill as ResolvedSkill).id === \"string\" &&\n \"slug\" in skillsOrFirstSkill\n ) {\n // New spread syntax: createMockMatrix(skill1, skill2, ..., optionalOverrides?)\n const allArgs = [skillsOrFirstSkill, ...rest];\n const lastArg = allArgs[allArgs.length - 1];\n\n // Detect if last arg is overrides (has no 'id' + 'slug' properties)\n if (lastArg && !(\"id\" in lastArg && \"slug\" in lastArg)) {\n overrides = lastArg as Partial<MergedSkillsMatrix>;\n const skills = allArgs.slice(0, -1) as ResolvedSkill[];\n skillsRecord = {};\n for (const skill of skills) {\n skillsRecord[skill.id] = skill;\n }\n } else {\n const skills = allArgs as ResolvedSkill[];\n skillsRecord = {};\n for (const skill of skills) {\n skillsRecord[skill.id] = skill;\n }\n }\n } else {\n // Old record syntax: createMockMatrix({ \"id\": skill }, overrides?)\n skillsRecord = skillsOrFirstSkill as Record<string, ResolvedSkill>;\n overrides = rest[0] as Partial<MergedSkillsMatrix> | undefined;\n }\n\n // Boundary cast: empty objects are populated in the loop below\n const autoSlugToId = {} as Record<SkillSlug, SkillId>;\n const autoIdToSlug = {} as Record<SkillId, SkillSlug>;\n for (const [, skill] of typedEntries(skillsRecord)) {\n if (skill.slug) {\n autoSlugToId[skill.slug] = skill.id;\n autoIdToSlug[skill.id] = skill.slug;\n }\n }\n\n return {\n version: \"1.0.0\",\n categories: {} as Record<Category, import(\"../../types\").CategoryDefinition>,\n skills: skillsRecord,\n suggestedStacks: [],\n slugMap: { slugToId: autoSlugToId, idToSlug: autoIdToSlug },\n generatedAt: new Date().toISOString(),\n ...overrides,\n };\n}\n\nexport function createMockAgent(\n name: string,\n overrides?: Partial<AgentDefinition>,\n): AgentDefinition {\n return {\n title: name,\n description: `${name} agent`,\n tools: [\"Read\", \"Write\", \"Edit\", \"Grep\", \"Glob\", \"Bash\"],\n model: \"opus\",\n permissionMode: \"default\",\n ...overrides,\n };\n}\n\nexport function createMockAgentConfig(\n name: string,\n skills: Skill[] = [],\n overrides?: Partial<AgentConfig>,\n): AgentConfig {\n return {\n name,\n title: `${name} agent`,\n description: `Test ${name}`,\n tools: [\"Read\", \"Write\"],\n skills,\n path: name,\n ...overrides,\n };\n}\n\nexport function createMockSkillEntry(\n id: SkillId,\n preloaded = false,\n overrides?: Partial<Skill>,\n): Skill {\n return {\n id,\n path: `skills/${id}/`,\n description: `${id} skill`,\n usage: `when working with ${id}`,\n preloaded,\n ...overrides,\n };\n}\n\nexport function createCompileContext(overrides?: Partial<CompileContext>): CompileContext {\n return {\n stackId: \"test-stack\",\n verbose: false,\n projectRoot: \"/project\",\n outputDir: `/project/${CLAUDE_DIR}/${PLUGINS_SUBDIR}/${DEFAULT_PLUGIN_NAME}`,\n ...overrides,\n };\n}\n\nexport async function writeTestSkill(\n skillsDir: string,\n skillId: SkillId,\n options?: {\n /** Extra fields to merge into metadata.yaml (e.g., forkedFrom, displayName) */\n extraMetadata?: Record<string, unknown>;\n /** Skip metadata.yaml creation entirely */\n skipMetadata?: boolean;\n /** Custom SKILL.md content (overrides default generated content) */\n skillContent?: string;\n },\n): Promise<string> {\n const skill = matrix.skills[skillId];\n\n if (!options?.skipMetadata && !skill) {\n throw new Error(\n `writeTestSkill: \"${skillId}\" not found in matrix store — populate the store in beforeEach`,\n );\n }\n\n const skillDir = path.join(skillsDir, skillId);\n await mkdir(skillDir, { recursive: true });\n\n await writeFile(\n path.join(skillDir, STANDARD_FILES.SKILL_MD),\n options?.skillContent ?? renderSkillMd(skillId, skill?.description),\n );\n\n if (!options?.skipMetadata && skill) {\n const { slug, category, author } = skill;\n const domain = category.split(\"-\")[0];\n\n const contentHash = await computeSkillFolderHash(skillDir);\n const baseMetadata = {\n author,\n category,\n domain,\n slug,\n contentHash,\n };\n await writeFile(\n path.join(skillDir, STANDARD_FILES.METADATA_YAML),\n stringifyYaml({ ...baseMetadata, ...options?.extraMetadata }),\n );\n }\n\n return skillDir;\n}\n\n/**\n * Creates a source-level skill directory with SKILL.md and rich metadata.yaml.\n * Use this when testing `extractAllSkills()` and `mergeMatrixWithSkills()`.\n *\n * Unlike `writeTestSkill()` which creates installed skills, this writes skills\n * in the source directory layout (under `src/skills/<domain>/<category>/<name>/`).\n */\nexport async function writeSourceSkill(\n skillsDir: string,\n directoryPath: string,\n config: TestSkill,\n): Promise<string> {\n const skillDir = path.join(skillsDir, directoryPath);\n await mkdir(skillDir, { recursive: true });\n\n await writeFile(\n path.join(skillDir, STANDARD_FILES.SKILL_MD),\n renderSkillMd(config.id, config.description),\n );\n\n const domain = config.domain;\n const slug = config.slug;\n const metadata: Record<string, unknown> = {\n displayName: config.id,\n slug,\n category: config.category,\n domain,\n author: config.author ?? \"@test\",\n ...(config.tags && { tags: config.tags }),\n };\n\n await writeFile(path.join(skillDir, STANDARD_FILES.METADATA_YAML), stringifyYaml(metadata));\n\n return skillDir;\n}\n\nexport async function writeTestAgent(\n agentsDir: string,\n agentName: string,\n options?: { description?: string },\n): Promise<string> {\n const agentDir = path.join(agentsDir, agentName);\n await mkdir(agentDir, { recursive: true });\n\n await writeFile(\n path.join(agentDir, STANDARD_FILES.AGENT_METADATA_YAML),\n renderAgentYaml(agentName, options?.description),\n );\n\n return agentDir;\n}\n\nexport function createMockCategory(\n id: string,\n displayName: string,\n overrides?: Partial<CategoryDefinition>,\n): CategoryDefinition {\n // Boundary cast: test factory accepts arbitrary category IDs for test isolation\n return {\n id: id as Category,\n displayName,\n description: `${displayName} category`,\n domain: \"web\",\n exclusive: true,\n required: false,\n order: 0,\n ...overrides,\n };\n}\n\nexport function createMockResolvedStack(\n id: string,\n name: string,\n overrides?: Partial<ResolvedStack>,\n): ResolvedStack {\n return {\n id,\n name,\n description: `${name} stack`,\n skills: {},\n allSkillIds: [],\n philosophy: \"\",\n ...overrides,\n };\n}\n\n/**\n * Builds a comprehensive test matrix with 8 skills across 7 categories,\n * 2 suggested stacks, display name mappings, and relationship data\n * (conflicts, recommends). Includes anti-over-engineering methodology skill.\n * @returns A fully populated MergedSkillsMatrix with realistic test data\n */\nexport function createComprehensiveMatrix(\n overrides?: Partial<MergedSkillsMatrix>,\n): MergedSkillsMatrix {\n // Skill categories use domain-prefixed Category IDs (matching production\n // metadata.yaml and the categories map keys, e.g., \"web-framework\", \"api-api\").\n const skills = {\n \"web-framework-react\": SKILLS.react,\n \"web-framework-vue-composition-api\": {\n ...SKILLS.vue,\n conflictsWith: [{ skillId: \"web-framework-react\", reason: \"Choose one framework\" }],\n } satisfies ResolvedSkill,\n \"web-state-zustand\": SKILLS.zustand,\n \"web-styling-scss-modules\": SKILLS.scss,\n \"api-framework-hono\": SKILLS.hono,\n \"api-database-drizzle\": SKILLS.drizzle,\n \"web-testing-vitest\": SKILLS.vitest,\n // Methodology skill\n \"meta-methodology-anti-over-engineering\": SKILLS.antiOverEng,\n };\n\n const categories = {\n \"web-framework\": {\n ...TEST_CATEGORIES.framework,\n domain: \"web\",\n exclusive: true,\n required: true,\n },\n \"web-client-state\": { ...TEST_CATEGORIES.clientState, domain: \"web\", order: 1 },\n \"web-styling\": { ...TEST_CATEGORIES.styling, domain: \"web\", order: 2 },\n \"api-api\": { ...TEST_CATEGORIES.api, domain: \"api\", exclusive: true, required: true },\n \"api-database\": { ...TEST_CATEGORIES.database, domain: \"api\", order: 1 },\n \"web-testing\": {\n ...TEST_CATEGORIES.testing,\n domain: \"shared\",\n exclusive: false,\n order: 10,\n },\n \"shared-methodology\": {\n ...TEST_CATEGORIES.methodology,\n domain: \"shared\",\n exclusive: false,\n required: false,\n order: 11,\n },\n } as Record<Category, CategoryDefinition>;\n\n const suggestedStacks: ResolvedStack[] = [\n createMockResolvedStack(\"nextjs-fullstack\", \"Next.js Fullstack\", {\n description: \"Complete Next.js stack with React and Hono\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-react\"],\n \"web-client-state\": [\"web-state-zustand\"],\n \"web-styling\": [\"web-styling-scss-modules\"],\n },\n \"api-developer\": {\n \"api-api\": [\"api-framework-hono\"],\n \"api-database\": [\"api-database-drizzle\"],\n },\n } as ResolvedStack[\"skills\"],\n allSkillIds: [\n \"web-framework-react\",\n \"web-state-zustand\",\n \"web-styling-scss-modules\",\n \"api-framework-hono\",\n \"api-database-drizzle\",\n ],\n philosophy: \"Modern, type-safe fullstack development\",\n }),\n createMockResolvedStack(\"vue-stack\", \"Vue Stack\", {\n description: \"Vue.js frontend stack\",\n skills: {\n \"web-developer\": {\n \"web-framework\": [\"web-framework-vue-composition-api\"],\n },\n } as ResolvedStack[\"skills\"],\n allSkillIds: [\"web-framework-vue-composition-api\"],\n philosophy: \"Progressive framework approach\",\n }),\n ];\n\n // Boundary cast: test matrix only contains a subset of all possible slugs\n const slugToId = {\n react: \"web-framework-react\",\n \"vue-composition-api\": \"web-framework-vue-composition-api\",\n zustand: \"web-state-zustand\",\n \"scss-modules\": \"web-styling-scss-modules\",\n hono: \"api-framework-hono\",\n drizzle: \"api-database-drizzle\",\n vitest: \"web-testing-vitest\",\n \"anti-over-engineering\": \"meta-methodology-anti-over-engineering\",\n } as unknown as Record<SkillSlug, SkillId>;\n\n // Boundary cast: Object.fromEntries returns { [k: string]: string }\n const idToSlug = Object.fromEntries(\n typedEntries(slugToId).map(([slug, fullId]) => [fullId, slug]),\n ) as SkillSlugMap[\"idToSlug\"];\n\n return createMockMatrix(skills, {\n categories,\n suggestedStacks,\n slugMap: { slugToId, idToSlug },\n ...overrides,\n });\n}\n\n/**\n * Builds a lightweight test matrix with 5 skills, 5 categories, and 2 stacks.\n * Use instead of createComprehensiveMatrix when relationship data is not needed.\n * @returns A minimal MergedSkillsMatrix for basic integration tests\n */\nexport function createBasicMatrix(overrides?: Partial<MergedSkillsMatrix>): MergedSkillsMatrix {\n // Domain-prefixed Category IDs — see createComprehensiveMatrix comment\n const skills = {\n \"web-framework-react\": SKILLS.react,\n \"web-state-zustand\": SKILLS.zustand,\n \"api-framework-hono\": SKILLS.hono,\n \"web-testing-vitest\": SKILLS.vitest,\n // Methodology skill\n \"meta-methodology-anti-over-engineering\": SKILLS.antiOverEng,\n };\n\n const suggestedStacks: ResolvedStack[] = [\n createMockResolvedStack(\"react-fullstack\", \"React Fullstack\", {\n allSkillIds: [\"web-framework-react\", \"web-state-zustand\", \"api-framework-hono\"],\n }),\n createMockResolvedStack(\"testing-stack\", \"Testing Stack\", {\n allSkillIds: [\"web-testing-vitest\"],\n }),\n ];\n\n return createMockMatrix(skills, {\n suggestedStacks,\n categories: {\n \"web-framework\": {\n ...TEST_CATEGORIES.framework,\n domain: \"web\",\n exclusive: true,\n required: true,\n },\n \"web-client-state\": { ...TEST_CATEGORIES.clientState, domain: \"web\", order: 1 },\n \"api-api\": {\n ...TEST_CATEGORIES.api,\n domain: \"api\",\n exclusive: true,\n required: true,\n },\n \"web-testing\": {\n ...TEST_CATEGORIES.testing,\n displayName: \"Testing Framework\",\n domain: \"shared\",\n exclusive: false,\n },\n \"shared-methodology\": {\n ...TEST_CATEGORIES.methodology,\n domain: \"shared\",\n exclusive: false,\n required: false,\n },\n } as Record<Category, CategoryDefinition>,\n ...overrides,\n });\n}\n\n/**\n * Replicates `handleComplete` from wizard.tsx for the \"customize\" path.\n *\n * Given the wizard store state (after simulated user selections), this\n * builds the same WizardResultV2 that the real wizard produces:\n * 1. Collects all selected technologies from domainSelections\n * 2. Resolves aliases to canonical skill IDs\n * 3. Runs validation\n */\nexport function buildWizardResultFromStore(\n matrix: MergedSkillsMatrix,\n overrides?: Partial<WizardResultV2>,\n): WizardResultV2 {\n const store = useWizardStore.getState();\n\n let allSkills: SkillId[];\n\n if (store.selectedStackId && store.stackAction === \"defaults\") {\n const stack = matrix.suggestedStacks.find((s) => s.id === store.selectedStackId);\n allSkills = [...(stack?.allSkillIds || [])];\n } else {\n const techNames = store.getAllSelectedTechnologies();\n allSkills = techNames.map((tech) => resolveAlias(tech));\n }\n\n const validation = validateSelection(allSkills);\n\n return {\n skills: store.skillConfigs.length > 0 ? store.skillConfigs : buildSkillConfigs(allSkills),\n selectedAgents: store.selectedAgents,\n agentConfigs: store.agentConfigs,\n selectedStackId: store.selectedStackId,\n domainSelections: store.domainSelections,\n selectedDomains: store.selectedDomains,\n cancelled: false,\n validation,\n ...overrides,\n };\n}\n\n/**\n * Simulates a user selecting specific skills via the wizard store.\n *\n * Sets up domainSelections as if the user toggled each skill in the build step,\n * using the matrix to look up the correct domain and category per skill.\n */\nexport function simulateSkillSelections(\n skillIds: SkillId[],\n matrix: MergedSkillsMatrix,\n selectedDomains: string[],\n): void {\n const domainSelections = skillIds.reduce<DomainSelections>((acc, skillId) => {\n const skill = matrix.skills[skillId];\n if (!skill) return acc;\n // Boundary cast: skill.category is a Category at runtime\n const category = skill.category as Category;\n const domain = matrix.categories[category]?.domain;\n if (!domain) return acc;\n const domainObj = acc[domain] ?? {};\n const subcatList = domainObj[category] ?? [];\n if (subcatList.includes(skillId)) return acc;\n return {\n ...acc,\n [domain]: { ...domainObj, [category]: [...subcatList, skillId] },\n };\n }, {});\n\n useWizardStore.setState({\n domainSelections,\n selectedDomains: selectedDomains as Domain[],\n approach: \"scratch\",\n step: \"confirm\",\n });\n}\n\n/**\n * Extracts skill IDs from a stack assignment value, which may be:\n * - A bare string (e.g., \"web-framework-react\")\n * - An object with .id (e.g., { id: \"web-framework-react\", preloaded: true })\n * - An array of strings or objects\n */\nexport function extractSkillIdsFromAssignment(assignment: unknown): string[] {\n if (typeof assignment === \"string\") {\n return [assignment];\n }\n if (Array.isArray(assignment)) {\n return assignment.flatMap((item) => extractSkillIdsFromAssignment(item));\n }\n if (typeof assignment === \"object\" && assignment !== null && \"id\" in assignment) {\n return [String((assignment as { id: string }).id)];\n }\n return [];\n}\n\nexport function buildTestProjectConfig(\n agents: string[],\n skills: Array<string | { id: string }>,\n overrides?: Partial<TestProjectConfig>,\n): TestProjectConfig {\n return {\n name: \"test-project\",\n description: \"Test project\",\n agents,\n skills,\n ...overrides,\n };\n}\n\nexport function createMockSkillDefinition(\n id: SkillId,\n overrides?: Partial<SkillDefinition>,\n): SkillDefinition {\n return {\n id,\n path: `skills/${id}/`,\n description: `${id} skill`,\n ...overrides,\n };\n}\n\n/** Decomposed matrix config returned by createMockMatrixConfig (replaces SkillsMatrixConfig) */\nexport type MockMatrixConfig = {\n categories: Record<string, CategoryDefinition>;\n relationships: RelationshipDefinitions;\n};\n\nexport function createMockMatrixConfig(\n categories: Record<string, CategoryDefinition>,\n overrides?: {\n relationships?: Partial<RelationshipDefinitions>;\n },\n): MockMatrixConfig {\n const defaultRelationships: RelationshipDefinitions = {\n conflicts: [],\n discourages: [],\n recommends: [],\n requires: [],\n alternatives: [],\n };\n return {\n categories,\n relationships: overrides?.relationships\n ? { ...defaultRelationships, ...overrides.relationships }\n : defaultRelationships,\n };\n}\n\nexport function createMockStack(\n id: string,\n config: {\n name: string;\n description?: string;\n agents: Record<string, StackAgentConfig>;\n philosophy?: string;\n },\n): Stack {\n return {\n id,\n name: config.name,\n description: config.description ?? \"\",\n // Boundary cast: test callers may pass arbitrary agent names (e.g., \"nonexistent-agent\")\n agents: config.agents as Stack[\"agents\"],\n philosophy: config.philosophy,\n };\n}\n\nexport function createMockCompileConfig(\n agents: Record<string, CompileAgentConfig>,\n overrides?: Partial<CompileConfig>,\n): CompileConfig {\n return {\n name: \"Test Plugin\",\n description: \"Test description\",\n agents,\n ...overrides,\n };\n}\n\nexport function createMockCompiledStackPlugin(\n overrides?: Partial<CompiledStackPlugin>,\n): CompiledStackPlugin {\n return {\n pluginPath: \"/tmp/cc-stack-123456/test-stack\",\n manifest: { name: \"test-stack\", version: \"1.0.0\" },\n stackName: \"Test Stack\",\n agents: [\"web-developer\"],\n skillPlugins: [\"web-framework-react\"],\n hasHooks: false,\n ...overrides,\n };\n}\n\nexport function createMockSkillAssignment(id: SkillId, preloaded = false): SkillAssignment {\n return { id, preloaded };\n}\n\nexport function createMockRawStacksConfig(): RawStacksConfig {\n return {\n stacks: [\n {\n id: \"nextjs-fullstack\",\n name: \"Next.js Fullstack\",\n description: \"Full-stack Next.js with Hono API\",\n agents: {\n \"web-developer\": {\n \"web-framework\": \"web-framework-react\",\n \"web-styling\": \"web-styling-scss-modules\",\n },\n \"api-developer\": {\n \"api-api\": \"api-framework-hono\",\n \"api-database\": \"api-database-drizzle\",\n },\n },\n },\n {\n id: \"vue-spa\",\n name: \"Vue SPA\",\n description: \"Vue single-page application\",\n agents: {\n \"web-developer\": {\n \"web-framework\": \"web-framework-vue-composition-api\",\n \"web-styling\": \"web-styling-tailwind\",\n },\n },\n },\n ],\n };\n}\n\nexport function createMockRawStacksConfigWithArrays(): RawStacksConfig {\n return {\n stacks: [\n {\n id: \"multi-select-stack\",\n name: \"Multi-Select Stack\",\n description: \"Stack with array-valued categories\",\n agents: {\n \"web-developer\": {\n \"web-framework\": \"web-framework-react\",\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n \"meta-methodology-success-criteria\",\n ],\n },\n \"pattern-scout\": {\n \"shared-methodology\": [\n \"meta-methodology-investigation-requirements\",\n \"meta-methodology-anti-over-engineering\",\n ],\n \"shared-research\": \"meta-research-research-methodology\",\n },\n },\n },\n ],\n };\n}\n\nexport function createMockRawStacksConfigWithObjects(): RawStacksConfig {\n return {\n stacks: [\n {\n id: \"object-stack\",\n name: \"Object Stack\",\n description: \"Stack with object-form skill assignments\",\n agents: {\n \"web-developer\": {\n \"web-framework\": [{ id: \"web-framework-react\", preloaded: true }],\n \"web-styling\": \"web-styling-scss-modules\",\n \"shared-methodology\": [\n { id: \"meta-methodology-investigation-requirements\", preloaded: true },\n \"meta-methodology-anti-over-engineering\",\n ],\n },\n },\n },\n ],\n };\n}\n\nexport function createMockMarketplace(plugins: MarketplacePlugin[] = []): Marketplace {\n return {\n name: \"test-marketplace\",\n version: \"1.0.0\",\n owner: { name: \"Test Owner\" },\n plugins,\n };\n}\n\nexport function createMockMarketplacePlugin(\n name: string,\n source: MarketplacePlugin[\"source\"] = \"local\",\n): MarketplacePlugin {\n return {\n name,\n source,\n };\n}\n\n/** Convert a TestSkill (disk-based) to a ResolvedSkill (in-memory) for matrix creation. */\nexport function testSkillToResolvedSkill(\n skill: TestSkill,\n overrides?: Partial<ResolvedSkill>,\n): ResolvedSkill {\n // Boundary cast: TestSkill.id is string, but in practice always a valid SkillId\n return createMockSkill(skill.id as SkillId, {\n description: skill.description,\n ...(skill.tags?.length ? { tags: skill.tags } : {}),\n ...overrides,\n });\n}\n\n/**\n * Creates a ResolvedSkill with availableSources annotation for multi-source testing.\n * Simulates what multi-source-loader.ts does after tagging.\n */\nexport function createMockMultiSourceSkill(\n id: SkillId,\n sources: SkillSource[],\n overrides?: Partial<ResolvedSkill>,\n): ResolvedSkill {\n const activeSource = sources.find((s) => s.installed) ?? sources[0];\n return createMockSkill(id, {\n availableSources: sources,\n activeSource,\n ...overrides,\n });\n}\n\nexport function createMockCompiledAgentData(overrides?: Partial<AgentConfig>): CompiledAgentData {\n const agent = createMockAgentConfig(\"test-agent\", [], {\n title: \"Test Agent\",\n description: \"A test agent\",\n ...overrides,\n });\n\n return {\n agent,\n intro: \"Test intro\",\n workflow: \"Test workflow\",\n examples: \"Test examples\",\n criticalRequirementsTop: \"\",\n criticalReminders: \"\",\n outputFormat: \"\",\n skills: agent.skills,\n preloadedSkills: [],\n dynamicSkills: [],\n preloadedSkillIds: [],\n };\n}\n\nexport { SKILLS, TEST_CATEGORIES } from \"./test-fixtures\";\n","/**\n * Pure content renderers for test file generation.\n * Single source of truth for all test content templates.\n */\n\nexport function renderSkillMd(id: string, description?: string, body?: string): string {\n const desc = description ?? `${id} skill`;\n const content = body ?? `# ${id}\\n\\n${desc}`;\n return `---\nname: ${id}\ndescription: ${desc}\n---\n\n${content}\n`;\n}\n\nexport function renderConfigTs(config: Record<string, unknown>): string {\n return `export default ${JSON.stringify(config, null, 2)};\\n`;\n}\n\nexport function renderAgentYaml(\n name: string,\n description?: string,\n options?: { title?: string; tools?: string[] },\n): string {\n const desc = description ?? `Test ${name} agent`;\n const title = options?.title ?? `${name} Agent`;\n const tools = options?.tools ?? [\"Read\", \"Write\"];\n return `id: ${name}\ntitle: ${title}\ndescription: ${desc}\ntools:\n${tools.map((t) => ` - ${t}`).join(\"\\n\")}`;\n}\n\nexport function renderCategoriesTs(categories: Record<string, unknown>): string {\n return renderConfigTs(categories);\n}\n\nexport function renderRulesTs(rules: Record<string, unknown>): string {\n return renderConfigTs(rules);\n}\n"],"mappings":"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","names":["__filename","__dirname"]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
addSource,
|
|
4
|
-
getSourceSummary,
|
|
5
|
-
removeSource
|
|
6
|
-
} from "./chunk-6W4H2K3Z.js";
|
|
7
|
-
import "./chunk-RRBWNEG3.js";
|
|
8
|
-
import "./chunk-NG2GGK6P.js";
|
|
9
|
-
import "./chunk-4CRWKTNQ.js";
|
|
10
|
-
import "./chunk-SRIH4U5Y.js";
|
|
11
|
-
import "./chunk-EGMQ3SXN.js";
|
|
12
|
-
import "./chunk-NKKYTCBH.js";
|
|
13
|
-
import "./chunk-DHET7RCE.js";
|
|
14
|
-
export {
|
|
15
|
-
addSource,
|
|
16
|
-
getSourceSummary,
|
|
17
|
-
removeSource
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=source-manager-WRZBOTEH.js.map
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|