@haus-tech/haus-workflow 0.1.0 → 0.2.2

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.
@@ -1,20 +1,28 @@
1
1
  {
2
2
  "version": "0.1.0",
3
- "_note": "Stable fixture for CLI tests. Decoupled from production catalog repo. Update manually when catalog schema changes.",
4
3
  "items": [
5
4
  {
6
5
  "id": "haus.global-engineering-rules",
6
+ "version": "1.0.0",
7
7
  "source": "haus",
8
8
  "type": "skill",
9
- "path": "tests/fixtures/catalog/skills/global-engineering-rules",
9
+ "path": "skills/global-engineering-rules",
10
10
  "title": "Haus global engineering rules",
11
11
  "purpose": "Provide baseline deterministic engineering, validation, and security guardrails.",
12
12
  "whenToUse": "Use as default baseline in supported Haus workflows.",
13
13
  "whenNotToUse": "Do not use for unsupported stacks or non-development workflows.",
14
- "references": [],
15
- "safetyNotes": ["Never read secrets or customer exports."],
14
+ "references": [
15
+ "references/conventions.md"
16
+ ],
17
+ "safetyNotes": [
18
+ "Never read secrets or customer exports."
19
+ ],
16
20
  "tokenBudget": 1800,
17
- "tags": ["haus", "quality", "security"],
21
+ "tags": [
22
+ "haus",
23
+ "quality",
24
+ "security"
25
+ ],
18
26
  "repoRoles": [],
19
27
  "requiresAny": [],
20
28
  "tokenEstimate": 1800,
@@ -23,52 +31,103 @@
23
31
  },
24
32
  {
25
33
  "id": "haus.nextjs-patterns",
34
+ "version": "1.0.0",
26
35
  "source": "haus",
27
36
  "type": "skill",
28
- "path": "tests/fixtures/catalog/skills/nextjs-patterns",
37
+ "path": "skills/nextjs-patterns",
29
38
  "title": "Haus Next.js patterns",
30
39
  "purpose": "Guide Next.js route, server/client boundary, and middleware-safe changes.",
31
40
  "whenToUse": "Use for App Router pages, layouts, route handlers, and middleware behavior updates.",
32
41
  "whenNotToUse": "Do not use for backend-only or non-Next framework tasks.",
33
- "references": ["references/scope.md", "references/workflow.md", "https://nextjs.org/llms.txt"],
42
+ "references": [
43
+ "references/conventions.md",
44
+ "references/scope.md",
45
+ "references/workflow.md",
46
+ "https://nextjs.org/llms.txt"
47
+ ],
34
48
  "tokenBudget": 1200,
35
- "tags": ["frontend", "nextjs", "react", "typescript"],
36
- "repoRoles": ["next-app"],
37
- "requiresAny": [{ "stack": "nextjs" }, { "dependency": "next" }],
49
+ "tags": [
50
+ "frontend",
51
+ "nextjs",
52
+ "react",
53
+ "typescript"
54
+ ],
55
+ "repoRoles": [
56
+ "next-app"
57
+ ],
58
+ "requiresAny": [
59
+ {
60
+ "stack": "nextjs"
61
+ },
62
+ {
63
+ "dependency": "next"
64
+ }
65
+ ],
38
66
  "ecosystem": "nextjs",
39
67
  "tokenEstimate": 2600,
40
68
  "installMode": "copy-selected"
41
69
  },
42
70
  {
43
71
  "id": "haus.react19-patterns",
72
+ "version": "1.0.0",
44
73
  "source": "haus",
45
74
  "type": "skill",
46
- "path": "tests/fixtures/catalog/skills/react19-patterns",
75
+ "path": "skills/react19-patterns",
47
76
  "title": "Haus React 19 patterns",
48
77
  "purpose": "Guide React component, hook, and state-boundary changes.",
49
78
  "whenToUse": "Use for React component behavior, hooks, and UI state flow updates.",
50
79
  "whenNotToUse": "Do not use for backend-only changes or framework routing config tasks.",
51
- "references": ["references/scope.md", "references/workflow.md", "https://react.dev/"],
80
+ "references": [
81
+ "references/conventions.md",
82
+ "references/scope.md",
83
+ "references/workflow.md",
84
+ "https://react.dev/"
85
+ ],
52
86
  "tokenBudget": 1200,
53
- "tags": ["frontend", "react", "typescript"],
54
- "repoRoles": ["react-app", "next-app", "design-system"],
55
- "requiresAny": [{ "stack": "react19" }, { "dependency": "react" }],
87
+ "tags": [
88
+ "frontend",
89
+ "react",
90
+ "typescript"
91
+ ],
92
+ "repoRoles": [
93
+ "react-app",
94
+ "next-app",
95
+ "design-system"
96
+ ],
97
+ "requiresAny": [
98
+ {
99
+ "stack": "react19"
100
+ },
101
+ {
102
+ "dependency": "react"
103
+ }
104
+ ],
56
105
  "ecosystem": "react",
57
106
  "tokenEstimate": 2200,
58
107
  "installMode": "copy-selected"
59
108
  },
60
109
  {
61
110
  "id": "haus.typescript6-patterns",
111
+ "version": "1.0.0",
62
112
  "source": "haus",
63
113
  "type": "skill",
64
- "path": "tests/fixtures/catalog/skills/typescript6-patterns",
114
+ "path": "skills/typescript6-patterns",
65
115
  "title": "Haus TypeScript patterns",
66
116
  "purpose": "Guide TypeScript contract and migration-safe typing changes.",
67
117
  "whenToUse": "Use for shared types, DTOs, interface boundaries, and type-safe refactors.",
68
118
  "whenNotToUse": "Do not use for runtime-only changes without type-contract impact.",
69
- "references": ["references/scope.md", "references/workflow.md", "https://www.typescriptlang.org/docs/handbook/"],
119
+ "references": [
120
+ "references/conventions.md",
121
+ "references/scope.md",
122
+ "references/workflow.md",
123
+ "https://www.typescriptlang.org/docs/handbook/"
124
+ ],
70
125
  "tokenBudget": 1200,
71
- "tags": ["typescript", "frontend", "backend"],
126
+ "tags": [
127
+ "typescript",
128
+ "frontend",
129
+ "backend"
130
+ ],
72
131
  "repoRoles": [
73
132
  "next-app",
74
133
  "react-app",
@@ -78,28 +137,52 @@
78
137
  "shared-package"
79
138
  ],
80
139
  "requiresAny": [
81
- { "stack": "typescript" },
82
- { "dependency": "typescript" }
140
+ {
141
+ "stack": "typescript"
142
+ },
143
+ {
144
+ "dependency": "typescript"
145
+ }
83
146
  ],
84
147
  "tokenEstimate": 2200,
85
- "installMode": "copy-selected"
148
+ "installMode": "copy-selected",
149
+ "ecosystem": "typescript"
86
150
  },
87
151
  {
88
152
  "id": "haus.vite8-patterns",
153
+ "version": "1.0.0",
89
154
  "source": "haus",
90
155
  "type": "skill",
91
- "path": "tests/fixtures/catalog/skills/vite8-patterns",
156
+ "path": "skills/vite8-patterns",
92
157
  "title": "Haus Vite 8 patterns",
93
158
  "purpose": "Guide Vite config, plugin wiring, and deterministic build pipeline changes.",
94
159
  "whenToUse": "Use for vite config, alias/plugin, and build mode behavior updates.",
95
160
  "whenNotToUse": "Do not use for framework feature logic without build pipeline impact.",
96
- "references": ["references/scope.md", "references/workflow.md", "https://vite.dev/guide", "https://vitest.dev/guide"],
161
+ "references": [
162
+ "references/conventions.md",
163
+ "references/scope.md",
164
+ "references/workflow.md",
165
+ "https://vite.dev/guide",
166
+ "https://vitest.dev/guide"
167
+ ],
97
168
  "tokenBudget": 1200,
98
- "tags": ["vite8", "frontend", "typescript"],
99
- "repoRoles": ["vite-app", "react-app", "vue-app"],
169
+ "tags": [
170
+ "vite8",
171
+ "frontend",
172
+ "typescript"
173
+ ],
174
+ "repoRoles": [
175
+ "vite-app",
176
+ "react-app",
177
+ "vue-app"
178
+ ],
100
179
  "requiresAny": [
101
- { "stack": "vite8" },
102
- { "dependency": "vite" }
180
+ {
181
+ "stack": "vite8"
182
+ },
183
+ {
184
+ "dependency": "vite"
185
+ }
103
186
  ],
104
187
  "ecosystem": "vite",
105
188
  "tokenEstimate": 1800,
@@ -107,21 +190,42 @@
107
190
  },
108
191
  {
109
192
  "id": "haus.vendure-plugin-patterns",
193
+ "version": "1.0.0",
110
194
  "source": "haus",
111
195
  "type": "skill",
112
- "path": "tests/fixtures/catalog/skills/vendure-plugin-patterns",
196
+ "path": "skills/vendure-plugin-patterns",
113
197
  "title": "Haus Vendure plugin patterns",
114
198
  "purpose": "Guide Vendure plugin boundary, schema, and migration-safe development.",
115
199
  "whenToUse": "Use for Vendure plugin resolvers, services, entities, and plugin migrations.",
116
200
  "whenNotToUse": "Do not use for storefront-only UI changes or non-Vendure APIs.",
117
- "references": ["references/scope.md", "references/workflow.md", "https://docs.vendure.io/llms.txt"],
201
+ "references": [
202
+ "references/conventions.md",
203
+ "references/scope.md",
204
+ "references/workflow.md",
205
+ "https://docs.vendure.io/llms.txt"
206
+ ],
118
207
  "tokenBudget": 1200,
119
- "tags": ["backend", "vendure", "nestjs", "graphql", "typescript"],
120
- "repoRoles": ["vendure-plugin", "vendure-app"],
208
+ "tags": [
209
+ "backend",
210
+ "vendure",
211
+ "nestjs",
212
+ "graphql",
213
+ "typescript"
214
+ ],
215
+ "repoRoles": [
216
+ "vendure-plugin",
217
+ "vendure-app"
218
+ ],
121
219
  "requiresAny": [
122
- { "stack": "vendure3" },
123
- { "dependency": "@vendure/core" },
124
- { "packageNamePattern": "@haus/vendure-*" }
220
+ {
221
+ "stack": "vendure3"
222
+ },
223
+ {
224
+ "dependency": "@vendure/core"
225
+ },
226
+ {
227
+ "packageNamePattern": "@haus/vendure-*"
228
+ }
125
229
  ],
126
230
  "ecosystem": "vendure",
127
231
  "tokenEstimate": 3400,
@@ -129,20 +233,37 @@
129
233
  },
130
234
  {
131
235
  "id": "haus.laravel-patterns",
236
+ "version": "1.0.0",
132
237
  "source": "haus",
133
238
  "type": "skill",
134
- "path": "tests/fixtures/catalog/skills/laravel-patterns",
239
+ "path": "skills/laravel-patterns",
135
240
  "title": "Haus Laravel patterns",
136
241
  "purpose": "Guide Laravel domain, routing, policy, and persistence changes.",
137
242
  "whenToUse": "Use for Laravel controllers/services/models/jobs/policies and route changes.",
138
243
  "whenNotToUse": "Do not use for Nova-only admin resource customization tasks.",
139
- "references": ["references/scope.md", "references/workflow.md", "https://laravel.com/docs"],
244
+ "references": [
245
+ "references/conventions.md",
246
+ "references/scope.md",
247
+ "references/workflow.md",
248
+ "https://laravel.com/docs"
249
+ ],
140
250
  "tokenBudget": 1200,
141
- "tags": ["backend", "laravel", "php"],
142
- "repoRoles": ["laravel-app", "laravel-nova-app"],
251
+ "tags": [
252
+ "backend",
253
+ "laravel",
254
+ "php"
255
+ ],
256
+ "repoRoles": [
257
+ "laravel-app",
258
+ "laravel-nova-app"
259
+ ],
143
260
  "requiresAny": [
144
- { "stack": "laravel" },
145
- { "dependency": "laravel/framework" }
261
+ {
262
+ "stack": "laravel"
263
+ },
264
+ {
265
+ "dependency": "laravel/framework"
266
+ }
146
267
  ],
147
268
  "ecosystem": "laravel",
148
269
  "tokenEstimate": 2800,
@@ -150,20 +271,37 @@
150
271
  },
151
272
  {
152
273
  "id": "haus.wordpress-patterns",
274
+ "version": "1.0.0",
153
275
  "source": "haus",
154
276
  "type": "skill",
155
- "path": "tests/fixtures/catalog/skills/wordpress-patterns",
277
+ "path": "skills/wordpress-patterns",
156
278
  "title": "Haus WordPress patterns",
157
279
  "purpose": "Guide WordPress hook/template/plugin/theme runtime changes.",
158
280
  "whenToUse": "Use for WordPress hook/filter/template/plugin/theme behavior updates.",
159
281
  "whenNotToUse": "Do not use for Bedrock-only config bootstrap or non-WP backend tasks.",
160
- "references": ["references/scope.md", "references/workflow.md", "https://developer.wordpress.org/"],
282
+ "references": [
283
+ "references/conventions.md",
284
+ "references/scope.md",
285
+ "references/workflow.md",
286
+ "https://developer.wordpress.org/"
287
+ ],
161
288
  "tokenBudget": 1200,
162
- "tags": ["backend", "wordpress", "php"],
163
- "repoRoles": ["wordpress-site", "wordpress-bedrock-site"],
289
+ "tags": [
290
+ "backend",
291
+ "wordpress",
292
+ "php"
293
+ ],
294
+ "repoRoles": [
295
+ "wordpress-site",
296
+ "wordpress-bedrock-site"
297
+ ],
164
298
  "requiresAny": [
165
- { "stack": "wordpress" },
166
- { "dependency": "roots/bedrock" }
299
+ {
300
+ "stack": "wordpress"
301
+ },
302
+ {
303
+ "dependency": "roots/bedrock"
304
+ }
167
305
  ],
168
306
  "ecosystem": "wordpress",
169
307
  "tokenEstimate": 3000,
@@ -171,49 +309,88 @@
171
309
  },
172
310
  {
173
311
  "id": "haus.dotnet-patterns",
312
+ "version": "1.0.0",
174
313
  "source": "haus",
175
314
  "type": "skill",
176
- "path": "tests/fixtures/catalog/skills/dotnet-patterns",
315
+ "path": "skills/dotnet-patterns",
177
316
  "title": "Haus .NET patterns",
178
317
  "purpose": "Guide .NET API/service/domain/persistence layer changes.",
179
318
  "whenToUse": "Use for .NET service and endpoint behavior changes with domain impact.",
180
319
  "whenNotToUse": "Do not use for frontend-only or non-.NET runtime tasks.",
181
- "references": ["references/scope.md", "references/workflow.md"],
320
+ "references": [
321
+ "references/conventions.md",
322
+ "references/scope.md",
323
+ "references/workflow.md"
324
+ ],
182
325
  "tokenBudget": 1200,
183
- "tags": ["backend", "dotnet", "csharp"],
184
- "repoRoles": ["dotnet-service"],
185
- "requiresAny": [{ "stack": "dotnet" }],
326
+ "tags": [
327
+ "backend",
328
+ "dotnet",
329
+ "csharp"
330
+ ],
331
+ "repoRoles": [
332
+ "dotnet-service"
333
+ ],
334
+ "requiresAny": [
335
+ {
336
+ "stack": "dotnet"
337
+ }
338
+ ],
186
339
  "ecosystem": "dotnet",
187
340
  "tokenEstimate": 2600,
188
341
  "installMode": "copy-selected"
189
342
  },
190
343
  {
191
344
  "id": "haus.playwright-patterns",
345
+ "version": "1.0.0",
192
346
  "source": "haus",
193
347
  "type": "skill",
194
- "path": "tests/fixtures/catalog/skills/playwright-patterns",
348
+ "path": "skills/playwright-patterns",
195
349
  "title": "Haus Playwright workflow",
196
350
  "purpose": "Guide deterministic E2E browser test flow changes.",
197
351
  "whenToUse": "Use for Playwright specs, fixtures, and browser test stability work.",
198
352
  "whenNotToUse": "Do not use for unit-only test tasks without browser automation.",
199
- "references": ["references/scope.md", "references/workflow.md", "https://playwright.dev/docs/intro"],
353
+ "references": [
354
+ "references/conventions.md",
355
+ "references/scope.md",
356
+ "references/workflow.md",
357
+ "https://playwright.dev/docs/intro"
358
+ ],
200
359
  "tokenBudget": 1200,
201
- "tags": ["testing", "playwright"],
202
- "repoRoles": ["next-app", "react-app", "vue-app", "test-suite"],
360
+ "tags": [
361
+ "testing",
362
+ "playwright"
363
+ ],
364
+ "repoRoles": [
365
+ "next-app",
366
+ "react-app",
367
+ "vue-app",
368
+ "test-suite"
369
+ ],
203
370
  "requiresAny": [
204
- { "stack": "playwright" },
205
- { "dependency": "@playwright/test" }
371
+ {
372
+ "stack": "playwright"
373
+ },
374
+ {
375
+ "dependency": "@playwright/test"
376
+ }
206
377
  ],
207
378
  "tokenEstimate": 2200,
208
- "installMode": "copy-selected"
379
+ "installMode": "copy-selected",
380
+ "ecosystem": "playwright"
209
381
  },
210
382
  {
211
383
  "id": "haus.code-reviewer-agent",
384
+ "version": "1.0.0",
212
385
  "source": "haus",
213
386
  "type": "agent",
214
- "path": "tests/fixtures/catalog/agents/code-reviewer.md",
387
+ "path": "agents/code-reviewer.md",
215
388
  "title": "Haus code reviewer agent",
216
- "tags": ["review", "quality", "security"],
389
+ "tags": [
390
+ "review",
391
+ "quality",
392
+ "security"
393
+ ],
217
394
  "repoRoles": [],
218
395
  "requiresAny": [],
219
396
  "tokenEstimate": 1400,
@@ -222,11 +399,16 @@
222
399
  },
223
400
  {
224
401
  "id": "haus.test-reviewer-agent",
402
+ "version": "1.0.0",
225
403
  "source": "haus",
226
404
  "type": "agent",
227
- "path": "tests/fixtures/catalog/agents/test-reviewer.md",
405
+ "path": "agents/test-reviewer.md",
228
406
  "title": "Haus test reviewer agent",
229
- "tags": ["review", "testing", "quality"],
407
+ "tags": [
408
+ "review",
409
+ "testing",
410
+ "quality"
411
+ ],
230
412
  "repoRoles": [],
231
413
  "requiresAny": [],
232
414
  "tokenEstimate": 1400,
@@ -234,11 +416,15 @@
234
416
  },
235
417
  {
236
418
  "id": "haus.security-reviewer-agent",
419
+ "version": "1.0.0",
237
420
  "source": "haus",
238
421
  "type": "agent",
239
- "path": "tests/fixtures/catalog/agents/security-reviewer.md",
422
+ "path": "agents/security-reviewer.md",
240
423
  "title": "Haus security reviewer agent",
241
- "tags": ["review", "security"],
424
+ "tags": [
425
+ "review",
426
+ "security"
427
+ ],
242
428
  "repoRoles": [],
243
429
  "requiresAny": [],
244
430
  "tokenEstimate": 1400,
@@ -246,11 +432,16 @@
246
432
  },
247
433
  {
248
434
  "id": "haus.docs-researcher-agent",
435
+ "version": "1.0.0",
249
436
  "source": "haus",
250
437
  "type": "agent",
251
- "path": "tests/fixtures/catalog/agents/docs-researcher.md",
438
+ "path": "agents/docs-researcher.md",
252
439
  "title": "Haus docs researcher agent",
253
- "tags": ["review", "quality", "workflow"],
440
+ "tags": [
441
+ "review",
442
+ "quality",
443
+ "workflow"
444
+ ],
254
445
  "repoRoles": [],
255
446
  "requiresAny": [],
256
447
  "tokenEstimate": 1200,
@@ -258,11 +449,16 @@
258
449
  },
259
450
  {
260
451
  "id": "haus.planner-agent",
452
+ "version": "1.0.0",
261
453
  "source": "haus",
262
454
  "type": "agent",
263
- "path": "tests/fixtures/catalog/agents/planner.md",
455
+ "path": "agents/planner.md",
264
456
  "title": "Haus planner agent",
265
- "tags": ["workflow", "quality", "review"],
457
+ "tags": [
458
+ "workflow",
459
+ "quality",
460
+ "review"
461
+ ],
266
462
  "repoRoles": [],
267
463
  "requiresAny": [],
268
464
  "tokenEstimate": 1200,
@@ -270,20 +466,36 @@
270
466
  },
271
467
  {
272
468
  "id": "haus.vendure-app-patterns",
469
+ "version": "1.0.0",
273
470
  "source": "haus",
274
471
  "type": "skill",
275
- "path": "tests/fixtures/catalog/skills/vendure-app-patterns",
472
+ "path": "skills/vendure-app-patterns",
276
473
  "title": "Haus Vendure app patterns",
277
474
  "purpose": "Guide Vendure app-level config, worker, bootstrap, and plugin wiring changes.",
278
475
  "whenToUse": "Use for Vendure app config, worker, bootstrap, and system wiring updates.",
279
476
  "whenNotToUse": "Do not use for isolated shared plugin package tasks.",
280
- "references": ["references/scope.md", "references/workflow.md", "https://docs.vendure.io/llms.txt"],
477
+ "references": [
478
+ "references/conventions.md",
479
+ "references/scope.md",
480
+ "references/workflow.md",
481
+ "https://docs.vendure.io/llms.txt"
482
+ ],
281
483
  "tokenBudget": 1200,
282
- "tags": ["vendure3", "nestjs", "graphql"],
283
- "repoRoles": ["vendure-app"],
484
+ "tags": [
485
+ "vendure3",
486
+ "nestjs",
487
+ "graphql"
488
+ ],
489
+ "repoRoles": [
490
+ "vendure-app"
491
+ ],
284
492
  "requiresAny": [
285
- { "stack": "vendure3" },
286
- { "dependency": "@vendure/core" }
493
+ {
494
+ "stack": "vendure3"
495
+ },
496
+ {
497
+ "dependency": "@vendure/core"
498
+ }
287
499
  ],
288
500
  "ecosystem": "vendure",
289
501
  "tokenEstimate": 3200,
@@ -291,21 +503,39 @@
291
503
  },
292
504
  {
293
505
  "id": "haus.nestjs-graphql-patterns",
506
+ "version": "1.0.0",
294
507
  "source": "haus",
295
508
  "type": "skill",
296
- "path": "tests/fixtures/catalog/skills/nestjs-graphql-patterns",
509
+ "path": "skills/nestjs-graphql-patterns",
297
510
  "title": "Haus NestJS GraphQL patterns",
298
511
  "purpose": "Guide resolver/module/guard/DTO-safe GraphQL implementation in NestJS.",
299
512
  "whenToUse": "Use for NestJS GraphQL resolver, module, DTO/input, and guard changes.",
300
513
  "whenNotToUse": "Do not use for REST-only controller tasks.",
301
- "references": ["references/scope.md", "references/workflow.md", "https://docs.nestjs.com/"],
514
+ "references": [
515
+ "references/conventions.md",
516
+ "references/scope.md",
517
+ "references/workflow.md",
518
+ "https://docs.nestjs.com/"
519
+ ],
302
520
  "tokenBudget": 1200,
303
- "tags": ["nestjs", "graphql", "typescript6"],
304
- "repoRoles": ["nestjs-api"],
521
+ "tags": [
522
+ "nestjs",
523
+ "graphql",
524
+ "typescript6"
525
+ ],
526
+ "repoRoles": [
527
+ "nestjs-api"
528
+ ],
305
529
  "requiresAny": [
306
- { "stack": "nestjs" },
307
- { "dependency": "@nestjs/core" },
308
- { "dependency": "@nestjs/graphql" }
530
+ {
531
+ "stack": "nestjs"
532
+ },
533
+ {
534
+ "dependency": "@nestjs/core"
535
+ },
536
+ {
537
+ "dependency": "@nestjs/graphql"
538
+ }
309
539
  ],
310
540
  "ecosystem": "nestjs",
311
541
  "tokenEstimate": 2600,
@@ -313,21 +543,38 @@
313
543
  },
314
544
  {
315
545
  "id": "haus.nx21-monorepo-patterns",
546
+ "version": "1.0.0",
316
547
  "source": "haus",
317
548
  "type": "skill",
318
- "path": "tests/fixtures/catalog/skills/nx21-monorepo-patterns",
549
+ "path": "skills/nx21-monorepo-patterns",
319
550
  "title": "Haus Nx 21 monorepo patterns",
320
551
  "purpose": "Guide Nx project graph, target pipeline, and workspace boundaries.",
321
552
  "whenToUse": "Use for Nx workspace graph, target, and generator configuration updates.",
322
553
  "whenNotToUse": "Do not use for app-only feature edits without workspace impact.",
323
- "references": ["references/scope.md", "references/workflow.md", "https://nx.dev/docs"],
554
+ "references": [
555
+ "references/conventions.md",
556
+ "references/scope.md",
557
+ "references/workflow.md",
558
+ "https://nx.dev/docs"
559
+ ],
324
560
  "tokenBudget": 1200,
325
- "tags": ["nx21", "yarn4"],
326
- "repoRoles": ["nx-monorepo"],
561
+ "tags": [
562
+ "nx21",
563
+ "yarn4"
564
+ ],
565
+ "repoRoles": [
566
+ "nx-monorepo"
567
+ ],
327
568
  "requiresAny": [
328
- { "role": "nx-monorepo" },
329
- { "dependency": "nx" },
330
- { "packageNamePattern": "@nx/*" }
569
+ {
570
+ "role": "nx-monorepo"
571
+ },
572
+ {
573
+ "dependency": "nx"
574
+ },
575
+ {
576
+ "packageNamePattern": "@nx/*"
577
+ }
331
578
  ],
332
579
  "ecosystem": "nx",
333
580
  "tokenEstimate": 2200,
@@ -335,20 +582,35 @@
335
582
  },
336
583
  {
337
584
  "id": "haus.turbo-monorepo-patterns",
585
+ "version": "1.0.0",
338
586
  "source": "haus",
339
587
  "type": "skill",
340
- "path": "tests/fixtures/catalog/skills/turbo-monorepo-patterns",
588
+ "path": "skills/turbo-monorepo-patterns",
341
589
  "title": "Haus Turbo monorepo patterns",
342
590
  "purpose": "Guide Turbo pipeline and cache-safe monorepo orchestration changes.",
343
591
  "whenToUse": "Use for turbo pipeline graph and package task orchestration updates.",
344
592
  "whenNotToUse": "Do not use for package-local feature edits without pipeline impact.",
345
- "references": ["references/scope.md", "references/workflow.md", "https://turbo.build/repo/docs"],
593
+ "references": [
594
+ "references/conventions.md",
595
+ "references/scope.md",
596
+ "references/workflow.md",
597
+ "https://turbo.build/repo/docs"
598
+ ],
346
599
  "tokenBudget": 1200,
347
- "tags": ["turbo", "yarn4"],
348
- "repoRoles": ["turbo-monorepo"],
600
+ "tags": [
601
+ "turbo",
602
+ "yarn4"
603
+ ],
604
+ "repoRoles": [
605
+ "turbo-monorepo"
606
+ ],
349
607
  "requiresAny": [
350
- { "role": "turbo-monorepo" },
351
- { "dependency": "turbo" }
608
+ {
609
+ "role": "turbo-monorepo"
610
+ },
611
+ {
612
+ "dependency": "turbo"
613
+ }
352
614
  ],
353
615
  "ecosystem": "turbo",
354
616
  "tokenEstimate": 2200,
@@ -356,22 +618,44 @@
356
618
  },
357
619
  {
358
620
  "id": "haus.tanstack-query-router-patterns",
621
+ "version": "1.0.0",
359
622
  "source": "haus",
360
623
  "type": "skill",
361
- "path": "tests/fixtures/catalog/skills/tanstack-query-router-patterns",
624
+ "path": "skills/tanstack-query-router-patterns",
362
625
  "title": "Haus TanStack query/router patterns",
363
626
  "purpose": "Guide query key, invalidation, and route loader/data-flow changes.",
364
627
  "whenToUse": "Use for TanStack query cache behavior and TanStack router flow updates.",
365
628
  "whenNotToUse": "Do not use for styling-only component changes.",
366
- "references": ["references/scope.md", "references/workflow.md", "https://tanstack.com/query/latest/docs", "https://tanstack.com/router/latest/docs"],
629
+ "references": [
630
+ "references/conventions.md",
631
+ "references/scope.md",
632
+ "references/workflow.md",
633
+ "https://tanstack.com/query/latest/docs",
634
+ "https://tanstack.com/router/latest/docs"
635
+ ],
367
636
  "tokenBudget": 1200,
368
- "tags": ["tanstack-query", "tanstack-router", "react19"],
369
- "repoRoles": ["next-app", "react-app"],
637
+ "tags": [
638
+ "tanstack-query",
639
+ "tanstack-router",
640
+ "react19"
641
+ ],
642
+ "repoRoles": [
643
+ "next-app",
644
+ "react-app"
645
+ ],
370
646
  "requiresAny": [
371
- { "dependency": "@tanstack/react-query" },
372
- { "dependency": "@tanstack/react-router" },
373
- { "dependency": "@tanstack/query-core" },
374
- { "packageNamePattern": "@tanstack/*" }
647
+ {
648
+ "dependency": "@tanstack/react-query"
649
+ },
650
+ {
651
+ "dependency": "@tanstack/react-router"
652
+ },
653
+ {
654
+ "dependency": "@tanstack/query-core"
655
+ },
656
+ {
657
+ "packageNamePattern": "@tanstack/*"
658
+ }
375
659
  ],
376
660
  "ecosystem": "react",
377
661
  "tokenEstimate": 2200,
@@ -379,23 +663,47 @@
379
663
  },
380
664
  {
381
665
  "id": "haus.radix-shadcn-patterns",
666
+ "version": "1.0.0",
382
667
  "source": "haus",
383
668
  "type": "skill",
384
- "path": "tests/fixtures/catalog/skills/radix-shadcn-patterns",
669
+ "path": "skills/radix-shadcn-patterns",
385
670
  "title": "Haus Radix shadcn patterns",
386
671
  "purpose": "Guide accessible UI primitive and wrapper behavior changes.",
387
672
  "whenToUse": "Use for Radix primitive usage and shadcn wrapper updates.",
388
673
  "whenNotToUse": "Do not use for backend/domain logic changes.",
389
- "references": ["references/scope.md", "references/workflow.md", "https://ui.shadcn.com/docs", "https://www.radix-ui.com/primitives/docs"],
674
+ "references": [
675
+ "references/conventions.md",
676
+ "references/scope.md",
677
+ "references/workflow.md",
678
+ "https://ui.shadcn.com/docs",
679
+ "https://www.radix-ui.com/primitives/docs"
680
+ ],
390
681
  "tokenBudget": 1200,
391
- "tags": ["radix", "shadcn", "react19"],
392
- "repoRoles": ["next-app", "react-app"],
682
+ "tags": [
683
+ "radix",
684
+ "shadcn",
685
+ "react19"
686
+ ],
687
+ "repoRoles": [
688
+ "next-app",
689
+ "react-app"
690
+ ],
393
691
  "requiresAny": [
394
- { "dependency": "@radix-ui/react-dialog" },
395
- { "dependency": "@radix-ui/themes" },
396
- { "dependency": "shadcn-ui" },
397
- { "dependency": "@shadcn/ui" },
398
- { "packageNamePattern": "@radix-ui/*" }
692
+ {
693
+ "dependency": "@radix-ui/react-dialog"
694
+ },
695
+ {
696
+ "dependency": "@radix-ui/themes"
697
+ },
698
+ {
699
+ "dependency": "shadcn-ui"
700
+ },
701
+ {
702
+ "dependency": "@shadcn/ui"
703
+ },
704
+ {
705
+ "packageNamePattern": "@radix-ui/*"
706
+ }
399
707
  ],
400
708
  "ecosystem": "react",
401
709
  "tokenEstimate": 1800,
@@ -403,42 +711,76 @@
403
711
  },
404
712
  {
405
713
  "id": "haus.tailwind-scss-patterns",
714
+ "version": "1.0.0",
406
715
  "source": "haus",
407
716
  "type": "skill",
408
- "path": "tests/fixtures/catalog/skills/tailwind-scss-patterns",
717
+ "path": "skills/tailwind-scss-patterns",
409
718
  "title": "Haus Tailwind SCSS patterns",
410
719
  "purpose": "Guide style-system-safe Tailwind and SCSS module changes.",
411
720
  "whenToUse": "Use for Tailwind token/utility and SCSS module behavior updates.",
412
721
  "whenNotToUse": "Do not use for non-style backend/service changes.",
413
- "references": ["references/scope.md", "references/workflow.md", "https://tailwindcss.com/docs"],
722
+ "references": [
723
+ "references/conventions.md",
724
+ "references/scope.md",
725
+ "references/workflow.md",
726
+ "https://tailwindcss.com/docs"
727
+ ],
414
728
  "tokenBudget": 1200,
415
- "tags": ["tailwind", "scss", "react19"],
416
- "repoRoles": ["next-app", "react-app", "vite-app"],
729
+ "tags": [
730
+ "tailwind",
731
+ "scss",
732
+ "react19"
733
+ ],
734
+ "repoRoles": [
735
+ "next-app",
736
+ "react-app",
737
+ "vite-app"
738
+ ],
417
739
  "requiresAny": [
418
- { "dependency": "tailwindcss" },
419
- { "dependency": "sass" },
420
- { "dependency": "scss" }
740
+ {
741
+ "dependency": "tailwindcss"
742
+ },
743
+ {
744
+ "dependency": "sass"
745
+ },
746
+ {
747
+ "dependency": "scss"
748
+ }
421
749
  ],
422
- "ecosystem": "react",
750
+ "ecosystem": "tailwind",
423
751
  "tokenEstimate": 1800,
424
752
  "installMode": "copy-selected"
425
753
  },
426
754
  {
427
755
  "id": "haus.vue-patterns",
756
+ "version": "1.0.0",
428
757
  "source": "haus",
429
758
  "type": "skill",
430
- "path": "tests/fixtures/catalog/skills/vue-patterns",
759
+ "path": "skills/vue-patterns",
431
760
  "title": "Haus Vue patterns",
432
761
  "purpose": "Guide Vue component/composable/state behavior changes.",
433
762
  "whenToUse": "Use for Vue component, composable, route, and state-boundary updates.",
434
763
  "whenNotToUse": "Do not use for React/Next-only component work.",
435
- "references": ["references/scope.md", "references/workflow.md", "https://vuejs.org/guide"],
764
+ "references": [
765
+ "references/conventions.md",
766
+ "references/scope.md",
767
+ "references/workflow.md",
768
+ "https://vuejs.org/guide"
769
+ ],
436
770
  "tokenBudget": 1200,
437
- "tags": ["vue"],
438
- "repoRoles": ["vue-app"],
771
+ "tags": [
772
+ "vue"
773
+ ],
774
+ "repoRoles": [
775
+ "vue-app"
776
+ ],
439
777
  "requiresAny": [
440
- { "stack": "vue" },
441
- { "dependency": "vue" }
778
+ {
779
+ "stack": "vue"
780
+ },
781
+ {
782
+ "dependency": "vue"
783
+ }
442
784
  ],
443
785
  "ecosystem": "vue",
444
786
  "tokenEstimate": 2000,
@@ -446,19 +788,32 @@
446
788
  },
447
789
  {
448
790
  "id": "haus.laravel-nova-patterns",
791
+ "version": "1.0.0",
449
792
  "source": "haus",
450
793
  "type": "skill",
451
- "path": "tests/fixtures/catalog/skills/laravel-nova-patterns",
794
+ "path": "skills/laravel-nova-patterns",
452
795
  "title": "Haus Laravel Nova patterns",
453
796
  "purpose": "Guide Nova admin resources, actions, and policy-safe field behavior.",
454
797
  "whenToUse": "Use for Laravel Nova resources, actions, filters, and admin UI behavior.",
455
798
  "whenNotToUse": "Do not use for customer-facing API/domain-only changes.",
456
- "references": ["references/scope.md", "references/workflow.md", "https://laravel.com/docs"],
799
+ "references": [
800
+ "references/conventions.md",
801
+ "references/scope.md",
802
+ "references/workflow.md",
803
+ "https://laravel.com/docs"
804
+ ],
457
805
  "tokenBudget": 1200,
458
- "tags": ["laravel-nova", "laravel"],
459
- "repoRoles": ["laravel-nova-app"],
806
+ "tags": [
807
+ "laravel-nova",
808
+ "laravel"
809
+ ],
810
+ "repoRoles": [
811
+ "laravel-nova-app"
812
+ ],
460
813
  "requiresAny": [
461
- { "dependency": "laravel/nova" }
814
+ {
815
+ "dependency": "laravel/nova"
816
+ }
462
817
  ],
463
818
  "ecosystem": "laravel",
464
819
  "tokenEstimate": 2600,
@@ -466,20 +821,35 @@
466
821
  },
467
822
  {
468
823
  "id": "haus.wordpress-bedrock-patterns",
824
+ "version": "1.0.0",
469
825
  "source": "haus",
470
826
  "type": "skill",
471
- "path": "tests/fixtures/catalog/skills/wordpress-bedrock-patterns",
827
+ "path": "skills/wordpress-bedrock-patterns",
472
828
  "title": "Haus WordPress Bedrock patterns",
473
829
  "purpose": "Guide Bedrock config/bootstrap and environment-aware WP deployment layout.",
474
830
  "whenToUse": "Use for Bedrock config, env loading, and boot path behavior updates.",
475
831
  "whenNotToUse": "Do not use for hook/template-only WordPress runtime changes.",
476
- "references": ["references/scope.md", "references/workflow.md", "https://developer.wordpress.org/"],
832
+ "references": [
833
+ "references/conventions.md",
834
+ "references/scope.md",
835
+ "references/workflow.md",
836
+ "https://developer.wordpress.org/"
837
+ ],
477
838
  "tokenBudget": 1200,
478
- "tags": ["wordpress", "bedrock"],
479
- "repoRoles": ["wordpress-bedrock-site"],
839
+ "tags": [
840
+ "wordpress",
841
+ "bedrock"
842
+ ],
843
+ "repoRoles": [
844
+ "wordpress-bedrock-site"
845
+ ],
480
846
  "requiresAny": [
481
- { "role": "wordpress-bedrock-site" },
482
- { "dependency": "roots/bedrock" }
847
+ {
848
+ "role": "wordpress-bedrock-site"
849
+ },
850
+ {
851
+ "dependency": "roots/bedrock"
852
+ }
483
853
  ],
484
854
  "ecosystem": "wordpress",
485
855
  "tokenEstimate": 2600,
@@ -487,21 +857,38 @@
487
857
  },
488
858
  {
489
859
  "id": "haus.wordpress-acf-elementor-jetengine-patterns",
860
+ "version": "1.0.0",
490
861
  "source": "haus",
491
862
  "type": "skill",
492
- "path": "tests/fixtures/catalog/skills/wordpress-acf-elementor-jetengine-patterns",
863
+ "path": "skills/wordpress-acf-elementor-jetengine-patterns",
493
864
  "title": "Haus WordPress ACF Elementor JetEngine patterns",
494
865
  "purpose": "Guide builder-field/meta-template wiring for ACF, Elementor Pro, and JetEngine.",
495
866
  "whenToUse": "Use for ACF field groups and Elementor/JetEngine-driven dynamic template behavior.",
496
867
  "whenNotToUse": "Do not use for generic WordPress hooks with no builder/meta impact.",
497
- "references": ["references/scope.md", "references/workflow.md", "https://developer.wordpress.org/"],
868
+ "references": [
869
+ "references/conventions.md",
870
+ "references/scope.md",
871
+ "references/workflow.md",
872
+ "https://developer.wordpress.org/"
873
+ ],
498
874
  "tokenBudget": 1200,
499
- "tags": ["wordpress"],
500
- "repoRoles": ["wordpress-bedrock-site", "wordpress-vanilla-site"],
875
+ "tags": [
876
+ "wordpress"
877
+ ],
878
+ "repoRoles": [
879
+ "wordpress-bedrock-site",
880
+ "wordpress-vanilla-site"
881
+ ],
501
882
  "requiresAny": [
502
- { "role": "wordpress-bedrock-site" },
503
- { "role": "wordpress-vanilla-site" },
504
- { "stack": "wordpress" }
883
+ {
884
+ "role": "wordpress-bedrock-site"
885
+ },
886
+ {
887
+ "role": "wordpress-vanilla-site"
888
+ },
889
+ {
890
+ "stack": "wordpress"
891
+ }
505
892
  ],
506
893
  "ecosystem": "wordpress",
507
894
  "tokenEstimate": 2600,
@@ -509,123 +896,219 @@
509
896
  },
510
897
  {
511
898
  "id": "haus.dotnet-service-patterns",
899
+ "version": "1.0.0",
512
900
  "source": "haus",
513
901
  "type": "skill",
514
- "path": "tests/fixtures/catalog/skills/dotnet-service-patterns",
902
+ "path": "skills/dotnet-service-patterns",
515
903
  "title": "Haus dotnet service patterns",
516
904
  "purpose": "Guide .NET service-layer contract and orchestration changes.",
517
905
  "whenToUse": "Use for .NET service boundary, orchestration, and handler behavior updates.",
518
906
  "whenNotToUse": "Do not use for route formatting-only tasks with no service impact.",
519
- "references": ["references/scope.md", "references/workflow.md"],
907
+ "references": [
908
+ "references/conventions.md",
909
+ "references/scope.md",
910
+ "references/workflow.md"
911
+ ],
520
912
  "tokenBudget": 1200,
521
- "tags": ["dotnet"],
522
- "repoRoles": ["dotnet-service"],
523
- "requiresAny": [{ "stack": "dotnet" }, { "role": "dotnet-service" }],
913
+ "tags": [
914
+ "dotnet"
915
+ ],
916
+ "repoRoles": [
917
+ "dotnet-service"
918
+ ],
919
+ "requiresAny": [
920
+ {
921
+ "stack": "dotnet"
922
+ },
923
+ {
924
+ "role": "dotnet-service"
925
+ }
926
+ ],
524
927
  "ecosystem": "dotnet",
525
928
  "tokenEstimate": 2300,
526
929
  "installMode": "copy-selected"
527
930
  },
528
931
  {
529
932
  "id": "haus.auth-oidc-azure-bankid-patterns",
933
+ "version": "1.0.0",
530
934
  "source": "haus",
531
935
  "type": "skill",
532
- "path": "tests/fixtures/catalog/skills/auth-oidc-azure-bankid-patterns",
936
+ "path": "skills/auth-oidc-azure-bankid-patterns",
533
937
  "title": "Haus auth patterns",
534
938
  "purpose": "Guide identity-provider auth flow and claim/session lifecycle changes.",
535
939
  "whenToUse": "Use for OIDC/Azure AD/BankID login, callback, token, and claim mapping updates.",
536
940
  "whenNotToUse": "Do not use for profile CRUD without auth protocol change.",
537
- "references": ["references/scope.md", "references/workflow.md"],
941
+ "references": [
942
+ "references/conventions.md",
943
+ "references/scope.md",
944
+ "references/workflow.md"
945
+ ],
538
946
  "tokenBudget": 1200,
539
- "tags": ["oidc", "azure-ad", "bankid"],
947
+ "tags": [
948
+ "oidc",
949
+ "azure-ad",
950
+ "bankid"
951
+ ],
540
952
  "repoRoles": [],
541
953
  "requiresAny": [
542
- { "stack": "oidc" },
543
- { "stack": "azure-ad" },
544
- { "stack": "bankid" }
954
+ {
955
+ "stack": "oidc"
956
+ },
957
+ {
958
+ "stack": "azure-ad"
959
+ },
960
+ {
961
+ "stack": "bankid"
962
+ }
545
963
  ],
546
964
  "tokenEstimate": 1700,
547
- "installMode": "copy-selected"
965
+ "installMode": "copy-selected",
966
+ "ecosystem": "auth"
548
967
  },
549
968
  {
550
969
  "id": "haus.database-patterns",
970
+ "version": "1.0.0",
551
971
  "source": "haus",
552
972
  "type": "skill",
553
- "path": "tests/fixtures/catalog/skills/database-patterns",
973
+ "path": "skills/database-patterns",
554
974
  "title": "Haus database patterns",
555
975
  "purpose": "Guide schema/query/index/search changes across supported data engines.",
556
976
  "whenToUse": "Use for migrations, query behavior, indexing, and Elasticsearch mapping updates.",
557
977
  "whenNotToUse": "Do not use for UI-only changes without persistence/search impact.",
558
- "references": ["references/scope.md", "references/workflow.md"],
978
+ "references": [
979
+ "references/conventions.md",
980
+ "references/scope.md",
981
+ "references/workflow.md"
982
+ ],
559
983
  "tokenBudget": 1200,
560
- "tags": ["postgresql", "mariadb", "mssql", "elasticsearch"],
984
+ "tags": [
985
+ "postgresql",
986
+ "mariadb",
987
+ "mssql",
988
+ "elasticsearch"
989
+ ],
561
990
  "repoRoles": [],
562
991
  "requiresAny": [
563
- { "stack": "postgresql" },
564
- { "stack": "mariadb" },
565
- { "stack": "mssql" },
566
- { "stack": "elasticsearch" }
992
+ {
993
+ "stack": "postgresql"
994
+ },
995
+ {
996
+ "stack": "mariadb"
997
+ },
998
+ {
999
+ "stack": "mssql"
1000
+ },
1001
+ {
1002
+ "stack": "elasticsearch"
1003
+ }
567
1004
  ],
568
1005
  "tokenEstimate": 1700,
569
- "installMode": "copy-selected"
1006
+ "installMode": "copy-selected",
1007
+ "ecosystem": "database"
570
1008
  },
571
1009
  {
572
1010
  "id": "haus.package-manager-yarn4-pnpm89",
1011
+ "version": "1.0.0",
573
1012
  "source": "haus",
574
1013
  "type": "skill",
575
- "path": "tests/fixtures/catalog/skills/package-manager-yarn4-pnpm89",
1014
+ "path": "skills/package-manager-yarn4-pnpm89",
576
1015
  "title": "Haus package manager patterns",
577
1016
  "purpose": "Guide deterministic dependency/workspace changes for Yarn4 and pnpm89.",
578
1017
  "whenToUse": "Use for lockfile, workspace, and package manager configuration changes.",
579
1018
  "whenNotToUse": "Do not use for feature-only code edits with no dependency/workspace impact.",
580
- "references": ["references/scope.md", "references/workflow.md"],
1019
+ "references": [
1020
+ "references/conventions.md",
1021
+ "references/scope.md",
1022
+ "references/workflow.md"
1023
+ ],
581
1024
  "tokenBudget": 1200,
582
- "tags": ["yarn4", "pnpm89"],
1025
+ "tags": [
1026
+ "yarn4",
1027
+ "pnpm89"
1028
+ ],
583
1029
  "repoRoles": [],
584
1030
  "requiresAny": [
585
- { "stack": "yarn4" },
586
- { "stack": "pnpm89" }
1031
+ {
1032
+ "stack": "yarn4"
1033
+ },
1034
+ {
1035
+ "stack": "pnpm89"
1036
+ }
587
1037
  ],
588
1038
  "tokenEstimate": 1200,
589
- "installMode": "copy-selected"
1039
+ "installMode": "copy-selected",
1040
+ "ecosystem": "packagemanager"
590
1041
  },
591
1042
  {
592
1043
  "id": "haus.testing-library-patterns",
1044
+ "version": "1.0.0",
593
1045
  "source": "haus",
594
1046
  "type": "skill",
595
- "path": "tests/fixtures/catalog/skills/testing-library-patterns",
1047
+ "path": "skills/testing-library-patterns",
596
1048
  "title": "Haus testing library patterns",
597
1049
  "purpose": "Guide user-visible behavior testing with Testing Library.",
598
1050
  "whenToUse": "Use for component interaction tests with @testing-library tooling.",
599
1051
  "whenNotToUse": "Do not use for full browser journey tests better served by Playwright.",
600
- "references": ["references/scope.md", "references/workflow.md", "https://vitest.dev/guide"],
1052
+ "references": [
1053
+ "references/conventions.md",
1054
+ "references/scope.md",
1055
+ "references/workflow.md",
1056
+ "https://vitest.dev/guide"
1057
+ ],
601
1058
  "tokenBudget": 1200,
602
- "tags": ["testing-library"],
1059
+ "tags": [
1060
+ "testing-library"
1061
+ ],
603
1062
  "repoRoles": [],
604
1063
  "requiresAny": [
605
- { "stack": "testing-library" },
606
- { "dependency": "@testing-library/react" },
607
- { "dependency": "@testing-library/dom" },
608
- { "packageNamePattern": "@testing-library/*" }
1064
+ {
1065
+ "stack": "testing-library"
1066
+ },
1067
+ {
1068
+ "dependency": "@testing-library/react"
1069
+ },
1070
+ {
1071
+ "dependency": "@testing-library/dom"
1072
+ },
1073
+ {
1074
+ "packageNamePattern": "@testing-library/*"
1075
+ }
609
1076
  ],
610
1077
  "tokenEstimate": 1500,
611
- "installMode": "copy-selected"
1078
+ "installMode": "copy-selected",
1079
+ "ecosystem": "testing"
612
1080
  },
613
1081
  {
614
1082
  "id": "haus.phpunit-patterns",
1083
+ "version": "1.0.0",
615
1084
  "source": "haus",
616
1085
  "type": "skill",
617
- "path": "tests/fixtures/catalog/skills/phpunit-patterns",
1086
+ "path": "skills/phpunit-patterns",
618
1087
  "title": "Haus PHPUnit patterns",
619
1088
  "purpose": "Guide PHPUnit feature/unit test changes for PHP/Laravel behavior.",
620
1089
  "whenToUse": "Use for PHPUnit tests tied to backend behavior updates.",
621
1090
  "whenNotToUse": "Do not use for frontend/browser-only test tasks.",
622
- "references": ["references/scope.md", "references/workflow.md", "https://laravel.com/docs"],
1091
+ "references": [
1092
+ "references/conventions.md",
1093
+ "references/scope.md",
1094
+ "references/workflow.md",
1095
+ "https://laravel.com/docs"
1096
+ ],
623
1097
  "tokenBudget": 1200,
624
- "tags": ["phpunit"],
625
- "repoRoles": ["laravel-app", "laravel-nova-app"],
1098
+ "tags": [
1099
+ "phpunit"
1100
+ ],
1101
+ "repoRoles": [
1102
+ "laravel-app",
1103
+ "laravel-nova-app"
1104
+ ],
626
1105
  "requiresAny": [
627
- { "stack": "phpunit" },
628
- { "dependency": "phpunit/phpunit" }
1106
+ {
1107
+ "stack": "phpunit"
1108
+ },
1109
+ {
1110
+ "dependency": "phpunit/phpunit"
1111
+ }
629
1112
  ],
630
1113
  "ecosystem": "laravel",
631
1114
  "tokenEstimate": 1500,
@@ -633,64 +1116,124 @@
633
1116
  },
634
1117
  {
635
1118
  "id": "haus.storybook-patterns",
1119
+ "version": "1.0.0",
636
1120
  "source": "haus",
637
1121
  "type": "skill",
638
- "path": "tests/fixtures/catalog/skills/storybook-patterns",
1122
+ "path": "skills/storybook-patterns",
639
1123
  "title": "Haus Storybook patterns",
640
1124
  "purpose": "Guide story coverage and component API documentation updates.",
641
1125
  "whenToUse": "Use for component stories, args/controls, and Storybook config changes.",
642
1126
  "whenNotToUse": "Do not use for backend/service-only development tasks.",
643
- "references": ["references/scope.md", "references/workflow.md", "https://storybook.js.org/docs"],
1127
+ "references": [
1128
+ "references/conventions.md",
1129
+ "references/scope.md",
1130
+ "references/workflow.md",
1131
+ "https://storybook.js.org/docs"
1132
+ ],
644
1133
  "tokenBudget": 1200,
645
- "tags": ["storybook"],
646
- "repoRoles": ["react-app", "next-app", "vite-app"],
1134
+ "tags": [
1135
+ "storybook"
1136
+ ],
1137
+ "repoRoles": [
1138
+ "react-app",
1139
+ "next-app",
1140
+ "vite-app"
1141
+ ],
647
1142
  "requiresAny": [
648
- { "stack": "storybook" },
649
- { "dependency": "storybook" },
650
- { "dependency": "@storybook/react" },
651
- { "packageNamePattern": "@storybook/*" }
1143
+ {
1144
+ "stack": "storybook"
1145
+ },
1146
+ {
1147
+ "dependency": "storybook"
1148
+ },
1149
+ {
1150
+ "dependency": "@storybook/react"
1151
+ },
1152
+ {
1153
+ "packageNamePattern": "@storybook/*"
1154
+ }
652
1155
  ],
653
- "ecosystem": "react",
1156
+ "ecosystem": "storybook",
654
1157
  "tokenEstimate": 1500,
655
1158
  "installMode": "copy-selected"
656
1159
  },
657
1160
  {
658
1161
  "id": "haus.security-review",
1162
+ "version": "1.0.0",
659
1163
  "source": "haus",
660
1164
  "type": "skill",
661
- "path": "tests/fixtures/catalog/skills/security-review",
1165
+ "path": "skills/security-review",
662
1166
  "title": "Haus security review",
663
1167
  "purpose": "Route bounded security review with structured findings and explicit verification.",
664
1168
  "whenToUse": "Use when the user requests security review, threat check, or hardening on a named scope.",
665
1169
  "whenNotToUse": "Do not use for unscoped repo sweeps, exploit development, or non-security tasks.",
666
1170
  "references": [
1171
+ "references/conventions.md",
667
1172
  "references/output-shape.md",
668
1173
  "references/scope-signals.md",
669
1174
  "references/verification.md"
670
1175
  ],
671
1176
  "tokenBudget": 800,
672
- "tags": ["security", "review"],
1177
+ "tags": [
1178
+ "security",
1179
+ "review"
1180
+ ],
673
1181
  "repoRoles": [],
674
1182
  "requiresAny": [],
675
1183
  "tokenEstimate": 1200,
676
- "installMode": "copy-selected"
1184
+ "installMode": "copy-selected",
1185
+ "ecosystem": "security",
1186
+ "default": true
677
1187
  },
678
1188
  {
679
1189
  "id": "haus.production-readiness-review",
1190
+ "version": "1.0.0",
680
1191
  "source": "haus",
681
1192
  "type": "skill",
682
- "path": "tests/fixtures/catalog/skills/production-readiness-review",
1193
+ "path": "skills/production-readiness-review",
683
1194
  "title": "Haus production readiness review",
684
1195
  "purpose": "Route release readiness checks with evidence-based gaps and rollback notes.",
685
1196
  "whenToUse": "Use when the user asks for ship checklist, release risk review, or go-live readiness on a defined change set.",
686
1197
  "whenNotToUse": "Do not use for pure feature design with no release surface or undefined release boundary.",
687
- "references": ["references/signals.md", "references/evidence.md", "references/rollback.md"],
1198
+ "references": [
1199
+ "references/conventions.md",
1200
+ "references/signals.md",
1201
+ "references/evidence.md",
1202
+ "references/rollback.md"
1203
+ ],
688
1204
  "tokenBudget": 800,
689
- "tags": ["quality", "security", "review"],
1205
+ "tags": [
1206
+ "quality",
1207
+ "security",
1208
+ "review"
1209
+ ],
690
1210
  "repoRoles": [],
691
1211
  "requiresAny": [],
692
1212
  "tokenEstimate": 1200,
693
- "installMode": "copy-selected"
1213
+ "installMode": "copy-selected",
1214
+ "ecosystem": "production",
1215
+ "default": true
1216
+ },
1217
+ {
1218
+ "id": "haus.haus-way-of-work",
1219
+ "version": "1.0.0",
1220
+ "source": "haus",
1221
+ "type": "template",
1222
+ "path": "templates/haus-way-of-work.md",
1223
+ "title": "Haus way of work",
1224
+ "purpose": "Universal project instructions: context loading, output discipline, commit hygiene, safety rails, PR workflow.",
1225
+ "whenToUse": "Install in every project using haus-workflow. Always active as baseline project instructions.",
1226
+ "whenNotToUse": "Never skip this template.",
1227
+ "tags": [
1228
+ "workflow",
1229
+ "baseline",
1230
+ "project-instructions"
1231
+ ],
1232
+ "repoRoles": [],
1233
+ "installMode": "copy-selected",
1234
+ "tokenEstimate": 500,
1235
+ "tokenBudget": 600,
1236
+ "default": true
694
1237
  }
695
1238
  ]
696
1239
  }