@haus-tech/haus-workflow 0.31.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/cli.js +1409 -479
- package/library/catalog/decisions-triggers.json +26 -0
- package/library/catalog/manifest.json +79 -22
- package/library/catalog/validation-rules.json +1 -1
- package/library/global/commands/haus-clone.md +4 -0
- package/library/global/commands/haus-cloneandsetup.md +4 -0
- package/library/global/commands/haus-doctor.md +4 -0
- package/library/global/commands/haus-fix.md +4 -0
- package/library/global/commands/haus-setup.md +4 -0
- package/library/global/settings-fragments/hooks.json +7 -0
- package/package.json +6 -6
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"decisionsDir": "docs/decisions",
|
|
3
|
+
"legacyDecisionsDir": "docs/adr",
|
|
4
|
+
"pathGlobs": [
|
|
5
|
+
"**/package.json",
|
|
6
|
+
"**/pnpm-lock.yaml",
|
|
7
|
+
"**/yarn.lock",
|
|
8
|
+
"**/package-lock.json",
|
|
9
|
+
"**/migrations/**",
|
|
10
|
+
"**/prisma/schema.prisma",
|
|
11
|
+
"**/.github/workflows/**",
|
|
12
|
+
"**/Dockerfile*",
|
|
13
|
+
"**/docker-compose*.yml",
|
|
14
|
+
"**/terraform/**",
|
|
15
|
+
"**/openapi*.yaml",
|
|
16
|
+
"**/schema.graphql"
|
|
17
|
+
],
|
|
18
|
+
"securityPathGlobs": ["**/.env.example", "**/auth/**", "**/middleware/**"],
|
|
19
|
+
"pathRegex": ["(^|/)src/.*/auth/", "(^|/)middleware/", "\\.env\\.example$"],
|
|
20
|
+
"minFilesChanged": 8,
|
|
21
|
+
"minLinesChanged": 200,
|
|
22
|
+
"exemptGlobs": ["docs/**", "tests/**", "**/*.md", ".haus-workflow/**"],
|
|
23
|
+
"requiredSections": ["## Context", "## Decision", "## Consequences"],
|
|
24
|
+
"recommendedSections": ["## Motivation (why)", "## Alternatives considered"],
|
|
25
|
+
"decisionFilePattern": "^\\d{4}-.+\\.md$"
|
|
26
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.
|
|
2
|
+
"version": "3.2.0",
|
|
3
3
|
"items": [
|
|
4
4
|
{
|
|
5
5
|
"id": "haus.agentic-workflow-standard",
|
|
6
|
-
"version": "1.0
|
|
6
|
+
"version": "1.1.0",
|
|
7
7
|
"source": "haus",
|
|
8
8
|
"type": "template",
|
|
9
9
|
"path": "templates/agentic-workflow-standard.md",
|
|
@@ -238,7 +238,7 @@
|
|
|
238
238
|
},
|
|
239
239
|
{
|
|
240
240
|
"id": "haus.bullmq-patterns",
|
|
241
|
-
"version": "1.0.
|
|
241
|
+
"version": "1.0.1",
|
|
242
242
|
"source": "haus",
|
|
243
243
|
"type": "skill",
|
|
244
244
|
"path": "skills/haus-owned/stack-patterns/bullmq-patterns",
|
|
@@ -1050,7 +1050,7 @@
|
|
|
1050
1050
|
"title": "TypeScript Reviewer",
|
|
1051
1051
|
"purpose": "Expert TypeScript/JavaScript code reviewer specializing in type safety, async correctness, Node/web security, and idiomatic patterns. Use for all TypeScript and JavaScript code changes. MUST BE USED for TypeScript/JavaScript projects.",
|
|
1052
1052
|
"whenToUse": "Expert TypeScript/JavaScript code reviewer specializing in type safety, async correctness, Node/web security, and idiomatic patterns. Use for all TypeScript and JavaScript code changes. MUST BE USED for TypeScript/JavaScript projects.",
|
|
1053
|
-
"tags": ["agent", "review", "
|
|
1053
|
+
"tags": ["agent", "review", "typescript"],
|
|
1054
1054
|
"tokenEstimate": 2270,
|
|
1055
1055
|
"ecosystem": "typescript",
|
|
1056
1056
|
"originUrl": "https://github.com/affaan-m/ECC/blob/ec92b528471df708c2384ebbcc82b390b60f535a/agents/typescript-reviewer.md",
|
|
@@ -1226,7 +1226,7 @@
|
|
|
1226
1226
|
},
|
|
1227
1227
|
{
|
|
1228
1228
|
"id": "haus.i18next-patterns",
|
|
1229
|
-
"version": "1.0.
|
|
1229
|
+
"version": "1.0.1",
|
|
1230
1230
|
"source": "haus",
|
|
1231
1231
|
"type": "skill",
|
|
1232
1232
|
"path": "skills/haus-owned/stack-patterns/i18next-patterns",
|
|
@@ -1257,7 +1257,7 @@
|
|
|
1257
1257
|
},
|
|
1258
1258
|
{
|
|
1259
1259
|
"id": "haus.laravel-nova-patterns",
|
|
1260
|
-
"version": "1.0.
|
|
1260
|
+
"version": "1.0.1",
|
|
1261
1261
|
"source": "haus",
|
|
1262
1262
|
"type": "skill",
|
|
1263
1263
|
"path": "skills/haus-owned/stack-patterns/laravel-nova-patterns",
|
|
@@ -1300,6 +1300,63 @@
|
|
|
1300
1300
|
"reviewStatus": "approved",
|
|
1301
1301
|
"riskLevel": "low"
|
|
1302
1302
|
},
|
|
1303
|
+
{
|
|
1304
|
+
"id": "haus.decision-template",
|
|
1305
|
+
"version": "1.0.0",
|
|
1306
|
+
"source": "haus",
|
|
1307
|
+
"type": "template",
|
|
1308
|
+
"path": "templates/decision-template.md",
|
|
1309
|
+
"title": "ADR decision template",
|
|
1310
|
+
"purpose": "Copy-paste skeleton for Architecture Decision Records under docs/decisions/.",
|
|
1311
|
+
"whenToUse": "When drafting a new ADR manually or seeding docs/decisions/ in a new repo.",
|
|
1312
|
+
"whenNotToUse": "Prefer `haus decisions suggest` for machine-drafted ADRs during development.",
|
|
1313
|
+
"tags": ["workflow", "project-instructions"],
|
|
1314
|
+
"repoRoles": [],
|
|
1315
|
+
"ecosystem": "general",
|
|
1316
|
+
"installMode": "copy-selected",
|
|
1317
|
+
"tokenEstimate": 180,
|
|
1318
|
+
"default": false,
|
|
1319
|
+
"reviewStatus": "approved",
|
|
1320
|
+
"riskLevel": "low"
|
|
1321
|
+
},
|
|
1322
|
+
{
|
|
1323
|
+
"id": "haus.decisions-ci-gate",
|
|
1324
|
+
"version": "1.0.1",
|
|
1325
|
+
"source": "haus",
|
|
1326
|
+
"type": "template",
|
|
1327
|
+
"path": "templates/decisions-ci-gate.yml",
|
|
1328
|
+
"title": "GitHub Actions decisions gate",
|
|
1329
|
+
"purpose": "CI job fragment that runs `haus decisions check` on pull requests.",
|
|
1330
|
+
"whenToUse": "Projects using haus ADR enforcement that need a merge-blocking decisions gate.",
|
|
1331
|
+
"whenNotToUse": "Repos without haus CLI in CI or that have not adopted docs/decisions/.",
|
|
1332
|
+
"tags": ["workflow", "quality"],
|
|
1333
|
+
"repoRoles": [],
|
|
1334
|
+
"ecosystem": "general",
|
|
1335
|
+
"installMode": "copy-selected",
|
|
1336
|
+
"tokenEstimate": 120,
|
|
1337
|
+
"default": false,
|
|
1338
|
+
"reviewStatus": "approved",
|
|
1339
|
+
"riskLevel": "low"
|
|
1340
|
+
},
|
|
1341
|
+
{
|
|
1342
|
+
"id": "haus.adr-decisions",
|
|
1343
|
+
"version": "1.0.1",
|
|
1344
|
+
"source": "haus",
|
|
1345
|
+
"type": "skill",
|
|
1346
|
+
"path": "skills/haus-owned/general/adr-decisions",
|
|
1347
|
+
"title": "ADR decisions",
|
|
1348
|
+
"purpose": "Draft and gate Architecture Decision Records when changes are decision-worthy; machine drafts, human approves.",
|
|
1349
|
+
"whenToUse": "When `haus decisions suggest` fires, adding deps/schema/auth/API changes, or answering why a choice was made.",
|
|
1350
|
+
"whenNotToUse": "Trivial edits with no architectural consequence.",
|
|
1351
|
+
"tags": ["workflow", "haus", "project-instructions"],
|
|
1352
|
+
"repoRoles": [],
|
|
1353
|
+
"ecosystem": "general",
|
|
1354
|
+
"tokenEstimate": 650,
|
|
1355
|
+
"tokenBudget": 900,
|
|
1356
|
+
"default": false,
|
|
1357
|
+
"reviewStatus": "approved",
|
|
1358
|
+
"riskLevel": "low"
|
|
1359
|
+
},
|
|
1303
1360
|
{
|
|
1304
1361
|
"id": "haus.nextauth-patterns",
|
|
1305
1362
|
"version": "1.0.0",
|
|
@@ -1332,18 +1389,18 @@
|
|
|
1332
1389
|
"riskLevel": "medium"
|
|
1333
1390
|
},
|
|
1334
1391
|
{
|
|
1335
|
-
"id": "haus.
|
|
1336
|
-
"version": "1.
|
|
1392
|
+
"id": "haus.nx-monorepo-patterns",
|
|
1393
|
+
"version": "1.1.1",
|
|
1337
1394
|
"source": "haus",
|
|
1338
1395
|
"type": "skill",
|
|
1339
|
-
"path": "skills/haus-owned/stack-patterns/
|
|
1340
|
-
"title": "Haus Nx
|
|
1396
|
+
"path": "skills/haus-owned/stack-patterns/nx-monorepo-patterns",
|
|
1397
|
+
"title": "Haus Nx monorepo patterns",
|
|
1341
1398
|
"purpose": "Guide Nx project graph, target pipeline, and workspace boundaries.",
|
|
1342
1399
|
"whenToUse": "Use for Nx workspace graph, target, and generator configuration updates.",
|
|
1343
1400
|
"whenNotToUse": "Do not use for app-only feature edits without workspace impact.",
|
|
1344
1401
|
"references": ["https://nx.dev/llms.txt"],
|
|
1345
1402
|
"tokenBudget": 1200,
|
|
1346
|
-
"tags": ["
|
|
1403
|
+
"tags": ["nx", "yarn4"],
|
|
1347
1404
|
"repoRoles": ["nx-monorepo"],
|
|
1348
1405
|
"requiresAny": [
|
|
1349
1406
|
{
|
|
@@ -1859,7 +1916,7 @@
|
|
|
1859
1916
|
},
|
|
1860
1917
|
{
|
|
1861
1918
|
"id": "haus.storybook-patterns",
|
|
1862
|
-
"version": "1.0.
|
|
1919
|
+
"version": "1.0.2",
|
|
1863
1920
|
"source": "haus",
|
|
1864
1921
|
"type": "skill",
|
|
1865
1922
|
"path": "skills/haus-owned/stack-patterns/storybook-patterns",
|
|
@@ -1890,7 +1947,7 @@
|
|
|
1890
1947
|
},
|
|
1891
1948
|
{
|
|
1892
1949
|
"id": "haus.strapi-patterns",
|
|
1893
|
-
"version": "1.0.
|
|
1950
|
+
"version": "1.0.1",
|
|
1894
1951
|
"source": "haus",
|
|
1895
1952
|
"type": "skill",
|
|
1896
1953
|
"path": "skills/haus-owned/stack-patterns/strapi-patterns",
|
|
@@ -2467,7 +2524,7 @@
|
|
|
2467
2524
|
},
|
|
2468
2525
|
{
|
|
2469
2526
|
"id": "haus.tanstack-query-router-patterns",
|
|
2470
|
-
"version": "1.0.
|
|
2527
|
+
"version": "1.0.2",
|
|
2471
2528
|
"source": "haus",
|
|
2472
2529
|
"type": "skill",
|
|
2473
2530
|
"path": "skills/haus-owned/stack-patterns/tanstack-query-router-patterns",
|
|
@@ -2498,7 +2555,7 @@
|
|
|
2498
2555
|
},
|
|
2499
2556
|
{
|
|
2500
2557
|
"id": "haus.turbo-monorepo-patterns",
|
|
2501
|
-
"version": "1.0.
|
|
2558
|
+
"version": "1.0.2",
|
|
2502
2559
|
"source": "haus",
|
|
2503
2560
|
"type": "skill",
|
|
2504
2561
|
"path": "skills/haus-owned/stack-patterns/turbo-monorepo-patterns",
|
|
@@ -2525,12 +2582,12 @@
|
|
|
2525
2582
|
"riskLevel": "low"
|
|
2526
2583
|
},
|
|
2527
2584
|
{
|
|
2528
|
-
"id": "haus.
|
|
2529
|
-
"version": "1.
|
|
2585
|
+
"id": "haus.typescript-patterns",
|
|
2586
|
+
"version": "1.2.0",
|
|
2530
2587
|
"source": "haus",
|
|
2531
2588
|
"type": "skill",
|
|
2532
|
-
"path": "skills/haus-owned/stack-patterns/
|
|
2533
|
-
"title": "Haus TypeScript
|
|
2589
|
+
"path": "skills/haus-owned/stack-patterns/typescript-patterns",
|
|
2590
|
+
"title": "Haus TypeScript patterns",
|
|
2534
2591
|
"purpose": "Guide TypeScript contract and migration-safe typing changes.",
|
|
2535
2592
|
"whenToUse": "Use for shared types, DTOs, interface boundaries, and type-safe refactors.",
|
|
2536
2593
|
"whenNotToUse": "Do not use for runtime-only changes without type-contract impact.",
|
|
@@ -2564,7 +2621,7 @@
|
|
|
2564
2621
|
},
|
|
2565
2622
|
{
|
|
2566
2623
|
"id": "haus.vendure-app-patterns",
|
|
2567
|
-
"version": "1.0.
|
|
2624
|
+
"version": "1.0.1",
|
|
2568
2625
|
"source": "haus",
|
|
2569
2626
|
"type": "skill",
|
|
2570
2627
|
"path": "skills/haus-owned/stack-patterns/vendure-app-patterns",
|
|
@@ -2592,7 +2649,7 @@
|
|
|
2592
2649
|
},
|
|
2593
2650
|
{
|
|
2594
2651
|
"id": "haus.vendure-plugin-patterns",
|
|
2595
|
-
"version": "1.0.
|
|
2652
|
+
"version": "1.0.1",
|
|
2596
2653
|
"source": "haus",
|
|
2597
2654
|
"type": "skill",
|
|
2598
2655
|
"path": "skills/haus-owned/stack-patterns/vendure-plugin-patterns",
|
|
@@ -2836,7 +2893,7 @@
|
|
|
2836
2893
|
"title": "Wshobson Typescript Advanced Types",
|
|
2837
2894
|
"purpose": "Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.",
|
|
2838
2895
|
"whenToUse": "Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.",
|
|
2839
|
-
"whenNotToUse": "Use haus.
|
|
2896
|
+
"whenNotToUse": "Use haus.typescript-patterns for contract boundaries and migration-safe typing.",
|
|
2840
2897
|
"tags": ["workflow", "typescript", "frontend", "backend"],
|
|
2841
2898
|
"repoRoles": [
|
|
2842
2899
|
"next-app",
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Clone this project's repositories onto disk (per-repo setup is separate).
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
Clone repositories for this project. Per-repo setup (install, Docker, `.env`) is a separate step that isn't wired yet — this command only gets repos onto disk.
|
|
2
6
|
|
|
3
7
|
Cloning a single repo is always `haus clone <url> [dir]`. This command picks _which_ repos to clone and runs that primitive for each. There are two modes, chosen by whether a name was given.
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Clone a project's repos and set each one up for local development.
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
Clone a project's repos **and** set each one up for local development — node version, dependencies, databases, cross-repo links, and env. This is `project:clone` followed by a per-repo setup pass and a localdev orchestration pass.
|
|
2
6
|
|
|
3
7
|
**Always ask before doing work — never assume.** Cloning and setup hit the network, need auth, and can touch databases; confirm before each phase, and respect repos the user already has.
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Set up this project with haus, conversationally — no terminal needed.
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
Set up this project with haus, conversationally. The person you're helping may
|
|
2
6
|
not be a developer — never make them open a terminal or read JSON. You run the
|
|
3
7
|
commands; they read plain language and approve.
|
|
@@ -14,6 +14,13 @@
|
|
|
14
14
|
"event": "PreToolUse",
|
|
15
15
|
"matcher": "Bash",
|
|
16
16
|
"command": "haus guard bash --from-hook"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "hook.decisions.suggest",
|
|
20
|
+
"gate": "keep",
|
|
21
|
+
"event": "Stop",
|
|
22
|
+
"matcher": "*",
|
|
23
|
+
"command": "haus decisions suggest --from-hook"
|
|
17
24
|
}
|
|
18
25
|
]
|
|
19
26
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haus-tech/haus-workflow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.0",
|
|
4
4
|
"description": "Haus AI workflow CLI for Claude Code.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -41,17 +41,17 @@
|
|
|
41
41
|
"security:audit": "yarn npm audit -A -R --severity high --environment production"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@inquirer/checkbox": "5.1
|
|
44
|
+
"@inquirer/checkbox": "5.2.1",
|
|
45
45
|
"commander": "13.1.0",
|
|
46
46
|
"diff": "8.0.4",
|
|
47
47
|
"execa": "9.6.1",
|
|
48
48
|
"fast-glob": "3.3.3",
|
|
49
49
|
"fs-extra": "11.3.5",
|
|
50
50
|
"semver": "7.8.0",
|
|
51
|
-
"yaml": "2.
|
|
51
|
+
"yaml": "2.9.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@release-it/conventional-changelog": "11.0.
|
|
54
|
+
"@release-it/conventional-changelog": "11.0.1",
|
|
55
55
|
"@types/fs-extra": "11.0.4",
|
|
56
56
|
"@types/node": "22.19.17",
|
|
57
57
|
"@types/semver": "7.7.1",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"eslint": "9.39.4",
|
|
63
63
|
"eslint-plugin-import": "2.32.0",
|
|
64
64
|
"lefthook": "1.13.6",
|
|
65
|
-
"prettier": "3.8.
|
|
66
|
-
"release-it": "20.0
|
|
65
|
+
"prettier": "3.8.4",
|
|
66
|
+
"release-it": "20.2.0",
|
|
67
67
|
"tsx": "4.22.4",
|
|
68
68
|
"typescript": "5.9.3"
|
|
69
69
|
},
|