@haus-tech/haus-workflow 0.18.1 → 0.19.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.
Files changed (61) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/cli.js +320 -288
  4. package/library/catalog/manifest.json +1 -1
  5. package/library/global/commands/haus-clone.md +32 -0
  6. package/library/global/skills/haus-workflow/SKILL.md +18 -9
  7. package/package.json +4 -8
  8. package/tests/README.md +0 -54
  9. package/tests/fixtures/catalog/agents/code-reviewer.md +0 -15
  10. package/tests/fixtures/catalog/agents/docs-researcher.md +0 -15
  11. package/tests/fixtures/catalog/agents/planner.md +0 -15
  12. package/tests/fixtures/catalog/agents/security-reviewer.md +0 -15
  13. package/tests/fixtures/catalog/agents/test-reviewer.md +0 -15
  14. package/tests/fixtures/catalog/manifest.json +0 -1065
  15. package/tests/fixtures/catalog/policy-gates-manifest.json +0 -120
  16. package/tests/fixtures/catalog/skills/auth-oidc-azure-bankid-patterns/SKILL.md +0 -14
  17. package/tests/fixtures/catalog/skills/bullmq-patterns/SKILL.md +0 -14
  18. package/tests/fixtures/catalog/skills/database-patterns/SKILL.md +0 -14
  19. package/tests/fixtures/catalog/skills/dotnet-patterns/SKILL.md +0 -14
  20. package/tests/fixtures/catalog/skills/dotnet-service-patterns/SKILL.md +0 -14
  21. package/tests/fixtures/catalog/skills/eslint-setup/SKILL.md +0 -14
  22. package/tests/fixtures/catalog/skills/expo-react-native-patterns/SKILL.md +0 -14
  23. package/tests/fixtures/catalog/skills/global-engineering-rules/SKILL.md +0 -14
  24. package/tests/fixtures/catalog/skills/i18next-patterns/SKILL.md +0 -14
  25. package/tests/fixtures/catalog/skills/jest-patterns/SKILL.md +0 -14
  26. package/tests/fixtures/catalog/skills/laravel-nova-patterns/SKILL.md +0 -14
  27. package/tests/fixtures/catalog/skills/laravel-patterns/SKILL.md +0 -14
  28. package/tests/fixtures/catalog/skills/nestjs-graphql-patterns/SKILL.md +0 -14
  29. package/tests/fixtures/catalog/skills/nextauth-patterns/SKILL.md +0 -14
  30. package/tests/fixtures/catalog/skills/nextjs-patterns/SKILL.md +0 -14
  31. package/tests/fixtures/catalog/skills/nx21-monorepo-patterns/SKILL.md +0 -14
  32. package/tests/fixtures/catalog/skills/package-manager-yarn4-pnpm89/SKILL.md +0 -14
  33. package/tests/fixtures/catalog/skills/phpunit-patterns/SKILL.md +0 -14
  34. package/tests/fixtures/catalog/skills/playwright-patterns/SKILL.md +0 -14
  35. package/tests/fixtures/catalog/skills/prettier-setup/SKILL.md +0 -14
  36. package/tests/fixtures/catalog/skills/prisma-patterns/SKILL.md +0 -14
  37. package/tests/fixtures/catalog/skills/production-readiness-review/SKILL.md +0 -14
  38. package/tests/fixtures/catalog/skills/qliro-patterns/SKILL.md +0 -14
  39. package/tests/fixtures/catalog/skills/radix-shadcn-patterns/SKILL.md +0 -14
  40. package/tests/fixtures/catalog/skills/react-router-v7-patterns/SKILL.md +0 -14
  41. package/tests/fixtures/catalog/skills/react19-patterns/SKILL.md +0 -14
  42. package/tests/fixtures/catalog/skills/sanity-patterns/SKILL.md +0 -14
  43. package/tests/fixtures/catalog/skills/security-review/SKILL.md +0 -14
  44. package/tests/fixtures/catalog/skills/sentry-patterns/SKILL.md +0 -14
  45. package/tests/fixtures/catalog/skills/storybook-patterns/SKILL.md +0 -14
  46. package/tests/fixtures/catalog/skills/strapi-patterns/SKILL.md +0 -14
  47. package/tests/fixtures/catalog/skills/stripe-patterns/SKILL.md +0 -14
  48. package/tests/fixtures/catalog/skills/supabase-patterns/SKILL.md +0 -14
  49. package/tests/fixtures/catalog/skills/tailwind-scss-patterns/SKILL.md +0 -14
  50. package/tests/fixtures/catalog/skills/tanstack-query-router-patterns/SKILL.md +0 -14
  51. package/tests/fixtures/catalog/skills/testing-library-patterns/SKILL.md +0 -14
  52. package/tests/fixtures/catalog/skills/turbo-monorepo-patterns/SKILL.md +0 -14
  53. package/tests/fixtures/catalog/skills/typescript5-patterns/SKILL.md +0 -14
  54. package/tests/fixtures/catalog/skills/vendure-app-patterns/SKILL.md +0 -14
  55. package/tests/fixtures/catalog/skills/vendure-plugin-patterns/SKILL.md +0 -14
  56. package/tests/fixtures/catalog/skills/vite8-patterns/SKILL.md +0 -14
  57. package/tests/fixtures/catalog/skills/vitest-patterns/SKILL.md +0 -14
  58. package/tests/fixtures/catalog/skills/vue-patterns/SKILL.md +0 -14
  59. package/tests/fixtures/catalog/skills/wordpress-acf-elementor-jetengine-patterns/SKILL.md +0 -14
  60. package/tests/fixtures/catalog/skills/wordpress-bedrock-patterns/SKILL.md +0 -14
  61. package/tests/fixtures/catalog/skills/wordpress-patterns/SKILL.md +0 -14
@@ -1,1065 +0,0 @@
1
- {
2
- "version": "0.1.0",
3
- "_note": "Stable fixture for CLI tests. Decoupled from production catalog repo. Update manually when catalog schema changes.",
4
- "items": [
5
- {
6
- "id": "haus.nextjs-patterns",
7
- "source": "haus",
8
- "type": "skill",
9
- "path": "skills/nextjs-patterns",
10
- "title": "Haus Next.js patterns",
11
- "purpose": "Guide Next.js route, server/client boundary, and middleware-safe changes.",
12
- "whenToUse": "Use for App Router pages, layouts, route handlers, and middleware behavior updates.",
13
- "whenNotToUse": "Do not use for backend-only or non-Next framework tasks.",
14
- "references": [
15
- "references/scope.md",
16
- "references/workflow.md",
17
- "https://nextjs.org/llms.txt"
18
- ],
19
- "tokenBudget": 1200,
20
- "tags": ["frontend", "nextjs", "react", "typescript"],
21
- "repoRoles": ["next-app"],
22
- "requiresAny": [{ "stack": "nextjs" }, { "dependency": "next" }],
23
- "ecosystem": "nextjs",
24
- "tokenEstimate": 2600,
25
- "installMode": "copy-selected"
26
- },
27
- {
28
- "id": "haus.react19-patterns",
29
- "source": "haus",
30
- "type": "skill",
31
- "path": "skills/react19-patterns",
32
- "title": "Haus React 19 patterns",
33
- "purpose": "Guide React component, hook, and state-boundary changes.",
34
- "whenToUse": "Use for React component behavior, hooks, and UI state flow updates.",
35
- "whenNotToUse": "Do not use for backend-only changes or framework routing config tasks.",
36
- "references": ["references/scope.md", "references/workflow.md", "https://react.dev/"],
37
- "tokenBudget": 1200,
38
- "tags": ["frontend", "react", "typescript"],
39
- "repoRoles": ["react-app", "next-app", "design-system"],
40
- "requiresAny": [{ "stack": "react19" }, { "dependency": "react" }],
41
- "ecosystem": "react",
42
- "tokenEstimate": 2200,
43
- "installMode": "copy-selected"
44
- },
45
- {
46
- "id": "haus.typescript5-patterns",
47
- "source": "haus",
48
- "type": "skill",
49
- "path": "skills/typescript5-patterns",
50
- "title": "Haus TypeScript 5 patterns",
51
- "purpose": "Guide TypeScript contract and migration-safe typing changes.",
52
- "whenToUse": "Use for shared types, DTOs, interface boundaries, and type-safe refactors.",
53
- "whenNotToUse": "Do not use for runtime-only changes without type-contract impact.",
54
- "references": [
55
- "references/scope.md",
56
- "references/workflow.md",
57
- "https://www.typescriptlang.org/docs/handbook/"
58
- ],
59
- "tokenBudget": 1200,
60
- "tags": ["typescript", "frontend", "backend"],
61
- "repoRoles": [
62
- "next-app",
63
- "react-app",
64
- "nestjs-api",
65
- "vendure-plugin",
66
- "vendure-app",
67
- "shared-package"
68
- ],
69
- "requiresAny": [
70
- { "stack": "typescript5" },
71
- { "stack": "typescript" },
72
- { "dependency": "typescript" }
73
- ],
74
- "tokenEstimate": 2200,
75
- "installMode": "copy-selected"
76
- },
77
- {
78
- "id": "haus.vite8-patterns",
79
- "source": "haus",
80
- "type": "skill",
81
- "path": "skills/vite8-patterns",
82
- "title": "Haus Vite 8 patterns",
83
- "purpose": "Guide Vite config, plugin wiring, and deterministic build pipeline changes.",
84
- "whenToUse": "Use for vite config, alias/plugin, and build mode behavior updates.",
85
- "whenNotToUse": "Do not use for framework feature logic without build pipeline impact.",
86
- "references": [
87
- "references/scope.md",
88
- "references/workflow.md",
89
- "https://vite.dev/guide",
90
- "https://vitest.dev/guide"
91
- ],
92
- "tokenBudget": 1200,
93
- "tags": ["vite8", "frontend", "typescript"],
94
- "repoRoles": ["vite-app", "react-app", "vue-app"],
95
- "requiresAny": [{ "stack": "vite8" }, { "dependency": "vite" }],
96
- "ecosystem": "vite",
97
- "tokenEstimate": 1800,
98
- "installMode": "copy-selected"
99
- },
100
- {
101
- "id": "haus.react-router-v7-patterns",
102
- "source": "haus",
103
- "type": "skill",
104
- "path": "skills/react-router-v7-patterns",
105
- "title": "Haus React Router v7 patterns",
106
- "purpose": "Guide React Router v7 SSR route, loader, and action boundary changes.",
107
- "whenToUse": "Use for routes, loaders, actions, and SSR config in React Router v7 apps.",
108
- "whenNotToUse": "Do not use for Next.js App Router or Remix v1 codebases.",
109
- "references": [
110
- "references/scope.md",
111
- "references/workflow.md",
112
- "https://reactrouter.com/start/framework/installation"
113
- ],
114
- "tokenBudget": 1200,
115
- "tags": ["frontend", "react", "typescript"],
116
- "repoRoles": ["react-router-app", "react-app"],
117
- "requiresAny": [
118
- { "stack": "react-router-v7" },
119
- { "role": "react-router-app" },
120
- { "dependency": "@react-router/node" }
121
- ],
122
- "ecosystem": "react",
123
- "tokenEstimate": 2000,
124
- "installMode": "copy-selected"
125
- },
126
- {
127
- "id": "haus.expo-react-native-patterns",
128
- "source": "haus",
129
- "type": "skill",
130
- "path": "skills/expo-react-native-patterns",
131
- "title": "Haus Expo / React Native patterns",
132
- "purpose": "Guide Expo Router, React Native component, native module, and EAS build changes.",
133
- "whenToUse": "Use for Expo Router routes, RN components, native modules, expo config plugins, and EAS build/submit.",
134
- "whenNotToUse": "Do not use for web-only React apps or unrelated mobile native projects (Swift/Kotlin without Expo).",
135
- "references": ["references/scope.md", "references/workflow.md", "https://docs.expo.dev/"],
136
- "tokenBudget": 1200,
137
- "tags": ["expo", "react-native", "mobile", "react"],
138
- "repoRoles": ["expo-app"],
139
- "requiresAny": [
140
- { "stack": "expo" },
141
- { "stack": "react-native" },
142
- { "role": "expo-app" },
143
- { "dependency": "expo" },
144
- { "dependency": "react-native" }
145
- ],
146
- "ecosystem": "mobile",
147
- "tokenEstimate": 2200,
148
- "installMode": "copy-selected"
149
- },
150
- {
151
- "id": "haus.i18next-patterns",
152
- "source": "haus",
153
- "type": "skill",
154
- "path": "skills/i18next-patterns",
155
- "title": "Haus i18next patterns",
156
- "purpose": "Guide i18next setup, namespace structure, translation key conventions, and SSR-safe usage.",
157
- "whenToUse": "Use for adding/changing translations, configuring i18next, or wiring react-i18next / next-i18next.",
158
- "whenNotToUse": "Do not use for non-i18next translation systems or static-only content with no locale.",
159
- "references": ["references/scope.md", "references/workflow.md", "https://www.i18next.com/"],
160
- "tokenBudget": 1200,
161
- "tags": ["i18next", "i18n", "frontend"],
162
- "repoRoles": ["next-app", "react-app", "vue-app", "vite-app"],
163
- "requiresAny": [
164
- { "stack": "i18next" },
165
- { "dependency": "i18next" },
166
- { "dependency": "react-i18next" }
167
- ],
168
- "ecosystem": "tooling",
169
- "tokenEstimate": 1800,
170
- "installMode": "copy-selected"
171
- },
172
- {
173
- "id": "haus.bullmq-patterns",
174
- "source": "haus",
175
- "type": "skill",
176
- "path": "skills/bullmq-patterns",
177
- "title": "Haus BullMQ patterns",
178
- "purpose": "Guide BullMQ queue, worker, scheduler, and Redis-connection lifecycle changes.",
179
- "whenToUse": "Use for BullMQ queue definitions, processors, schedulers, and graceful shutdown.",
180
- "whenNotToUse": "Do not use for non-BullMQ job systems or in-process scheduling without Redis.",
181
- "references": ["references/scope.md", "references/workflow.md", "https://docs.bullmq.io/"],
182
- "tokenBudget": 1200,
183
- "tags": ["bullmq", "queue", "backend"],
184
- "repoRoles": ["vendure-app", "nestjs-api"],
185
- "requiresAny": [{ "stack": "bullmq" }, { "dependency": "bullmq" }],
186
- "ecosystem": "tooling",
187
- "tokenEstimate": 1800,
188
- "installMode": "copy-selected"
189
- },
190
- {
191
- "id": "haus.sentry-patterns",
192
- "source": "haus",
193
- "type": "skill",
194
- "path": "skills/sentry-patterns",
195
- "title": "Haus Sentry patterns",
196
- "purpose": "Guide Sentry SDK setup, error capture, performance tracing, and PII scrubbing.",
197
- "whenToUse": "Use for `@sentry/*` SDK init, scope/breadcrumb config, source map upload, and PII redaction.",
198
- "whenNotToUse": "Do not use for non-Sentry monitoring (Datadog, New Relic, etc.).",
199
- "references": ["references/scope.md", "references/workflow.md", "https://docs.sentry.io/"],
200
- "tokenBudget": 1200,
201
- "tags": ["sentry", "observability", "tooling"],
202
- "repoRoles": ["next-app", "nestjs-api", "vendure-app"],
203
- "requiresAny": [
204
- { "stack": "sentry" },
205
- { "dependency": "@sentry/node" },
206
- { "dependency": "@sentry/nextjs" },
207
- { "packageNamePattern": "@sentry/*" }
208
- ],
209
- "ecosystem": "tooling",
210
- "tokenEstimate": 1800,
211
- "installMode": "copy-selected"
212
- },
213
- {
214
- "id": "haus.prettier-setup",
215
- "source": "haus",
216
- "type": "skill",
217
- "path": "skills/prettier-setup",
218
- "title": "Haus Prettier setup",
219
- "purpose": "Install `@haus-tech/prettier-config` and wire `.prettierrc` to the shared config.",
220
- "whenToUse": "Use when Prettier is missing from a haus repo or when migrating an ad-hoc Prettier config to the shared package.",
221
- "whenNotToUse": "Do not use when Prettier is already configured against `@haus-tech/prettier-config`.",
222
- "references": ["references/scope.md", "references/workflow.md"],
223
- "tokenBudget": 800,
224
- "tags": ["prettier", "tooling", "quality"],
225
- "repoRoles": [],
226
- "requiresAny": [{ "stack": "missing-prettier" }],
227
- "ecosystem": "tooling",
228
- "tokenEstimate": 1000,
229
- "installMode": "copy-selected"
230
- },
231
- {
232
- "id": "haus.eslint-setup",
233
- "source": "haus",
234
- "type": "skill",
235
- "path": "skills/eslint-setup",
236
- "title": "Haus ESLint setup",
237
- "purpose": "Install `@haus-tech/tech-config` and wire ESLint flat config to the shared rules.",
238
- "whenToUse": "Use when ESLint is missing from a haus repo or migrating from a legacy `.eslintrc` to flat config.",
239
- "whenNotToUse": "Do not use when ESLint is already configured against `@haus-tech/tech-config`.",
240
- "references": ["references/scope.md", "references/workflow.md"],
241
- "tokenBudget": 800,
242
- "tags": ["eslint", "tooling", "quality"],
243
- "repoRoles": [],
244
- "requiresAny": [{ "stack": "missing-eslint" }],
245
- "ecosystem": "tooling",
246
- "tokenEstimate": 1000,
247
- "installMode": "copy-selected"
248
- },
249
- {
250
- "id": "haus.stripe-patterns",
251
- "source": "haus",
252
- "type": "skill",
253
- "path": "skills/stripe-patterns",
254
- "title": "Haus Stripe patterns",
255
- "purpose": "Guide Stripe Elements, Checkout, webhook handling, and PCI-safe integration changes.",
256
- "whenToUse": "Use for `@stripe/stripe-js` / `@stripe/react-stripe-js` integrations, payment intents, webhooks, and Checkout.",
257
- "whenNotToUse": "Do not use for non-Stripe payment providers (Qliro, Klarna, etc.).",
258
- "references": ["references/scope.md", "references/workflow.md", "https://docs.stripe.com/"],
259
- "tokenBudget": 1200,
260
- "tags": ["stripe", "payments", "tooling"],
261
- "repoRoles": ["next-app", "react-app", "vendure-plugin"],
262
- "requiresAny": [
263
- { "stack": "stripe" },
264
- { "dependency": "@stripe/stripe-js" },
265
- { "dependency": "@stripe/react-stripe-js" }
266
- ],
267
- "ecosystem": "payments",
268
- "tokenEstimate": 2000,
269
- "installMode": "copy-selected"
270
- },
271
- {
272
- "id": "haus.qliro-patterns",
273
- "source": "haus",
274
- "type": "skill",
275
- "path": "skills/qliro-patterns",
276
- "title": "Haus Qliro patterns",
277
- "purpose": "Guide Qliro Checkout integration via @haus-tech/qliro-plugin in Vendure storefronts.",
278
- "whenToUse": "Use for Qliro Checkout flow, order callbacks, refund handling, and merchant API config.",
279
- "whenNotToUse": "Do not use for non-Nordic payment providers or Stripe-only flows.",
280
- "references": ["references/scope.md", "references/workflow.md"],
281
- "tokenBudget": 1200,
282
- "tags": ["qliro", "payments", "tooling"],
283
- "repoRoles": ["vendure-app", "vendure-plugin", "next-app"],
284
- "requiresAny": [{ "stack": "qliro" }, { "dependency": "@haus-tech/qliro-plugin" }],
285
- "ecosystem": "payments",
286
- "tokenEstimate": 1800,
287
- "installMode": "copy-selected"
288
- },
289
- {
290
- "id": "haus.supabase-patterns",
291
- "source": "haus",
292
- "type": "skill",
293
- "path": "skills/supabase-patterns",
294
- "title": "Haus Supabase patterns",
295
- "purpose": "Guide Supabase client wiring, Row-Level Security, edge functions, and auth integration.",
296
- "whenToUse": "Use for `@supabase/supabase-js` queries, RLS policies, edge functions, and Supabase Auth flows.",
297
- "whenNotToUse": "Do not use for non-Supabase BaaS (Firebase, AWS Amplify) or self-hosted Postgres without Supabase.",
298
- "references": ["references/scope.md", "references/workflow.md", "https://supabase.com/docs"],
299
- "tokenBudget": 1200,
300
- "tags": ["supabase", "database", "backend"],
301
- "repoRoles": ["next-app", "react-app"],
302
- "requiresAny": [
303
- { "stack": "supabase" },
304
- { "dependency": "@supabase/supabase-js" },
305
- { "packageNamePattern": "@supabase/*" }
306
- ],
307
- "ecosystem": "database",
308
- "tokenEstimate": 2000,
309
- "installMode": "copy-selected"
310
- },
311
- {
312
- "id": "haus.sanity-patterns",
313
- "source": "haus",
314
- "type": "skill",
315
- "path": "skills/sanity-patterns",
316
- "title": "Haus Sanity patterns",
317
- "purpose": "Guide Sanity v3/v5 schema, Studio config, GROQ query, and Next.js integration changes.",
318
- "whenToUse": "Use for Sanity schema, Studio plugin, GROQ query, or next-sanity integration updates.",
319
- "whenNotToUse": "Do not use for Strapi, WordPress, or other CMS work.",
320
- "references": ["references/scope.md", "references/workflow.md", "https://www.sanity.io/docs"],
321
- "tokenBudget": 1200,
322
- "tags": ["sanity", "backend", "cms"],
323
- "repoRoles": ["sanity-studio", "next-app"],
324
- "requiresAny": [
325
- { "stack": "sanity" },
326
- { "role": "sanity-studio" },
327
- { "dependency": "sanity" },
328
- { "dependency": "next-sanity" }
329
- ],
330
- "ecosystem": "cms",
331
- "tokenEstimate": 2000,
332
- "installMode": "copy-selected"
333
- },
334
- {
335
- "id": "haus.strapi-patterns",
336
- "source": "haus",
337
- "type": "skill",
338
- "path": "skills/strapi-patterns",
339
- "title": "Haus Strapi patterns",
340
- "purpose": "Guide Strapi v5 content type, controller, service, and policy changes.",
341
- "whenToUse": "Use for Strapi content type schemas, controllers, services, and policies in v5.",
342
- "whenNotToUse": "Do not use for Sanity, WordPress, or other CMS work.",
343
- "references": [
344
- "references/scope.md",
345
- "references/workflow.md",
346
- "https://docs.strapi.io/dev-docs/intro"
347
- ],
348
- "tokenBudget": 1200,
349
- "tags": ["strapi", "backend", "cms"],
350
- "repoRoles": ["strapi-app"],
351
- "requiresAny": [
352
- { "stack": "strapi" },
353
- { "role": "strapi-app" },
354
- { "dependency": "@strapi/strapi" }
355
- ],
356
- "ecosystem": "cms",
357
- "tokenEstimate": 2000,
358
- "installMode": "copy-selected"
359
- },
360
- {
361
- "id": "haus.prisma-patterns",
362
- "source": "haus",
363
- "type": "skill",
364
- "path": "skills/prisma-patterns",
365
- "title": "Haus Prisma patterns",
366
- "purpose": "Guide Prisma schema, migration, and query-safe ORM changes.",
367
- "whenToUse": "Use for prisma/schema.prisma updates, migrations, and PrismaClient query changes.",
368
- "whenNotToUse": "Do not use for non-Prisma ORM tasks or pure DB schema work without Prisma.",
369
- "references": ["references/scope.md", "references/workflow.md", "https://www.prisma.io/docs"],
370
- "tokenBudget": 1200,
371
- "tags": ["prisma", "backend", "database"],
372
- "repoRoles": ["next-app", "nestjs-api"],
373
- "requiresAny": [
374
- { "stack": "prisma" },
375
- { "dependency": "@prisma/client" },
376
- { "dependency": "prisma" }
377
- ],
378
- "ecosystem": "database",
379
- "tokenEstimate": 2000,
380
- "installMode": "copy-selected"
381
- },
382
- {
383
- "id": "haus.vendure-plugin-patterns",
384
- "source": "haus",
385
- "type": "skill",
386
- "path": "skills/vendure-plugin-patterns",
387
- "title": "Haus Vendure plugin patterns",
388
- "purpose": "Guide Vendure plugin boundary, schema, and migration-safe development.",
389
- "whenToUse": "Use for Vendure plugin resolvers, services, entities, and plugin migrations.",
390
- "whenNotToUse": "Do not use for storefront-only UI changes or non-Vendure APIs.",
391
- "references": [
392
- "references/scope.md",
393
- "references/workflow.md",
394
- "https://docs.vendure.io/llms.txt"
395
- ],
396
- "tokenBudget": 1200,
397
- "tags": ["backend", "vendure", "nestjs", "graphql", "typescript"],
398
- "repoRoles": ["vendure-plugin", "vendure-app"],
399
- "requiresAny": [
400
- { "stack": "vendure3" },
401
- { "dependency": "@vendure/core" },
402
- { "packageNamePattern": "@haus/vendure-*" }
403
- ],
404
- "ecosystem": "vendure",
405
- "tokenEstimate": 3400,
406
- "installMode": "copy-selected"
407
- },
408
- {
409
- "id": "haus.laravel-patterns",
410
- "source": "haus",
411
- "type": "skill",
412
- "path": "skills/laravel-patterns",
413
- "title": "Haus Laravel patterns",
414
- "purpose": "Guide Laravel domain, routing, policy, and persistence changes.",
415
- "whenToUse": "Use for Laravel controllers/services/models/jobs/policies and route changes.",
416
- "whenNotToUse": "Do not use for Nova-only admin resource customization tasks.",
417
- "references": ["references/scope.md", "references/workflow.md", "https://laravel.com/docs"],
418
- "tokenBudget": 1200,
419
- "tags": ["backend", "laravel", "php"],
420
- "repoRoles": ["laravel-app", "laravel-nova-app"],
421
- "requiresAny": [{ "stack": "laravel" }, { "dependency": "laravel/framework" }],
422
- "ecosystem": "laravel",
423
- "tokenEstimate": 2800,
424
- "installMode": "copy-selected"
425
- },
426
- {
427
- "id": "haus.wordpress-patterns",
428
- "source": "haus",
429
- "type": "skill",
430
- "path": "skills/wordpress-patterns",
431
- "title": "Haus WordPress patterns",
432
- "purpose": "Guide WordPress hook/template/plugin/theme runtime changes.",
433
- "whenToUse": "Use for WordPress hook/filter/template/plugin/theme behavior updates.",
434
- "whenNotToUse": "Do not use for Bedrock-only config bootstrap or non-WP backend tasks.",
435
- "references": [
436
- "references/scope.md",
437
- "references/workflow.md",
438
- "https://developer.wordpress.org/"
439
- ],
440
- "tokenBudget": 1200,
441
- "tags": ["backend", "wordpress", "php"],
442
- "repoRoles": ["wordpress-site", "wordpress-bedrock-site"],
443
- "requiresAny": [{ "stack": "wordpress" }, { "dependency": "roots/bedrock" }],
444
- "ecosystem": "wordpress",
445
- "tokenEstimate": 3000,
446
- "installMode": "copy-selected"
447
- },
448
- {
449
- "id": "haus.dotnet-patterns",
450
- "source": "haus",
451
- "type": "skill",
452
- "path": "skills/dotnet-patterns",
453
- "title": "Haus .NET patterns",
454
- "purpose": "Guide .NET API/service/domain/persistence layer changes.",
455
- "whenToUse": "Use for .NET service and endpoint behavior changes with domain impact.",
456
- "whenNotToUse": "Do not use for frontend-only or non-.NET runtime tasks.",
457
- "references": ["references/scope.md", "references/workflow.md"],
458
- "tokenBudget": 1200,
459
- "tags": ["backend", "dotnet", "csharp"],
460
- "repoRoles": ["dotnet-service"],
461
- "requiresAny": [{ "stack": "dotnet" }],
462
- "ecosystem": "dotnet",
463
- "tokenEstimate": 2600,
464
- "installMode": "copy-selected"
465
- },
466
- {
467
- "id": "haus.playwright-patterns",
468
- "source": "haus",
469
- "type": "skill",
470
- "path": "skills/playwright-patterns",
471
- "title": "Haus Playwright workflow",
472
- "purpose": "Guide deterministic E2E browser test flow changes.",
473
- "whenToUse": "Use for Playwright specs, fixtures, and browser test stability work.",
474
- "whenNotToUse": "Do not use for unit-only test tasks without browser automation.",
475
- "references": [
476
- "references/scope.md",
477
- "references/workflow.md",
478
- "https://playwright.dev/docs/intro"
479
- ],
480
- "tokenBudget": 1200,
481
- "tags": ["testing", "playwright"],
482
- "repoRoles": ["next-app", "react-app", "vue-app", "test-suite"],
483
- "requiresAny": [{ "stack": "playwright" }, { "dependency": "@playwright/test" }],
484
- "tokenEstimate": 2200,
485
- "installMode": "copy-selected"
486
- },
487
- {
488
- "id": "haus.code-reviewer-agent",
489
- "source": "haus",
490
- "type": "agent",
491
- "path": "agents/code-reviewer.md",
492
- "title": "Haus code reviewer agent",
493
- "tags": ["review", "quality", "security"],
494
- "repoRoles": [],
495
- "requiresAny": [],
496
- "tokenEstimate": 1400,
497
- "installMode": "copy-selected",
498
- "default": true
499
- },
500
- {
501
- "id": "haus.test-reviewer-agent",
502
- "source": "haus",
503
- "type": "agent",
504
- "path": "agents/test-reviewer.md",
505
- "title": "Haus test reviewer agent",
506
- "tags": ["review", "testing", "quality"],
507
- "repoRoles": [],
508
- "requiresAny": [],
509
- "tokenEstimate": 1400,
510
- "installMode": "copy-selected"
511
- },
512
- {
513
- "id": "haus.security-reviewer-agent",
514
- "source": "haus",
515
- "type": "agent",
516
- "path": "agents/security-reviewer.md",
517
- "title": "Haus security reviewer agent",
518
- "tags": ["review", "security"],
519
- "repoRoles": [],
520
- "requiresAny": [],
521
- "tokenEstimate": 1400,
522
- "installMode": "copy-selected"
523
- },
524
- {
525
- "id": "haus.docs-researcher-agent",
526
- "source": "haus",
527
- "type": "agent",
528
- "path": "agents/docs-researcher.md",
529
- "title": "Haus docs researcher agent",
530
- "tags": ["review", "quality", "workflow"],
531
- "repoRoles": [],
532
- "requiresAny": [],
533
- "tokenEstimate": 1200,
534
- "installMode": "copy-selected"
535
- },
536
- {
537
- "id": "haus.planner-agent",
538
- "source": "haus",
539
- "type": "agent",
540
- "path": "agents/planner.md",
541
- "title": "Haus planner agent",
542
- "tags": ["workflow", "quality", "review"],
543
- "repoRoles": [],
544
- "requiresAny": [],
545
- "tokenEstimate": 1200,
546
- "installMode": "copy-selected"
547
- },
548
- {
549
- "id": "haus.vendure-app-patterns",
550
- "source": "haus",
551
- "type": "skill",
552
- "path": "skills/vendure-app-patterns",
553
- "title": "Haus Vendure app patterns",
554
- "purpose": "Guide Vendure app-level config, worker, bootstrap, and plugin wiring changes.",
555
- "whenToUse": "Use for Vendure app config, worker, bootstrap, and system wiring updates.",
556
- "whenNotToUse": "Do not use for isolated shared plugin package tasks.",
557
- "references": [
558
- "references/scope.md",
559
- "references/workflow.md",
560
- "https://docs.vendure.io/llms.txt"
561
- ],
562
- "tokenBudget": 1200,
563
- "tags": ["vendure3", "nestjs", "graphql"],
564
- "repoRoles": ["vendure-app"],
565
- "requiresAny": [{ "stack": "vendure3" }, { "dependency": "@vendure/core" }],
566
- "ecosystem": "vendure",
567
- "tokenEstimate": 3200,
568
- "installMode": "copy-selected"
569
- },
570
- {
571
- "id": "haus.nestjs-graphql-patterns",
572
- "source": "haus",
573
- "type": "skill",
574
- "path": "skills/nestjs-graphql-patterns",
575
- "title": "Haus NestJS GraphQL patterns",
576
- "purpose": "Guide resolver/module/guard/DTO-safe GraphQL implementation in NestJS.",
577
- "whenToUse": "Use for NestJS GraphQL resolver, module, DTO/input, and guard changes.",
578
- "whenNotToUse": "Do not use for REST-only controller tasks.",
579
- "references": ["references/scope.md", "references/workflow.md", "https://docs.nestjs.com/"],
580
- "tokenBudget": 1200,
581
- "tags": ["nestjs", "graphql", "typescript5"],
582
- "repoRoles": ["nestjs-api"],
583
- "requiresAny": [
584
- { "stack": "nestjs" },
585
- { "dependency": "@nestjs/core" },
586
- { "dependency": "@nestjs/graphql" }
587
- ],
588
- "ecosystem": "nestjs",
589
- "tokenEstimate": 2600,
590
- "installMode": "copy-selected"
591
- },
592
- {
593
- "id": "haus.nx21-monorepo-patterns",
594
- "source": "haus",
595
- "type": "skill",
596
- "path": "skills/nx21-monorepo-patterns",
597
- "title": "Haus Nx 21 monorepo patterns",
598
- "purpose": "Guide Nx project graph, target pipeline, and workspace boundaries.",
599
- "whenToUse": "Use for Nx workspace graph, target, and generator configuration updates.",
600
- "whenNotToUse": "Do not use for app-only feature edits without workspace impact.",
601
- "references": ["references/scope.md", "references/workflow.md", "https://nx.dev/docs"],
602
- "tokenBudget": 1200,
603
- "tags": ["nx21", "yarn4"],
604
- "repoRoles": ["nx-monorepo"],
605
- "requiresAny": [
606
- { "role": "nx-monorepo" },
607
- { "dependency": "nx" },
608
- { "packageNamePattern": "@nx/*" }
609
- ],
610
- "ecosystem": "nx",
611
- "tokenEstimate": 2200,
612
- "installMode": "copy-selected"
613
- },
614
- {
615
- "id": "haus.turbo-monorepo-patterns",
616
- "source": "haus",
617
- "type": "skill",
618
- "path": "skills/turbo-monorepo-patterns",
619
- "title": "Haus Turbo monorepo patterns",
620
- "purpose": "Guide Turbo pipeline and cache-safe monorepo orchestration changes.",
621
- "whenToUse": "Use for turbo pipeline graph and package task orchestration updates.",
622
- "whenNotToUse": "Do not use for package-local feature edits without pipeline impact.",
623
- "references": [
624
- "references/scope.md",
625
- "references/workflow.md",
626
- "https://turbo.build/repo/docs"
627
- ],
628
- "tokenBudget": 1200,
629
- "tags": ["turbo", "yarn4"],
630
- "repoRoles": ["turbo-monorepo"],
631
- "requiresAny": [{ "role": "turbo-monorepo" }, { "dependency": "turbo" }],
632
- "ecosystem": "turbo",
633
- "tokenEstimate": 2200,
634
- "installMode": "copy-selected"
635
- },
636
- {
637
- "id": "haus.tanstack-query-router-patterns",
638
- "source": "haus",
639
- "type": "skill",
640
- "path": "skills/tanstack-query-router-patterns",
641
- "title": "Haus TanStack query/router patterns",
642
- "purpose": "Guide query key, invalidation, and route loader/data-flow changes.",
643
- "whenToUse": "Use for TanStack query cache behavior and TanStack router flow updates.",
644
- "whenNotToUse": "Do not use for styling-only component changes.",
645
- "references": [
646
- "references/scope.md",
647
- "references/workflow.md",
648
- "https://tanstack.com/query/latest/docs",
649
- "https://tanstack.com/router/latest/docs"
650
- ],
651
- "tokenBudget": 1200,
652
- "tags": ["tanstack-query", "tanstack-router", "react19"],
653
- "repoRoles": ["next-app", "react-app"],
654
- "requiresAny": [
655
- { "dependency": "@tanstack/react-query" },
656
- { "dependency": "@tanstack/react-router" },
657
- { "dependency": "@tanstack/query-core" },
658
- { "packageNamePattern": "@tanstack/*" }
659
- ],
660
- "ecosystem": "react",
661
- "tokenEstimate": 2200,
662
- "installMode": "copy-selected"
663
- },
664
- {
665
- "id": "haus.radix-shadcn-patterns",
666
- "source": "haus",
667
- "type": "skill",
668
- "path": "skills/radix-shadcn-patterns",
669
- "title": "Haus Radix shadcn patterns",
670
- "purpose": "Guide accessible UI primitive and wrapper behavior changes.",
671
- "whenToUse": "Use for Radix primitive usage and shadcn wrapper updates.",
672
- "whenNotToUse": "Do not use for backend/domain logic changes.",
673
- "references": [
674
- "references/scope.md",
675
- "references/workflow.md",
676
- "https://ui.shadcn.com/docs",
677
- "https://www.radix-ui.com/primitives/docs"
678
- ],
679
- "tokenBudget": 1200,
680
- "tags": ["radix", "shadcn", "react19"],
681
- "repoRoles": ["next-app", "react-app"],
682
- "requiresAny": [
683
- { "stack": "shadcn" },
684
- { "dependency": "@radix-ui/react-dialog" },
685
- { "dependency": "@radix-ui/themes" },
686
- { "dependency": "shadcn-ui" },
687
- { "dependency": "@shadcn/ui" },
688
- { "packageNamePattern": "@radix-ui/*" }
689
- ],
690
- "ecosystem": "react",
691
- "tokenEstimate": 1800,
692
- "installMode": "copy-selected"
693
- },
694
- {
695
- "id": "haus.tailwind-scss-patterns",
696
- "source": "haus",
697
- "type": "skill",
698
- "path": "skills/tailwind-scss-patterns",
699
- "title": "Haus Tailwind SCSS patterns",
700
- "purpose": "Guide style-system-safe Tailwind and SCSS module changes.",
701
- "whenToUse": "Use for Tailwind token/utility and SCSS module behavior updates.",
702
- "whenNotToUse": "Do not use for non-style backend/service changes.",
703
- "references": [
704
- "references/scope.md",
705
- "references/workflow.md",
706
- "https://tailwindcss.com/docs"
707
- ],
708
- "tokenBudget": 1200,
709
- "tags": ["tailwind", "scss", "react19"],
710
- "repoRoles": ["next-app", "react-app", "vite-app"],
711
- "requiresAny": [
712
- { "dependency": "tailwindcss" },
713
- { "dependency": "sass" },
714
- { "dependency": "scss" }
715
- ],
716
- "ecosystem": "react",
717
- "tokenEstimate": 1800,
718
- "installMode": "copy-selected"
719
- },
720
- {
721
- "id": "haus.vue-patterns",
722
- "source": "haus",
723
- "type": "skill",
724
- "path": "skills/vue-patterns",
725
- "title": "Haus Vue patterns",
726
- "purpose": "Guide Vue component/composable/state behavior changes.",
727
- "whenToUse": "Use for Vue component, composable, route, and state-boundary updates.",
728
- "whenNotToUse": "Do not use for React/Next-only component work.",
729
- "references": ["references/scope.md", "references/workflow.md", "https://vuejs.org/guide"],
730
- "tokenBudget": 1200,
731
- "tags": ["vue"],
732
- "repoRoles": ["vue-app"],
733
- "requiresAny": [{ "stack": "vue" }, { "dependency": "vue" }],
734
- "ecosystem": "vue",
735
- "tokenEstimate": 2000,
736
- "installMode": "copy-selected"
737
- },
738
- {
739
- "id": "haus.laravel-nova-patterns",
740
- "source": "haus",
741
- "type": "skill",
742
- "path": "skills/laravel-nova-patterns",
743
- "title": "Haus Laravel Nova patterns",
744
- "purpose": "Guide Nova admin resources, actions, and policy-safe field behavior.",
745
- "whenToUse": "Use for Laravel Nova resources, actions, filters, and admin UI behavior.",
746
- "whenNotToUse": "Do not use for customer-facing API/domain-only changes.",
747
- "references": ["references/scope.md", "references/workflow.md", "https://laravel.com/docs"],
748
- "tokenBudget": 1200,
749
- "tags": ["laravel-nova", "laravel"],
750
- "repoRoles": ["laravel-nova-app"],
751
- "requiresAny": [{ "dependency": "laravel/nova" }],
752
- "ecosystem": "laravel",
753
- "tokenEstimate": 2600,
754
- "installMode": "copy-selected"
755
- },
756
- {
757
- "id": "haus.wordpress-bedrock-patterns",
758
- "source": "haus",
759
- "type": "skill",
760
- "path": "skills/wordpress-bedrock-patterns",
761
- "title": "Haus WordPress Bedrock patterns",
762
- "purpose": "Guide Bedrock config/bootstrap and environment-aware WP deployment layout.",
763
- "whenToUse": "Use for Bedrock config, env loading, and boot path behavior updates.",
764
- "whenNotToUse": "Do not use for hook/template-only WordPress runtime changes.",
765
- "references": [
766
- "references/scope.md",
767
- "references/workflow.md",
768
- "https://developer.wordpress.org/"
769
- ],
770
- "tokenBudget": 1200,
771
- "tags": ["wordpress", "bedrock"],
772
- "repoRoles": ["wordpress-bedrock-site"],
773
- "requiresAny": [{ "role": "wordpress-bedrock-site" }, { "dependency": "roots/bedrock" }],
774
- "ecosystem": "wordpress",
775
- "tokenEstimate": 2600,
776
- "installMode": "copy-selected"
777
- },
778
- {
779
- "id": "haus.wordpress-acf-elementor-jetengine-patterns",
780
- "source": "haus",
781
- "type": "skill",
782
- "path": "skills/wordpress-acf-elementor-jetengine-patterns",
783
- "title": "Haus WordPress ACF Elementor JetEngine patterns",
784
- "purpose": "Guide builder-field/meta-template wiring for ACF, Elementor Pro, and JetEngine.",
785
- "whenToUse": "Use for ACF field groups and Elementor/JetEngine-driven dynamic template behavior.",
786
- "whenNotToUse": "Do not use for generic WordPress hooks with no builder/meta impact.",
787
- "references": [
788
- "references/scope.md",
789
- "references/workflow.md",
790
- "https://developer.wordpress.org/"
791
- ],
792
- "tokenBudget": 1200,
793
- "tags": ["wordpress"],
794
- "repoRoles": ["wordpress-bedrock-site", "wordpress-vanilla-site"],
795
- "requiresAny": [
796
- { "role": "wordpress-bedrock-site" },
797
- { "role": "wordpress-vanilla-site" },
798
- { "stack": "wordpress" },
799
- { "stack": "elementor" },
800
- { "stack": "acf-pro" },
801
- { "stack": "jetengine" }
802
- ],
803
- "ecosystem": "wordpress",
804
- "tokenEstimate": 2600,
805
- "installMode": "copy-selected"
806
- },
807
- {
808
- "id": "haus.dotnet-service-patterns",
809
- "source": "haus",
810
- "type": "skill",
811
- "path": "skills/dotnet-service-patterns",
812
- "title": "Haus dotnet service patterns",
813
- "purpose": "Guide .NET service-layer contract and orchestration changes.",
814
- "whenToUse": "Use for .NET service boundary, orchestration, and handler behavior updates.",
815
- "whenNotToUse": "Do not use for route formatting-only tasks with no service impact.",
816
- "references": ["references/scope.md", "references/workflow.md"],
817
- "tokenBudget": 1200,
818
- "tags": ["dotnet"],
819
- "repoRoles": ["dotnet-service"],
820
- "requiresAny": [{ "stack": "dotnet" }, { "role": "dotnet-service" }],
821
- "ecosystem": "dotnet",
822
- "tokenEstimate": 2300,
823
- "installMode": "copy-selected"
824
- },
825
- {
826
- "id": "haus.auth-oidc-azure-bankid-patterns",
827
- "source": "haus",
828
- "type": "skill",
829
- "path": "skills/auth-oidc-azure-bankid-patterns",
830
- "title": "Haus enterprise auth patterns (OIDC / Azure AD / BankID / SAML2)",
831
- "purpose": "Guide identity-provider auth flow and claim/session lifecycle changes across OIDC, Azure AD, BankID, and SAML2.",
832
- "whenToUse": "Use for OIDC/Azure AD/BankID/SAML2 login, callback, token, claim mapping, and SP/IDP metadata updates.",
833
- "whenNotToUse": "Do not use for profile CRUD without auth protocol change.",
834
- "references": ["references/scope.md", "references/workflow.md"],
835
- "tokenBudget": 1200,
836
- "tags": ["oidc", "azure-ad", "bankid", "saml2"],
837
- "repoRoles": [],
838
- "requiresAny": [
839
- { "stack": "oidc" },
840
- { "stack": "azure-ad" },
841
- { "stack": "bankid" },
842
- { "stack": "saml2" }
843
- ],
844
- "tokenEstimate": 1700,
845
- "installMode": "copy-selected"
846
- },
847
- {
848
- "id": "haus.nextauth-patterns",
849
- "source": "haus",
850
- "type": "skill",
851
- "path": "skills/nextauth-patterns",
852
- "title": "Haus NextAuth patterns",
853
- "purpose": "Guide NextAuth.js / Auth.js provider, session, callback, and middleware changes in Next.js apps.",
854
- "whenToUse": "Use for `next-auth` / `@auth/core` provider setup, session strategy, callbacks, JWT, and route protection in Next.js.",
855
- "whenNotToUse": "Do not use for Laravel/PHP auth, OIDC outside Next.js, or session-less API tokens.",
856
- "references": ["references/scope.md", "references/workflow.md", "https://authjs.dev/"],
857
- "tokenBudget": 1200,
858
- "tags": ["next-auth", "auth", "nextjs"],
859
- "repoRoles": ["next-app"],
860
- "requiresAny": [
861
- { "stack": "next-auth" },
862
- { "dependency": "next-auth" },
863
- { "dependency": "@auth/core" }
864
- ],
865
- "ecosystem": "auth",
866
- "tokenEstimate": 2000,
867
- "installMode": "copy-selected"
868
- },
869
- {
870
- "id": "haus.database-patterns",
871
- "source": "haus",
872
- "type": "skill",
873
- "path": "skills/database-patterns",
874
- "title": "Haus database patterns",
875
- "purpose": "Guide schema/query/index/search changes across supported data engines.",
876
- "whenToUse": "Use for migrations, query behavior, indexing, and Elasticsearch mapping updates.",
877
- "whenNotToUse": "Do not use for UI-only changes without persistence/search impact.",
878
- "references": ["references/scope.md", "references/workflow.md"],
879
- "tokenBudget": 1200,
880
- "tags": ["postgresql", "mariadb", "mysql", "mssql", "elasticsearch", "redis"],
881
- "repoRoles": [],
882
- "requiresAny": [
883
- { "stack": "postgresql" },
884
- { "stack": "mariadb" },
885
- { "stack": "mysql" },
886
- { "stack": "mssql" },
887
- { "stack": "elasticsearch" },
888
- { "stack": "redis" }
889
- ],
890
- "tokenEstimate": 1700,
891
- "installMode": "copy-selected"
892
- },
893
- {
894
- "id": "haus.package-manager-yarn4-pnpm89",
895
- "source": "haus",
896
- "type": "skill",
897
- "path": "skills/package-manager-yarn4-pnpm89",
898
- "title": "Haus package manager patterns",
899
- "purpose": "Guide deterministic dependency/workspace changes for Yarn4 and pnpm89.",
900
- "whenToUse": "Use for lockfile, workspace, and package manager configuration changes.",
901
- "whenNotToUse": "Do not use for feature-only code edits with no dependency/workspace impact.",
902
- "references": ["references/scope.md", "references/workflow.md"],
903
- "tokenBudget": 1200,
904
- "tags": ["yarn4", "pnpm89"],
905
- "repoRoles": [],
906
- "requiresAny": [{ "stack": "yarn4" }, { "stack": "pnpm89" }],
907
- "tokenEstimate": 1200,
908
- "installMode": "copy-selected"
909
- },
910
- {
911
- "id": "haus.testing-library-patterns",
912
- "source": "haus",
913
- "type": "skill",
914
- "path": "skills/testing-library-patterns",
915
- "title": "Haus testing library patterns",
916
- "purpose": "Guide user-visible behavior testing with Testing Library.",
917
- "whenToUse": "Use for component interaction tests with @testing-library tooling.",
918
- "whenNotToUse": "Do not use for full browser journey tests better served by Playwright.",
919
- "references": ["references/scope.md", "references/workflow.md", "https://vitest.dev/guide"],
920
- "tokenBudget": 1200,
921
- "tags": ["testing-library"],
922
- "repoRoles": [],
923
- "requiresAny": [
924
- { "stack": "testing-library" },
925
- { "dependency": "@testing-library/react" },
926
- { "dependency": "@testing-library/dom" },
927
- { "packageNamePattern": "@testing-library/*" }
928
- ],
929
- "tokenEstimate": 1500,
930
- "installMode": "copy-selected"
931
- },
932
- {
933
- "id": "haus.vitest-patterns",
934
- "source": "haus",
935
- "type": "skill",
936
- "path": "skills/vitest-patterns",
937
- "title": "Haus Vitest patterns",
938
- "purpose": "Guide Vitest unit/integration test structure, mocking, and coverage config.",
939
- "whenToUse": "Use when writing or modifying Vitest tests in TypeScript/JS frontends and Node services.",
940
- "whenNotToUse": "Do not use for Jest, Playwright, or PHPUnit test tasks.",
941
- "references": ["references/scope.md", "references/workflow.md", "https://vitest.dev/guide/"],
942
- "tokenBudget": 1200,
943
- "tags": ["testing", "vitest", "typescript"],
944
- "repoRoles": [
945
- "next-app",
946
- "react-app",
947
- "vue-app",
948
- "vite-app",
949
- "vendure-app",
950
- "vendure-plugin"
951
- ],
952
- "requiresAny": [{ "stack": "vitest" }, { "dependency": "vitest" }],
953
- "tokenEstimate": 1500,
954
- "installMode": "copy-selected"
955
- },
956
- {
957
- "id": "haus.jest-patterns",
958
- "source": "haus",
959
- "type": "skill",
960
- "path": "skills/jest-patterns",
961
- "title": "Haus Jest patterns",
962
- "purpose": "Guide Jest unit/integration test structure, mocking, and Nx-style setup.",
963
- "whenToUse": "Use when writing or modifying Jest tests, including Nx workspace projects.",
964
- "whenNotToUse": "Do not use for Vitest, Playwright, or PHPUnit test tasks.",
965
- "references": [
966
- "references/scope.md",
967
- "references/workflow.md",
968
- "https://jestjs.io/docs/getting-started"
969
- ],
970
- "tokenBudget": 1200,
971
- "tags": ["testing", "jest", "typescript"],
972
- "repoRoles": ["next-app", "react-app", "nx-monorepo"],
973
- "requiresAny": [
974
- { "stack": "jest" },
975
- { "dependency": "jest" },
976
- { "dependency": "jest-environment-jsdom" }
977
- ],
978
- "tokenEstimate": 1500,
979
- "installMode": "copy-selected"
980
- },
981
- {
982
- "id": "haus.phpunit-patterns",
983
- "source": "haus",
984
- "type": "skill",
985
- "path": "skills/phpunit-patterns",
986
- "title": "Haus PHPUnit patterns",
987
- "purpose": "Guide PHPUnit feature/unit test changes for PHP/Laravel behavior.",
988
- "whenToUse": "Use for PHPUnit tests tied to backend behavior updates.",
989
- "whenNotToUse": "Do not use for frontend/browser-only test tasks.",
990
- "references": ["references/scope.md", "references/workflow.md", "https://laravel.com/docs"],
991
- "tokenBudget": 1200,
992
- "tags": ["phpunit"],
993
- "repoRoles": ["laravel-app", "laravel-nova-app"],
994
- "requiresAny": [{ "stack": "phpunit" }, { "dependency": "phpunit/phpunit" }],
995
- "ecosystem": "laravel",
996
- "tokenEstimate": 1500,
997
- "installMode": "copy-selected"
998
- },
999
- {
1000
- "id": "haus.storybook-patterns",
1001
- "source": "haus",
1002
- "type": "skill",
1003
- "path": "skills/storybook-patterns",
1004
- "title": "Haus Storybook patterns",
1005
- "purpose": "Guide story coverage and component API documentation updates.",
1006
- "whenToUse": "Use for component stories, args/controls, and Storybook config changes.",
1007
- "whenNotToUse": "Do not use for backend/service-only development tasks.",
1008
- "references": [
1009
- "references/scope.md",
1010
- "references/workflow.md",
1011
- "https://storybook.js.org/docs"
1012
- ],
1013
- "tokenBudget": 1200,
1014
- "tags": ["storybook"],
1015
- "repoRoles": ["react-app", "next-app", "vite-app"],
1016
- "requiresAny": [
1017
- { "stack": "storybook" },
1018
- { "dependency": "storybook" },
1019
- { "dependency": "@storybook/react" },
1020
- { "packageNamePattern": "@storybook/*" }
1021
- ],
1022
- "ecosystem": "react",
1023
- "tokenEstimate": 1500,
1024
- "installMode": "copy-selected"
1025
- },
1026
- {
1027
- "id": "haus.security-review",
1028
- "source": "haus",
1029
- "type": "skill",
1030
- "path": "skills/security-review",
1031
- "title": "Haus security review",
1032
- "purpose": "Route bounded security review with structured findings and explicit verification.",
1033
- "whenToUse": "Use when the user requests security review, threat check, or hardening on a named scope.",
1034
- "whenNotToUse": "Do not use for unscoped repo sweeps, exploit development, or non-security tasks.",
1035
- "references": [
1036
- "references/output-shape.md",
1037
- "references/scope-signals.md",
1038
- "references/verification.md"
1039
- ],
1040
- "tokenBudget": 800,
1041
- "tags": ["security", "review"],
1042
- "repoRoles": [],
1043
- "requiresAny": [],
1044
- "tokenEstimate": 1200,
1045
- "installMode": "copy-selected"
1046
- },
1047
- {
1048
- "id": "haus.production-readiness-review",
1049
- "source": "haus",
1050
- "type": "skill",
1051
- "path": "skills/production-readiness-review",
1052
- "title": "Haus production readiness review",
1053
- "purpose": "Route release readiness checks with evidence-based gaps and rollback notes.",
1054
- "whenToUse": "Use when the user asks for ship checklist, release risk review, or go-live readiness on a defined change set.",
1055
- "whenNotToUse": "Do not use for pure feature design with no release surface or undefined release boundary.",
1056
- "references": ["references/signals.md", "references/evidence.md", "references/rollback.md"],
1057
- "tokenBudget": 800,
1058
- "tags": ["quality", "security", "review"],
1059
- "repoRoles": [],
1060
- "requiresAny": [],
1061
- "tokenEstimate": 1200,
1062
- "installMode": "copy-selected"
1063
- }
1064
- ]
1065
- }