@haus-tech/haus-workflow 0.1.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 +1 -0
- package/README.md +60 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +3232 -0
- package/docs/user-guide.md +176 -0
- package/library/catalog/allowed-stacks.json +73 -0
- package/library/catalog/haus-lock.schema.json +43 -0
- package/library/catalog/manifest.json +696 -0
- package/library/catalog/sources.yaml +411 -0
- package/library/global/agents/haus-code-reviewer.md +27 -0
- package/library/global/agents/haus-docs-researcher.md +26 -0
- package/library/global/agents/haus-planner.md +26 -0
- package/library/global/agents/haus-security-reviewer.md +26 -0
- package/library/global/agents/haus-test-reviewer.md +26 -0
- package/library/global/settings-fragments/hooks.json +31 -0
- package/library/global/skills/haus-workflow/SKILL.md +56 -0
- package/library/global/templates/haus-way-of-work.md +40 -0
- package/package.json +88 -0
- package/tests/README.md +70 -0
- package/tests/fixtures/catalog/agents/code-reviewer.md +15 -0
- package/tests/fixtures/catalog/agents/docs-researcher.md +15 -0
- package/tests/fixtures/catalog/agents/planner.md +15 -0
- package/tests/fixtures/catalog/agents/security-reviewer.md +15 -0
- package/tests/fixtures/catalog/agents/test-reviewer.md +15 -0
- package/tests/fixtures/catalog/manifest.json +696 -0
- package/tests/fixtures/catalog/skills/auth-oidc-azure-bankid-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/database-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/dotnet-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/dotnet-service-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/global-engineering-rules/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/laravel-nova-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/laravel-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/nestjs-graphql-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/nextjs-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/nx21-monorepo-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/package-manager-yarn4-pnpm89/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/phpunit-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/playwright-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/production-readiness-review/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/radix-shadcn-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/react19-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/security-review/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/storybook-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/tailwind-scss-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/tanstack-query-router-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/testing-library-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/turbo-monorepo-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/typescript6-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/vendure-app-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/vendure-plugin-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/vite8-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/vue-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/wordpress-acf-elementor-jetengine-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/wordpress-bedrock-patterns/SKILL.md +9 -0
- package/tests/fixtures/catalog/skills/wordpress-patterns/SKILL.md +9 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
sources:
|
|
2
|
+
- id: anthropic-skills
|
|
3
|
+
url: https://github.com/anthropics/skills
|
|
4
|
+
policy: reference
|
|
5
|
+
status: approved
|
|
6
|
+
pinnedVersion: "2026-05-01"
|
|
7
|
+
pinnedHash: "sha256-candidate-anthropic"
|
|
8
|
+
license: MIT
|
|
9
|
+
notes: official provider skill examples and formats only
|
|
10
|
+
containsStacks:
|
|
11
|
+
- claude-code
|
|
12
|
+
unsafeHookCommands: []
|
|
13
|
+
# Curated library fields
|
|
14
|
+
useMode: adapt-allowed
|
|
15
|
+
installMode: candidate
|
|
16
|
+
riskLevel: low
|
|
17
|
+
- id: superpowers
|
|
18
|
+
url: https://github.com/obra/superpowers
|
|
19
|
+
policy: rewrite
|
|
20
|
+
status: approved
|
|
21
|
+
pinnedVersion: "2026-05-01"
|
|
22
|
+
pinnedHash: "sha256-candidate-superpowers"
|
|
23
|
+
license: MIT
|
|
24
|
+
notes: curate workflow patterns then rewrite into haus-owned skills
|
|
25
|
+
containsStacks:
|
|
26
|
+
- workflow
|
|
27
|
+
- testing
|
|
28
|
+
- context-minimisation
|
|
29
|
+
unsafeHookCommands: []
|
|
30
|
+
# Curated library fields
|
|
31
|
+
useMode: rewrite-only
|
|
32
|
+
installMode: candidate
|
|
33
|
+
riskLevel: low
|
|
34
|
+
- id: ecc
|
|
35
|
+
url: https://ecc.tools/skills
|
|
36
|
+
policy: candidate-only
|
|
37
|
+
status: candidate
|
|
38
|
+
pinnedVersion: "2026-05-01"
|
|
39
|
+
pinnedHash: "sha256-candidate-ecc"
|
|
40
|
+
license: unknown
|
|
41
|
+
notes: candidate source only pending legal review
|
|
42
|
+
containsStacks:
|
|
43
|
+
- token-budgeting
|
|
44
|
+
- context-minimisation
|
|
45
|
+
unsafeHookCommands: []
|
|
46
|
+
# Curated library fields
|
|
47
|
+
useMode: reference
|
|
48
|
+
installMode: not-installable
|
|
49
|
+
riskLevel: medium
|
|
50
|
+
- id: skills-sh
|
|
51
|
+
url: https://skills.sh/
|
|
52
|
+
policy: candidate-only
|
|
53
|
+
status: candidate
|
|
54
|
+
pinnedVersion: "2026-05-01"
|
|
55
|
+
pinnedHash: "sha256-candidate-skills-sh"
|
|
56
|
+
license: unknown
|
|
57
|
+
notes: discovery index only
|
|
58
|
+
containsStacks:
|
|
59
|
+
- discovery-index
|
|
60
|
+
unsafeHookCommands: []
|
|
61
|
+
# Curated library fields
|
|
62
|
+
useMode: reference
|
|
63
|
+
installMode: not-installable
|
|
64
|
+
riskLevel: medium
|
|
65
|
+
- id: prpm
|
|
66
|
+
url: https://prpm.dev/
|
|
67
|
+
policy: candidate-only
|
|
68
|
+
status: candidate
|
|
69
|
+
pinnedVersion: "2026-05-01"
|
|
70
|
+
pinnedHash: "sha256-candidate-prpm"
|
|
71
|
+
license: unknown
|
|
72
|
+
notes: discovery index only
|
|
73
|
+
containsStacks:
|
|
74
|
+
- discovery-index
|
|
75
|
+
unsafeHookCommands: []
|
|
76
|
+
# Curated library fields
|
|
77
|
+
useMode: reference
|
|
78
|
+
installMode: not-installable
|
|
79
|
+
riskLevel: medium
|
|
80
|
+
- id: jeffallan-skills
|
|
81
|
+
url: https://github.com/jeffallan
|
|
82
|
+
policy: candidate-only
|
|
83
|
+
status: candidate
|
|
84
|
+
pinnedVersion: "2026-05-01"
|
|
85
|
+
pinnedHash: "sha256-candidate-jeffallan"
|
|
86
|
+
license: unknown
|
|
87
|
+
notes: organization and naming ideas only
|
|
88
|
+
containsStacks:
|
|
89
|
+
- workflow
|
|
90
|
+
- discovery-index
|
|
91
|
+
unsafeHookCommands: []
|
|
92
|
+
# Curated library fields
|
|
93
|
+
useMode: reference
|
|
94
|
+
installMode: not-installable
|
|
95
|
+
riskLevel: medium
|
|
96
|
+
- id: skillkit
|
|
97
|
+
url: https://skillkit.dev/
|
|
98
|
+
policy: candidate-only
|
|
99
|
+
status: candidate
|
|
100
|
+
pinnedVersion: "2026-05-01"
|
|
101
|
+
pinnedHash: "sha256-candidate-skillkit"
|
|
102
|
+
license: unknown
|
|
103
|
+
notes: packaging and validation inspiration only
|
|
104
|
+
containsStacks:
|
|
105
|
+
- workflow
|
|
106
|
+
- validation
|
|
107
|
+
unsafeHookCommands: []
|
|
108
|
+
# Curated library fields
|
|
109
|
+
useMode: reference
|
|
110
|
+
installMode: not-installable
|
|
111
|
+
riskLevel: medium
|
|
112
|
+
- id: voltagent
|
|
113
|
+
url: https://voltagent.dev/
|
|
114
|
+
policy: candidate-only
|
|
115
|
+
status: candidate
|
|
116
|
+
pinnedVersion: "2026-05-01"
|
|
117
|
+
pinnedHash: "sha256-candidate-voltagent"
|
|
118
|
+
license: unknown
|
|
119
|
+
notes: Python-first agent framework; all primitives rejected due to unsupported stack
|
|
120
|
+
containsStacks:
|
|
121
|
+
- agents
|
|
122
|
+
unsafeHookCommands: []
|
|
123
|
+
# Curated library fields
|
|
124
|
+
useMode: reference
|
|
125
|
+
installMode: not-installable
|
|
126
|
+
riskLevel: medium
|
|
127
|
+
- id: everything-cc
|
|
128
|
+
url: https://everything.cc/
|
|
129
|
+
policy: candidate-only
|
|
130
|
+
status: candidate
|
|
131
|
+
pinnedVersion: "2026-05-01"
|
|
132
|
+
pinnedHash: "sha256-candidate-everything-cc"
|
|
133
|
+
license: unknown
|
|
134
|
+
notes: community Claude skill collection index; discovery reference only
|
|
135
|
+
containsStacks:
|
|
136
|
+
- discovery-index
|
|
137
|
+
unsafeHookCommands: []
|
|
138
|
+
# Curated library fields
|
|
139
|
+
useMode: reference
|
|
140
|
+
installMode: not-installable
|
|
141
|
+
riskLevel: medium
|
|
142
|
+
- id: claude-docs
|
|
143
|
+
url: https://docs.anthropic.com/
|
|
144
|
+
policy: reference
|
|
145
|
+
status: approved
|
|
146
|
+
pinnedVersion: "2026-05-01"
|
|
147
|
+
pinnedHash: "sha256-candidate-claude-docs"
|
|
148
|
+
license: unknown
|
|
149
|
+
notes: official Anthropic documentation; reference-only, no artifact copy
|
|
150
|
+
containsStacks:
|
|
151
|
+
- claude-code
|
|
152
|
+
- mcp
|
|
153
|
+
unsafeHookCommands: []
|
|
154
|
+
# Curated library fields
|
|
155
|
+
useMode: reference
|
|
156
|
+
installMode: not-installable
|
|
157
|
+
riskLevel: low
|
|
158
|
+
# ── Stack-specific official docs (PR10) ─────────────────────────────────
|
|
159
|
+
- id: vendure-docs
|
|
160
|
+
url: https://docs.vendure.io/
|
|
161
|
+
policy: reference
|
|
162
|
+
status: approved
|
|
163
|
+
pinnedVersion: "2026-05-13"
|
|
164
|
+
pinnedHash: "sha256-candidate-vendure-docs"
|
|
165
|
+
license: unknown
|
|
166
|
+
notes: official Vendure documentation; reference-only, includes llms.txt
|
|
167
|
+
containsStacks:
|
|
168
|
+
- vendure3
|
|
169
|
+
unsafeHookCommands: []
|
|
170
|
+
useMode: reference
|
|
171
|
+
installMode: not-installable
|
|
172
|
+
riskLevel: low
|
|
173
|
+
- id: nextjs-docs
|
|
174
|
+
url: https://nextjs.org/
|
|
175
|
+
policy: reference
|
|
176
|
+
status: approved
|
|
177
|
+
pinnedVersion: "2026-05-13"
|
|
178
|
+
pinnedHash: "sha256-candidate-nextjs-docs"
|
|
179
|
+
license: unknown
|
|
180
|
+
notes: official Next.js documentation; reference-only, includes llms.txt
|
|
181
|
+
containsStacks:
|
|
182
|
+
- nextjs
|
|
183
|
+
unsafeHookCommands: []
|
|
184
|
+
useMode: reference
|
|
185
|
+
installMode: not-installable
|
|
186
|
+
riskLevel: low
|
|
187
|
+
- id: laravel-docs
|
|
188
|
+
url: https://laravel.com/
|
|
189
|
+
policy: reference
|
|
190
|
+
status: approved
|
|
191
|
+
pinnedVersion: "2026-05-13"
|
|
192
|
+
pinnedHash: "sha256-candidate-laravel-docs"
|
|
193
|
+
license: unknown
|
|
194
|
+
notes: official Laravel documentation; reference-only
|
|
195
|
+
containsStacks:
|
|
196
|
+
- laravel
|
|
197
|
+
unsafeHookCommands: []
|
|
198
|
+
useMode: reference
|
|
199
|
+
installMode: not-installable
|
|
200
|
+
riskLevel: low
|
|
201
|
+
- id: tailwind-docs
|
|
202
|
+
url: https://tailwindcss.com/
|
|
203
|
+
policy: reference
|
|
204
|
+
status: approved
|
|
205
|
+
pinnedVersion: "2026-05-13"
|
|
206
|
+
pinnedHash: "sha256-candidate-tailwind-docs"
|
|
207
|
+
license: unknown
|
|
208
|
+
notes: official Tailwind CSS documentation; reference-only
|
|
209
|
+
containsStacks:
|
|
210
|
+
- tailwind
|
|
211
|
+
unsafeHookCommands: []
|
|
212
|
+
useMode: reference
|
|
213
|
+
installMode: not-installable
|
|
214
|
+
riskLevel: low
|
|
215
|
+
- id: shadcn-docs
|
|
216
|
+
url: https://ui.shadcn.com/
|
|
217
|
+
policy: reference
|
|
218
|
+
status: approved
|
|
219
|
+
pinnedVersion: "2026-05-13"
|
|
220
|
+
pinnedHash: "sha256-candidate-shadcn-docs"
|
|
221
|
+
license: unknown
|
|
222
|
+
notes: official shadcn/ui documentation; reference-only
|
|
223
|
+
containsStacks:
|
|
224
|
+
- shadcn
|
|
225
|
+
unsafeHookCommands: []
|
|
226
|
+
useMode: reference
|
|
227
|
+
installMode: not-installable
|
|
228
|
+
riskLevel: low
|
|
229
|
+
- id: radix-docs
|
|
230
|
+
url: https://www.radix-ui.com/
|
|
231
|
+
policy: reference
|
|
232
|
+
status: approved
|
|
233
|
+
pinnedVersion: "2026-05-13"
|
|
234
|
+
pinnedHash: "sha256-candidate-radix-docs"
|
|
235
|
+
license: unknown
|
|
236
|
+
notes: official Radix UI primitives documentation; reference-only
|
|
237
|
+
containsStacks:
|
|
238
|
+
- radix
|
|
239
|
+
unsafeHookCommands: []
|
|
240
|
+
useMode: reference
|
|
241
|
+
installMode: not-installable
|
|
242
|
+
riskLevel: low
|
|
243
|
+
- id: playwright-docs
|
|
244
|
+
url: https://playwright.dev/
|
|
245
|
+
policy: reference
|
|
246
|
+
status: approved
|
|
247
|
+
pinnedVersion: "2026-05-13"
|
|
248
|
+
pinnedHash: "sha256-candidate-playwright-docs"
|
|
249
|
+
license: unknown
|
|
250
|
+
notes: official Playwright documentation; reference-only
|
|
251
|
+
containsStacks:
|
|
252
|
+
- playwright
|
|
253
|
+
unsafeHookCommands: []
|
|
254
|
+
useMode: reference
|
|
255
|
+
installMode: not-installable
|
|
256
|
+
riskLevel: low
|
|
257
|
+
- id: tanstack-docs
|
|
258
|
+
url: https://tanstack.com/
|
|
259
|
+
policy: reference
|
|
260
|
+
status: approved
|
|
261
|
+
pinnedVersion: "2026-05-13"
|
|
262
|
+
pinnedHash: "sha256-candidate-tanstack-docs"
|
|
263
|
+
license: unknown
|
|
264
|
+
notes: official TanStack (Query + Router) documentation; reference-only
|
|
265
|
+
containsStacks:
|
|
266
|
+
- tanstack-query
|
|
267
|
+
- tanstack-router
|
|
268
|
+
unsafeHookCommands: []
|
|
269
|
+
useMode: reference
|
|
270
|
+
installMode: not-installable
|
|
271
|
+
riskLevel: low
|
|
272
|
+
- id: nestjs-docs
|
|
273
|
+
url: https://docs.nestjs.com/
|
|
274
|
+
policy: reference
|
|
275
|
+
status: approved
|
|
276
|
+
pinnedVersion: "2026-05-13"
|
|
277
|
+
pinnedHash: "sha256-candidate-nestjs-docs"
|
|
278
|
+
license: unknown
|
|
279
|
+
notes: official NestJS documentation; reference-only
|
|
280
|
+
containsStacks:
|
|
281
|
+
- nestjs
|
|
282
|
+
unsafeHookCommands: []
|
|
283
|
+
useMode: reference
|
|
284
|
+
installMode: not-installable
|
|
285
|
+
riskLevel: low
|
|
286
|
+
- id: nx-docs
|
|
287
|
+
url: https://nx.dev/
|
|
288
|
+
policy: reference
|
|
289
|
+
status: approved
|
|
290
|
+
pinnedVersion: "2026-05-13"
|
|
291
|
+
pinnedHash: "sha256-candidate-nx-docs"
|
|
292
|
+
license: unknown
|
|
293
|
+
notes: official Nx documentation; reference-only
|
|
294
|
+
containsStacks:
|
|
295
|
+
- nx21
|
|
296
|
+
unsafeHookCommands: []
|
|
297
|
+
useMode: reference
|
|
298
|
+
installMode: not-installable
|
|
299
|
+
riskLevel: low
|
|
300
|
+
- id: turbo-docs
|
|
301
|
+
url: https://turbo.build/
|
|
302
|
+
policy: reference
|
|
303
|
+
status: approved
|
|
304
|
+
pinnedVersion: "2026-05-13"
|
|
305
|
+
pinnedHash: "sha256-candidate-turbo-docs"
|
|
306
|
+
license: unknown
|
|
307
|
+
notes: official Turborepo documentation; reference-only
|
|
308
|
+
containsStacks:
|
|
309
|
+
- turbo
|
|
310
|
+
unsafeHookCommands: []
|
|
311
|
+
useMode: reference
|
|
312
|
+
installMode: not-installable
|
|
313
|
+
riskLevel: low
|
|
314
|
+
- id: vite-docs
|
|
315
|
+
url: https://vite.dev/
|
|
316
|
+
policy: reference
|
|
317
|
+
status: approved
|
|
318
|
+
pinnedVersion: "2026-05-13"
|
|
319
|
+
pinnedHash: "sha256-candidate-vite-docs"
|
|
320
|
+
license: unknown
|
|
321
|
+
notes: official Vite documentation; reference-only
|
|
322
|
+
containsStacks:
|
|
323
|
+
- vite8
|
|
324
|
+
unsafeHookCommands: []
|
|
325
|
+
useMode: reference
|
|
326
|
+
installMode: not-installable
|
|
327
|
+
riskLevel: low
|
|
328
|
+
- id: vue-docs
|
|
329
|
+
url: https://vuejs.org/
|
|
330
|
+
policy: reference
|
|
331
|
+
status: approved
|
|
332
|
+
pinnedVersion: "2026-05-13"
|
|
333
|
+
pinnedHash: "sha256-candidate-vue-docs"
|
|
334
|
+
license: unknown
|
|
335
|
+
notes: official Vue.js documentation; reference-only
|
|
336
|
+
containsStacks:
|
|
337
|
+
- vue
|
|
338
|
+
unsafeHookCommands: []
|
|
339
|
+
useMode: reference
|
|
340
|
+
installMode: not-installable
|
|
341
|
+
riskLevel: low
|
|
342
|
+
- id: wordpress-dev-docs
|
|
343
|
+
url: https://developer.wordpress.org/
|
|
344
|
+
policy: reference
|
|
345
|
+
status: approved
|
|
346
|
+
pinnedVersion: "2026-05-13"
|
|
347
|
+
pinnedHash: "sha256-candidate-wordpress-dev-docs"
|
|
348
|
+
license: unknown
|
|
349
|
+
notes: official WordPress developer documentation; reference-only
|
|
350
|
+
containsStacks:
|
|
351
|
+
- wordpress
|
|
352
|
+
unsafeHookCommands: []
|
|
353
|
+
useMode: reference
|
|
354
|
+
installMode: not-installable
|
|
355
|
+
riskLevel: low
|
|
356
|
+
- id: vitest-docs
|
|
357
|
+
url: https://vitest.dev/
|
|
358
|
+
policy: reference
|
|
359
|
+
status: approved
|
|
360
|
+
pinnedVersion: "2026-05-13"
|
|
361
|
+
pinnedHash: "sha256-candidate-vitest-docs"
|
|
362
|
+
license: unknown
|
|
363
|
+
notes: official Vitest documentation; reference-only
|
|
364
|
+
containsStacks:
|
|
365
|
+
- vite8
|
|
366
|
+
unsafeHookCommands: []
|
|
367
|
+
useMode: reference
|
|
368
|
+
installMode: not-installable
|
|
369
|
+
riskLevel: low
|
|
370
|
+
- id: typescript-docs
|
|
371
|
+
url: https://www.typescriptlang.org/
|
|
372
|
+
policy: reference
|
|
373
|
+
status: approved
|
|
374
|
+
pinnedVersion: "2026-05-13"
|
|
375
|
+
pinnedHash: "sha256-candidate-typescript-docs"
|
|
376
|
+
license: unknown
|
|
377
|
+
notes: official TypeScript documentation; reference-only
|
|
378
|
+
containsStacks:
|
|
379
|
+
- typescript
|
|
380
|
+
unsafeHookCommands: []
|
|
381
|
+
useMode: reference
|
|
382
|
+
installMode: not-installable
|
|
383
|
+
riskLevel: low
|
|
384
|
+
- id: storybook-docs
|
|
385
|
+
url: https://storybook.js.org/
|
|
386
|
+
policy: reference
|
|
387
|
+
status: approved
|
|
388
|
+
pinnedVersion: "2026-05-13"
|
|
389
|
+
pinnedHash: "sha256-candidate-storybook-docs"
|
|
390
|
+
license: unknown
|
|
391
|
+
notes: official Storybook documentation; reference-only
|
|
392
|
+
containsStacks:
|
|
393
|
+
- storybook
|
|
394
|
+
unsafeHookCommands: []
|
|
395
|
+
useMode: reference
|
|
396
|
+
installMode: not-installable
|
|
397
|
+
riskLevel: low
|
|
398
|
+
- id: react-docs
|
|
399
|
+
url: https://react.dev/
|
|
400
|
+
policy: reference
|
|
401
|
+
status: approved
|
|
402
|
+
pinnedVersion: "2026-05-13"
|
|
403
|
+
pinnedHash: "sha256-candidate-react-docs"
|
|
404
|
+
license: unknown
|
|
405
|
+
notes: official React documentation; reference-only
|
|
406
|
+
containsStacks:
|
|
407
|
+
- react
|
|
408
|
+
unsafeHookCommands: []
|
|
409
|
+
useMode: reference
|
|
410
|
+
installMode: not-installable
|
|
411
|
+
riskLevel: low
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!-- HAUS-MANAGED id=agent.haus-code-reviewer v=1 source=@haus-tech/haus-workflow@0.1.0 -->
|
|
2
|
+
---
|
|
3
|
+
name: haus-code-reviewer
|
|
4
|
+
description: Narrow diff review for correctness, regressions, and missing tests.
|
|
5
|
+
tools: Read, Grep, Glob, Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the Haus code reviewer. Work only from the user-supplied diff or explicitly listed paths.
|
|
9
|
+
|
|
10
|
+
## Use when
|
|
11
|
+
|
|
12
|
+
- User asks for code review, PR feedback, or risk check on a bounded change set.
|
|
13
|
+
- There is a concrete diff, patch, or file list to inspect.
|
|
14
|
+
|
|
15
|
+
## Do not use when
|
|
16
|
+
|
|
17
|
+
- There is no change set and user wants open-ended exploration.
|
|
18
|
+
- Task is purely security-only (use haus-security-reviewer) or test-only (use haus-test-reviewer).
|
|
19
|
+
|
|
20
|
+
## Verification
|
|
21
|
+
|
|
22
|
+
1. List files you actually read.
|
|
23
|
+
2. Output findings ordered by severity (blocker, high, medium, low).
|
|
24
|
+
3. Each finding: file path, issue, concrete fix.
|
|
25
|
+
4. End with **Not reviewed** (scopes you skipped) and **Suggested commands** to validate (do not claim ran unless user output shows it).
|
|
26
|
+
|
|
27
|
+
Stay bounded: do not expand scope without user confirmation.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- HAUS-MANAGED id=agent.haus-docs-researcher v=1 source=@haus-tech/haus-workflow@0.1.0 -->
|
|
2
|
+
---
|
|
3
|
+
name: haus-docs-researcher
|
|
4
|
+
description: Pull minimal official or in-repo documentation for the active task.
|
|
5
|
+
tools: Read, Grep, Glob, Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the Haus docs researcher. Collect only what unblocks the current task.
|
|
9
|
+
|
|
10
|
+
## Use when
|
|
11
|
+
|
|
12
|
+
- User needs API behavior, config keys, or framework semantics for a named task.
|
|
13
|
+
- Sources are official docs or files already in the repo.
|
|
14
|
+
|
|
15
|
+
## Do not use when
|
|
16
|
+
|
|
17
|
+
- User wants a full tutorial or broad survey.
|
|
18
|
+
- Task is implementation without an information gap.
|
|
19
|
+
|
|
20
|
+
## Verification
|
|
21
|
+
|
|
22
|
+
1. State the precise question.
|
|
23
|
+
2. Return at most 5 bullets; each bullet cites **path or URL + section** you used.
|
|
24
|
+
3. If insufficient: say what is missing and ask one clarifying question.
|
|
25
|
+
|
|
26
|
+
Do not paste large doc bodies; summarize and point to locations.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- HAUS-MANAGED id=agent.haus-planner v=1 source=@haus-tech/haus-workflow@0.1.0 -->
|
|
2
|
+
---
|
|
3
|
+
name: haus-planner
|
|
4
|
+
description: Produce a short implementation plan with files, risks, and validation steps.
|
|
5
|
+
tools: Read, Grep, Glob, Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the Haus planner. Plans only: no file edits unless user explicitly asks.
|
|
9
|
+
|
|
10
|
+
## Use when
|
|
11
|
+
|
|
12
|
+
- User wants a sequenced plan before coding for a defined task.
|
|
13
|
+
- Enough context exists (task text + relevant paths or scan output).
|
|
14
|
+
|
|
15
|
+
## Do not use when
|
|
16
|
+
|
|
17
|
+
- Requirements conflict or scope is undefined — stop and ask first.
|
|
18
|
+
- User asked for immediate implementation without planning.
|
|
19
|
+
|
|
20
|
+
## Verification
|
|
21
|
+
|
|
22
|
+
1. Output: **Goal**, **Steps** (ordered, each names files or areas), **Risks**, **Validation** (commands or checks).
|
|
23
|
+
2. If two approaches differ: present **Option A / Option B** and one recommendation; stop if trade-off needs user call.
|
|
24
|
+
3. Keep plan short enough to execute in one focused session.
|
|
25
|
+
|
|
26
|
+
Single-threaded reasoning only: one plan path unless user chooses an option.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- HAUS-MANAGED id=agent.haus-security-reviewer v=1 source=@haus-tech/haus-workflow@0.1.0 -->
|
|
2
|
+
---
|
|
3
|
+
name: haus-security-reviewer
|
|
4
|
+
description: Narrow security review for secrets, auth, injection, and unsafe operations in a bounded scope.
|
|
5
|
+
tools: Read, Grep, Glob, Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the Haus security reviewer. Evidence only: cite file and line or pattern.
|
|
9
|
+
|
|
10
|
+
## Use when
|
|
11
|
+
|
|
12
|
+
- User asks for security review on specific paths, diff, or feature area.
|
|
13
|
+
- Scope is bounded (directory list or change list).
|
|
14
|
+
|
|
15
|
+
## Do not use when
|
|
16
|
+
|
|
17
|
+
- User wants penetration testing or exploit development.
|
|
18
|
+
- No scope: refuse and ask for paths or diff.
|
|
19
|
+
|
|
20
|
+
## Verification
|
|
21
|
+
|
|
22
|
+
1. Group findings: secrets/credentials, authz/authn, injection, deserialization, unsafe file or shell access.
|
|
23
|
+
2. Each finding: severity, file path, why it matters, minimal mitigation (no step-by-step exploit).
|
|
24
|
+
3. End with **Out of scope** (what you did not check) and **Recommended follow-up** (manual checks, dependency audit).
|
|
25
|
+
|
|
26
|
+
Never read `.env`, key files, or production dumps unless user explicitly points to sanitized snippets.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- HAUS-MANAGED id=agent.haus-test-reviewer v=1 source=@haus-tech/haus-workflow@0.1.0 -->
|
|
2
|
+
---
|
|
3
|
+
name: haus-test-reviewer
|
|
4
|
+
description: Narrow review of tests, assertions, and coverage for a behavior change.
|
|
5
|
+
tools: Read, Grep, Glob, Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the Haus test reviewer. Tie every behavior claim to an observable test.
|
|
9
|
+
|
|
10
|
+
## Use when
|
|
11
|
+
|
|
12
|
+
- User asks for test review, missing coverage, flaky tests, or assertion quality on named files.
|
|
13
|
+
- A behavior change and its intended tests are identifiable.
|
|
14
|
+
|
|
15
|
+
## Do not use when
|
|
16
|
+
|
|
17
|
+
- No code or test paths are specified.
|
|
18
|
+
- User wants product or security audit without test focus.
|
|
19
|
+
|
|
20
|
+
## Verification
|
|
21
|
+
|
|
22
|
+
1. Map each changed behavior to an existing or missing test file; name exact paths to add or extend.
|
|
23
|
+
2. Flag flaky patterns (timing sleeps, shared mutable state, order-dependent suites).
|
|
24
|
+
3. Close with **Tests to add** (bullet list with file paths) and **Commands** user should run (e.g. project test script); do not claim pass without evidence.
|
|
25
|
+
|
|
26
|
+
Do not rewrite production code unless user explicitly asks.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_schema": "haus-hooks-fragment/1",
|
|
3
|
+
"hooks": [
|
|
4
|
+
{
|
|
5
|
+
"id": "hook.guard.file-access",
|
|
6
|
+
"gate": "keep",
|
|
7
|
+
"event": "PreToolUse",
|
|
8
|
+
"matcher": "Read|Edit|Write",
|
|
9
|
+
"command": "haus guard file-access --from-hook"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "hook.guard.bash",
|
|
13
|
+
"gate": "keep",
|
|
14
|
+
"event": "PreToolUse",
|
|
15
|
+
"matcher": "Bash",
|
|
16
|
+
"command": "haus guard bash --from-hook"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "hook.context",
|
|
20
|
+
"gate": "gate-default-off",
|
|
21
|
+
"event": "UserPromptSubmit",
|
|
22
|
+
"command": "haus context --from-hook"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "hook.memory-inject",
|
|
26
|
+
"gate": "gate-default-off",
|
|
27
|
+
"event": "UserPromptSubmit",
|
|
28
|
+
"command": "haus memory inject --from-hook"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- HAUS-MANAGED id=skill.haus-workflow v=1 source=@haus-tech/haus-workflow@0.1.0 -->
|
|
2
|
+
---
|
|
3
|
+
name: haus-workflow
|
|
4
|
+
description: Haus all-in-one workflow skill. Handles project setup, update, catalog refresh, and CLAUDE.md regeneration.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# haus-workflow
|
|
8
|
+
|
|
9
|
+
All-in-one entry point for the Haus AI workflow. Covers setup, update, sync, catalog refresh, and root `CLAUDE.md` regeneration.
|
|
10
|
+
|
|
11
|
+
## Use when
|
|
12
|
+
|
|
13
|
+
- Setting up a project for the first time (`haus init`).
|
|
14
|
+
- Updating an existing project setup (`.claude/` + `.haus-workflow/`).
|
|
15
|
+
- Checking for a newer `@haus-tech/haus-workflow` package and refreshing `~/.claude/` accordingly.
|
|
16
|
+
- Fetching catalog updates (`haus update`).
|
|
17
|
+
- Regenerating the root `CLAUDE.md` import block.
|
|
18
|
+
|
|
19
|
+
## Do not use when
|
|
20
|
+
|
|
21
|
+
- User needs a security, code, or test review — use the dedicated reviewer agents instead.
|
|
22
|
+
|
|
23
|
+
## How to invoke
|
|
24
|
+
|
|
25
|
+
Run the relevant CLI command for the task:
|
|
26
|
+
|
|
27
|
+
| Goal | Command |
|
|
28
|
+
|---|---|
|
|
29
|
+
| First-time project setup | `haus init` |
|
|
30
|
+
| Re-run setup / refresh context | `haus apply --write` |
|
|
31
|
+
| Update package + catalog + `~/.claude/` | `haus update` |
|
|
32
|
+
| Check install drift | `haus doctor` |
|
|
33
|
+
| Install global haus files into `~/.claude/` | `haus install` |
|
|
34
|
+
| Remove all haus global files | `haus uninstall` |
|
|
35
|
+
|
|
36
|
+
## Setup flow (init)
|
|
37
|
+
|
|
38
|
+
1. Run `haus init` in the project root.
|
|
39
|
+
2. Haus scans the repo, generates `.haus-workflow/context-map.json` and `.haus-workflow/recommendation.json`.
|
|
40
|
+
3. Writes `.haus-workflow/haus-way-of-work.md` (from catalog template) and `.haus-workflow/project.md`.
|
|
41
|
+
4. Ensures root `CLAUDE.md` contains the `<!-- HAUS:BEGIN haus-imports -->` block with `@import` lines.
|
|
42
|
+
5. Prints a summary; user confirms before writes.
|
|
43
|
+
|
|
44
|
+
## Update flow
|
|
45
|
+
|
|
46
|
+
`haus update` runs in order:
|
|
47
|
+
1. Checks installed npm package version vs. latest on registry. If newer: prints `npm i -g @haus-tech/haus-workflow` instruction.
|
|
48
|
+
2. After any version change, re-runs `haus install` to refresh `~/.claude/` haus files.
|
|
49
|
+
3. Fetches latest catalog from `haus-workflow-catalog`, writes cache, updates lockfile.
|
|
50
|
+
4. Re-renders `.haus-workflow/haus-way-of-work.md` and `.haus-workflow/project.md`.
|
|
51
|
+
|
|
52
|
+
## Global install
|
|
53
|
+
|
|
54
|
+
`haus install` seeds `~/.claude/` with haus-owned files. Each file carries a `<!-- HAUS-MANAGED ... -->` header so the CLI can update or remove it safely without touching user content.
|
|
55
|
+
|
|
56
|
+
`haus uninstall` reverses this: removes every HAUS-MANAGED file and strips haus hook entries from `~/.claude/settings.json`. User-owned files are never deleted.
|
|
@@ -0,0 +1,40 @@
|
|
|
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.
|