@polymorphism-tech/morph-spec 4.10.6 → 4.10.8
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/CLAUDE.md +3 -0
- package/LICENSE +71 -71
- package/README.md +379 -379
- package/bin/morph-spec.js +89 -0
- package/bin/task-manager.js +59 -6
- package/claude-plugin.json +14 -14
- package/docs/CHEATSHEET.md +1 -1
- package/docs/QUICKSTART.md +206 -206
- package/framework/agents/README.md +14 -14
- package/framework/agents/architecture/standards-architect.md +159 -159
- package/framework/agents/frontend/blazor-builder.md +13 -0
- package/framework/agents/frontend/css-specialist.md +87 -0
- package/framework/agents/frontend/nextjs-expert.md +13 -0
- package/framework/agents/frontend/nextjs-ui-specialist.md +218 -0
- package/framework/agents/frontend/ui-ux-designer.md +80 -10
- package/framework/agents/infrastructure/azure-architect.md +149 -149
- package/framework/agents/infrastructure/infra-architect.md +48 -48
- package/framework/agents.json +2268 -2567
- package/framework/hooks/README.md +204 -204
- package/framework/hooks/claude-code/post-tool-use/dispatch.js +10 -5
- package/framework/hooks/claude-code/session-start/inject-morph-context.js +10 -24
- package/framework/hooks/shared/phase-utils.js +139 -139
- package/framework/hooks/shared/worktree-helpers.js +30 -8
- package/framework/rules/csharp-standards.md +13 -13
- package/framework/rules/frontend-standards.md +13 -13
- package/framework/rules/infrastructure-standards.md +16 -16
- package/framework/rules/testing-standards.md +14 -14
- package/framework/skills/README.md +0 -1
- package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +12 -0
- package/framework/skills/level-0-meta/morph-code-review-nextjs/references/review-example-nextjs.md +254 -254
- package/framework/skills/level-0-meta/morph-init/SKILL.md +88 -3
- package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +247 -247
- package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +270 -270
- package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +515 -499
- package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +508 -471
- package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +12 -1
- package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +272 -258
- package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +317 -311
- package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +424 -323
- package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +1 -1
- package/framework/standards/STANDARDS.json +2040 -2040
- package/framework/standards/frontend/nextjs/motion-patterns.md +321 -0
- package/framework/standards/frontend/nextjs/nextjs-patterns.md +17 -17
- package/framework/templates/README.md +814 -814
- package/framework/templates/code/dotnet/contracts/Commands.cs +74 -74
- package/framework/templates/code/dotnet/contracts/Entities.cs +25 -25
- package/framework/templates/code/dotnet/contracts/Queries.cs +74 -74
- package/framework/templates/code/dotnet/contracts/README.md +74 -74
- package/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -173
- package/framework/templates/code/dotnet/frontend/component.razor +239 -239
- package/framework/templates/code/dotnet/jobs/agent.cs +163 -163
- package/framework/templates/code/dotnet/jobs/job.cs +171 -171
- package/framework/templates/code/dotnet/test.cs +239 -239
- package/framework/templates/code/sql/rls-policy.sql +57 -57
- package/framework/templates/code/sql/supabase-migration.sql +100 -100
- package/framework/templates/code/sql/supabase-migration.template.sql +113 -113
- package/framework/templates/code/typescript/contracts.ts +168 -168
- package/framework/templates/context/CONTEXT.md +181 -181
- package/framework/templates/context/design-system.md +211 -0
- package/framework/templates/docs/proposal.md +182 -182
- package/framework/templates/docs/user-stories.md +34 -34
- package/framework/templates/examples/design-system-examples.md +357 -357
- package/framework/templates/examples/spec-examples.md +90 -90
- package/framework/templates/feature/decisions.md +187 -187
- package/framework/templates/feature/recap.md +146 -146
- package/framework/templates/feature/tasks.md +199 -199
- package/framework/templates/infrastructure/azure/README.md +286 -286
- package/framework/templates/infrastructure/azure/deploy-checklist.md +426 -426
- package/framework/templates/infrastructure/azure/parameters.dev.json +29 -29
- package/framework/templates/infrastructure/azure/parameters.prod.json +29 -29
- package/framework/templates/infrastructure/azure/parameters.staging.json +29 -29
- package/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -67
- package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
- package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
- package/framework/templates/infrastructure/docker/easypanel.template.json +54 -54
- package/package.json +82 -82
- package/src/commands/agents/agent-metrics.js +174 -0
- package/src/commands/agents/audit-dispatch.js +82 -0
- package/src/commands/agents/detect-agents.js +275 -0
- package/src/commands/agents/dispatch-agents.js +41 -135
- package/src/commands/agents/index.js +13 -4
- package/src/commands/agents/manage-agents.js +352 -0
- package/src/commands/project/doctor.js +59 -0
- package/src/commands/project/install-plugin-cmd.js +28 -28
- package/src/commands/project/setup-infra-cmd.js +12 -12
- package/src/commands/project/update.js +1 -17
- package/src/commands/project/worktree.js +58 -2
- package/src/commands/state/advance-phase.js +11 -3
- package/src/commands/tasks/index.js +4 -4
- package/src/commands/templates/index.js +5 -5
- package/src/commands/utils/index.js +3 -3
- package/src/commands/validation/index.js +4 -4
- package/src/core/state/phase-state-machine.js +217 -217
- package/src/core/state/state-manager.js +81 -0
- package/src/lib/agents/agents-manager.js +349 -0
- package/src/lib/agents/metrics-calculator.js +125 -0
- package/src/lib/agents/output-collector.js +75 -0
- package/src/lib/generators/context-generator.js +8 -7
- package/src/lib/generators/design-system-generator.js +298 -298
- package/src/lib/generators/index.js +10 -10
- package/src/lib/generators/metadata-extractor.js +387 -387
- package/src/lib/stack-filter.js +65 -65
- package/src/lib/standards/index.js +7 -7
- package/src/lib/standards/standards-context-injector.js +302 -302
- package/src/lib/tasks/task-parser.js +94 -3
- package/src/lib/validators/architecture/architecture-validator.js +387 -387
- package/src/lib/validators/architecture/index.js +7 -7
- package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +316 -316
- package/src/lib/validators/blazor/blazor-state-validator.js +279 -279
- package/src/lib/validators/blazor/blazor-validator.js +369 -369
- package/src/lib/validators/blazor/index.js +9 -9
- package/src/lib/validators/checkpoint-persistence.js +39 -0
- package/src/lib/validators/content/content-validator.js +287 -279
- package/src/lib/validators/content/index.js +7 -7
- package/src/lib/validators/contracts/index.js +7 -7
- package/src/lib/validators/css/css-validator.js +352 -352
- package/src/lib/validators/css/index.js +7 -7
- package/src/lib/validators/design-system/design-system-validator.js +231 -231
- package/src/lib/validators/design-system/index.js +7 -7
- package/src/lib/validators/nextjs/index.js +6 -6
- package/src/lib/validators/nextjs/next-component-validator.js +183 -183
- package/src/lib/validators/packages/index.js +7 -7
- package/src/lib/validators/packages/package-validator.js +360 -360
- package/src/lib/validators/shared/index.js +12 -12
- package/src/lib/validators/shared/issue-counter.js +18 -18
- package/src/lib/validators/shared/result-formatter.js +124 -124
- package/src/lib/validators/spec-validator.js +2 -2
- package/src/lib/validators/ui/index.js +7 -7
- package/src/lib/validators/ui/ui-contrast-validator.js +422 -422
- package/src/lib/validators/validation-runner.js +20 -0
- package/src/scripts/global-install.js +58 -58
- package/src/scripts/install-plugin.js +126 -126
- package/src/scripts/setup-infra.js +1 -17
- package/src/utils/agent-id-mapper.js +11 -0
- package/src/utils/agents-installer.js +40 -8
- package/src/utils/claude-md-injector.js +90 -90
- package/src/utils/claude-settings-manager.js +1 -1
- package/src/utils/file-copier.js +200 -196
- package/src/utils/hooks-installer.js +556 -739
- package/src/utils/logger.js +32 -32
- package/src/utils/skills-installer.js +178 -178
- package/src/utils/tier-helpers.js +24 -0
- package/src/utils/version-checker.js +175 -175
- package/framework/agents/architecture/po-pm-advisor.md +0 -203
- package/framework/hooks/claude-code/user-prompt/set-terminal-title.js +0 -68
- package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +0 -38
- package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +0 -14
- package/framework/templates/.idea/morph-templates.xml +0 -92
- package/framework/templates/.vscode/morph-templates.code-snippets +0 -186
package/framework/agents.json
CHANGED
|
@@ -1,2567 +1,2268 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "./agent-schema.json",
|
|
3
|
-
"version": "
|
|
4
|
-
"total_agents":
|
|
5
|
-
"tiers": {
|
|
6
|
-
"tier_1_orchestrators": 3,
|
|
7
|
-
"tier_2_leaders": 4,
|
|
8
|
-
"tier_3_specialists":
|
|
9
|
-
"tier_4_validators": 7
|
|
10
|
-
},
|
|
11
|
-
"agents": {
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
"
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
"
|
|
153
|
-
|
|
154
|
-
"
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
"
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
"
|
|
197
|
-
"
|
|
198
|
-
"
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
"
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
"
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
"
|
|
234
|
-
"
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
"
|
|
239
|
-
"
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
"
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
"
|
|
263
|
-
"
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
"
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
"
|
|
271
|
-
"
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
"
|
|
277
|
-
"
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
"
|
|
286
|
-
"
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
"
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
"
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
"
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
"
|
|
317
|
-
|
|
318
|
-
"
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
"
|
|
322
|
-
"
|
|
323
|
-
"
|
|
324
|
-
"
|
|
325
|
-
"
|
|
326
|
-
"
|
|
327
|
-
"
|
|
328
|
-
"
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
"
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
"
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
"
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
"
|
|
347
|
-
"
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
"design",
|
|
352
|
-
"
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
"
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
],
|
|
404
|
-
"
|
|
405
|
-
|
|
406
|
-
"
|
|
407
|
-
"
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
"
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
"
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
"
|
|
454
|
-
"
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
"
|
|
473
|
-
"
|
|
474
|
-
"
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
"
|
|
481
|
-
"
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
"
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
"
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
"
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
"
|
|
511
|
-
"
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
"
|
|
518
|
-
"
|
|
519
|
-
"
|
|
520
|
-
"
|
|
521
|
-
"
|
|
522
|
-
"
|
|
523
|
-
"
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
"
|
|
540
|
-
"
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
"
|
|
565
|
-
"
|
|
566
|
-
"
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
"
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
"
|
|
597
|
-
"
|
|
598
|
-
"
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
"design",
|
|
603
|
-
"
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
"
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
"
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
"
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
"
|
|
626
|
-
"
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
"
|
|
635
|
-
"
|
|
636
|
-
"
|
|
637
|
-
"
|
|
638
|
-
"
|
|
639
|
-
"
|
|
640
|
-
"
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
"validators": [
|
|
644
|
-
|
|
645
|
-
"
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
"
|
|
650
|
-
"
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
"
|
|
655
|
-
"
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
"
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
"
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
"
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
"
|
|
685
|
-
"
|
|
686
|
-
"
|
|
687
|
-
"
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
"
|
|
691
|
-
"
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
"
|
|
706
|
-
"
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
"
|
|
711
|
-
"
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
"
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
"
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
"
|
|
763
|
-
"
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
"
|
|
769
|
-
"
|
|
770
|
-
"
|
|
771
|
-
|
|
772
|
-
"
|
|
773
|
-
],
|
|
774
|
-
"
|
|
775
|
-
|
|
776
|
-
"
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
"
|
|
780
|
-
"
|
|
781
|
-
"
|
|
782
|
-
"
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
"
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
"
|
|
815
|
-
|
|
816
|
-
"
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
"
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
"
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
"
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
"
|
|
846
|
-
"
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
"
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
"
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
"
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
"
|
|
893
|
-
"
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
"
|
|
900
|
-
"
|
|
901
|
-
"
|
|
902
|
-
"
|
|
903
|
-
"
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
"
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
"
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
"
|
|
937
|
-
"
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
],
|
|
949
|
-
"
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
"
|
|
963
|
-
"
|
|
964
|
-
"
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
"
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
"
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
"
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
"
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
"
|
|
1024
|
-
"
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
"
|
|
1076
|
-
"
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
"
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
],
|
|
1093
|
-
"
|
|
1094
|
-
"
|
|
1095
|
-
"
|
|
1096
|
-
"
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
"
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
"
|
|
1108
|
-
"
|
|
1109
|
-
"
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
"
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
"
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
"
|
|
1142
|
-
"
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
"
|
|
1147
|
-
"
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
"
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
"
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
"
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
"
|
|
1209
|
-
"
|
|
1210
|
-
"
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
"
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
"
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
"
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
"
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
"
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
"
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
"
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
"
|
|
1300
|
-
|
|
1301
|
-
"
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
"
|
|
1305
|
-
"
|
|
1306
|
-
"
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
"
|
|
1318
|
-
"
|
|
1319
|
-
"
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
"
|
|
1326
|
-
|
|
1327
|
-
"
|
|
1328
|
-
"
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
{
|
|
1347
|
-
"id": "core-
|
|
1348
|
-
"scope": "all",
|
|
1349
|
-
"priority": "required"
|
|
1350
|
-
},
|
|
1351
|
-
{
|
|
1352
|
-
"id": "
|
|
1353
|
-
"scope": "all",
|
|
1354
|
-
"priority": "required"
|
|
1355
|
-
},
|
|
1356
|
-
{
|
|
1357
|
-
"id": "
|
|
1358
|
-
"scope": "all",
|
|
1359
|
-
"priority": "required"
|
|
1360
|
-
}
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
},
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
"
|
|
1393
|
-
"
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
"
|
|
1398
|
-
"
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
"
|
|
1404
|
-
"
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
"
|
|
1410
|
-
"
|
|
1411
|
-
"
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
"
|
|
1416
|
-
"
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
"
|
|
1420
|
-
"
|
|
1421
|
-
"
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
"
|
|
1435
|
-
"
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
"
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
"
|
|
1484
|
-
"
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
],
|
|
1511
|
-
"
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
"
|
|
1526
|
-
"
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
"
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
"
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
"
|
|
1544
|
-
"
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
"
|
|
1556
|
-
"
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
"
|
|
1574
|
-
|
|
1575
|
-
"
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
"
|
|
1580
|
-
],
|
|
1581
|
-
"
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
"
|
|
1585
|
-
"
|
|
1586
|
-
"
|
|
1587
|
-
"
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
"
|
|
1600
|
-
"
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
"
|
|
1618
|
-
"domains": [
|
|
1619
|
-
"
|
|
1620
|
-
],
|
|
1621
|
-
"keywords": [
|
|
1622
|
-
"
|
|
1623
|
-
"
|
|
1624
|
-
"
|
|
1625
|
-
"
|
|
1626
|
-
"
|
|
1627
|
-
"
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
"
|
|
1645
|
-
"
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
"
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
"
|
|
1663
|
-
"
|
|
1664
|
-
"
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
"
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
"
|
|
1686
|
-
|
|
1687
|
-
"
|
|
1688
|
-
"
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
"
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
"
|
|
1724
|
-
|
|
1725
|
-
"
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
"
|
|
1735
|
-
"
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
"
|
|
1743
|
-
"
|
|
1744
|
-
"
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
"
|
|
1750
|
-
"
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
"
|
|
1757
|
-
"
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
"
|
|
1762
|
-
"
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
"
|
|
1768
|
-
"
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
"
|
|
1774
|
-
"
|
|
1775
|
-
"
|
|
1776
|
-
|
|
1777
|
-
"
|
|
1778
|
-
],
|
|
1779
|
-
"
|
|
1780
|
-
|
|
1781
|
-
"
|
|
1782
|
-
"
|
|
1783
|
-
"
|
|
1784
|
-
"
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
"
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
"
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
"
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
"
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
"
|
|
1819
|
-
"
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
"
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
"
|
|
1831
|
-
"
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
"
|
|
1838
|
-
"
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
"
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
"
|
|
1848
|
-
"
|
|
1849
|
-
"
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
"
|
|
1861
|
-
"
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
"
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
"
|
|
1883
|
-
"
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
"
|
|
1890
|
-
"
|
|
1891
|
-
"
|
|
1892
|
-
],
|
|
1893
|
-
"
|
|
1894
|
-
|
|
1895
|
-
"
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
"
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
"standards": [
|
|
1907
|
-
{
|
|
1908
|
-
"id": "core-coding",
|
|
1909
|
-
"scope": "all",
|
|
1910
|
-
"priority": "required"
|
|
1911
|
-
},
|
|
1912
|
-
{
|
|
1913
|
-
"id": "core-architecture",
|
|
1914
|
-
"scope": "all",
|
|
1915
|
-
"priority": "required"
|
|
1916
|
-
}
|
|
1917
|
-
],
|
|
1918
|
-
"teammate": {
|
|
1919
|
-
"
|
|
1920
|
-
"
|
|
1921
|
-
"spawn_prompt": "You are the
|
|
1922
|
-
}
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
"
|
|
1942
|
-
|
|
1943
|
-
"
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
"
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
"
|
|
1958
|
-
"
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
"
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
"
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
"
|
|
1989
|
-
"
|
|
1990
|
-
"
|
|
1991
|
-
"
|
|
1992
|
-
],
|
|
1993
|
-
"
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
"
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
"
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
"
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
"
|
|
2028
|
-
|
|
2029
|
-
"
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
"
|
|
2034
|
-
],
|
|
2035
|
-
"
|
|
2036
|
-
"blazor",
|
|
2037
|
-
"
|
|
2038
|
-
"
|
|
2039
|
-
"
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
"validators": [
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
"
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
"
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
"
|
|
2066
|
-
"
|
|
2067
|
-
"
|
|
2068
|
-
"
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
"
|
|
2078
|
-
"
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
"
|
|
2090
|
-
|
|
2091
|
-
"
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
"
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
"
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
"
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
"
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
"
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
"
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
"
|
|
2152
|
-
"
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
"
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
"
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
"
|
|
2175
|
-
"
|
|
2176
|
-
"
|
|
2177
|
-
"
|
|
2178
|
-
],
|
|
2179
|
-
"
|
|
2180
|
-
|
|
2181
|
-
"
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
"
|
|
2185
|
-
"
|
|
2186
|
-
"
|
|
2187
|
-
"
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
"
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
"
|
|
2207
|
-
"
|
|
2208
|
-
"
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
"
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
"
|
|
2225
|
-
"
|
|
2226
|
-
"
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
"
|
|
2230
|
-
"
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
"
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
"
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
"
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
"design-system-validator": {
|
|
2270
|
-
"tier": 4,
|
|
2271
|
-
"role": "validator",
|
|
2272
|
-
"title": "Design System Validator",
|
|
2273
|
-
"domains": [
|
|
2274
|
-
"design-system"
|
|
2275
|
-
],
|
|
2276
|
-
"keywords": [
|
|
2277
|
-
"design system",
|
|
2278
|
-
"css",
|
|
2279
|
-
"color palette",
|
|
2280
|
-
"spacing"
|
|
2281
|
-
],
|
|
2282
|
-
"always_active": true,
|
|
2283
|
-
"validators": [
|
|
2284
|
-
"design-system"
|
|
2285
|
-
],
|
|
2286
|
-
"relationships": {
|
|
2287
|
-
"reports_to": "ui-designer",
|
|
2288
|
-
"coordinates": [],
|
|
2289
|
-
"runs_in": "hooks",
|
|
2290
|
-
"hook_triggers": [
|
|
2291
|
-
"TeammateIdle"
|
|
2292
|
-
],
|
|
2293
|
-
"team_role": "validator"
|
|
2294
|
-
},
|
|
2295
|
-
"standards": [
|
|
2296
|
-
{
|
|
2297
|
-
"id": "frontend-design-system-naming",
|
|
2298
|
-
"scope": "all",
|
|
2299
|
-
"priority": "required"
|
|
2300
|
-
},
|
|
2301
|
-
{
|
|
2302
|
-
"id": "frontend-design-system-animations",
|
|
2303
|
-
"scope": "all",
|
|
2304
|
-
"priority": "required"
|
|
2305
|
-
}
|
|
2306
|
-
],
|
|
2307
|
-
"teammate": {
|
|
2308
|
-
"icon": "🎨",
|
|
2309
|
-
"role": "Design System Validator (read-only)",
|
|
2310
|
-
"spawn_prompt": "You are the Design System Validator (Tier 4, READ-ONLY). Scan CSS/SCSS and component files for design system compliance:\n\n1. Color palette — look for hardcoded hex/rgb colors instead of CSS variables (var(--color-primary), var(--color-secondary), etc.)\n2. Spacing — look for hardcoded px/rem values instead of spacing variables (var(--spacing-*))\n3. Typography — look for hardcoded font-size/font-family instead of typography variables (var(--font-*))\n4. Component naming — verify PascalCase for Blazor components (.razor) and kebab-case for CSS classes\n5. Check .morph/context/design-system.md if it exists for project-specific design tokens\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"line\": number, \"message\": string, \"severity\": \"warning\" }] }"
|
|
2311
|
-
},
|
|
2312
|
-
"hook_behavior": {
|
|
2313
|
-
"validates": [
|
|
2314
|
-
"CSS color palette compliance (primary, secondary, accent)",
|
|
2315
|
-
"Spacing values (use var(--spacing-*))",
|
|
2316
|
-
"Typography scale (use var(--font-*))",
|
|
2317
|
-
"Component naming (PascalCase for Blazor, kebab-case for CSS)"
|
|
2318
|
-
],
|
|
2319
|
-
"severity": "warning",
|
|
2320
|
-
"blocks_on_fail": false
|
|
2321
|
-
}
|
|
2322
|
-
},
|
|
2323
|
-
"blazor-concurrency-validator": {
|
|
2324
|
-
"tier": 4,
|
|
2325
|
-
"role": "validator",
|
|
2326
|
-
"title": "Blazor Concurrency Validator",
|
|
2327
|
-
"stacks": ["blazor"],
|
|
2328
|
-
"domains": [
|
|
2329
|
-
"blazor-concurrency"
|
|
2330
|
-
],
|
|
2331
|
-
"keywords": [
|
|
2332
|
-
"blazor",
|
|
2333
|
-
"dbcontext",
|
|
2334
|
-
"lifecycle",
|
|
2335
|
-
"async",
|
|
2336
|
-
"concurrency"
|
|
2337
|
-
],
|
|
2338
|
-
"always_active": false,
|
|
2339
|
-
"validators": [
|
|
2340
|
-
"blazor-concurrency"
|
|
2341
|
-
],
|
|
2342
|
-
"relationships": {
|
|
2343
|
-
"reports_to": "blazor-builder",
|
|
2344
|
-
"coordinates": [],
|
|
2345
|
-
"runs_in": "hooks",
|
|
2346
|
-
"hook_triggers": [
|
|
2347
|
-
"TaskCompleted"
|
|
2348
|
-
],
|
|
2349
|
-
"team_role": "validator"
|
|
2350
|
-
},
|
|
2351
|
-
"standards": [
|
|
2352
|
-
{
|
|
2353
|
-
"id": "frontend-blazor-lifecycle",
|
|
2354
|
-
"scope": "all",
|
|
2355
|
-
"priority": "required"
|
|
2356
|
-
},
|
|
2357
|
-
{
|
|
2358
|
-
"id": "frontend-blazor-pitfalls",
|
|
2359
|
-
"scope": "all",
|
|
2360
|
-
"priority": "required"
|
|
2361
|
-
},
|
|
2362
|
-
{
|
|
2363
|
-
"id": "frontend-blazor-state",
|
|
2364
|
-
"scope": "all",
|
|
2365
|
-
"priority": "required"
|
|
2366
|
-
}
|
|
2367
|
-
],
|
|
2368
|
-
"teammate": {
|
|
2369
|
-
"icon": "⚡",
|
|
2370
|
-
"role": "Blazor Concurrency Validator (read-only)",
|
|
2371
|
-
"spawn_prompt": "You are the Blazor Concurrency Validator (Tier 4, READ-ONLY). Scan all Blazor component files (.razor, .razor.cs) for concurrency and lifecycle violations:\n\n1. DbContext lifecycle — look for injected DbContext (not IDbContextFactory), disposed context usage, scope issues\n2. Async void — search for 'async void' methods (must be 'async Task' except event handlers)\n3. JSInterop in OnInitialized — look for IJSRuntime calls in OnInitialized/OnInitializedAsync (must be in OnAfterRender/OnAfterRenderAsync)\n4. State mutation — look for property changes without calling StateHasChanged() or InvokeAsync(StateHasChanged)\n5. Thread safety — look for shared mutable state without synchronization in Blazor Server components\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"line\": number, \"message\": string, \"severity\": \"error\" }] }"
|
|
2372
|
-
},
|
|
2373
|
-
"hook_behavior": {
|
|
2374
|
-
"validates": [
|
|
2375
|
-
"DbContext lifecycle violations (dispose, scope issues)",
|
|
2376
|
-
"Async void methods (use async Task instead)",
|
|
2377
|
-
"JSInterop in OnInitialized (move to OnAfterRender)",
|
|
2378
|
-
"State mutation without StateHasChanged"
|
|
2379
|
-
],
|
|
2380
|
-
"severity": "error",
|
|
2381
|
-
"blocks_on_fail": true
|
|
2382
|
-
}
|
|
2383
|
-
},
|
|
2384
|
-
"morph-spec-validator": {
|
|
2385
|
-
"tier": 4,
|
|
2386
|
-
"role": "validator",
|
|
2387
|
-
"title": "Morph-Spec Validator",
|
|
2388
|
-
"domains": [
|
|
2389
|
-
"nodejs",
|
|
2390
|
-
"cli",
|
|
2391
|
-
"testing",
|
|
2392
|
-
"validation"
|
|
2393
|
-
],
|
|
2394
|
-
"keywords": [
|
|
2395
|
-
"validate morph-spec",
|
|
2396
|
-
"node.js validation",
|
|
2397
|
-
"cli test"
|
|
2398
|
-
],
|
|
2399
|
-
"always_active": false,
|
|
2400
|
-
"validators": [
|
|
2401
|
-
"morph-spec-standards"
|
|
2402
|
-
],
|
|
2403
|
-
"relationships": {
|
|
2404
|
-
"reports_to": "qa-lead",
|
|
2405
|
-
"runs_in": "post-implement",
|
|
2406
|
-
"active_phases": [
|
|
2407
|
-
"implement",
|
|
2408
|
-
"validate"
|
|
2409
|
-
]
|
|
2410
|
-
},
|
|
2411
|
-
"standards": [],
|
|
2412
|
-
"teammate": {
|
|
2413
|
-
"icon": "🔬",
|
|
2414
|
-
"role": "Morph-Spec Validator (read-only)",
|
|
2415
|
-
"tools": "Read, Glob, Grep, Bash",
|
|
2416
|
-
"maxTurns": 12,
|
|
2417
|
-
"spawn_prompt": "You are the Morph-Spec Validator (Tier 4, READ-ONLY). Scan the morph-spec framework codebase for standards compliance:\n\n1. ESM imports — all relative imports must use .js extensions (e.g., './foo.js' not './foo')\n2. Command registration — new commands in src/commands/ must be imported and registered in bin/morph-spec.js\n3. Test coverage — each module in src/ should have a corresponding test file in tests/\n4. No CommonJS — search for require() or module.exports (must use import/export)\n5. Hook fail-open — all hooks in framework/hooks/ must have try/catch with exit(0) fallback\n6. Run 'npm test' to verify all tests pass\n\nUse Grep, Glob, and Bash to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"line\": number, \"message\": string, \"severity\": \"error\" }] }"
|
|
2418
|
-
},
|
|
2419
|
-
"hook_behavior": {
|
|
2420
|
-
"validates": [
|
|
2421
|
-
"ESM imports use .js extensions on relative paths",
|
|
2422
|
-
"New commands are registered in bin/morph-spec.js",
|
|
2423
|
-
"Tests exist for new modules (one test file per module)",
|
|
2424
|
-
"npm test passes with no failures",
|
|
2425
|
-
"No require() or module.exports used",
|
|
2426
|
-
"Error handling follows fail-open pattern for hooks"
|
|
2427
|
-
],
|
|
2428
|
-
"severity": "error",
|
|
2429
|
-
"blocks_on_fail": true
|
|
2430
|
-
}
|
|
2431
|
-
},
|
|
2432
|
-
"nextjs-component-validator": {
|
|
2433
|
-
"tier": 4,
|
|
2434
|
-
"stacks": ["nextjs"],
|
|
2435
|
-
"title": "Next.js Component Validator",
|
|
2436
|
-
"description": "Tier-4 validator for Next.js Server/Client component patterns",
|
|
2437
|
-
"keywords": [
|
|
2438
|
-
"nextjs",
|
|
2439
|
-
"tsx",
|
|
2440
|
-
"use client",
|
|
2441
|
-
"server component",
|
|
2442
|
-
"app router"
|
|
2443
|
-
],
|
|
2444
|
-
"validators": [
|
|
2445
|
-
"nextjs-component"
|
|
2446
|
-
],
|
|
2447
|
-
"always_active": false,
|
|
2448
|
-
"hook_behavior": {
|
|
2449
|
-
"severity": "warning",
|
|
2450
|
-
"blocks_on_fail": false,
|
|
2451
|
-
"validates": [
|
|
2452
|
-
"use-client directive",
|
|
2453
|
-
"hook usage",
|
|
2454
|
-
"file naming"
|
|
2455
|
-
]
|
|
2456
|
-
},
|
|
2457
|
-
"teammate": {
|
|
2458
|
-
"icon": "⚛️",
|
|
2459
|
-
"role": "Next.js Component Validator (read-only)",
|
|
2460
|
-
"spawn_prompt": "You are the Next.js Component Validator (Tier 4, READ-ONLY). Scan all .tsx/.ts files under src/ and validate:\n\n1. \"use client\" directive — must be present when React hooks (useState, useEffect, etc.) are used\n2. Server Components — \"use client\" must be absent for pure Server Components (no hooks, no event handlers)\n3. File naming — component files must use kebab-case naming convention\n4. Import patterns — client components should not import server-only modules\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"message\": string, \"suggestion\": string, \"severity\": \"warning\" }] }"
|
|
2461
|
-
}
|
|
2462
|
-
}
|
|
2463
|
-
},
|
|
2464
|
-
"squads": {
|
|
2465
|
-
"backend_squad": {
|
|
2466
|
-
"leader": "dotnet-senior",
|
|
2467
|
-
"members": [
|
|
2468
|
-
"ef-modeler",
|
|
2469
|
-
"event-architect",
|
|
2470
|
-
"api-designer",
|
|
2471
|
-
"nosql-cache-expert",
|
|
2472
|
-
"hangfire-orchestrator",
|
|
2473
|
-
"ms-agent-expert",
|
|
2474
|
-
"supabase-expert",
|
|
2475
|
-
"vector-search-expert",
|
|
2476
|
-
"context-optimizer",
|
|
2477
|
-
"asaas-financial",
|
|
2478
|
-
"clerk-auth",
|
|
2479
|
-
"resend-email"
|
|
2480
|
-
],
|
|
2481
|
-
"domains": [
|
|
2482
|
-
"backend",
|
|
2483
|
-
"backend-data",
|
|
2484
|
-
"backend-events",
|
|
2485
|
-
"backend-api",
|
|
2486
|
-
"backend-nosql",
|
|
2487
|
-
"backend-ddd",
|
|
2488
|
-
"backend-jobs",
|
|
2489
|
-
"ai-agents",
|
|
2490
|
-
"backend-supabase",
|
|
2491
|
-
"ai-vector",
|
|
2492
|
-
"ai-context",
|
|
2493
|
-
"integration-payment",
|
|
2494
|
-
"integration-auth",
|
|
2495
|
-
"integration-email"
|
|
2496
|
-
]
|
|
2497
|
-
},
|
|
2498
|
-
"frontend_squad": {
|
|
2499
|
-
"leader": "ui-designer",
|
|
2500
|
-
"members": [
|
|
2501
|
-
"blazor-builder",
|
|
2502
|
-
"nextjs-expert",
|
|
2503
|
-
"css-specialist"
|
|
2504
|
-
],
|
|
2505
|
-
"domains": [
|
|
2506
|
-
"frontend-design",
|
|
2507
|
-
"frontend-blazor",
|
|
2508
|
-
"frontend-nextjs",
|
|
2509
|
-
"frontend-css"
|
|
2510
|
-
],
|
|
2511
|
-
"active_phases": {
|
|
2512
|
-
"design": [
|
|
2513
|
-
"ui-designer"
|
|
2514
|
-
],
|
|
2515
|
-
"implement": [
|
|
2516
|
-
"blazor-builder",
|
|
2517
|
-
"nextjs-expert",
|
|
2518
|
-
"css-specialist"
|
|
2519
|
-
]
|
|
2520
|
-
}
|
|
2521
|
-
},
|
|
2522
|
-
"infrastructure_squad": {
|
|
2523
|
-
"leader": "infra-architect",
|
|
2524
|
-
"members": [
|
|
2525
|
-
"bicep-architect",
|
|
2526
|
-
"devops-engineer",
|
|
2527
|
-
"container-specialist",
|
|
2528
|
-
"observability-expert",
|
|
2529
|
-
"azure-identity"
|
|
2530
|
-
],
|
|
2531
|
-
"domains": [
|
|
2532
|
-
"infrastructure",
|
|
2533
|
-
"infrastructure-iac",
|
|
2534
|
-
"infrastructure-cicd",
|
|
2535
|
-
"infrastructure-containers",
|
|
2536
|
-
"infrastructure-observability",
|
|
2537
|
-
"infrastructure-identity"
|
|
2538
|
-
]
|
|
2539
|
-
},
|
|
2540
|
-
"quality_squad": {
|
|
2541
|
-
"leader": "standards-architect",
|
|
2542
|
-
"members": [
|
|
2543
|
-
"testing-specialist",
|
|
2544
|
-
"code-analyzer",
|
|
2545
|
-
"troubleshooting-expert",
|
|
2546
|
-
"load-testing-expert",
|
|
2547
|
-
"documentation-specialist"
|
|
2548
|
-
],
|
|
2549
|
-
"domains": [
|
|
2550
|
-
"quality-testing",
|
|
2551
|
-
"quality-review",
|
|
2552
|
-
"quality-debug",
|
|
2553
|
-
"quality-performance",
|
|
2554
|
-
"developer-experience-docs"
|
|
2555
|
-
],
|
|
2556
|
-
"note": "No permanent leader — standards-architect coordinates directly"
|
|
2557
|
-
}
|
|
2558
|
-
},
|
|
2559
|
-
"relationship_types": {
|
|
2560
|
-
"reports_to": "Hierarchical manager relationship",
|
|
2561
|
-
"coordinates": "Manages/leads these agents",
|
|
2562
|
-
"escalates_to": "Where to escalate unresolved issues",
|
|
2563
|
-
"collaborates_with": "Peer agents for cross-domain work",
|
|
2564
|
-
"runs_in": "Execution context (hooks, not teammates)",
|
|
2565
|
-
"team_role": "Role in Agent Teams (lead, domain_leader, specialist, validator, escalation_specialist, post_implementation, planning_only)"
|
|
2566
|
-
}
|
|
2567
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./agent-schema.json",
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"total_agents": 46,
|
|
5
|
+
"tiers": {
|
|
6
|
+
"tier_1_orchestrators": 3,
|
|
7
|
+
"tier_2_leaders": 4,
|
|
8
|
+
"tier_3_specialists": 31,
|
|
9
|
+
"tier_4_validators": 7
|
|
10
|
+
},
|
|
11
|
+
"agents": {
|
|
12
|
+
"standards-architect": {
|
|
13
|
+
"tier": 1,
|
|
14
|
+
"title": "Chief Architect",
|
|
15
|
+
"group": "domain-analysis",
|
|
16
|
+
"active_phases": [
|
|
17
|
+
"*"
|
|
18
|
+
],
|
|
19
|
+
"reports_to": "user",
|
|
20
|
+
"domains": [
|
|
21
|
+
"architecture",
|
|
22
|
+
"developer-experience"
|
|
23
|
+
],
|
|
24
|
+
"keywords": [],
|
|
25
|
+
"validators": [],
|
|
26
|
+
"standards": [
|
|
27
|
+
{
|
|
28
|
+
"id": "core-coding",
|
|
29
|
+
"scope": "all",
|
|
30
|
+
"priority": "required"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "core-architecture",
|
|
34
|
+
"scope": "all",
|
|
35
|
+
"priority": "required"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "backend-dotnet-program-cs-checklist",
|
|
39
|
+
"scope": "implement",
|
|
40
|
+
"priority": "required"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"teammate": {
|
|
44
|
+
"role": "Team Lead (Delegate Mode)",
|
|
45
|
+
"icon": "🎯",
|
|
46
|
+
"spawn_prompt": "You are the Chief Architect and Team Lead in delegate mode. Coordinate Domain Leaders, resolve conflicts, synthesize results. DO NOT implement code yourself. Escalate conflicts to user when teammates disagree on architecture/tech choices."
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"ai-system-architect": {
|
|
50
|
+
"tier": 1,
|
|
51
|
+
"title": "AI/Agent Architect",
|
|
52
|
+
"group": "domain-analysis",
|
|
53
|
+
"active_phases": [
|
|
54
|
+
"design",
|
|
55
|
+
"tasks"
|
|
56
|
+
],
|
|
57
|
+
"reports_to": "standards-architect",
|
|
58
|
+
"domains": [
|
|
59
|
+
"ai-orchestration",
|
|
60
|
+
"architecture"
|
|
61
|
+
],
|
|
62
|
+
"keywords": [
|
|
63
|
+
"agent system",
|
|
64
|
+
"ai architecture",
|
|
65
|
+
"orchestration",
|
|
66
|
+
"multi-agent",
|
|
67
|
+
"agent workflow"
|
|
68
|
+
],
|
|
69
|
+
"validators": [],
|
|
70
|
+
"standards": [
|
|
71
|
+
{
|
|
72
|
+
"id": "core-coding",
|
|
73
|
+
"scope": "all",
|
|
74
|
+
"priority": "required"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "core-architecture",
|
|
78
|
+
"scope": "all",
|
|
79
|
+
"priority": "required"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "ai-agents-setup",
|
|
83
|
+
"scope": "all",
|
|
84
|
+
"priority": "required"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "ai-agents-workflows",
|
|
88
|
+
"scope": "design",
|
|
89
|
+
"priority": "required"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "ai-agents-production",
|
|
93
|
+
"scope": "implement",
|
|
94
|
+
"priority": "required"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "ai-agents-blazor-ui",
|
|
98
|
+
"scope": "implement",
|
|
99
|
+
"priority": "reference"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"teammate": {
|
|
103
|
+
"role": "AI Architect",
|
|
104
|
+
"icon": "🤖",
|
|
105
|
+
"spawn_prompt": "You are the AI/Agent System Architect. Design agent workflows, tool integrations, and orchestration patterns."
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"popm-advisor": {
|
|
109
|
+
"tier": 1,
|
|
110
|
+
"title": "Product/Project Advisor",
|
|
111
|
+
"group": "domain-analysis",
|
|
112
|
+
"active_phases": [
|
|
113
|
+
"proposal",
|
|
114
|
+
"setup",
|
|
115
|
+
"design"
|
|
116
|
+
],
|
|
117
|
+
"reports_to": "user",
|
|
118
|
+
"domains": [
|
|
119
|
+
"requirements",
|
|
120
|
+
"business-value"
|
|
121
|
+
],
|
|
122
|
+
"keywords": [
|
|
123
|
+
"unclear",
|
|
124
|
+
"requirements",
|
|
125
|
+
"priority",
|
|
126
|
+
"roi",
|
|
127
|
+
"business value",
|
|
128
|
+
"user story"
|
|
129
|
+
],
|
|
130
|
+
"validators": [],
|
|
131
|
+
"standards": [
|
|
132
|
+
{
|
|
133
|
+
"id": "core-coding",
|
|
134
|
+
"scope": "all",
|
|
135
|
+
"priority": "required"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "core-architecture",
|
|
139
|
+
"scope": "all",
|
|
140
|
+
"priority": "required"
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"teammate": null
|
|
144
|
+
},
|
|
145
|
+
"dotnet-senior": {
|
|
146
|
+
"tier": 2,
|
|
147
|
+
"title": "Backend Squad Leader",
|
|
148
|
+
"group": "backend",
|
|
149
|
+
"active_phases": [
|
|
150
|
+
"*"
|
|
151
|
+
],
|
|
152
|
+
"reports_to": "standards-architect",
|
|
153
|
+
"domains": [
|
|
154
|
+
"backend"
|
|
155
|
+
],
|
|
156
|
+
"keywords": [
|
|
157
|
+
"backend",
|
|
158
|
+
"api",
|
|
159
|
+
"dotnet",
|
|
160
|
+
".net",
|
|
161
|
+
"csharp",
|
|
162
|
+
"c#",
|
|
163
|
+
"web api",
|
|
164
|
+
"minimal api"
|
|
165
|
+
],
|
|
166
|
+
"validators": [
|
|
167
|
+
"architecture",
|
|
168
|
+
"packages"
|
|
169
|
+
],
|
|
170
|
+
"standards": [
|
|
171
|
+
{
|
|
172
|
+
"id": "core-coding",
|
|
173
|
+
"scope": "all",
|
|
174
|
+
"priority": "required"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"id": "core-architecture",
|
|
178
|
+
"scope": "all",
|
|
179
|
+
"priority": "required"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"id": "backend-dotnet-core",
|
|
183
|
+
"scope": "implement",
|
|
184
|
+
"priority": "required"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"id": "backend-dotnet-program-cs-checklist",
|
|
188
|
+
"scope": "implement",
|
|
189
|
+
"priority": "required"
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"stacks": [
|
|
193
|
+
"dotnet",
|
|
194
|
+
"blazor"
|
|
195
|
+
],
|
|
196
|
+
"teammate": {
|
|
197
|
+
"role": "Backend Squad Leader",
|
|
198
|
+
"icon": "⚙️",
|
|
199
|
+
"spawn_prompt": "You are the Backend Squad Leader. Coordinate backend specialists (ef-modeler, event-architect, api-designer, etc.). Assign tasks, review designs, enforce backend standards. Escalate cross-domain conflicts to standards-architect."
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
"infra-architect": {
|
|
203
|
+
"tier": 2,
|
|
204
|
+
"title": "Infrastructure Squad Leader",
|
|
205
|
+
"group": "infra",
|
|
206
|
+
"active_phases": [
|
|
207
|
+
"*"
|
|
208
|
+
],
|
|
209
|
+
"reports_to": "standards-architect",
|
|
210
|
+
"domains": [
|
|
211
|
+
"infrastructure"
|
|
212
|
+
],
|
|
213
|
+
"keywords": [
|
|
214
|
+
"infrastructure",
|
|
215
|
+
"infra",
|
|
216
|
+
"cloud",
|
|
217
|
+
"deployment",
|
|
218
|
+
"hosting",
|
|
219
|
+
"ci/cd",
|
|
220
|
+
"container",
|
|
221
|
+
"iac",
|
|
222
|
+
"pipeline",
|
|
223
|
+
"vercel",
|
|
224
|
+
"neon",
|
|
225
|
+
"planetscale",
|
|
226
|
+
"serverless database",
|
|
227
|
+
"serverless postgres"
|
|
228
|
+
],
|
|
229
|
+
"validators": [],
|
|
230
|
+
"standards": [
|
|
231
|
+
{
|
|
232
|
+
"id": "core-coding",
|
|
233
|
+
"scope": "all",
|
|
234
|
+
"priority": "required"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"id": "core-architecture",
|
|
238
|
+
"scope": "all",
|
|
239
|
+
"priority": "required"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"id": "infrastructure-vercel-database",
|
|
243
|
+
"scope": "design",
|
|
244
|
+
"priority": "required"
|
|
245
|
+
}
|
|
246
|
+
],
|
|
247
|
+
"stacks": [
|
|
248
|
+
"azure",
|
|
249
|
+
"docker"
|
|
250
|
+
],
|
|
251
|
+
"teammate": {
|
|
252
|
+
"role": "Infrastructure Squad Leader",
|
|
253
|
+
"icon": "🏗️",
|
|
254
|
+
"spawn_prompt": "You are the Infrastructure Squad Leader. Coordinate infra specialists regardless of cloud provider (azure-architect, devops-engineer, container-specialist, observability-expert). Focus on IaC, CI/CD, containerization, cost optimization. Delegate to azure-architect for Azure-specific work. IMPORTANT: When deployment target is Vercel, ALWAYS enforce serverless database (Neon, Supabase/PgBouncer, PlanetScale) — never TCP connection pools. Escalate to standards-architect on conflicts."
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
"azure-architect": {
|
|
258
|
+
"tier": 3,
|
|
259
|
+
"title": "Azure Infrastructure Specialist",
|
|
260
|
+
"group": "infra",
|
|
261
|
+
"active_phases": [
|
|
262
|
+
"design",
|
|
263
|
+
"implement"
|
|
264
|
+
],
|
|
265
|
+
"reports_to": "infra-architect",
|
|
266
|
+
"domains": [
|
|
267
|
+
"infrastructure"
|
|
268
|
+
],
|
|
269
|
+
"keywords": [
|
|
270
|
+
"azure",
|
|
271
|
+
"bicep",
|
|
272
|
+
"arm template",
|
|
273
|
+
"azure resources",
|
|
274
|
+
"container apps",
|
|
275
|
+
"azure sql",
|
|
276
|
+
"key vault",
|
|
277
|
+
"app insights"
|
|
278
|
+
],
|
|
279
|
+
"validators": [
|
|
280
|
+
"architecture"
|
|
281
|
+
],
|
|
282
|
+
"standards": [
|
|
283
|
+
{
|
|
284
|
+
"id": "core-coding",
|
|
285
|
+
"scope": "all",
|
|
286
|
+
"priority": "required"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"id": "core-architecture",
|
|
290
|
+
"scope": "all",
|
|
291
|
+
"priority": "required"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"id": "infrastructure-azure-azure",
|
|
295
|
+
"scope": "all",
|
|
296
|
+
"priority": "required"
|
|
297
|
+
}
|
|
298
|
+
],
|
|
299
|
+
"teammate": {
|
|
300
|
+
"role": "Infrastructure Squad Leader",
|
|
301
|
+
"icon": "☁️",
|
|
302
|
+
"spawn_prompt": "You are the Azure Infrastructure Specialist (tier-3). Focus exclusively on Azure resources, Bicep IaC templates, Azure cost optimization, and zero-portal policy. Report to infra-architect."
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
"ui-designer": {
|
|
306
|
+
"tier": 2,
|
|
307
|
+
"title": "UI/UX Squad Leader",
|
|
308
|
+
"group": "frontend",
|
|
309
|
+
"active_phases": [
|
|
310
|
+
"uiux"
|
|
311
|
+
],
|
|
312
|
+
"reports_to": "standards-architect",
|
|
313
|
+
"domains": [
|
|
314
|
+
"frontend-design"
|
|
315
|
+
],
|
|
316
|
+
"keywords": [
|
|
317
|
+
"wireframe",
|
|
318
|
+
"mockup",
|
|
319
|
+
"user flow",
|
|
320
|
+
"ux",
|
|
321
|
+
"design",
|
|
322
|
+
"interface design",
|
|
323
|
+
"user experience",
|
|
324
|
+
"page",
|
|
325
|
+
"dashboard",
|
|
326
|
+
"form",
|
|
327
|
+
"UI",
|
|
328
|
+
"settings",
|
|
329
|
+
"interface",
|
|
330
|
+
"screen",
|
|
331
|
+
"panel",
|
|
332
|
+
"portal",
|
|
333
|
+
"view"
|
|
334
|
+
],
|
|
335
|
+
"validators": [
|
|
336
|
+
"design-system",
|
|
337
|
+
"contrast"
|
|
338
|
+
],
|
|
339
|
+
"standards": [
|
|
340
|
+
{
|
|
341
|
+
"id": "frontend-blazor-fluent-ui",
|
|
342
|
+
"scope": "uiux",
|
|
343
|
+
"priority": "required"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"id": "frontend-design-system-naming",
|
|
347
|
+
"scope": "all",
|
|
348
|
+
"priority": "required"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"id": "frontend-design-system-animations",
|
|
352
|
+
"scope": "all",
|
|
353
|
+
"priority": "required"
|
|
354
|
+
}
|
|
355
|
+
],
|
|
356
|
+
"teammate": {
|
|
357
|
+
"role": "UI/UX Squad Leader (FASE 1.5)",
|
|
358
|
+
"icon": "🎨",
|
|
359
|
+
"spawn_prompt": "You are the UI/UX Squad Leader for FASE 1.5. Create wireframes, mockups, user flows. Define design system (colors, typography, spacing). Work is AGNOSTIC (no implementation code). Apply modern design trends (glassmorphism, gradients, soft shadows, micro-interactions). Guide Fluent UI vs MudBlazor selection. Enforce WCAG AA accessibility (4.5:1 contrast, focus visible, ARIA)."
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
"ef-modeler": {
|
|
363
|
+
"tier": 3,
|
|
364
|
+
"title": "Data Persistence Specialist (Relational)",
|
|
365
|
+
"group": "backend",
|
|
366
|
+
"active_phases": [
|
|
367
|
+
"design",
|
|
368
|
+
"implement"
|
|
369
|
+
],
|
|
370
|
+
"reports_to": "dotnet-senior",
|
|
371
|
+
"domains": [
|
|
372
|
+
"backend-data"
|
|
373
|
+
],
|
|
374
|
+
"keywords": [
|
|
375
|
+
"entity",
|
|
376
|
+
"database",
|
|
377
|
+
"migration",
|
|
378
|
+
"ef core",
|
|
379
|
+
"entity framework",
|
|
380
|
+
"sql",
|
|
381
|
+
"dbcontext"
|
|
382
|
+
],
|
|
383
|
+
"validators": [
|
|
384
|
+
"architecture",
|
|
385
|
+
"blazor-concurrency"
|
|
386
|
+
],
|
|
387
|
+
"standards": [
|
|
388
|
+
{
|
|
389
|
+
"id": "core-coding",
|
|
390
|
+
"scope": "all",
|
|
391
|
+
"priority": "required"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"id": "backend-database-ef-core",
|
|
395
|
+
"scope": "all",
|
|
396
|
+
"priority": "required"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"id": "backend-dotnet-core",
|
|
400
|
+
"scope": "implement",
|
|
401
|
+
"priority": "required"
|
|
402
|
+
}
|
|
403
|
+
],
|
|
404
|
+
"teammate": {
|
|
405
|
+
"role": "Data Persistence Specialist",
|
|
406
|
+
"icon": "🗄️",
|
|
407
|
+
"spawn_prompt": "You are the Data Persistence Specialist (EF Core). Focus on Models/, Migrations/, DbContext. Follow blazor-efcore.md standards. Use IDbContextFactory for background ops. Message blazor-builder when entities ready for UI binding."
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
"event-architect": {
|
|
411
|
+
"tier": 3,
|
|
412
|
+
"title": "Event-Driven Architecture Specialist",
|
|
413
|
+
"group": "backend",
|
|
414
|
+
"active_phases": [
|
|
415
|
+
"design",
|
|
416
|
+
"implement"
|
|
417
|
+
],
|
|
418
|
+
"reports_to": "dotnet-senior",
|
|
419
|
+
"domains": [
|
|
420
|
+
"backend-events"
|
|
421
|
+
],
|
|
422
|
+
"keywords": [
|
|
423
|
+
"event",
|
|
424
|
+
"service bus",
|
|
425
|
+
"rabbitmq",
|
|
426
|
+
"cqrs",
|
|
427
|
+
"event sourcing",
|
|
428
|
+
"messaging",
|
|
429
|
+
"pub/sub",
|
|
430
|
+
"domain events",
|
|
431
|
+
"saga",
|
|
432
|
+
"real-time",
|
|
433
|
+
"realtime",
|
|
434
|
+
"websocket",
|
|
435
|
+
"live updates"
|
|
436
|
+
],
|
|
437
|
+
"validators": [
|
|
438
|
+
"architecture",
|
|
439
|
+
"event-driven"
|
|
440
|
+
],
|
|
441
|
+
"standards": [
|
|
442
|
+
{
|
|
443
|
+
"id": "core-coding",
|
|
444
|
+
"scope": "all",
|
|
445
|
+
"priority": "required"
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"id": "core-architecture",
|
|
449
|
+
"scope": "all",
|
|
450
|
+
"priority": "required"
|
|
451
|
+
}
|
|
452
|
+
],
|
|
453
|
+
"teammate": {
|
|
454
|
+
"role": "Event-Driven Architecture Specialist",
|
|
455
|
+
"icon": "📨",
|
|
456
|
+
"spawn_prompt": "You are the Event-Driven Architecture Specialist. Implement Azure Service Bus queues/topics, CQRS patterns, Event Sourcing, Domain Events. Design idempotent handlers, dead letter queues, saga patterns."
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
"api-designer": {
|
|
460
|
+
"tier": 3,
|
|
461
|
+
"title": "API Design Specialist",
|
|
462
|
+
"group": "backend",
|
|
463
|
+
"active_phases": [
|
|
464
|
+
"design",
|
|
465
|
+
"implement"
|
|
466
|
+
],
|
|
467
|
+
"reports_to": "dotnet-senior",
|
|
468
|
+
"domains": [
|
|
469
|
+
"backend-api"
|
|
470
|
+
],
|
|
471
|
+
"keywords": [
|
|
472
|
+
"rest",
|
|
473
|
+
"graphql",
|
|
474
|
+
"grpc",
|
|
475
|
+
"api",
|
|
476
|
+
"openapi",
|
|
477
|
+
"swagger",
|
|
478
|
+
"versioning",
|
|
479
|
+
"rate limiting",
|
|
480
|
+
"hot chocolate",
|
|
481
|
+
"endpoint"
|
|
482
|
+
],
|
|
483
|
+
"validators": [],
|
|
484
|
+
"standards": [
|
|
485
|
+
{
|
|
486
|
+
"id": "core-coding",
|
|
487
|
+
"scope": "all",
|
|
488
|
+
"priority": "required"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"id": "core-architecture",
|
|
492
|
+
"scope": "all",
|
|
493
|
+
"priority": "required"
|
|
494
|
+
}
|
|
495
|
+
],
|
|
496
|
+
"teammate": {
|
|
497
|
+
"role": "API Design Specialist",
|
|
498
|
+
"icon": "🔌",
|
|
499
|
+
"spawn_prompt": "You are the API Design Specialist. Design REST APIs (resource naming, HTTP verbs, status codes), GraphQL schemas with Hot Chocolate, gRPC .proto files. Add OpenAPI/Swagger annotations. Implement API versioning, rate limiting. Review with frontend specialists."
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
"nosql-cache-expert": {
|
|
503
|
+
"tier": 3,
|
|
504
|
+
"title": "NoSQL & Cache Specialist",
|
|
505
|
+
"group": "backend",
|
|
506
|
+
"active_phases": [
|
|
507
|
+
"design",
|
|
508
|
+
"implement"
|
|
509
|
+
],
|
|
510
|
+
"reports_to": "dotnet-senior",
|
|
511
|
+
"domains": [
|
|
512
|
+
"backend-nosql"
|
|
513
|
+
],
|
|
514
|
+
"keywords": [
|
|
515
|
+
"cosmos",
|
|
516
|
+
"cosmosdb",
|
|
517
|
+
"redis",
|
|
518
|
+
"cache",
|
|
519
|
+
"blob storage",
|
|
520
|
+
"nosql",
|
|
521
|
+
"document db",
|
|
522
|
+
"key-value",
|
|
523
|
+
"azure storage"
|
|
524
|
+
],
|
|
525
|
+
"validators": [],
|
|
526
|
+
"standards": [
|
|
527
|
+
{
|
|
528
|
+
"id": "core-coding",
|
|
529
|
+
"scope": "all",
|
|
530
|
+
"priority": "required"
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"id": "core-architecture",
|
|
534
|
+
"scope": "all",
|
|
535
|
+
"priority": "required"
|
|
536
|
+
}
|
|
537
|
+
],
|
|
538
|
+
"teammate": {
|
|
539
|
+
"role": "NoSQL & Cache Specialist",
|
|
540
|
+
"icon": "💾",
|
|
541
|
+
"spawn_prompt": "You are the NoSQL & Cache Specialist. Implement Azure Cosmos DB (SQL API, partition keys, RUs), Redis Cache (cache-aside, read-through, write-behind), Blob Storage (hot/cool/archive tiers). Design cache invalidation strategies."
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
"domain-architect": {
|
|
545
|
+
"tier": 2,
|
|
546
|
+
"title": "Domain Modeling Leader",
|
|
547
|
+
"group": "domain-analysis",
|
|
548
|
+
"active_phases": [
|
|
549
|
+
"design",
|
|
550
|
+
"implement"
|
|
551
|
+
],
|
|
552
|
+
"reports_to": "standards-architect",
|
|
553
|
+
"domains": [
|
|
554
|
+
"backend-ddd"
|
|
555
|
+
],
|
|
556
|
+
"keywords": [
|
|
557
|
+
"ddd",
|
|
558
|
+
"domain driven design",
|
|
559
|
+
"aggregate",
|
|
560
|
+
"aggregate root",
|
|
561
|
+
"entity",
|
|
562
|
+
"value object",
|
|
563
|
+
"domain event",
|
|
564
|
+
"bounded context",
|
|
565
|
+
"ubiquitous language",
|
|
566
|
+
"domain modeling",
|
|
567
|
+
"aggregateroot",
|
|
568
|
+
"domainevents",
|
|
569
|
+
"integration event"
|
|
570
|
+
],
|
|
571
|
+
"validators": [
|
|
572
|
+
"architecture"
|
|
573
|
+
],
|
|
574
|
+
"standards": [
|
|
575
|
+
{
|
|
576
|
+
"id": "core-coding",
|
|
577
|
+
"scope": "all",
|
|
578
|
+
"priority": "required"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"id": "core-architecture",
|
|
582
|
+
"scope": "all",
|
|
583
|
+
"priority": "required"
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"id": "architecture-ddd-complexity-levels",
|
|
587
|
+
"scope": "design",
|
|
588
|
+
"priority": "required"
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"id": "architecture-ddd-aggregates",
|
|
592
|
+
"scope": "design",
|
|
593
|
+
"priority": "required"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"id": "architecture-ddd-entities",
|
|
597
|
+
"scope": "design",
|
|
598
|
+
"priority": "required"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"id": "architecture-ddd-value-objects",
|
|
602
|
+
"scope": "design",
|
|
603
|
+
"priority": "required"
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
"id": "architecture-ddd-bounded-contexts",
|
|
607
|
+
"scope": "design",
|
|
608
|
+
"priority": "required"
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"id": "architecture-ddd-ubiquitous-language",
|
|
612
|
+
"scope": "design",
|
|
613
|
+
"priority": "required"
|
|
614
|
+
}
|
|
615
|
+
],
|
|
616
|
+
"teammate": {
|
|
617
|
+
"role": "Domain Modeling Leader",
|
|
618
|
+
"icon": "📐",
|
|
619
|
+
"spawn_prompt": "You are the Domain Modeling Leader for MORPH-SPEC. Your primary responsibility is detecting the correct domain complexity level and producing the Aggregate Blueprint before any contracts are generated.\n\nALWAYS start with the 5-question complexity detection:\n1. Does the main entity have state transitions? (Draft → Confirmed → Shipped) → Yes = Level 2+\n2. Are there business invariants? (\"can only cancel if Active\") → Yes = Level 2+\n3. Are there derived calculations? (Total, Balance, Discount) → Yes = Level 2+\n4. Do other modules need to react to changes? (Domain Events with consumers) → Yes = Level 2+\n5. Did the user explicitly declare a Bounded Context? Or are there 3+ domains with conflicting models? → Yes = Level 3\nIf none of the above: Level 1 (CRUD)\n\nFor Level 1: Use contracts-level1.cs template. No AggregateRoot, no Domain Events.\nFor Level 2: Use contracts-level2.cs template. Design AggregateRoot with factory methods, invariants, Value Objects, Domain Events.\nFor Level 3: Use contracts-level3.cs template. Add BOUNDED_CONTEXT namespace, Integration Events, cross-BC ID references only.\n\nDocument in spec.md under ## Domain Complexity and ## Aggregate Blueprint (Level 2+).\nCoordinate ef-modeler for persistence design and event-architect for Domain Event patterns.\nRef: framework/standards/architecture/ddd/complexity-levels.md"
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
"hangfire-orchestrator": {
|
|
623
|
+
"tier": 3,
|
|
624
|
+
"title": "Background Jobs Specialist",
|
|
625
|
+
"group": "backend",
|
|
626
|
+
"active_phases": [
|
|
627
|
+
"implement"
|
|
628
|
+
],
|
|
629
|
+
"reports_to": "dotnet-senior",
|
|
630
|
+
"domains": [
|
|
631
|
+
"backend-jobs"
|
|
632
|
+
],
|
|
633
|
+
"keywords": [
|
|
634
|
+
"scheduled",
|
|
635
|
+
"job",
|
|
636
|
+
"background",
|
|
637
|
+
"cron",
|
|
638
|
+
"hangfire",
|
|
639
|
+
"recurring",
|
|
640
|
+
"fire and forget",
|
|
641
|
+
"delayed"
|
|
642
|
+
],
|
|
643
|
+
"validators": [
|
|
644
|
+
"architecture",
|
|
645
|
+
"blazor-concurrency"
|
|
646
|
+
],
|
|
647
|
+
"standards": [
|
|
648
|
+
{
|
|
649
|
+
"id": "core-coding",
|
|
650
|
+
"scope": "all",
|
|
651
|
+
"priority": "required"
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
"id": "core-architecture",
|
|
655
|
+
"scope": "all",
|
|
656
|
+
"priority": "required"
|
|
657
|
+
}
|
|
658
|
+
],
|
|
659
|
+
"teammate": {
|
|
660
|
+
"role": "Background Jobs Specialist",
|
|
661
|
+
"icon": "⏰",
|
|
662
|
+
"spawn_prompt": "You are the Background Jobs Specialist (Hangfire). Implement fire-and-forget jobs, delayed jobs, recurring jobs (cron), continuations (chaining). Configure retry policies, queue management. Use IDbContextFactory/IRepositoryFactory for scoped operations in background jobs (NOT direct DbContext injection). Also handles webhook integration, event-driven job pipelines, and async processing of external service callbacks."
|
|
663
|
+
}
|
|
664
|
+
},
|
|
665
|
+
"ms-agent-expert": {
|
|
666
|
+
"tier": 3,
|
|
667
|
+
"title": "Microsoft Agent Framework Expert",
|
|
668
|
+
"group": "ai",
|
|
669
|
+
"active_phases": [
|
|
670
|
+
"design",
|
|
671
|
+
"implement"
|
|
672
|
+
],
|
|
673
|
+
"reports_to": "ai-system-architect",
|
|
674
|
+
"domains": [
|
|
675
|
+
"ai-agents"
|
|
676
|
+
],
|
|
677
|
+
"keywords": [
|
|
678
|
+
"agent",
|
|
679
|
+
"ai",
|
|
680
|
+
"llm",
|
|
681
|
+
"rag",
|
|
682
|
+
"embedding",
|
|
683
|
+
"mcp",
|
|
684
|
+
"a2a",
|
|
685
|
+
"middleware",
|
|
686
|
+
"microsoft agent framework",
|
|
687
|
+
"ichatclient"
|
|
688
|
+
],
|
|
689
|
+
"validators": [
|
|
690
|
+
"architecture",
|
|
691
|
+
"packages"
|
|
692
|
+
],
|
|
693
|
+
"standards": [
|
|
694
|
+
{
|
|
695
|
+
"id": "core-coding",
|
|
696
|
+
"scope": "all",
|
|
697
|
+
"priority": "required"
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"id": "ai-agents-setup",
|
|
701
|
+
"scope": "all",
|
|
702
|
+
"priority": "required"
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
"id": "ai-agents-workflows",
|
|
706
|
+
"scope": "design",
|
|
707
|
+
"priority": "required"
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
"id": "ai-agents-production",
|
|
711
|
+
"scope": "implement",
|
|
712
|
+
"priority": "required"
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"id": "ai-agents-blazor-ui",
|
|
716
|
+
"scope": "implement",
|
|
717
|
+
"priority": "reference"
|
|
718
|
+
}
|
|
719
|
+
],
|
|
720
|
+
"teammate": {
|
|
721
|
+
"role": "Microsoft Agent Framework Expert",
|
|
722
|
+
"icon": "🤖",
|
|
723
|
+
"spawn_prompt": "You are the Microsoft Agent Framework Expert. Implement ChatClientAgent, AIFunctionFactory, agent workflows (sequential, handoff, group chat). Integrate MCP tools (McpClientFactory, ListToolsAsync, Cast<AITool>). Host agents via A2A protocol (MapA2A, agent cards). Add middleware pipeline, observability (WithOpenTelemetry)."
|
|
724
|
+
}
|
|
725
|
+
},
|
|
726
|
+
"supabase-expert": {
|
|
727
|
+
"tier": 3,
|
|
728
|
+
"title": "Supabase & PostgreSQL Specialist",
|
|
729
|
+
"group": "backend",
|
|
730
|
+
"active_phases": [
|
|
731
|
+
"design",
|
|
732
|
+
"implement"
|
|
733
|
+
],
|
|
734
|
+
"reports_to": "dotnet-senior",
|
|
735
|
+
"domains": [
|
|
736
|
+
"backend-supabase"
|
|
737
|
+
],
|
|
738
|
+
"keywords": [
|
|
739
|
+
"supabase",
|
|
740
|
+
"postgresql",
|
|
741
|
+
"rls",
|
|
742
|
+
"realtime",
|
|
743
|
+
"pgvector",
|
|
744
|
+
"row level security",
|
|
745
|
+
"edge functions"
|
|
746
|
+
],
|
|
747
|
+
"validators": [],
|
|
748
|
+
"standards": [
|
|
749
|
+
{
|
|
750
|
+
"id": "core-coding",
|
|
751
|
+
"scope": "all",
|
|
752
|
+
"priority": "required"
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"id": "core-architecture",
|
|
756
|
+
"scope": "all",
|
|
757
|
+
"priority": "required"
|
|
758
|
+
}
|
|
759
|
+
],
|
|
760
|
+
"teammate": {
|
|
761
|
+
"role": "Supabase & PostgreSQL Specialist",
|
|
762
|
+
"icon": "🐘",
|
|
763
|
+
"spawn_prompt": "You are the Supabase & PostgreSQL Specialist. Implement Supabase Auth (magic links, OAuth, JWT), Row Level Security (RLS policies), Realtime subscriptions, Edge Functions (Deno/TypeScript). Use pgvector for embeddings/similarity search. Design efficient schemas with proper indexing."
|
|
764
|
+
}
|
|
765
|
+
},
|
|
766
|
+
"vector-search-expert": {
|
|
767
|
+
"tier": 3,
|
|
768
|
+
"title": "Vector Search & RAG Specialist",
|
|
769
|
+
"group": "ai",
|
|
770
|
+
"active_phases": [
|
|
771
|
+
"design",
|
|
772
|
+
"implement"
|
|
773
|
+
],
|
|
774
|
+
"reports_to": "ai-system-architect",
|
|
775
|
+
"domains": [
|
|
776
|
+
"ai-vector"
|
|
777
|
+
],
|
|
778
|
+
"keywords": [
|
|
779
|
+
"vector db",
|
|
780
|
+
"embeddings",
|
|
781
|
+
"semantic search",
|
|
782
|
+
"rag",
|
|
783
|
+
"pgvector",
|
|
784
|
+
"similarity search",
|
|
785
|
+
"retrieval augmented"
|
|
786
|
+
],
|
|
787
|
+
"validators": [],
|
|
788
|
+
"standards": [
|
|
789
|
+
{
|
|
790
|
+
"id": "core-coding",
|
|
791
|
+
"scope": "all",
|
|
792
|
+
"priority": "required"
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
"id": "ai-agents-setup",
|
|
796
|
+
"scope": "all",
|
|
797
|
+
"priority": "required"
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
"id": "ai-agents-workflows",
|
|
801
|
+
"scope": "design",
|
|
802
|
+
"priority": "required"
|
|
803
|
+
}
|
|
804
|
+
],
|
|
805
|
+
"teammate": {
|
|
806
|
+
"role": "Vector Search & RAG Specialist",
|
|
807
|
+
"icon": "🔎",
|
|
808
|
+
"spawn_prompt": "You are the Vector Search & RAG Specialist. Implement vector embeddings (OpenAI, Azure AI), similarity search (pgvector, Azure AI Search), RAG pipelines (chunking, embedding, retrieval). Design hybrid search (vector + full-text). Optimize embedding dimensions and index types (HNSW, IVFFlat)."
|
|
809
|
+
}
|
|
810
|
+
},
|
|
811
|
+
"context-optimizer": {
|
|
812
|
+
"tier": 3,
|
|
813
|
+
"title": "Context & Token Optimization Specialist",
|
|
814
|
+
"group": "ai",
|
|
815
|
+
"active_phases": [
|
|
816
|
+
"implement"
|
|
817
|
+
],
|
|
818
|
+
"reports_to": "ai-system-architect",
|
|
819
|
+
"domains": [
|
|
820
|
+
"ai-context"
|
|
821
|
+
],
|
|
822
|
+
"keywords": [
|
|
823
|
+
"context window",
|
|
824
|
+
"token optimization",
|
|
825
|
+
"chunking",
|
|
826
|
+
"context compression",
|
|
827
|
+
"summarization",
|
|
828
|
+
"token budget"
|
|
829
|
+
],
|
|
830
|
+
"validators": [],
|
|
831
|
+
"standards": [
|
|
832
|
+
{
|
|
833
|
+
"id": "core-coding",
|
|
834
|
+
"scope": "all",
|
|
835
|
+
"priority": "required"
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
"id": "ai-agents-workflows",
|
|
839
|
+
"scope": "all",
|
|
840
|
+
"priority": "required"
|
|
841
|
+
}
|
|
842
|
+
],
|
|
843
|
+
"teammate": {
|
|
844
|
+
"role": "Context & Token Optimization Specialist",
|
|
845
|
+
"icon": "🧠",
|
|
846
|
+
"spawn_prompt": "You are the Context & Token Optimization Specialist. Optimize context windows (sliding window, summarization, selective inclusion), implement token counting and budget management, design chunking strategies (semantic, fixed-size, recursive). Reduce costs through prompt caching, context compression."
|
|
847
|
+
}
|
|
848
|
+
},
|
|
849
|
+
"prompt-engineer": {
|
|
850
|
+
"tier": 3,
|
|
851
|
+
"title": "Prompt Engineer",
|
|
852
|
+
"group": "ai",
|
|
853
|
+
"active_phases": [
|
|
854
|
+
"design",
|
|
855
|
+
"implement"
|
|
856
|
+
],
|
|
857
|
+
"reports_to": "ai-system-architect",
|
|
858
|
+
"domains": [
|
|
859
|
+
"ai-prompts"
|
|
860
|
+
],
|
|
861
|
+
"keywords": [
|
|
862
|
+
"prompt",
|
|
863
|
+
"prompting",
|
|
864
|
+
"system prompt",
|
|
865
|
+
"few-shot",
|
|
866
|
+
"chain-of-thought",
|
|
867
|
+
"llm prompt",
|
|
868
|
+
"agent prompt"
|
|
869
|
+
],
|
|
870
|
+
"validators": [],
|
|
871
|
+
"standards": [
|
|
872
|
+
{
|
|
873
|
+
"id": "core-coding",
|
|
874
|
+
"scope": "all",
|
|
875
|
+
"priority": "required"
|
|
876
|
+
}
|
|
877
|
+
],
|
|
878
|
+
"teammate": {
|
|
879
|
+
"role": "Prompt Engineer",
|
|
880
|
+
"icon": "✍️",
|
|
881
|
+
"spawn_prompt": "You are the Prompt Engineer (tier-3). Design system prompts, few-shot examples, chain-of-thought patterns, and optimize LLM interactions. Always show the full prompt text — never just describe it. Apply techniques: constitutional AI, recursive prompting, tree of thoughts, self-consistency."
|
|
882
|
+
}
|
|
883
|
+
},
|
|
884
|
+
"asaas-financial": {
|
|
885
|
+
"tier": 3,
|
|
886
|
+
"title": "Payment Integration Specialist (Brazil)",
|
|
887
|
+
"group": "backend",
|
|
888
|
+
"active_phases": [
|
|
889
|
+
"design",
|
|
890
|
+
"implement"
|
|
891
|
+
],
|
|
892
|
+
"reports_to": "dotnet-senior",
|
|
893
|
+
"domains": [
|
|
894
|
+
"integration-payment"
|
|
895
|
+
],
|
|
896
|
+
"keywords": [
|
|
897
|
+
"asaas",
|
|
898
|
+
"payment",
|
|
899
|
+
"pix",
|
|
900
|
+
"boleto",
|
|
901
|
+
"credit card",
|
|
902
|
+
"subscription",
|
|
903
|
+
"pagamento"
|
|
904
|
+
],
|
|
905
|
+
"validators": [
|
|
906
|
+
"architecture",
|
|
907
|
+
"contract-compliance"
|
|
908
|
+
],
|
|
909
|
+
"standards": [
|
|
910
|
+
{
|
|
911
|
+
"id": "core-coding",
|
|
912
|
+
"scope": "all",
|
|
913
|
+
"priority": "required"
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"id": "core-architecture",
|
|
917
|
+
"scope": "all",
|
|
918
|
+
"priority": "required"
|
|
919
|
+
}
|
|
920
|
+
],
|
|
921
|
+
"teammate": {
|
|
922
|
+
"role": "Payment Integration Specialist",
|
|
923
|
+
"icon": "💳",
|
|
924
|
+
"spawn_prompt": "You are the Payment Integration Specialist (Asaas SDK for Brazil). Implement PIX payments, Boleto generation, Credit Card processing, Subscription management. Follow contract-compliance validator patterns for SDK usage."
|
|
925
|
+
}
|
|
926
|
+
},
|
|
927
|
+
"clerk-auth": {
|
|
928
|
+
"tier": 3,
|
|
929
|
+
"title": "Auth SaaS Integration Specialist",
|
|
930
|
+
"group": "backend",
|
|
931
|
+
"active_phases": [
|
|
932
|
+
"design",
|
|
933
|
+
"implement"
|
|
934
|
+
],
|
|
935
|
+
"reports_to": "dotnet-senior",
|
|
936
|
+
"domains": [
|
|
937
|
+
"integration-auth"
|
|
938
|
+
],
|
|
939
|
+
"keywords": [
|
|
940
|
+
"clerk",
|
|
941
|
+
"clerk auth",
|
|
942
|
+
"add auth",
|
|
943
|
+
"implement auth",
|
|
944
|
+
"login",
|
|
945
|
+
"signup",
|
|
946
|
+
"oauth"
|
|
947
|
+
],
|
|
948
|
+
"validators": [],
|
|
949
|
+
"standards": [
|
|
950
|
+
{
|
|
951
|
+
"id": "core-coding",
|
|
952
|
+
"scope": "all",
|
|
953
|
+
"priority": "required"
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
"id": "core-architecture",
|
|
957
|
+
"scope": "all",
|
|
958
|
+
"priority": "required"
|
|
959
|
+
}
|
|
960
|
+
],
|
|
961
|
+
"teammate": {
|
|
962
|
+
"role": "Auth SaaS Integration Specialist",
|
|
963
|
+
"icon": "🔐",
|
|
964
|
+
"spawn_prompt": "You are the Auth SaaS Integration Specialist (Clerk SDK). Implement Clerk authentication flows (login, signup, OAuth), session management, user profile. Integrate with Blazor or Next.js frontend."
|
|
965
|
+
}
|
|
966
|
+
},
|
|
967
|
+
"resend-email": {
|
|
968
|
+
"tier": 3,
|
|
969
|
+
"title": "Email Integration Specialist",
|
|
970
|
+
"group": "backend",
|
|
971
|
+
"active_phases": [
|
|
972
|
+
"implement"
|
|
973
|
+
],
|
|
974
|
+
"reports_to": "dotnet-senior",
|
|
975
|
+
"domains": [
|
|
976
|
+
"integration-email"
|
|
977
|
+
],
|
|
978
|
+
"keywords": [
|
|
979
|
+
"resend",
|
|
980
|
+
"email",
|
|
981
|
+
"transactional email",
|
|
982
|
+
"email notification",
|
|
983
|
+
"send email",
|
|
984
|
+
"email template",
|
|
985
|
+
"smtp"
|
|
986
|
+
],
|
|
987
|
+
"validators": [
|
|
988
|
+
"architecture",
|
|
989
|
+
"contract-compliance"
|
|
990
|
+
],
|
|
991
|
+
"standards": [
|
|
992
|
+
{
|
|
993
|
+
"id": "core-coding",
|
|
994
|
+
"scope": "all",
|
|
995
|
+
"priority": "required"
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
"id": "core-architecture",
|
|
999
|
+
"scope": "all",
|
|
1000
|
+
"priority": "required"
|
|
1001
|
+
}
|
|
1002
|
+
],
|
|
1003
|
+
"teammate": {
|
|
1004
|
+
"role": "Email Integration Specialist",
|
|
1005
|
+
"icon": "📧",
|
|
1006
|
+
"spawn_prompt": "You are the Email Integration Specialist (Resend SDK). Implement transactional emails, email templates, notification sending. Follow contract-compliance validator for SDK usage patterns."
|
|
1007
|
+
}
|
|
1008
|
+
},
|
|
1009
|
+
"blazor-builder": {
|
|
1010
|
+
"tier": 3,
|
|
1011
|
+
"title": "Blazor Development Specialist",
|
|
1012
|
+
"group": "frontend",
|
|
1013
|
+
"active_phases": [
|
|
1014
|
+
"uiux",
|
|
1015
|
+
"tasks",
|
|
1016
|
+
"implement"
|
|
1017
|
+
],
|
|
1018
|
+
"reports_to": "ui-designer",
|
|
1019
|
+
"domains": [
|
|
1020
|
+
"frontend-blazor"
|
|
1021
|
+
],
|
|
1022
|
+
"keywords": [
|
|
1023
|
+
"blazor",
|
|
1024
|
+
"razor",
|
|
1025
|
+
"server-side",
|
|
1026
|
+
"component",
|
|
1027
|
+
"fluent ui",
|
|
1028
|
+
"mudblazor",
|
|
1029
|
+
"signalr",
|
|
1030
|
+
"page",
|
|
1031
|
+
"view",
|
|
1032
|
+
"form"
|
|
1033
|
+
],
|
|
1034
|
+
"validators": [
|
|
1035
|
+
"architecture",
|
|
1036
|
+
"blazor",
|
|
1037
|
+
"blazor-concurrency",
|
|
1038
|
+
"blazor-state",
|
|
1039
|
+
"css",
|
|
1040
|
+
"design-system"
|
|
1041
|
+
],
|
|
1042
|
+
"standards": [
|
|
1043
|
+
{
|
|
1044
|
+
"id": "core-coding",
|
|
1045
|
+
"scope": "all",
|
|
1046
|
+
"priority": "required"
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
"id": "frontend-blazor-lifecycle",
|
|
1050
|
+
"scope": "all",
|
|
1051
|
+
"priority": "required"
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"id": "frontend-blazor-state",
|
|
1055
|
+
"scope": "all",
|
|
1056
|
+
"priority": "required"
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"id": "frontend-blazor-pitfalls",
|
|
1060
|
+
"scope": "all",
|
|
1061
|
+
"priority": "required"
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
"id": "backend-database-ef-core",
|
|
1065
|
+
"scope": "implement",
|
|
1066
|
+
"priority": "reference"
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"id": "frontend-blazor-fluent-ui",
|
|
1070
|
+
"scope": "all",
|
|
1071
|
+
"priority": "required"
|
|
1072
|
+
}
|
|
1073
|
+
],
|
|
1074
|
+
"teammate": {
|
|
1075
|
+
"role": "Blazor Development Specialist",
|
|
1076
|
+
"icon": "⚡",
|
|
1077
|
+
"spawn_prompt": "You are the Blazor Development Specialist. Build Blazor Server components (Fluent UI or MudBlazor). Follow component-per-file pattern, use @inject for DI, implement loading states and error boundaries. Integrate SignalR for real-time features. Message ef-modeler for data, css-specialist for design system validation."
|
|
1078
|
+
}
|
|
1079
|
+
},
|
|
1080
|
+
"nextjs-expert": {
|
|
1081
|
+
"tier": 3,
|
|
1082
|
+
"title": "Next.js Development Specialist",
|
|
1083
|
+
"group": "frontend",
|
|
1084
|
+
"active_phases": [
|
|
1085
|
+
"uiux",
|
|
1086
|
+
"tasks",
|
|
1087
|
+
"implement"
|
|
1088
|
+
],
|
|
1089
|
+
"reports_to": "ui-designer",
|
|
1090
|
+
"domains": [
|
|
1091
|
+
"frontend-nextjs"
|
|
1092
|
+
],
|
|
1093
|
+
"keywords": [
|
|
1094
|
+
"next.js",
|
|
1095
|
+
"nextjs",
|
|
1096
|
+
"react",
|
|
1097
|
+
"tsx",
|
|
1098
|
+
"shadcn",
|
|
1099
|
+
"tailwind",
|
|
1100
|
+
"tanstack",
|
|
1101
|
+
"react-query",
|
|
1102
|
+
"zod",
|
|
1103
|
+
"react-hook-form",
|
|
1104
|
+
"app router",
|
|
1105
|
+
"server component",
|
|
1106
|
+
"client component",
|
|
1107
|
+
"vercel",
|
|
1108
|
+
"neon",
|
|
1109
|
+
"planetscale"
|
|
1110
|
+
],
|
|
1111
|
+
"validators": [
|
|
1112
|
+
"nextjs-component"
|
|
1113
|
+
],
|
|
1114
|
+
"standards": [
|
|
1115
|
+
{
|
|
1116
|
+
"id": "core-coding",
|
|
1117
|
+
"scope": "all",
|
|
1118
|
+
"priority": "required"
|
|
1119
|
+
},
|
|
1120
|
+
{
|
|
1121
|
+
"id": "core-architecture",
|
|
1122
|
+
"scope": "all",
|
|
1123
|
+
"priority": "required"
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
"id": "frontend-nextjs-naming-conventions",
|
|
1127
|
+
"scope": "all",
|
|
1128
|
+
"priority": "required"
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
"id": "frontend-nextjs-project-structure",
|
|
1132
|
+
"scope": "all",
|
|
1133
|
+
"priority": "required"
|
|
1134
|
+
},
|
|
1135
|
+
{
|
|
1136
|
+
"id": "frontend-nextjs-app-router",
|
|
1137
|
+
"scope": "all",
|
|
1138
|
+
"priority": "required"
|
|
1139
|
+
},
|
|
1140
|
+
{
|
|
1141
|
+
"id": "frontend-nextjs-components",
|
|
1142
|
+
"scope": "all",
|
|
1143
|
+
"priority": "required"
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
"id": "frontend-nextjs-data-fetching",
|
|
1147
|
+
"scope": "implement",
|
|
1148
|
+
"priority": "required"
|
|
1149
|
+
},
|
|
1150
|
+
{
|
|
1151
|
+
"id": "frontend-nextjs-forms",
|
|
1152
|
+
"scope": "implement",
|
|
1153
|
+
"priority": "required"
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
"id": "frontend-nextjs-state-management",
|
|
1157
|
+
"scope": "implement",
|
|
1158
|
+
"priority": "required"
|
|
1159
|
+
},
|
|
1160
|
+
{
|
|
1161
|
+
"id": "frontend-nextjs-testing",
|
|
1162
|
+
"scope": "implement",
|
|
1163
|
+
"priority": "reference"
|
|
1164
|
+
},
|
|
1165
|
+
{
|
|
1166
|
+
"id": "frontend-nextjs-nextjs-patterns",
|
|
1167
|
+
"scope": "all",
|
|
1168
|
+
"priority": "required"
|
|
1169
|
+
},
|
|
1170
|
+
{
|
|
1171
|
+
"id": "infrastructure-vercel-database",
|
|
1172
|
+
"scope": "design",
|
|
1173
|
+
"priority": "required"
|
|
1174
|
+
}
|
|
1175
|
+
],
|
|
1176
|
+
"teammate": {
|
|
1177
|
+
"role": "Next.js Development Specialist",
|
|
1178
|
+
"icon": "⚛️",
|
|
1179
|
+
"spawn_prompt": "You are the Next.js Development Specialist. Build Next.js 14+ applications with shadcn/ui components, TanStack Query for data fetching, Server Actions for mutations. Implement Route Handlers for API routes. Message api-designer for backend endpoints, css-specialist for design system. IMPORTANT: When deployment target is Vercel, database must be serverless (Neon, Supabase/PgBouncer port 6543, PlanetScale) — never a plain TCP connection pool."
|
|
1180
|
+
}
|
|
1181
|
+
},
|
|
1182
|
+
"nextjs-ui-specialist": {
|
|
1183
|
+
"tier": 3,
|
|
1184
|
+
"title": "Next.js UI Specialist",
|
|
1185
|
+
"group": "frontend",
|
|
1186
|
+
"active_phases": [
|
|
1187
|
+
"design",
|
|
1188
|
+
"tasks",
|
|
1189
|
+
"implement"
|
|
1190
|
+
],
|
|
1191
|
+
"reports_to": "ui-designer",
|
|
1192
|
+
"domains": [
|
|
1193
|
+
"frontend-nextjs-ui"
|
|
1194
|
+
],
|
|
1195
|
+
"keywords": [
|
|
1196
|
+
"framer-motion",
|
|
1197
|
+
"animation",
|
|
1198
|
+
"transition",
|
|
1199
|
+
"motion design",
|
|
1200
|
+
"shadcn theme",
|
|
1201
|
+
"tailwind tokens",
|
|
1202
|
+
"tailwind config",
|
|
1203
|
+
"design system",
|
|
1204
|
+
"icon system",
|
|
1205
|
+
"lucide",
|
|
1206
|
+
"animated",
|
|
1207
|
+
"micro-interaction",
|
|
1208
|
+
"hover effect",
|
|
1209
|
+
"scroll animation",
|
|
1210
|
+
"page transition",
|
|
1211
|
+
"variants",
|
|
1212
|
+
"AnimatePresence"
|
|
1213
|
+
],
|
|
1214
|
+
"validators": [
|
|
1215
|
+
"design-system",
|
|
1216
|
+
"nextjs-component"
|
|
1217
|
+
],
|
|
1218
|
+
"standards": [
|
|
1219
|
+
{
|
|
1220
|
+
"id": "core-coding",
|
|
1221
|
+
"scope": "all",
|
|
1222
|
+
"priority": "required"
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"id": "frontend-nextjs-components",
|
|
1226
|
+
"scope": "all",
|
|
1227
|
+
"priority": "required"
|
|
1228
|
+
},
|
|
1229
|
+
{
|
|
1230
|
+
"id": "frontend-nextjs-nextjs-patterns",
|
|
1231
|
+
"scope": "all",
|
|
1232
|
+
"priority": "required"
|
|
1233
|
+
},
|
|
1234
|
+
{
|
|
1235
|
+
"id": "frontend-nextjs-motion-patterns",
|
|
1236
|
+
"scope": "all",
|
|
1237
|
+
"priority": "required"
|
|
1238
|
+
}
|
|
1239
|
+
],
|
|
1240
|
+
"teammate": {
|
|
1241
|
+
"role": "Next.js UI Specialist",
|
|
1242
|
+
"icon": "✨",
|
|
1243
|
+
"spawn_prompt": "You are the Next.js UI Specialist (Tier 3). Focus exclusively on the visual layer: Framer Motion animations (variants, AnimatePresence, useInView, gestures), shadcn/ui theming via CSS vars without editing primitives, Tailwind token bridging from design-system.md, and Lucide icon consistency. ALWAYS read .morph/context/design-system.md first and use only defined tokens. ALWAYS implement useReducedMotion() for WCAG compliance. Do NOT handle data-fetching, routing, or API routes — that's nextjs-expert's domain."
|
|
1244
|
+
}
|
|
1245
|
+
},
|
|
1246
|
+
"css-specialist": {
|
|
1247
|
+
"tier": 3,
|
|
1248
|
+
"title": "CSS & Design System Specialist",
|
|
1249
|
+
"group": "frontend",
|
|
1250
|
+
"active_phases": [
|
|
1251
|
+
"implement"
|
|
1252
|
+
],
|
|
1253
|
+
"reports_to": "ui-designer",
|
|
1254
|
+
"domains": [
|
|
1255
|
+
"frontend-css"
|
|
1256
|
+
],
|
|
1257
|
+
"keywords": [
|
|
1258
|
+
"css",
|
|
1259
|
+
"design system",
|
|
1260
|
+
"styling",
|
|
1261
|
+
"theme",
|
|
1262
|
+
"design tokens",
|
|
1263
|
+
"palette"
|
|
1264
|
+
],
|
|
1265
|
+
"validators": [
|
|
1266
|
+
"css",
|
|
1267
|
+
"contrast",
|
|
1268
|
+
"design-system"
|
|
1269
|
+
],
|
|
1270
|
+
"standards": [
|
|
1271
|
+
{
|
|
1272
|
+
"id": "frontend-design-system-naming",
|
|
1273
|
+
"scope": "all",
|
|
1274
|
+
"priority": "required"
|
|
1275
|
+
},
|
|
1276
|
+
{
|
|
1277
|
+
"id": "frontend-design-system-animations",
|
|
1278
|
+
"scope": "all",
|
|
1279
|
+
"priority": "required"
|
|
1280
|
+
}
|
|
1281
|
+
],
|
|
1282
|
+
"teammate": {
|
|
1283
|
+
"role": "CSS & Design System Specialist",
|
|
1284
|
+
"icon": "🎨",
|
|
1285
|
+
"spawn_prompt": "You are the CSS & Design System Specialist (FASE 5 only). MANDATORY FIRST STEP: Read .morph/context/design-system.md. Validate all CSS follows the design system (no off-palette hardcoded colors, no inline styles with raw values). Enforce naming conventions (BEM for custom classes). Verify WCAG AA contrast (4.5:1 text, 3:1 UI). Run design-system, css, contrast validators. Any missing tokens must be added to design-system.md before proceeding."
|
|
1286
|
+
}
|
|
1287
|
+
},
|
|
1288
|
+
"seo-growth-hacker": {
|
|
1289
|
+
"tier": 3,
|
|
1290
|
+
"title": "SEO & Growth Specialist",
|
|
1291
|
+
"group": "frontend",
|
|
1292
|
+
"active_phases": [
|
|
1293
|
+
"implement"
|
|
1294
|
+
],
|
|
1295
|
+
"reports_to": "ui-designer",
|
|
1296
|
+
"domains": [
|
|
1297
|
+
"seo"
|
|
1298
|
+
],
|
|
1299
|
+
"keywords": [
|
|
1300
|
+
"seo",
|
|
1301
|
+
"landing page",
|
|
1302
|
+
"meta tags",
|
|
1303
|
+
"core web vitals",
|
|
1304
|
+
"schema markup",
|
|
1305
|
+
"organic traffic",
|
|
1306
|
+
"content marketing"
|
|
1307
|
+
],
|
|
1308
|
+
"validators": [],
|
|
1309
|
+
"standards": [
|
|
1310
|
+
{
|
|
1311
|
+
"id": "core-coding",
|
|
1312
|
+
"scope": "all",
|
|
1313
|
+
"priority": "required"
|
|
1314
|
+
}
|
|
1315
|
+
],
|
|
1316
|
+
"teammate": {
|
|
1317
|
+
"role": "SEO & Growth Specialist",
|
|
1318
|
+
"icon": "📈",
|
|
1319
|
+
"spawn_prompt": "You are the SEO & Growth Specialist (tier-3). Audit technical SEO (Core Web Vitals, meta tags, schema markup JSON-LD), optimize content for search engines, implement structured data (Product, Article, FAQ, HowTo, Organization). Focus on Next.js/Blazor page optimization, Lighthouse scores, and organic traffic growth."
|
|
1320
|
+
}
|
|
1321
|
+
},
|
|
1322
|
+
"bicep-architect": {
|
|
1323
|
+
"tier": 3,
|
|
1324
|
+
"title": "Infrastructure as Code Specialist",
|
|
1325
|
+
"group": "infra",
|
|
1326
|
+
"active_phases": [
|
|
1327
|
+
"design",
|
|
1328
|
+
"implement"
|
|
1329
|
+
],
|
|
1330
|
+
"reports_to": "azure-architect",
|
|
1331
|
+
"domains": [
|
|
1332
|
+
"infrastructure-iac"
|
|
1333
|
+
],
|
|
1334
|
+
"keywords": [
|
|
1335
|
+
"bicep",
|
|
1336
|
+
"iac",
|
|
1337
|
+
"infra",
|
|
1338
|
+
"provision",
|
|
1339
|
+
"arm template",
|
|
1340
|
+
"infrastructure as code"
|
|
1341
|
+
],
|
|
1342
|
+
"validators": [
|
|
1343
|
+
"architecture"
|
|
1344
|
+
],
|
|
1345
|
+
"standards": [
|
|
1346
|
+
{
|
|
1347
|
+
"id": "core-coding",
|
|
1348
|
+
"scope": "all",
|
|
1349
|
+
"priority": "required"
|
|
1350
|
+
},
|
|
1351
|
+
{
|
|
1352
|
+
"id": "core-architecture",
|
|
1353
|
+
"scope": "all",
|
|
1354
|
+
"priority": "required"
|
|
1355
|
+
},
|
|
1356
|
+
{
|
|
1357
|
+
"id": "infrastructure-azure-azure",
|
|
1358
|
+
"scope": "all",
|
|
1359
|
+
"priority": "required"
|
|
1360
|
+
}
|
|
1361
|
+
],
|
|
1362
|
+
"teammate": {
|
|
1363
|
+
"role": "Infrastructure as Code Specialist",
|
|
1364
|
+
"icon": "📜",
|
|
1365
|
+
"spawn_prompt": "You are the Infrastructure as Code Specialist (Bicep). Write main.bicep, modules/*.bicep, parameters.{env}.json. Never create Azure resources manually. Also handles Azure Container Apps deployment: env var mapping (config:path → DOUBLE__UNDERSCORE), what-if validation before deploy, Blazor Server sticky sessions, rollback via revision activation, and cost validation."
|
|
1366
|
+
}
|
|
1367
|
+
},
|
|
1368
|
+
"devops-engineer": {
|
|
1369
|
+
"tier": 3,
|
|
1370
|
+
"title": "CI/CD Specialist",
|
|
1371
|
+
"group": "infra",
|
|
1372
|
+
"active_phases": [
|
|
1373
|
+
"implement"
|
|
1374
|
+
],
|
|
1375
|
+
"reports_to": "infra-architect",
|
|
1376
|
+
"domains": [
|
|
1377
|
+
"infrastructure-cicd"
|
|
1378
|
+
],
|
|
1379
|
+
"keywords": [
|
|
1380
|
+
"pipeline",
|
|
1381
|
+
"ci/cd",
|
|
1382
|
+
"deploy",
|
|
1383
|
+
"release",
|
|
1384
|
+
"github actions",
|
|
1385
|
+
"azure pipelines",
|
|
1386
|
+
"deployment"
|
|
1387
|
+
],
|
|
1388
|
+
"validators": [],
|
|
1389
|
+
"standards": [
|
|
1390
|
+
{
|
|
1391
|
+
"id": "core-coding",
|
|
1392
|
+
"scope": "all",
|
|
1393
|
+
"priority": "required"
|
|
1394
|
+
},
|
|
1395
|
+
{
|
|
1396
|
+
"id": "core-architecture",
|
|
1397
|
+
"scope": "all",
|
|
1398
|
+
"priority": "required"
|
|
1399
|
+
}
|
|
1400
|
+
],
|
|
1401
|
+
"teammate": {
|
|
1402
|
+
"role": "CI/CD Specialist",
|
|
1403
|
+
"icon": "🚀",
|
|
1404
|
+
"spawn_prompt": "You are the CI/CD Specialist. Build Azure Pipelines or GitHub Actions workflows. Implement Blue-Green, Canary, Rolling deployment strategies. Integrate with bicep-architect for IaC deployment, container-specialist for image builds."
|
|
1405
|
+
}
|
|
1406
|
+
},
|
|
1407
|
+
"container-specialist": {
|
|
1408
|
+
"tier": 3,
|
|
1409
|
+
"title": "Containerization Specialist",
|
|
1410
|
+
"group": "infra",
|
|
1411
|
+
"active_phases": [
|
|
1412
|
+
"implement"
|
|
1413
|
+
],
|
|
1414
|
+
"reports_to": "infra-architect",
|
|
1415
|
+
"domains": [
|
|
1416
|
+
"infrastructure-containers"
|
|
1417
|
+
],
|
|
1418
|
+
"keywords": [
|
|
1419
|
+
"docker",
|
|
1420
|
+
"container",
|
|
1421
|
+
"containerize",
|
|
1422
|
+
"dockerfile",
|
|
1423
|
+
"multi-stage",
|
|
1424
|
+
"container apps"
|
|
1425
|
+
],
|
|
1426
|
+
"validators": [],
|
|
1427
|
+
"standards": [
|
|
1428
|
+
{
|
|
1429
|
+
"id": "core-coding",
|
|
1430
|
+
"scope": "all",
|
|
1431
|
+
"priority": "required"
|
|
1432
|
+
},
|
|
1433
|
+
{
|
|
1434
|
+
"id": "core-architecture",
|
|
1435
|
+
"scope": "all",
|
|
1436
|
+
"priority": "required"
|
|
1437
|
+
}
|
|
1438
|
+
],
|
|
1439
|
+
"teammate": {
|
|
1440
|
+
"role": "Containerization Specialist",
|
|
1441
|
+
"icon": "🐳",
|
|
1442
|
+
"spawn_prompt": "You are the Containerization Specialist. Write Dockerfiles (multi-stage builds), .dockerignore. Deploy to Azure Container Apps (scale-to-zero, KEDA scaling). Optimize image size, configure health checks."
|
|
1443
|
+
}
|
|
1444
|
+
},
|
|
1445
|
+
"observability-expert": {
|
|
1446
|
+
"tier": 3,
|
|
1447
|
+
"title": "Observability Specialist",
|
|
1448
|
+
"group": "infra",
|
|
1449
|
+
"active_phases": [
|
|
1450
|
+
"implement"
|
|
1451
|
+
],
|
|
1452
|
+
"reports_to": "infra-architect",
|
|
1453
|
+
"domains": [
|
|
1454
|
+
"infrastructure-observability"
|
|
1455
|
+
],
|
|
1456
|
+
"keywords": [
|
|
1457
|
+
"monitoring",
|
|
1458
|
+
"logging",
|
|
1459
|
+
"tracing",
|
|
1460
|
+
"metrics",
|
|
1461
|
+
"app insights",
|
|
1462
|
+
"serilog",
|
|
1463
|
+
"opentelemetry",
|
|
1464
|
+
"dashboards",
|
|
1465
|
+
"alerts"
|
|
1466
|
+
],
|
|
1467
|
+
"validators": [
|
|
1468
|
+
"observability"
|
|
1469
|
+
],
|
|
1470
|
+
"standards": [
|
|
1471
|
+
{
|
|
1472
|
+
"id": "core-coding",
|
|
1473
|
+
"scope": "all",
|
|
1474
|
+
"priority": "required"
|
|
1475
|
+
},
|
|
1476
|
+
{
|
|
1477
|
+
"id": "core-architecture",
|
|
1478
|
+
"scope": "all",
|
|
1479
|
+
"priority": "required"
|
|
1480
|
+
}
|
|
1481
|
+
],
|
|
1482
|
+
"teammate": {
|
|
1483
|
+
"role": "Observability Specialist",
|
|
1484
|
+
"icon": "📊",
|
|
1485
|
+
"spawn_prompt": "You are the Observability Specialist. Setup Application Insights (connection strings, sampling), configure Serilog (sinks, enrichers), instrument OpenTelemetry (.NET SDK). Create custom metrics, dashboards, alert rules. Write Log Analytics queries (KQL)."
|
|
1486
|
+
}
|
|
1487
|
+
},
|
|
1488
|
+
"azure-identity": {
|
|
1489
|
+
"tier": 3,
|
|
1490
|
+
"title": "Microsoft Identity Specialist",
|
|
1491
|
+
"group": "infra",
|
|
1492
|
+
"active_phases": [
|
|
1493
|
+
"design",
|
|
1494
|
+
"implement"
|
|
1495
|
+
],
|
|
1496
|
+
"reports_to": "infra-architect",
|
|
1497
|
+
"domains": [
|
|
1498
|
+
"infrastructure-identity"
|
|
1499
|
+
],
|
|
1500
|
+
"keywords": [
|
|
1501
|
+
"identity",
|
|
1502
|
+
"entra",
|
|
1503
|
+
"microsoft auth",
|
|
1504
|
+
"azure ad",
|
|
1505
|
+
"b2c",
|
|
1506
|
+
"passkeys",
|
|
1507
|
+
"webauthn",
|
|
1508
|
+
"managed identity"
|
|
1509
|
+
],
|
|
1510
|
+
"validators": [],
|
|
1511
|
+
"standards": [
|
|
1512
|
+
{
|
|
1513
|
+
"id": "core-coding",
|
|
1514
|
+
"scope": "all",
|
|
1515
|
+
"priority": "required"
|
|
1516
|
+
},
|
|
1517
|
+
{
|
|
1518
|
+
"id": "core-architecture",
|
|
1519
|
+
"scope": "all",
|
|
1520
|
+
"priority": "required"
|
|
1521
|
+
}
|
|
1522
|
+
],
|
|
1523
|
+
"teammate": {
|
|
1524
|
+
"role": "Microsoft Identity Specialist",
|
|
1525
|
+
"icon": "🔑",
|
|
1526
|
+
"spawn_prompt": "You are the Microsoft Identity Specialist. Implement Azure AD B2C, Entra External ID, Managed Identity for Azure resources. Add WebAuthn/Passkeys support (FIDO2 registration/authentication flows)."
|
|
1527
|
+
}
|
|
1528
|
+
},
|
|
1529
|
+
"testing-specialist": {
|
|
1530
|
+
"tier": 3,
|
|
1531
|
+
"title": "Testing Specialist",
|
|
1532
|
+
"group": "testing",
|
|
1533
|
+
"active_phases": [
|
|
1534
|
+
"implement"
|
|
1535
|
+
],
|
|
1536
|
+
"reports_to": "standards-architect",
|
|
1537
|
+
"domains": [
|
|
1538
|
+
"quality-testing"
|
|
1539
|
+
],
|
|
1540
|
+
"keywords": [
|
|
1541
|
+
"test",
|
|
1542
|
+
"testing",
|
|
1543
|
+
"unit",
|
|
1544
|
+
"integration",
|
|
1545
|
+
"e2e",
|
|
1546
|
+
"xunit",
|
|
1547
|
+
"moq",
|
|
1548
|
+
"testcontainers",
|
|
1549
|
+
"bunit"
|
|
1550
|
+
],
|
|
1551
|
+
"validators": [],
|
|
1552
|
+
"standards": [
|
|
1553
|
+
{
|
|
1554
|
+
"id": "core-coding",
|
|
1555
|
+
"scope": "all",
|
|
1556
|
+
"priority": "required"
|
|
1557
|
+
},
|
|
1558
|
+
{
|
|
1559
|
+
"id": "core-architecture",
|
|
1560
|
+
"scope": "all",
|
|
1561
|
+
"priority": "required"
|
|
1562
|
+
}
|
|
1563
|
+
],
|
|
1564
|
+
"teammate": {
|
|
1565
|
+
"role": "Testing Specialist",
|
|
1566
|
+
"icon": "🧪",
|
|
1567
|
+
"spawn_prompt": "You are the Testing Specialist. Write unit tests (xUnit, Moq/NSubstitute, FluentAssertions), integration tests (TestContainers, Respawn for DB reset), Blazor component tests (bUnit), HTTP mocking (WireMock). Follow Arrange-Act-Assert (AAA) pattern."
|
|
1568
|
+
}
|
|
1569
|
+
},
|
|
1570
|
+
"code-analyzer": {
|
|
1571
|
+
"tier": 3,
|
|
1572
|
+
"title": "Code Quality Analyst",
|
|
1573
|
+
"group": "testing",
|
|
1574
|
+
"active_phases": [
|
|
1575
|
+
"implement"
|
|
1576
|
+
],
|
|
1577
|
+
"reports_to": "standards-architect",
|
|
1578
|
+
"domains": [
|
|
1579
|
+
"quality-review"
|
|
1580
|
+
],
|
|
1581
|
+
"keywords": [
|
|
1582
|
+
"analyze",
|
|
1583
|
+
"review",
|
|
1584
|
+
"refactor",
|
|
1585
|
+
"clean code",
|
|
1586
|
+
"smell",
|
|
1587
|
+
"duplicate",
|
|
1588
|
+
"solid",
|
|
1589
|
+
"architecture review"
|
|
1590
|
+
],
|
|
1591
|
+
"validators": [],
|
|
1592
|
+
"standards": [
|
|
1593
|
+
{
|
|
1594
|
+
"id": "core-coding",
|
|
1595
|
+
"scope": "all",
|
|
1596
|
+
"priority": "required"
|
|
1597
|
+
},
|
|
1598
|
+
{
|
|
1599
|
+
"id": "core-architecture",
|
|
1600
|
+
"scope": "all",
|
|
1601
|
+
"priority": "required"
|
|
1602
|
+
}
|
|
1603
|
+
],
|
|
1604
|
+
"teammate": {
|
|
1605
|
+
"role": "Code Quality Analyst",
|
|
1606
|
+
"icon": "🔍",
|
|
1607
|
+
"spawn_prompt": "You are the Code Quality Analyst. Review code for architecture violations, clean code principles (naming, complexity, duplication), SOLID principles. Identify code smells, suggest refactorings. Run architecture and packages validators."
|
|
1608
|
+
}
|
|
1609
|
+
},
|
|
1610
|
+
"troubleshooting-expert": {
|
|
1611
|
+
"tier": 3,
|
|
1612
|
+
"title": "Troubleshooting & Debug Expert",
|
|
1613
|
+
"group": "support",
|
|
1614
|
+
"active_phases": [
|
|
1615
|
+
"implement"
|
|
1616
|
+
],
|
|
1617
|
+
"reports_to": "standards-architect",
|
|
1618
|
+
"domains": [
|
|
1619
|
+
"quality-debug"
|
|
1620
|
+
],
|
|
1621
|
+
"keywords": [
|
|
1622
|
+
"debug",
|
|
1623
|
+
"troubleshoot",
|
|
1624
|
+
"root cause",
|
|
1625
|
+
"analyze error",
|
|
1626
|
+
"investigate",
|
|
1627
|
+
"diagnose"
|
|
1628
|
+
],
|
|
1629
|
+
"validators": [],
|
|
1630
|
+
"standards": [
|
|
1631
|
+
{
|
|
1632
|
+
"id": "core-coding",
|
|
1633
|
+
"scope": "all",
|
|
1634
|
+
"priority": "required"
|
|
1635
|
+
},
|
|
1636
|
+
{
|
|
1637
|
+
"id": "core-architecture",
|
|
1638
|
+
"scope": "all",
|
|
1639
|
+
"priority": "required"
|
|
1640
|
+
}
|
|
1641
|
+
],
|
|
1642
|
+
"teammate": {
|
|
1643
|
+
"role": "Troubleshooting Expert (Escalation)",
|
|
1644
|
+
"icon": "🔧",
|
|
1645
|
+
"spawn_prompt": "You are the Troubleshooting Expert (spawned after 3 failed attempts). Analyze root cause of failures: validation errors, compilation errors, runtime exceptions. Review attempt logs from recovery-tracker. Propose alternative approaches. Message standards-architect with findings."
|
|
1646
|
+
}
|
|
1647
|
+
},
|
|
1648
|
+
"load-testing-expert": {
|
|
1649
|
+
"tier": 3,
|
|
1650
|
+
"title": "Load Testing & Performance Specialist",
|
|
1651
|
+
"group": "testing",
|
|
1652
|
+
"active_phases": [
|
|
1653
|
+
"implement"
|
|
1654
|
+
],
|
|
1655
|
+
"reports_to": "standards-architect",
|
|
1656
|
+
"domains": [
|
|
1657
|
+
"quality-performance"
|
|
1658
|
+
],
|
|
1659
|
+
"keywords": [
|
|
1660
|
+
"load test",
|
|
1661
|
+
"performance test",
|
|
1662
|
+
"k6",
|
|
1663
|
+
"jmeter",
|
|
1664
|
+
"stress test",
|
|
1665
|
+
"capacity planning",
|
|
1666
|
+
"bottleneck",
|
|
1667
|
+
"scalability",
|
|
1668
|
+
"concurrent users"
|
|
1669
|
+
],
|
|
1670
|
+
"validators": [
|
|
1671
|
+
"performance"
|
|
1672
|
+
],
|
|
1673
|
+
"standards": [
|
|
1674
|
+
{
|
|
1675
|
+
"id": "core-coding",
|
|
1676
|
+
"scope": "all",
|
|
1677
|
+
"priority": "required"
|
|
1678
|
+
},
|
|
1679
|
+
{
|
|
1680
|
+
"id": "core-architecture",
|
|
1681
|
+
"scope": "all",
|
|
1682
|
+
"priority": "required"
|
|
1683
|
+
}
|
|
1684
|
+
],
|
|
1685
|
+
"teammate": {
|
|
1686
|
+
"role": "Load Testing Specialist",
|
|
1687
|
+
"icon": "📈",
|
|
1688
|
+
"spawn_prompt": "You are the Load Testing Specialist. Write k6 scripts (stress test, spike test, soak test), JMeter test plans. Analyze bottlenecks (DB, CPU, memory). Recommend capacity planning (how many users system supports)."
|
|
1689
|
+
}
|
|
1690
|
+
},
|
|
1691
|
+
"documentation-specialist": {
|
|
1692
|
+
"tier": 3,
|
|
1693
|
+
"title": "Documentation Specialist",
|
|
1694
|
+
"group": "docs",
|
|
1695
|
+
"active_phases": [
|
|
1696
|
+
"implement"
|
|
1697
|
+
],
|
|
1698
|
+
"reports_to": "standards-architect",
|
|
1699
|
+
"domains": [
|
|
1700
|
+
"developer-experience-docs"
|
|
1701
|
+
],
|
|
1702
|
+
"keywords": [
|
|
1703
|
+
"readme",
|
|
1704
|
+
"documentation",
|
|
1705
|
+
"api docs",
|
|
1706
|
+
"contributing",
|
|
1707
|
+
"deployment guide",
|
|
1708
|
+
"onboarding"
|
|
1709
|
+
],
|
|
1710
|
+
"validators": [],
|
|
1711
|
+
"standards": [
|
|
1712
|
+
{
|
|
1713
|
+
"id": "core-coding",
|
|
1714
|
+
"scope": "all",
|
|
1715
|
+
"priority": "required"
|
|
1716
|
+
},
|
|
1717
|
+
{
|
|
1718
|
+
"id": "core-architecture",
|
|
1719
|
+
"scope": "all",
|
|
1720
|
+
"priority": "required"
|
|
1721
|
+
}
|
|
1722
|
+
],
|
|
1723
|
+
"teammate": {
|
|
1724
|
+
"role": "Documentation Specialist (Post-FASE 5)",
|
|
1725
|
+
"icon": "📝",
|
|
1726
|
+
"spawn_prompt": "You are the Documentation Specialist (runs after FASE 5). Generate README.md (how to run project), CONTRIBUTING.md (contributor guide), API documentation (Swagger annotations, markdown docs), deployment guides (infra setup). Update existing docs with new features."
|
|
1727
|
+
}
|
|
1728
|
+
},
|
|
1729
|
+
"vsa-architect": {
|
|
1730
|
+
"tier": 3,
|
|
1731
|
+
"title": "Vertical Slice Architecture Specialist",
|
|
1732
|
+
"group": "domain-analysis",
|
|
1733
|
+
"active_phases": [
|
|
1734
|
+
"design",
|
|
1735
|
+
"implement"
|
|
1736
|
+
],
|
|
1737
|
+
"domains": [
|
|
1738
|
+
"architecture",
|
|
1739
|
+
"backend"
|
|
1740
|
+
],
|
|
1741
|
+
"keywords": [
|
|
1742
|
+
"vertical slice",
|
|
1743
|
+
"vertical-slice",
|
|
1744
|
+
"vsa",
|
|
1745
|
+
"minimal api",
|
|
1746
|
+
"minimal apis",
|
|
1747
|
+
"ihandler",
|
|
1748
|
+
"result pattern",
|
|
1749
|
+
"feature slice",
|
|
1750
|
+
"scrutor",
|
|
1751
|
+
"vertical slice architecture"
|
|
1752
|
+
],
|
|
1753
|
+
"standards": [
|
|
1754
|
+
{
|
|
1755
|
+
"id": "core-coding",
|
|
1756
|
+
"scope": "all",
|
|
1757
|
+
"priority": "required"
|
|
1758
|
+
},
|
|
1759
|
+
{
|
|
1760
|
+
"id": "architecture-vertical-slice-vertical-slice",
|
|
1761
|
+
"scope": "all",
|
|
1762
|
+
"priority": "required"
|
|
1763
|
+
}
|
|
1764
|
+
],
|
|
1765
|
+
"teammate": {
|
|
1766
|
+
"role": "VSA Architecture Specialist",
|
|
1767
|
+
"icon": "🍕",
|
|
1768
|
+
"spawn_prompt": "Você é o VSA Specialist. Analise a proposta e produza um VSA Blueprint:\n1. ENTITY FIELDS: todos os campos com tipos C# corretos (sem AggregateRoot, sem Value Objects)\n2. OPERATIONS: slices necessários (Create, GetAll, GetById, Update, Delete + operações customizadas)\n3. ROUTES: HTTP method + rota por operação (ex: POST /api/products, GET /api/products/{id:guid})\n4. ERROR TYPES: Error factory methods para {Entity}Errors (apenas NotFound e casos específicos)\n5. VALIDATION RULES: regras FluentValidation por campo por operação\n\nNão use AggregateRoot, DomainEvent, CQRS formal, MediatR, Application Service layer.\nCada operação é um slice autônomo: Request + Response + Handler + Validator + Endpoint.\nRef: framework/standards/architecture/vertical-slice/vertical-slice.md"
|
|
1769
|
+
}
|
|
1770
|
+
},
|
|
1771
|
+
"morph-spec-architect": {
|
|
1772
|
+
"tier": 3,
|
|
1773
|
+
"title": "Morph-Spec Architect",
|
|
1774
|
+
"group": "domain-analysis",
|
|
1775
|
+
"active_phases": [
|
|
1776
|
+
"design",
|
|
1777
|
+
"tasks"
|
|
1778
|
+
],
|
|
1779
|
+
"reports_to": "feature-lead",
|
|
1780
|
+
"domains": [
|
|
1781
|
+
"cli",
|
|
1782
|
+
"framework-design",
|
|
1783
|
+
"nodejs",
|
|
1784
|
+
"architecture"
|
|
1785
|
+
],
|
|
1786
|
+
"keywords": [
|
|
1787
|
+
"morph-spec",
|
|
1788
|
+
"framework feature",
|
|
1789
|
+
"new command",
|
|
1790
|
+
"cli architecture",
|
|
1791
|
+
"plugin",
|
|
1792
|
+
"hook design"
|
|
1793
|
+
],
|
|
1794
|
+
"validators": [],
|
|
1795
|
+
"standards": [],
|
|
1796
|
+
"teammate": {
|
|
1797
|
+
"role": "specialist",
|
|
1798
|
+
"icon": "🔧",
|
|
1799
|
+
"spawn_prompt": "You are the Morph-Spec Architect. You deeply understand the morph-spec-framework codebase: its 4-tier agent hierarchy, state machine (with filesystem-based phase derivation), Commander.js CLI surface (~25 commands registered in bin/morph-spec.js), hooks system, skills system, and the .morph/ directory layout. Your job is to design new features that fit naturally into the existing architecture. Before proposing implementation, always: (1) identify which existing modules can be reused, (2) determine where the new command should live in src/commands/, (3) define the state impact (does it need new state fields?), (4) list which tests need to be written. Follow ESM module patterns throughout."
|
|
1800
|
+
}
|
|
1801
|
+
},
|
|
1802
|
+
"nodejs-cli-expert": {
|
|
1803
|
+
"tier": 3,
|
|
1804
|
+
"title": "Node.js CLI Expert",
|
|
1805
|
+
"group": "testing",
|
|
1806
|
+
"active_phases": [
|
|
1807
|
+
"implement"
|
|
1808
|
+
],
|
|
1809
|
+
"reports_to": "feature-lead",
|
|
1810
|
+
"domains": [
|
|
1811
|
+
"nodejs",
|
|
1812
|
+
"cli",
|
|
1813
|
+
"javascript",
|
|
1814
|
+
"esm",
|
|
1815
|
+
"testing"
|
|
1816
|
+
],
|
|
1817
|
+
"keywords": [
|
|
1818
|
+
"nodejs",
|
|
1819
|
+
"javascript",
|
|
1820
|
+
"esm",
|
|
1821
|
+
"commander",
|
|
1822
|
+
"node --test",
|
|
1823
|
+
"cli command",
|
|
1824
|
+
"morph-spec implementation"
|
|
1825
|
+
],
|
|
1826
|
+
"validators": [],
|
|
1827
|
+
"standards": [],
|
|
1828
|
+
"teammate": {
|
|
1829
|
+
"role": "specialist",
|
|
1830
|
+
"icon": "🟢",
|
|
1831
|
+
"spawn_prompt": "You are the Node.js CLI Expert for the morph-spec-framework. You implement features in Node.js ESM following the project's conventions: (1) All imports use ESM syntax with .js extensions on relative paths; (2) Commands are registered in bin/morph-spec.js after being defined in src/commands/<domain>/<command>.js; (3) Tests use native node:test runner with mock.fn() for mocking — no external test libraries; (4) Error handling: hooks are fail-open (catch+exit 0), CLI commands exit(1) on fatal errors; (5) Never use require() or module.exports. When implementing a feature, always write the tests alongside the implementation. The test command is: node --test --test-concurrency=1"
|
|
1832
|
+
}
|
|
1833
|
+
},
|
|
1834
|
+
"security-expert": {
|
|
1835
|
+
"tier": 4,
|
|
1836
|
+
"title": "Security Validator",
|
|
1837
|
+
"group": "testing",
|
|
1838
|
+
"active_phases": [
|
|
1839
|
+
"*"
|
|
1840
|
+
],
|
|
1841
|
+
"reports_to": "standards-architect",
|
|
1842
|
+
"domains": [
|
|
1843
|
+
"security"
|
|
1844
|
+
],
|
|
1845
|
+
"keywords": [
|
|
1846
|
+
"sql injection",
|
|
1847
|
+
"xss",
|
|
1848
|
+
"secrets",
|
|
1849
|
+
"security scan",
|
|
1850
|
+
"vulnerability",
|
|
1851
|
+
"csrf",
|
|
1852
|
+
"insecure deserialization"
|
|
1853
|
+
],
|
|
1854
|
+
"validators": [
|
|
1855
|
+
"security"
|
|
1856
|
+
],
|
|
1857
|
+
"standards": [
|
|
1858
|
+
{
|
|
1859
|
+
"id": "core-coding",
|
|
1860
|
+
"scope": "all",
|
|
1861
|
+
"priority": "required"
|
|
1862
|
+
},
|
|
1863
|
+
{
|
|
1864
|
+
"id": "core-architecture",
|
|
1865
|
+
"scope": "all",
|
|
1866
|
+
"priority": "required"
|
|
1867
|
+
}
|
|
1868
|
+
],
|
|
1869
|
+
"teammate": {
|
|
1870
|
+
"icon": "🛡️",
|
|
1871
|
+
"role": "Security Validator (read-only)",
|
|
1872
|
+
"spawn_prompt": "You are the Security Validator (Tier 4, READ-ONLY). Scan ALL source files (.cs, .razor, .tsx, .ts, .js) in the project for security vulnerabilities:\n\n1. SQL injection — string concatenation in queries (look for $\"...{var}...\" inside SQL/EF raw queries)\n2. Hardcoded secrets — API keys, passwords, connection strings in source code (not in appsettings)\n3. XSS — @Html.Raw usage in Razor/Blazor without sanitization\n4. Insecure deserialization — BinaryFormatter usage\n5. CSRF — POST forms/endpoints missing anti-forgery tokens ([ValidateAntiForgeryToken] or @Html.AntiForgeryToken)\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"line\": number, \"message\": string, \"severity\": \"error\" }] }"
|
|
1873
|
+
},
|
|
1874
|
+
"hook_behavior": {
|
|
1875
|
+
"validates": [
|
|
1876
|
+
"SQL injection (string concatenation in queries)",
|
|
1877
|
+
"Hardcoded secrets (API keys, passwords, connection strings)",
|
|
1878
|
+
"XSS (@Html.Raw usage in Razor/Blazor)",
|
|
1879
|
+
"Insecure deserialization (BinaryFormatter)",
|
|
1880
|
+
"CSRF (missing anti-forgery tokens)"
|
|
1881
|
+
],
|
|
1882
|
+
"severity": "error",
|
|
1883
|
+
"blocks_on_fail": true
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
"architecture-expert": {
|
|
1887
|
+
"tier": 4,
|
|
1888
|
+
"title": "Architecture Validator",
|
|
1889
|
+
"group": "domain-analysis",
|
|
1890
|
+
"active_phases": [
|
|
1891
|
+
"*"
|
|
1892
|
+
],
|
|
1893
|
+
"reports_to": "standards-architect",
|
|
1894
|
+
"domains": [
|
|
1895
|
+
"architecture"
|
|
1896
|
+
],
|
|
1897
|
+
"keywords": [
|
|
1898
|
+
"architecture",
|
|
1899
|
+
"clean code",
|
|
1900
|
+
"solid",
|
|
1901
|
+
"dependency injection"
|
|
1902
|
+
],
|
|
1903
|
+
"validators": [
|
|
1904
|
+
"architecture"
|
|
1905
|
+
],
|
|
1906
|
+
"standards": [
|
|
1907
|
+
{
|
|
1908
|
+
"id": "core-coding",
|
|
1909
|
+
"scope": "all",
|
|
1910
|
+
"priority": "required"
|
|
1911
|
+
},
|
|
1912
|
+
{
|
|
1913
|
+
"id": "core-architecture",
|
|
1914
|
+
"scope": "all",
|
|
1915
|
+
"priority": "required"
|
|
1916
|
+
}
|
|
1917
|
+
],
|
|
1918
|
+
"teammate": {
|
|
1919
|
+
"icon": "🏗️",
|
|
1920
|
+
"role": "Architecture Validator (read-only)",
|
|
1921
|
+
"spawn_prompt": "You are the Architecture Validator (Tier 4, READ-ONLY). Scan the project for architectural violations:\n\n1. DbContext injection — look for direct DbContext injection instead of IDbContextFactory in Blazor components (.razor, .razor.cs)\n2. Async/await anti-patterns — search for .Result, .Wait(), .GetAwaiter().GetResult() in async code\n3. DI registration order — in Program.cs, verify services are registered before middleware (app.Use*/Map*)\n4. Blazor render mode — verify InteractiveServer/InteractiveWebAssembly components don't use incompatible patterns\n5. Layer violations — Domain/Application projects must not reference Infrastructure or Web projects\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"line\": number, \"message\": string, \"severity\": \"error\" }] }"
|
|
1922
|
+
},
|
|
1923
|
+
"hook_behavior": {
|
|
1924
|
+
"validates": [
|
|
1925
|
+
"DbContext injection (IDbContextFactory required)",
|
|
1926
|
+
"Async/await patterns (no .Result or .Wait)",
|
|
1927
|
+
"DI registration order (services before middleware)",
|
|
1928
|
+
"Blazor render mode compatibility"
|
|
1929
|
+
],
|
|
1930
|
+
"severity": "error",
|
|
1931
|
+
"blocks_on_fail": true
|
|
1932
|
+
}
|
|
1933
|
+
},
|
|
1934
|
+
"packages-validator": {
|
|
1935
|
+
"tier": 4,
|
|
1936
|
+
"title": "Packages Validator",
|
|
1937
|
+
"group": "testing",
|
|
1938
|
+
"active_phases": [
|
|
1939
|
+
"*"
|
|
1940
|
+
],
|
|
1941
|
+
"reports_to": "standards-architect",
|
|
1942
|
+
"domains": [
|
|
1943
|
+
"packages"
|
|
1944
|
+
],
|
|
1945
|
+
"keywords": [
|
|
1946
|
+
"nuget",
|
|
1947
|
+
"packages",
|
|
1948
|
+
"dependencies",
|
|
1949
|
+
"version conflict"
|
|
1950
|
+
],
|
|
1951
|
+
"validators": [
|
|
1952
|
+
"packages"
|
|
1953
|
+
],
|
|
1954
|
+
"standards": [
|
|
1955
|
+
{
|
|
1956
|
+
"id": "core-coding",
|
|
1957
|
+
"scope": "all",
|
|
1958
|
+
"priority": "required"
|
|
1959
|
+
}
|
|
1960
|
+
],
|
|
1961
|
+
"teammate": {
|
|
1962
|
+
"icon": "📦",
|
|
1963
|
+
"role": "Packages Validator (read-only)",
|
|
1964
|
+
"spawn_prompt": "You are the Packages Validator (Tier 4, READ-ONLY). Scan all project files for package issues:\n\n1. NuGet version conflicts — search *.csproj files for the same PackageReference appearing with different versions across projects\n2. Incompatible .NET 10 packages — check that major package versions are compatible with the target framework\n3. Security vulnerabilities — look for known outdated packages (Newtonsoft.Json < 13.0.1, System.Text.Json < 8.0.5, etc.)\n4. For npm projects: check package.json for duplicate dependencies, outdated major versions\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"message\": string, \"severity\": \"error\" }] }"
|
|
1965
|
+
},
|
|
1966
|
+
"hook_behavior": {
|
|
1967
|
+
"validates": [
|
|
1968
|
+
"NuGet version conflicts (same package, different versions)",
|
|
1969
|
+
"Incompatible .NET 10 packages",
|
|
1970
|
+
"Security vulnerabilities (outdated packages)"
|
|
1971
|
+
],
|
|
1972
|
+
"severity": "error",
|
|
1973
|
+
"blocks_on_fail": true
|
|
1974
|
+
}
|
|
1975
|
+
},
|
|
1976
|
+
"design-system-validator": {
|
|
1977
|
+
"tier": 4,
|
|
1978
|
+
"title": "Design System Validator",
|
|
1979
|
+
"group": "frontend",
|
|
1980
|
+
"active_phases": [
|
|
1981
|
+
"*"
|
|
1982
|
+
],
|
|
1983
|
+
"reports_to": "ui-designer",
|
|
1984
|
+
"domains": [
|
|
1985
|
+
"design-system"
|
|
1986
|
+
],
|
|
1987
|
+
"keywords": [
|
|
1988
|
+
"design system",
|
|
1989
|
+
"css",
|
|
1990
|
+
"color palette",
|
|
1991
|
+
"spacing"
|
|
1992
|
+
],
|
|
1993
|
+
"validators": [
|
|
1994
|
+
"design-system"
|
|
1995
|
+
],
|
|
1996
|
+
"standards": [
|
|
1997
|
+
{
|
|
1998
|
+
"id": "frontend-design-system-naming",
|
|
1999
|
+
"scope": "all",
|
|
2000
|
+
"priority": "required"
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
"id": "frontend-design-system-animations",
|
|
2004
|
+
"scope": "all",
|
|
2005
|
+
"priority": "required"
|
|
2006
|
+
}
|
|
2007
|
+
],
|
|
2008
|
+
"teammate": {
|
|
2009
|
+
"icon": "🎨",
|
|
2010
|
+
"role": "Design System Validator (read-only)",
|
|
2011
|
+
"spawn_prompt": "You are the Design System Validator (Tier 4, READ-ONLY). Scan CSS/SCSS and component files for design system compliance:\n\n1. Color palette — look for hardcoded hex/rgb colors instead of CSS variables (var(--color-primary), var(--color-secondary), etc.)\n2. Spacing — look for hardcoded px/rem values instead of spacing variables (var(--spacing-*))\n3. Typography — look for hardcoded font-size/font-family instead of typography variables (var(--font-*))\n4. Component naming — verify PascalCase for Blazor components (.razor) and kebab-case for CSS classes\n5. Check .morph/context/design-system.md if it exists for project-specific design tokens\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"line\": number, \"message\": string, \"severity\": \"warning\" }] }"
|
|
2012
|
+
},
|
|
2013
|
+
"hook_behavior": {
|
|
2014
|
+
"validates": [
|
|
2015
|
+
"CSS color palette compliance (primary, secondary, accent)",
|
|
2016
|
+
"Spacing values (use var(--spacing-*))",
|
|
2017
|
+
"Typography scale (use var(--font-*))",
|
|
2018
|
+
"Component naming (PascalCase for Blazor, kebab-case for CSS)"
|
|
2019
|
+
],
|
|
2020
|
+
"severity": "warning",
|
|
2021
|
+
"blocks_on_fail": false
|
|
2022
|
+
}
|
|
2023
|
+
},
|
|
2024
|
+
"blazor-concurrency-validator": {
|
|
2025
|
+
"tier": 4,
|
|
2026
|
+
"title": "Blazor Concurrency Validator",
|
|
2027
|
+
"group": "frontend",
|
|
2028
|
+
"active_phases": [
|
|
2029
|
+
"implement"
|
|
2030
|
+
],
|
|
2031
|
+
"reports_to": "blazor-builder",
|
|
2032
|
+
"domains": [
|
|
2033
|
+
"blazor-concurrency"
|
|
2034
|
+
],
|
|
2035
|
+
"keywords": [
|
|
2036
|
+
"blazor",
|
|
2037
|
+
"dbcontext",
|
|
2038
|
+
"lifecycle",
|
|
2039
|
+
"async",
|
|
2040
|
+
"concurrency"
|
|
2041
|
+
],
|
|
2042
|
+
"validators": [
|
|
2043
|
+
"blazor-concurrency"
|
|
2044
|
+
],
|
|
2045
|
+
"standards": [
|
|
2046
|
+
{
|
|
2047
|
+
"id": "frontend-blazor-lifecycle",
|
|
2048
|
+
"scope": "all",
|
|
2049
|
+
"priority": "required"
|
|
2050
|
+
},
|
|
2051
|
+
{
|
|
2052
|
+
"id": "frontend-blazor-pitfalls",
|
|
2053
|
+
"scope": "all",
|
|
2054
|
+
"priority": "required"
|
|
2055
|
+
},
|
|
2056
|
+
{
|
|
2057
|
+
"id": "frontend-blazor-state",
|
|
2058
|
+
"scope": "all",
|
|
2059
|
+
"priority": "required"
|
|
2060
|
+
}
|
|
2061
|
+
],
|
|
2062
|
+
"stacks": [
|
|
2063
|
+
"blazor"
|
|
2064
|
+
],
|
|
2065
|
+
"teammate": {
|
|
2066
|
+
"icon": "⚡",
|
|
2067
|
+
"role": "Blazor Concurrency Validator (read-only)",
|
|
2068
|
+
"spawn_prompt": "You are the Blazor Concurrency Validator (Tier 4, READ-ONLY). Scan all Blazor component files (.razor, .razor.cs) for concurrency and lifecycle violations:\n\n1. DbContext lifecycle — look for injected DbContext (not IDbContextFactory), disposed context usage, scope issues\n2. Async void — search for 'async void' methods (must be 'async Task' except event handlers)\n3. JSInterop in OnInitialized — look for IJSRuntime calls in OnInitialized/OnInitializedAsync (must be in OnAfterRender/OnAfterRenderAsync)\n4. State mutation — look for property changes without calling StateHasChanged() or InvokeAsync(StateHasChanged)\n5. Thread safety — look for shared mutable state without synchronization in Blazor Server components\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"line\": number, \"message\": string, \"severity\": \"error\" }] }"
|
|
2069
|
+
},
|
|
2070
|
+
"hook_behavior": {
|
|
2071
|
+
"validates": [
|
|
2072
|
+
"DbContext lifecycle violations (dispose, scope issues)",
|
|
2073
|
+
"Async void methods (use async Task instead)",
|
|
2074
|
+
"JSInterop in OnInitialized (move to OnAfterRender)",
|
|
2075
|
+
"State mutation without StateHasChanged"
|
|
2076
|
+
],
|
|
2077
|
+
"severity": "error",
|
|
2078
|
+
"blocks_on_fail": true
|
|
2079
|
+
}
|
|
2080
|
+
},
|
|
2081
|
+
"morph-spec-validator": {
|
|
2082
|
+
"tier": 4,
|
|
2083
|
+
"title": "Morph-Spec Validator",
|
|
2084
|
+
"group": "testing",
|
|
2085
|
+
"active_phases": [
|
|
2086
|
+
"implement",
|
|
2087
|
+
"validate"
|
|
2088
|
+
],
|
|
2089
|
+
"reports_to": "qa-lead",
|
|
2090
|
+
"domains": [
|
|
2091
|
+
"nodejs",
|
|
2092
|
+
"cli",
|
|
2093
|
+
"testing",
|
|
2094
|
+
"validation"
|
|
2095
|
+
],
|
|
2096
|
+
"keywords": [
|
|
2097
|
+
"validate morph-spec",
|
|
2098
|
+
"node.js validation",
|
|
2099
|
+
"cli test"
|
|
2100
|
+
],
|
|
2101
|
+
"validators": [
|
|
2102
|
+
"morph-spec-standards"
|
|
2103
|
+
],
|
|
2104
|
+
"standards": [],
|
|
2105
|
+
"teammate": {
|
|
2106
|
+
"icon": "🔬",
|
|
2107
|
+
"role": "Morph-Spec Validator (read-only)",
|
|
2108
|
+
"tools": "Read, Glob, Grep, Bash",
|
|
2109
|
+
"maxTurns": 12,
|
|
2110
|
+
"spawn_prompt": "You are the Morph-Spec Validator (Tier 4, READ-ONLY). Scan the morph-spec framework codebase for standards compliance:\n\n1. ESM imports — all relative imports must use .js extensions (e.g., './foo.js' not './foo')\n2. Command registration — new commands in src/commands/ must be imported and registered in bin/morph-spec.js\n3. Test coverage — each module in src/ should have a corresponding test file in tests/\n4. No CommonJS — search for require() or module.exports (must use import/export)\n5. Hook fail-open — all hooks in framework/hooks/ must have try/catch with exit(0) fallback\n6. Run 'npm test' to verify all tests pass\n\nUse Grep, Glob, and Bash to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"line\": number, \"message\": string, \"severity\": \"error\" }] }"
|
|
2111
|
+
},
|
|
2112
|
+
"hook_behavior": {
|
|
2113
|
+
"validates": [
|
|
2114
|
+
"ESM imports use .js extensions on relative paths",
|
|
2115
|
+
"New commands are registered in bin/morph-spec.js",
|
|
2116
|
+
"Tests exist for new modules (one test file per module)",
|
|
2117
|
+
"npm test passes with no failures",
|
|
2118
|
+
"No require() or module.exports used",
|
|
2119
|
+
"Error handling follows fail-open pattern for hooks"
|
|
2120
|
+
],
|
|
2121
|
+
"severity": "error",
|
|
2122
|
+
"blocks_on_fail": true
|
|
2123
|
+
}
|
|
2124
|
+
},
|
|
2125
|
+
"nextjs-component-validator": {
|
|
2126
|
+
"tier": 4,
|
|
2127
|
+
"title": "Next.js Component Validator",
|
|
2128
|
+
"group": "frontend",
|
|
2129
|
+
"active_phases": [
|
|
2130
|
+
"implement"
|
|
2131
|
+
],
|
|
2132
|
+
"keywords": [
|
|
2133
|
+
"nextjs",
|
|
2134
|
+
"tsx",
|
|
2135
|
+
"use client",
|
|
2136
|
+
"server component",
|
|
2137
|
+
"app router"
|
|
2138
|
+
],
|
|
2139
|
+
"validators": [
|
|
2140
|
+
"nextjs-component"
|
|
2141
|
+
],
|
|
2142
|
+
"stacks": [
|
|
2143
|
+
"nextjs"
|
|
2144
|
+
],
|
|
2145
|
+
"teammate": {
|
|
2146
|
+
"icon": "⚛️",
|
|
2147
|
+
"role": "Next.js Component Validator (read-only)",
|
|
2148
|
+
"spawn_prompt": "You are the Next.js Component Validator (Tier 4, READ-ONLY). Scan all .tsx/.ts files under src/ and validate:\n\n1. \"use client\" directive — must be present when React hooks (useState, useEffect, etc.) are used\n2. Server Components — \"use client\" must be absent for pure Server Components (no hooks, no event handlers)\n3. File naming — component files must use kebab-case naming convention\n4. Import patterns — client components should not import server-only modules\n\nUse Grep and Glob to scan. Do NOT modify any files.\n\nOutput a JSON object: { \"passed\": boolean, \"issues\": [{ \"file\": string, \"message\": string, \"suggestion\": string, \"severity\": \"warning\" }] }"
|
|
2149
|
+
},
|
|
2150
|
+
"hook_behavior": {
|
|
2151
|
+
"severity": "warning",
|
|
2152
|
+
"blocks_on_fail": false,
|
|
2153
|
+
"validates": [
|
|
2154
|
+
"use-client directive",
|
|
2155
|
+
"hook usage",
|
|
2156
|
+
"file naming"
|
|
2157
|
+
]
|
|
2158
|
+
}
|
|
2159
|
+
}
|
|
2160
|
+
},
|
|
2161
|
+
"squads": {
|
|
2162
|
+
"backend_squad": {
|
|
2163
|
+
"leader": "dotnet-senior",
|
|
2164
|
+
"members": [
|
|
2165
|
+
"ef-modeler",
|
|
2166
|
+
"event-architect",
|
|
2167
|
+
"api-designer",
|
|
2168
|
+
"nosql-cache-expert",
|
|
2169
|
+
"hangfire-orchestrator",
|
|
2170
|
+
"ms-agent-expert",
|
|
2171
|
+
"supabase-expert",
|
|
2172
|
+
"vector-search-expert",
|
|
2173
|
+
"context-optimizer",
|
|
2174
|
+
"prompt-engineer",
|
|
2175
|
+
"asaas-financial",
|
|
2176
|
+
"clerk-auth",
|
|
2177
|
+
"resend-email"
|
|
2178
|
+
],
|
|
2179
|
+
"domains": [
|
|
2180
|
+
"backend",
|
|
2181
|
+
"backend-data",
|
|
2182
|
+
"backend-events",
|
|
2183
|
+
"backend-api",
|
|
2184
|
+
"backend-nosql",
|
|
2185
|
+
"backend-ddd",
|
|
2186
|
+
"backend-jobs",
|
|
2187
|
+
"ai-agents",
|
|
2188
|
+
"backend-supabase",
|
|
2189
|
+
"ai-vector",
|
|
2190
|
+
"ai-context",
|
|
2191
|
+
"integration-payment",
|
|
2192
|
+
"integration-auth",
|
|
2193
|
+
"integration-email"
|
|
2194
|
+
]
|
|
2195
|
+
},
|
|
2196
|
+
"frontend_squad": {
|
|
2197
|
+
"leader": "ui-designer",
|
|
2198
|
+
"members": [
|
|
2199
|
+
"blazor-builder",
|
|
2200
|
+
"nextjs-expert",
|
|
2201
|
+
"css-specialist",
|
|
2202
|
+
"seo-growth-hacker"
|
|
2203
|
+
],
|
|
2204
|
+
"domains": [
|
|
2205
|
+
"frontend-design",
|
|
2206
|
+
"frontend-blazor",
|
|
2207
|
+
"frontend-nextjs",
|
|
2208
|
+
"frontend-css",
|
|
2209
|
+
"seo"
|
|
2210
|
+
],
|
|
2211
|
+
"active_phases": {
|
|
2212
|
+
"design": [
|
|
2213
|
+
"ui-designer"
|
|
2214
|
+
],
|
|
2215
|
+
"implement": [
|
|
2216
|
+
"blazor-builder",
|
|
2217
|
+
"nextjs-expert",
|
|
2218
|
+
"css-specialist",
|
|
2219
|
+
"seo-growth-hacker"
|
|
2220
|
+
]
|
|
2221
|
+
}
|
|
2222
|
+
},
|
|
2223
|
+
"infrastructure_squad": {
|
|
2224
|
+
"leader": "infra-architect",
|
|
2225
|
+
"members": [
|
|
2226
|
+
"bicep-architect",
|
|
2227
|
+
"devops-engineer",
|
|
2228
|
+
"container-specialist",
|
|
2229
|
+
"observability-expert",
|
|
2230
|
+
"azure-identity"
|
|
2231
|
+
],
|
|
2232
|
+
"domains": [
|
|
2233
|
+
"infrastructure",
|
|
2234
|
+
"infrastructure-iac",
|
|
2235
|
+
"infrastructure-cicd",
|
|
2236
|
+
"infrastructure-containers",
|
|
2237
|
+
"infrastructure-observability",
|
|
2238
|
+
"infrastructure-identity"
|
|
2239
|
+
]
|
|
2240
|
+
},
|
|
2241
|
+
"quality_squad": {
|
|
2242
|
+
"leader": "standards-architect",
|
|
2243
|
+
"members": [
|
|
2244
|
+
"testing-specialist",
|
|
2245
|
+
"code-analyzer",
|
|
2246
|
+
"troubleshooting-expert",
|
|
2247
|
+
"load-testing-expert",
|
|
2248
|
+
"documentation-specialist"
|
|
2249
|
+
],
|
|
2250
|
+
"domains": [
|
|
2251
|
+
"quality-testing",
|
|
2252
|
+
"quality-review",
|
|
2253
|
+
"quality-debug",
|
|
2254
|
+
"quality-performance",
|
|
2255
|
+
"developer-experience-docs"
|
|
2256
|
+
],
|
|
2257
|
+
"note": "No permanent leader — standards-architect coordinates directly"
|
|
2258
|
+
}
|
|
2259
|
+
},
|
|
2260
|
+
"relationship_types": {
|
|
2261
|
+
"reports_to": "Hierarchical manager relationship",
|
|
2262
|
+
"coordinates": "Manages/leads these agents",
|
|
2263
|
+
"escalates_to": "Where to escalate unresolved issues",
|
|
2264
|
+
"collaborates_with": "Peer agents for cross-domain work",
|
|
2265
|
+
"runs_in": "Execution context (hooks, not teammates)",
|
|
2266
|
+
"team_role": "Role in Agent Teams (lead, domain_leader, specialist, validator, escalation_specialist, post_implementation, planning_only)"
|
|
2267
|
+
}
|
|
2268
|
+
}
|