@haus-tech/haus-workflow 0.10.1 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +144 -123
- package/dist/cli.js +224 -169
- package/library/catalog/manifest.json +264 -494
- package/library/catalog/sources.yaml +56 -56
- package/library/global/agents/haus-code-reviewer.md +3 -2
- package/library/global/agents/haus-docs-researcher.md +3 -2
- package/library/global/agents/haus-planner.md +3 -2
- package/library/global/agents/haus-security-reviewer.md +3 -2
- package/library/global/agents/haus-test-reviewer.md +3 -2
- package/library/global/skills/haus-workflow/SKILL.md +21 -14
- package/library/global/templates/agentic-workflow-standard.md +279 -0
- package/package.json +3 -3
- package/tests/README.md +19 -19
- package/tests/fixtures/catalog/manifest.json +111 -78
- package/library/global/templates/haus-way-of-work.md +0 -40
|
@@ -30,7 +30,11 @@
|
|
|
30
30
|
"purpose": "Guide Next.js route, server/client boundary, and middleware-safe changes.",
|
|
31
31
|
"whenToUse": "Use for App Router pages, layouts, route handlers, and middleware behavior updates.",
|
|
32
32
|
"whenNotToUse": "Do not use for backend-only or non-Next framework tasks.",
|
|
33
|
-
"references": [
|
|
33
|
+
"references": [
|
|
34
|
+
"references/scope.md",
|
|
35
|
+
"references/workflow.md",
|
|
36
|
+
"https://nextjs.org/llms.txt"
|
|
37
|
+
],
|
|
34
38
|
"tokenBudget": 1200,
|
|
35
39
|
"tags": ["frontend", "nextjs", "react", "typescript"],
|
|
36
40
|
"repoRoles": ["next-app"],
|
|
@@ -66,7 +70,11 @@
|
|
|
66
70
|
"purpose": "Guide TypeScript contract and migration-safe typing changes.",
|
|
67
71
|
"whenToUse": "Use for shared types, DTOs, interface boundaries, and type-safe refactors.",
|
|
68
72
|
"whenNotToUse": "Do not use for runtime-only changes without type-contract impact.",
|
|
69
|
-
"references": [
|
|
73
|
+
"references": [
|
|
74
|
+
"references/scope.md",
|
|
75
|
+
"references/workflow.md",
|
|
76
|
+
"https://www.typescriptlang.org/docs/handbook/"
|
|
77
|
+
],
|
|
70
78
|
"tokenBudget": 1200,
|
|
71
79
|
"tags": ["typescript", "frontend", "backend"],
|
|
72
80
|
"repoRoles": [
|
|
@@ -94,14 +102,16 @@
|
|
|
94
102
|
"purpose": "Guide Vite config, plugin wiring, and deterministic build pipeline changes.",
|
|
95
103
|
"whenToUse": "Use for vite config, alias/plugin, and build mode behavior updates.",
|
|
96
104
|
"whenNotToUse": "Do not use for framework feature logic without build pipeline impact.",
|
|
97
|
-
"references": [
|
|
105
|
+
"references": [
|
|
106
|
+
"references/scope.md",
|
|
107
|
+
"references/workflow.md",
|
|
108
|
+
"https://vite.dev/guide",
|
|
109
|
+
"https://vitest.dev/guide"
|
|
110
|
+
],
|
|
98
111
|
"tokenBudget": 1200,
|
|
99
112
|
"tags": ["vite8", "frontend", "typescript"],
|
|
100
113
|
"repoRoles": ["vite-app", "react-app", "vue-app"],
|
|
101
|
-
"requiresAny": [
|
|
102
|
-
{ "stack": "vite8" },
|
|
103
|
-
{ "dependency": "vite" }
|
|
104
|
-
],
|
|
114
|
+
"requiresAny": [{ "stack": "vite8" }, { "dependency": "vite" }],
|
|
105
115
|
"ecosystem": "vite",
|
|
106
116
|
"tokenEstimate": 1800,
|
|
107
117
|
"installMode": "copy-selected"
|
|
@@ -115,7 +125,11 @@
|
|
|
115
125
|
"purpose": "Guide React Router v7 SSR route, loader, and action boundary changes.",
|
|
116
126
|
"whenToUse": "Use for routes, loaders, actions, and SSR config in React Router v7 apps.",
|
|
117
127
|
"whenNotToUse": "Do not use for Next.js App Router or Remix v1 codebases.",
|
|
118
|
-
"references": [
|
|
128
|
+
"references": [
|
|
129
|
+
"references/scope.md",
|
|
130
|
+
"references/workflow.md",
|
|
131
|
+
"https://reactrouter.com/start/framework/installation"
|
|
132
|
+
],
|
|
119
133
|
"tokenBudget": 1200,
|
|
120
134
|
"tags": ["frontend", "react", "typescript"],
|
|
121
135
|
"repoRoles": ["react-router-app", "react-app"],
|
|
@@ -187,10 +201,7 @@
|
|
|
187
201
|
"tokenBudget": 1200,
|
|
188
202
|
"tags": ["bullmq", "queue", "backend"],
|
|
189
203
|
"repoRoles": ["vendure-app", "nestjs-api"],
|
|
190
|
-
"requiresAny": [
|
|
191
|
-
{ "stack": "bullmq" },
|
|
192
|
-
{ "dependency": "bullmq" }
|
|
193
|
-
],
|
|
204
|
+
"requiresAny": [{ "stack": "bullmq" }, { "dependency": "bullmq" }],
|
|
194
205
|
"ecosystem": "tooling",
|
|
195
206
|
"tokenEstimate": 1800,
|
|
196
207
|
"installMode": "copy-selected"
|
|
@@ -231,9 +242,7 @@
|
|
|
231
242
|
"tokenBudget": 800,
|
|
232
243
|
"tags": ["prettier", "tooling", "quality"],
|
|
233
244
|
"repoRoles": [],
|
|
234
|
-
"requiresAny": [
|
|
235
|
-
{ "stack": "missing-prettier" }
|
|
236
|
-
],
|
|
245
|
+
"requiresAny": [{ "stack": "missing-prettier" }],
|
|
237
246
|
"ecosystem": "tooling",
|
|
238
247
|
"tokenEstimate": 1000,
|
|
239
248
|
"installMode": "copy-selected"
|
|
@@ -251,9 +260,7 @@
|
|
|
251
260
|
"tokenBudget": 800,
|
|
252
261
|
"tags": ["eslint", "tooling", "quality"],
|
|
253
262
|
"repoRoles": [],
|
|
254
|
-
"requiresAny": [
|
|
255
|
-
{ "stack": "missing-eslint" }
|
|
256
|
-
],
|
|
263
|
+
"requiresAny": [{ "stack": "missing-eslint" }],
|
|
257
264
|
"ecosystem": "tooling",
|
|
258
265
|
"tokenEstimate": 1000,
|
|
259
266
|
"installMode": "copy-selected"
|
|
@@ -293,10 +300,7 @@
|
|
|
293
300
|
"tokenBudget": 1200,
|
|
294
301
|
"tags": ["qliro", "payments", "tooling"],
|
|
295
302
|
"repoRoles": ["vendure-app", "vendure-plugin", "next-app"],
|
|
296
|
-
"requiresAny": [
|
|
297
|
-
{ "stack": "qliro" },
|
|
298
|
-
{ "dependency": "@haus-tech/qliro-plugin" }
|
|
299
|
-
],
|
|
303
|
+
"requiresAny": [{ "stack": "qliro" }, { "dependency": "@haus-tech/qliro-plugin" }],
|
|
300
304
|
"ecosystem": "payments",
|
|
301
305
|
"tokenEstimate": 1800,
|
|
302
306
|
"installMode": "copy-selected"
|
|
@@ -355,7 +359,11 @@
|
|
|
355
359
|
"purpose": "Guide Strapi v5 content type, controller, service, and policy changes.",
|
|
356
360
|
"whenToUse": "Use for Strapi content type schemas, controllers, services, and policies in v5.",
|
|
357
361
|
"whenNotToUse": "Do not use for Sanity, WordPress, or other CMS work.",
|
|
358
|
-
"references": [
|
|
362
|
+
"references": [
|
|
363
|
+
"references/scope.md",
|
|
364
|
+
"references/workflow.md",
|
|
365
|
+
"https://docs.strapi.io/dev-docs/intro"
|
|
366
|
+
],
|
|
359
367
|
"tokenBudget": 1200,
|
|
360
368
|
"tags": ["strapi", "backend", "cms"],
|
|
361
369
|
"repoRoles": ["strapi-app"],
|
|
@@ -399,7 +407,11 @@
|
|
|
399
407
|
"purpose": "Guide Vendure plugin boundary, schema, and migration-safe development.",
|
|
400
408
|
"whenToUse": "Use for Vendure plugin resolvers, services, entities, and plugin migrations.",
|
|
401
409
|
"whenNotToUse": "Do not use for storefront-only UI changes or non-Vendure APIs.",
|
|
402
|
-
"references": [
|
|
410
|
+
"references": [
|
|
411
|
+
"references/scope.md",
|
|
412
|
+
"references/workflow.md",
|
|
413
|
+
"https://docs.vendure.io/llms.txt"
|
|
414
|
+
],
|
|
403
415
|
"tokenBudget": 1200,
|
|
404
416
|
"tags": ["backend", "vendure", "nestjs", "graphql", "typescript"],
|
|
405
417
|
"repoRoles": ["vendure-plugin", "vendure-app"],
|
|
@@ -425,10 +437,7 @@
|
|
|
425
437
|
"tokenBudget": 1200,
|
|
426
438
|
"tags": ["backend", "laravel", "php"],
|
|
427
439
|
"repoRoles": ["laravel-app", "laravel-nova-app"],
|
|
428
|
-
"requiresAny": [
|
|
429
|
-
{ "stack": "laravel" },
|
|
430
|
-
{ "dependency": "laravel/framework" }
|
|
431
|
-
],
|
|
440
|
+
"requiresAny": [{ "stack": "laravel" }, { "dependency": "laravel/framework" }],
|
|
432
441
|
"ecosystem": "laravel",
|
|
433
442
|
"tokenEstimate": 2800,
|
|
434
443
|
"installMode": "copy-selected"
|
|
@@ -442,14 +451,15 @@
|
|
|
442
451
|
"purpose": "Guide WordPress hook/template/plugin/theme runtime changes.",
|
|
443
452
|
"whenToUse": "Use for WordPress hook/filter/template/plugin/theme behavior updates.",
|
|
444
453
|
"whenNotToUse": "Do not use for Bedrock-only config bootstrap or non-WP backend tasks.",
|
|
445
|
-
"references": [
|
|
454
|
+
"references": [
|
|
455
|
+
"references/scope.md",
|
|
456
|
+
"references/workflow.md",
|
|
457
|
+
"https://developer.wordpress.org/"
|
|
458
|
+
],
|
|
446
459
|
"tokenBudget": 1200,
|
|
447
460
|
"tags": ["backend", "wordpress", "php"],
|
|
448
461
|
"repoRoles": ["wordpress-site", "wordpress-bedrock-site"],
|
|
449
|
-
"requiresAny": [
|
|
450
|
-
{ "stack": "wordpress" },
|
|
451
|
-
{ "dependency": "roots/bedrock" }
|
|
452
|
-
],
|
|
462
|
+
"requiresAny": [{ "stack": "wordpress" }, { "dependency": "roots/bedrock" }],
|
|
453
463
|
"ecosystem": "wordpress",
|
|
454
464
|
"tokenEstimate": 3000,
|
|
455
465
|
"installMode": "copy-selected"
|
|
@@ -481,14 +491,15 @@
|
|
|
481
491
|
"purpose": "Guide deterministic E2E browser test flow changes.",
|
|
482
492
|
"whenToUse": "Use for Playwright specs, fixtures, and browser test stability work.",
|
|
483
493
|
"whenNotToUse": "Do not use for unit-only test tasks without browser automation.",
|
|
484
|
-
"references": [
|
|
494
|
+
"references": [
|
|
495
|
+
"references/scope.md",
|
|
496
|
+
"references/workflow.md",
|
|
497
|
+
"https://playwright.dev/docs/intro"
|
|
498
|
+
],
|
|
485
499
|
"tokenBudget": 1200,
|
|
486
500
|
"tags": ["testing", "playwright"],
|
|
487
501
|
"repoRoles": ["next-app", "react-app", "vue-app", "test-suite"],
|
|
488
|
-
"requiresAny": [
|
|
489
|
-
{ "stack": "playwright" },
|
|
490
|
-
{ "dependency": "@playwright/test" }
|
|
491
|
-
],
|
|
502
|
+
"requiresAny": [{ "stack": "playwright" }, { "dependency": "@playwright/test" }],
|
|
492
503
|
"tokenEstimate": 2200,
|
|
493
504
|
"installMode": "copy-selected"
|
|
494
505
|
},
|
|
@@ -562,14 +573,15 @@
|
|
|
562
573
|
"purpose": "Guide Vendure app-level config, worker, bootstrap, and plugin wiring changes.",
|
|
563
574
|
"whenToUse": "Use for Vendure app config, worker, bootstrap, and system wiring updates.",
|
|
564
575
|
"whenNotToUse": "Do not use for isolated shared plugin package tasks.",
|
|
565
|
-
"references": [
|
|
576
|
+
"references": [
|
|
577
|
+
"references/scope.md",
|
|
578
|
+
"references/workflow.md",
|
|
579
|
+
"https://docs.vendure.io/llms.txt"
|
|
580
|
+
],
|
|
566
581
|
"tokenBudget": 1200,
|
|
567
582
|
"tags": ["vendure3", "nestjs", "graphql"],
|
|
568
583
|
"repoRoles": ["vendure-app"],
|
|
569
|
-
"requiresAny": [
|
|
570
|
-
{ "stack": "vendure3" },
|
|
571
|
-
{ "dependency": "@vendure/core" }
|
|
572
|
-
],
|
|
584
|
+
"requiresAny": [{ "stack": "vendure3" }, { "dependency": "@vendure/core" }],
|
|
573
585
|
"ecosystem": "vendure",
|
|
574
586
|
"tokenEstimate": 3200,
|
|
575
587
|
"installMode": "copy-selected"
|
|
@@ -627,14 +639,15 @@
|
|
|
627
639
|
"purpose": "Guide Turbo pipeline and cache-safe monorepo orchestration changes.",
|
|
628
640
|
"whenToUse": "Use for turbo pipeline graph and package task orchestration updates.",
|
|
629
641
|
"whenNotToUse": "Do not use for package-local feature edits without pipeline impact.",
|
|
630
|
-
"references": [
|
|
642
|
+
"references": [
|
|
643
|
+
"references/scope.md",
|
|
644
|
+
"references/workflow.md",
|
|
645
|
+
"https://turbo.build/repo/docs"
|
|
646
|
+
],
|
|
631
647
|
"tokenBudget": 1200,
|
|
632
648
|
"tags": ["turbo", "yarn4"],
|
|
633
649
|
"repoRoles": ["turbo-monorepo"],
|
|
634
|
-
"requiresAny": [
|
|
635
|
-
{ "role": "turbo-monorepo" },
|
|
636
|
-
{ "dependency": "turbo" }
|
|
637
|
-
],
|
|
650
|
+
"requiresAny": [{ "role": "turbo-monorepo" }, { "dependency": "turbo" }],
|
|
638
651
|
"ecosystem": "turbo",
|
|
639
652
|
"tokenEstimate": 2200,
|
|
640
653
|
"installMode": "copy-selected"
|
|
@@ -648,7 +661,12 @@
|
|
|
648
661
|
"purpose": "Guide query key, invalidation, and route loader/data-flow changes.",
|
|
649
662
|
"whenToUse": "Use for TanStack query cache behavior and TanStack router flow updates.",
|
|
650
663
|
"whenNotToUse": "Do not use for styling-only component changes.",
|
|
651
|
-
"references": [
|
|
664
|
+
"references": [
|
|
665
|
+
"references/scope.md",
|
|
666
|
+
"references/workflow.md",
|
|
667
|
+
"https://tanstack.com/query/latest/docs",
|
|
668
|
+
"https://tanstack.com/router/latest/docs"
|
|
669
|
+
],
|
|
652
670
|
"tokenBudget": 1200,
|
|
653
671
|
"tags": ["tanstack-query", "tanstack-router", "react19"],
|
|
654
672
|
"repoRoles": ["next-app", "react-app"],
|
|
@@ -671,7 +689,12 @@
|
|
|
671
689
|
"purpose": "Guide accessible UI primitive and wrapper behavior changes.",
|
|
672
690
|
"whenToUse": "Use for Radix primitive usage and shadcn wrapper updates.",
|
|
673
691
|
"whenNotToUse": "Do not use for backend/domain logic changes.",
|
|
674
|
-
"references": [
|
|
692
|
+
"references": [
|
|
693
|
+
"references/scope.md",
|
|
694
|
+
"references/workflow.md",
|
|
695
|
+
"https://ui.shadcn.com/docs",
|
|
696
|
+
"https://www.radix-ui.com/primitives/docs"
|
|
697
|
+
],
|
|
675
698
|
"tokenBudget": 1200,
|
|
676
699
|
"tags": ["radix", "shadcn", "react19"],
|
|
677
700
|
"repoRoles": ["next-app", "react-app"],
|
|
@@ -696,7 +719,11 @@
|
|
|
696
719
|
"purpose": "Guide style-system-safe Tailwind and SCSS module changes.",
|
|
697
720
|
"whenToUse": "Use for Tailwind token/utility and SCSS module behavior updates.",
|
|
698
721
|
"whenNotToUse": "Do not use for non-style backend/service changes.",
|
|
699
|
-
"references": [
|
|
722
|
+
"references": [
|
|
723
|
+
"references/scope.md",
|
|
724
|
+
"references/workflow.md",
|
|
725
|
+
"https://tailwindcss.com/docs"
|
|
726
|
+
],
|
|
700
727
|
"tokenBudget": 1200,
|
|
701
728
|
"tags": ["tailwind", "scss", "react19"],
|
|
702
729
|
"repoRoles": ["next-app", "react-app", "vite-app"],
|
|
@@ -722,10 +749,7 @@
|
|
|
722
749
|
"tokenBudget": 1200,
|
|
723
750
|
"tags": ["vue"],
|
|
724
751
|
"repoRoles": ["vue-app"],
|
|
725
|
-
"requiresAny": [
|
|
726
|
-
{ "stack": "vue" },
|
|
727
|
-
{ "dependency": "vue" }
|
|
728
|
-
],
|
|
752
|
+
"requiresAny": [{ "stack": "vue" }, { "dependency": "vue" }],
|
|
729
753
|
"ecosystem": "vue",
|
|
730
754
|
"tokenEstimate": 2000,
|
|
731
755
|
"installMode": "copy-selected"
|
|
@@ -743,9 +767,7 @@
|
|
|
743
767
|
"tokenBudget": 1200,
|
|
744
768
|
"tags": ["laravel-nova", "laravel"],
|
|
745
769
|
"repoRoles": ["laravel-nova-app"],
|
|
746
|
-
"requiresAny": [
|
|
747
|
-
{ "dependency": "laravel/nova" }
|
|
748
|
-
],
|
|
770
|
+
"requiresAny": [{ "dependency": "laravel/nova" }],
|
|
749
771
|
"ecosystem": "laravel",
|
|
750
772
|
"tokenEstimate": 2600,
|
|
751
773
|
"installMode": "copy-selected"
|
|
@@ -759,14 +781,15 @@
|
|
|
759
781
|
"purpose": "Guide Bedrock config/bootstrap and environment-aware WP deployment layout.",
|
|
760
782
|
"whenToUse": "Use for Bedrock config, env loading, and boot path behavior updates.",
|
|
761
783
|
"whenNotToUse": "Do not use for hook/template-only WordPress runtime changes.",
|
|
762
|
-
"references": [
|
|
784
|
+
"references": [
|
|
785
|
+
"references/scope.md",
|
|
786
|
+
"references/workflow.md",
|
|
787
|
+
"https://developer.wordpress.org/"
|
|
788
|
+
],
|
|
763
789
|
"tokenBudget": 1200,
|
|
764
790
|
"tags": ["wordpress", "bedrock"],
|
|
765
791
|
"repoRoles": ["wordpress-bedrock-site"],
|
|
766
|
-
"requiresAny": [
|
|
767
|
-
{ "role": "wordpress-bedrock-site" },
|
|
768
|
-
{ "dependency": "roots/bedrock" }
|
|
769
|
-
],
|
|
792
|
+
"requiresAny": [{ "role": "wordpress-bedrock-site" }, { "dependency": "roots/bedrock" }],
|
|
770
793
|
"ecosystem": "wordpress",
|
|
771
794
|
"tokenEstimate": 2600,
|
|
772
795
|
"installMode": "copy-selected"
|
|
@@ -780,7 +803,11 @@
|
|
|
780
803
|
"purpose": "Guide builder-field/meta-template wiring for ACF, Elementor Pro, and JetEngine.",
|
|
781
804
|
"whenToUse": "Use for ACF field groups and Elementor/JetEngine-driven dynamic template behavior.",
|
|
782
805
|
"whenNotToUse": "Do not use for generic WordPress hooks with no builder/meta impact.",
|
|
783
|
-
"references": [
|
|
806
|
+
"references": [
|
|
807
|
+
"references/scope.md",
|
|
808
|
+
"references/workflow.md",
|
|
809
|
+
"https://developer.wordpress.org/"
|
|
810
|
+
],
|
|
784
811
|
"tokenBudget": 1200,
|
|
785
812
|
"tags": ["wordpress"],
|
|
786
813
|
"repoRoles": ["wordpress-bedrock-site", "wordpress-vanilla-site"],
|
|
@@ -895,10 +922,7 @@
|
|
|
895
922
|
"tokenBudget": 1200,
|
|
896
923
|
"tags": ["yarn4", "pnpm89"],
|
|
897
924
|
"repoRoles": [],
|
|
898
|
-
"requiresAny": [
|
|
899
|
-
{ "stack": "yarn4" },
|
|
900
|
-
{ "stack": "pnpm89" }
|
|
901
|
-
],
|
|
925
|
+
"requiresAny": [{ "stack": "yarn4" }, { "stack": "pnpm89" }],
|
|
902
926
|
"tokenEstimate": 1200,
|
|
903
927
|
"installMode": "copy-selected"
|
|
904
928
|
},
|
|
@@ -936,11 +960,15 @@
|
|
|
936
960
|
"references": ["references/scope.md", "references/workflow.md", "https://vitest.dev/guide/"],
|
|
937
961
|
"tokenBudget": 1200,
|
|
938
962
|
"tags": ["testing", "vitest", "typescript"],
|
|
939
|
-
"repoRoles": [
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
963
|
+
"repoRoles": [
|
|
964
|
+
"next-app",
|
|
965
|
+
"react-app",
|
|
966
|
+
"vue-app",
|
|
967
|
+
"vite-app",
|
|
968
|
+
"vendure-app",
|
|
969
|
+
"vendure-plugin"
|
|
943
970
|
],
|
|
971
|
+
"requiresAny": [{ "stack": "vitest" }, { "dependency": "vitest" }],
|
|
944
972
|
"tokenEstimate": 1500,
|
|
945
973
|
"installMode": "copy-selected"
|
|
946
974
|
},
|
|
@@ -953,7 +981,11 @@
|
|
|
953
981
|
"purpose": "Guide Jest unit/integration test structure, mocking, and Nx-style setup.",
|
|
954
982
|
"whenToUse": "Use when writing or modifying Jest tests, including Nx workspace projects.",
|
|
955
983
|
"whenNotToUse": "Do not use for Vitest, Playwright, or PHPUnit test tasks.",
|
|
956
|
-
"references": [
|
|
984
|
+
"references": [
|
|
985
|
+
"references/scope.md",
|
|
986
|
+
"references/workflow.md",
|
|
987
|
+
"https://jestjs.io/docs/getting-started"
|
|
988
|
+
],
|
|
957
989
|
"tokenBudget": 1200,
|
|
958
990
|
"tags": ["testing", "jest", "typescript"],
|
|
959
991
|
"repoRoles": ["next-app", "react-app", "nx-monorepo"],
|
|
@@ -978,10 +1010,7 @@
|
|
|
978
1010
|
"tokenBudget": 1200,
|
|
979
1011
|
"tags": ["phpunit"],
|
|
980
1012
|
"repoRoles": ["laravel-app", "laravel-nova-app"],
|
|
981
|
-
"requiresAny": [
|
|
982
|
-
{ "stack": "phpunit" },
|
|
983
|
-
{ "dependency": "phpunit/phpunit" }
|
|
984
|
-
],
|
|
1013
|
+
"requiresAny": [{ "stack": "phpunit" }, { "dependency": "phpunit/phpunit" }],
|
|
985
1014
|
"ecosystem": "laravel",
|
|
986
1015
|
"tokenEstimate": 1500,
|
|
987
1016
|
"installMode": "copy-selected"
|
|
@@ -995,7 +1024,11 @@
|
|
|
995
1024
|
"purpose": "Guide story coverage and component API documentation updates.",
|
|
996
1025
|
"whenToUse": "Use for component stories, args/controls, and Storybook config changes.",
|
|
997
1026
|
"whenNotToUse": "Do not use for backend/service-only development tasks.",
|
|
998
|
-
"references": [
|
|
1027
|
+
"references": [
|
|
1028
|
+
"references/scope.md",
|
|
1029
|
+
"references/workflow.md",
|
|
1030
|
+
"https://storybook.js.org/docs"
|
|
1031
|
+
],
|
|
999
1032
|
"tokenBudget": 1200,
|
|
1000
1033
|
"tags": ["storybook"],
|
|
1001
1034
|
"repoRoles": ["react-app", "next-app", "vite-app"],
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Haus way of work
|
|
2
|
-
|
|
3
|
-
General instructions for every project using the Haus AI workflow.
|
|
4
|
-
|
|
5
|
-
## Context before coding
|
|
6
|
-
|
|
7
|
-
Before starting any task, orient yourself:
|
|
8
|
-
|
|
9
|
-
1. Read `.haus-workflow/project.md` for repo facts (stack, roles, package manager).
|
|
10
|
-
2. Check `.haus-workflow/recommendation.json` to see which skills and agents are active for this project.
|
|
11
|
-
3. Run `haus context --task "<task>"` to load the minimal context set for your current task.
|
|
12
|
-
|
|
13
|
-
Use `haus doctor` when hooks, context, or settings seem stale.
|
|
14
|
-
|
|
15
|
-
## Output discipline
|
|
16
|
-
|
|
17
|
-
- Write only the files the task requires. No speculative refactors.
|
|
18
|
-
- Default to no comments — only add one when the **why** is non-obvious.
|
|
19
|
-
- No multi-paragraph docstrings, no trailing summaries, no "I just did X" narration.
|
|
20
|
-
- Match the existing code style. If the repo uses tabs, use tabs.
|
|
21
|
-
|
|
22
|
-
## Commit hygiene
|
|
23
|
-
|
|
24
|
-
- Conventional Commits format: `type(scope): subject` (subject ≤ 50 chars).
|
|
25
|
-
- Body only when the why is not obvious from the diff.
|
|
26
|
-
- Never skip pre-commit hooks (`--no-verify`).
|
|
27
|
-
- One logical change per commit. Do not bundle unrelated fixes.
|
|
28
|
-
|
|
29
|
-
## Safety rails
|
|
30
|
-
|
|
31
|
-
- Never read files that look like secrets (`.env`, `*credentials*`, `*secret*`, `*token*`).
|
|
32
|
-
- Never run destructive shell commands without explicit user confirmation.
|
|
33
|
-
- Never force-push to `main` or `master`.
|
|
34
|
-
- Validate at system boundaries (user input, external APIs). Trust internal framework guarantees.
|
|
35
|
-
|
|
36
|
-
## PR workflow
|
|
37
|
-
|
|
38
|
-
- Merge each PR to `main` before starting the next branch — no stacking.
|
|
39
|
-
- Run the full test suite and `haus verify` before opening a PR.
|
|
40
|
-
- Report actual test results in the PR body — no unchecked checkboxes.
|