@polymorphism-tech/morph-spec 4.8.19 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +21 -0
- package/README.md +2 -2
- package/bin/morph-spec.js +15 -56
- package/bin/task-manager.js +115 -14
- package/bin/validate.js +67 -33
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +201 -203
- package/docs/QUICKSTART.md +2 -2
- package/framework/CLAUDE.md +21 -0
- package/framework/agents.json +698 -176
- package/framework/hooks/claude-code/post-tool-use/context-refresh.js +1 -1
- package/framework/hooks/claude-code/post-tool-use/dispatch.js +2 -2
- package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +155 -0
- package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +1 -1
- package/framework/hooks/claude-code/session-start/inject-morph-context.js +71 -2
- package/framework/hooks/claude-code/statusline.py +76 -30
- package/framework/hooks/claude-code/user-prompt/set-terminal-title.js +14 -6
- package/framework/hooks/shared/activity-logger.js +0 -24
- package/framework/hooks/shared/phase-utils.js +3 -0
- package/framework/hooks/shared/skill-reminder-helpers.js +79 -0
- package/framework/hooks/shared/stale-task-reset.js +57 -0
- package/framework/hooks/shared/state-reader.js +2 -2
- package/framework/hooks/shared/worktree-helpers.js +53 -0
- package/framework/phases.json +40 -8
- package/framework/skills/level-0-meta/brainstorming/SKILL.md +1 -1
- package/framework/skills/level-0-meta/code-review/SKILL.md +1 -1
- package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +163 -163
- package/framework/skills/level-0-meta/frontend-review/SKILL.md +5 -5
- package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
- package/framework/skills/level-0-meta/morph-init/SKILL.md +5 -5
- package/framework/skills/level-0-meta/morph-replicate/SKILL.md +4 -4
- package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +1 -1
- package/framework/skills/level-0-meta/post-implementation/SKILL.md +59 -12
- package/framework/skills/level-0-meta/simulation-checklist/SKILL.md +1 -1
- package/framework/skills/level-0-meta/terminal-title/SKILL.md +1 -1
- package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +1 -1
- package/framework/skills/level-0-meta/tool-usage-guide/references/tools-per-phase.md +6 -5
- package/framework/skills/level-0-meta/verification-before-completion/SKILL.md +1 -1
- package/framework/skills/level-1-workflows/phase-clarify/SKILL.md +215 -189
- package/framework/skills/level-1-workflows/phase-codebase-analysis/SKILL.md +251 -251
- package/framework/skills/level-1-workflows/phase-design/SKILL.md +382 -365
- package/framework/skills/level-1-workflows/phase-implement/SKILL.md +492 -450
- package/framework/skills/level-1-workflows/phase-setup/SKILL.md +194 -190
- package/framework/skills/level-1-workflows/phase-tasks/SKILL.md +270 -270
- package/framework/skills/level-1-workflows/phase-uiux/SKILL.md +285 -285
- package/framework/standards/STANDARDS.json +640 -88
- package/framework/standards/infrastructure/vercel/vercel-database.md +106 -0
- package/framework/templates/REGISTRY.json +1825 -1909
- package/framework/templates/context/CONTEXT-FEATURE.md +276 -276
- package/framework/templates/docs/onboarding.md +1 -5
- package/package.json +2 -6
- package/src/commands/agents/dispatch-agents.js +55 -4
- package/src/commands/project/doctor.js +16 -47
- package/src/commands/project/init.js +1 -1
- package/src/commands/project/status.js +2 -2
- package/src/commands/project/update.js +381 -365
- package/src/commands/project/worktree.js +154 -0
- package/src/commands/state/advance-phase.js +120 -30
- package/src/commands/state/approve.js +2 -2
- package/src/commands/state/index.js +7 -8
- package/src/commands/state/phase-runner.js +1 -1
- package/src/commands/state/state.js +61 -6
- package/src/commands/tasks/task.js +78 -99
- package/src/commands/templates/template-render.js +93 -173
- package/src/commands/trust/trust.js +26 -21
- package/src/core/paths/output-schema.js +15 -0
- package/src/core/state/state-manager.js +28 -54
- package/src/core/workflows/workflow-detector.js +9 -87
- package/src/lib/phase-chain/phase-validator.js +330 -0
- package/src/lib/stack/stack-profile.js +88 -0
- package/src/lib/tasks/task-classifier.js +16 -0
- package/src/lib/tasks/test-runner.js +77 -0
- package/src/lib/trust/trust-manager.js +32 -144
- package/src/lib/validators/spec-validator.js +58 -4
- package/src/lib/validators/validation-runner.js +23 -11
- package/src/scripts/setup-infra.js +240 -224
- package/src/utils/agents-installer.js +2 -2
- package/src/utils/banner.js +1 -1
- package/src/utils/claude-settings-manager.js +1 -1
- package/src/utils/file-copier.js +1 -0
- package/src/utils/hooks-installer.js +258 -8
- package/framework/hooks/dev/check-sync-health.js +0 -117
- package/framework/hooks/dev/guard-version-numbers.js +0 -57
- package/framework/hooks/dev/sync-standards-registry.js +0 -60
- package/framework/hooks/dev/sync-template-registry.js +0 -60
- package/framework/hooks/dev/validate-skill-format.js +0 -70
- package/framework/hooks/dev/validate-standard-format.js +0 -73
- package/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
- package/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
- package/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
- package/framework/workflows/configs/design-impl.json +0 -49
- package/framework/workflows/configs/express.json +0 -45
- package/framework/workflows/configs/fast-track.json +0 -42
- package/framework/workflows/configs/full-morph.json +0 -79
- package/framework/workflows/configs/fusion.json +0 -39
- package/framework/workflows/configs/long-running.json +0 -33
- package/framework/workflows/configs/spec-only.json +0 -43
- package/framework/workflows/configs/ui-refresh.json +0 -49
- package/framework/workflows/configs/zero-touch.json +0 -82
- package/src/commands/project/monitor.js +0 -295
- package/src/commands/project/tutorial.js +0 -115
- package/src/commands/state/validate-phase.js +0 -238
- package/src/commands/templates/generate-contracts.js +0 -445
- package/src/core/orchestrator.js +0 -171
- package/src/core/registry/command-registry.js +0 -28
- package/src/core/registry/index.js +0 -8
- package/src/core/registry/validator-registry.js +0 -204
- package/src/core/templates/template-validator.js +0 -296
- package/src/generator/config-generator.js +0 -206
- package/src/generator/templates/config.json.template +0 -40
- package/src/generator/templates/project.md.template +0 -67
- package/src/lib/agents/micro-agent-factory.js +0 -161
- package/src/lib/analysis/complexity-analyzer.js +0 -441
- package/src/lib/analysis/index.js +0 -7
- package/src/lib/analytics/analytics-engine.js +0 -345
- package/src/lib/checkpoints/checkpoint-hooks.js +0 -298
- package/src/lib/checkpoints/index.js +0 -7
- package/src/lib/context/context-bundler.js +0 -241
- package/src/lib/context/context-optimizer.js +0 -212
- package/src/lib/context/context-tracker.js +0 -273
- package/src/lib/context/core-four-tracker.js +0 -201
- package/src/lib/context/mcp-optimizer.js +0 -200
- package/src/lib/execution/fusion-executor.js +0 -304
- package/src/lib/execution/parallel-executor.js +0 -270
- package/src/lib/hooks/stop-hook-executor.js +0 -286
- package/src/lib/hops/hop-composer.js +0 -221
- package/src/lib/phase-chain/eligibility-checker.js +0 -243
- package/src/lib/threads/thread-coordinator.js +0 -238
- package/src/lib/threads/thread-manager.js +0 -317
- package/src/lib/tracking/artifact-trail.js +0 -202
- package/src/scanner/project-scanner.js +0 -242
- package/src/ui/diff-display.js +0 -91
- package/src/ui/interactive-wizard.js +0 -96
- package/src/ui/user-review.js +0 -211
- package/src/ui/wizard-questions.js +0 -188
- package/src/utils/color-utils.js +0 -70
- package/src/utils/process-handler.js +0 -97
package/framework/agents.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./agent-schema.json",
|
|
3
3
|
"version": "3.3.0-hierarchical",
|
|
4
|
-
"total_agents":
|
|
4
|
+
"total_agents": 43,
|
|
5
5
|
"tiers": {
|
|
6
6
|
"tier_1_orchestrators": 3,
|
|
7
7
|
"tier_2_leaders": 4,
|
|
8
8
|
"tier_3_specialists": 29,
|
|
9
|
-
"tier_4_validators":
|
|
9
|
+
"tier_4_validators": 7
|
|
10
10
|
},
|
|
11
11
|
"agents": {
|
|
12
12
|
"_comment_tier_1": "=== TIER 1: ORCHESTRATORS (3) ===",
|
|
@@ -20,10 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"keywords": [],
|
|
22
22
|
"always_active": true,
|
|
23
|
-
"validators": [
|
|
24
|
-
"architecture",
|
|
25
|
-
"packages"
|
|
26
|
-
],
|
|
23
|
+
"validators": [],
|
|
27
24
|
"relationships": {
|
|
28
25
|
"reports_to": "user",
|
|
29
26
|
"coordinates": [
|
|
@@ -42,9 +39,21 @@
|
|
|
42
39
|
"team_role": "lead"
|
|
43
40
|
},
|
|
44
41
|
"standards": [
|
|
45
|
-
{
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
{
|
|
43
|
+
"id": "core-coding",
|
|
44
|
+
"scope": "all",
|
|
45
|
+
"priority": "required"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "core-architecture",
|
|
49
|
+
"scope": "all",
|
|
50
|
+
"priority": "required"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "backend-dotnet-program-cs-checklist",
|
|
54
|
+
"scope": "implement",
|
|
55
|
+
"priority": "required"
|
|
56
|
+
}
|
|
48
57
|
],
|
|
49
58
|
"teammate": {
|
|
50
59
|
"role": "Team Lead (Delegate Mode)",
|
|
@@ -68,9 +77,7 @@
|
|
|
68
77
|
"agent workflow"
|
|
69
78
|
],
|
|
70
79
|
"always_active": false,
|
|
71
|
-
"validators": [
|
|
72
|
-
"architecture"
|
|
73
|
-
],
|
|
80
|
+
"validators": [],
|
|
74
81
|
"relationships": {
|
|
75
82
|
"reports_to": "standards-architect",
|
|
76
83
|
"coordinates": [
|
|
@@ -87,12 +94,36 @@
|
|
|
87
94
|
]
|
|
88
95
|
},
|
|
89
96
|
"standards": [
|
|
90
|
-
{
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
{
|
|
97
|
+
{
|
|
98
|
+
"id": "core-coding",
|
|
99
|
+
"scope": "all",
|
|
100
|
+
"priority": "required"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "core-architecture",
|
|
104
|
+
"scope": "all",
|
|
105
|
+
"priority": "required"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "ai-agents-setup",
|
|
109
|
+
"scope": "all",
|
|
110
|
+
"priority": "required"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "ai-agents-workflows",
|
|
114
|
+
"scope": "design",
|
|
115
|
+
"priority": "required"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "ai-agents-production",
|
|
119
|
+
"scope": "implement",
|
|
120
|
+
"priority": "required"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "ai-agents-blazor-ui",
|
|
124
|
+
"scope": "implement",
|
|
125
|
+
"priority": "reference"
|
|
126
|
+
}
|
|
96
127
|
],
|
|
97
128
|
"teammate": {
|
|
98
129
|
"role": "AI Architect",
|
|
@@ -129,8 +160,16 @@
|
|
|
129
160
|
]
|
|
130
161
|
},
|
|
131
162
|
"standards": [
|
|
132
|
-
{
|
|
133
|
-
|
|
163
|
+
{
|
|
164
|
+
"id": "core-coding",
|
|
165
|
+
"scope": "all",
|
|
166
|
+
"priority": "required"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": "core-architecture",
|
|
170
|
+
"scope": "all",
|
|
171
|
+
"priority": "required"
|
|
172
|
+
}
|
|
134
173
|
],
|
|
135
174
|
"teammate": null
|
|
136
175
|
},
|
|
@@ -179,10 +218,26 @@
|
|
|
179
218
|
"team_role": "domain_leader"
|
|
180
219
|
},
|
|
181
220
|
"standards": [
|
|
182
|
-
{
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
221
|
+
{
|
|
222
|
+
"id": "core-coding",
|
|
223
|
+
"scope": "all",
|
|
224
|
+
"priority": "required"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"id": "core-architecture",
|
|
228
|
+
"scope": "all",
|
|
229
|
+
"priority": "required"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"id": "backend-dotnet-core",
|
|
233
|
+
"scope": "implement",
|
|
234
|
+
"priority": "required"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"id": "backend-dotnet-program-cs-checklist",
|
|
238
|
+
"scope": "implement",
|
|
239
|
+
"priority": "required"
|
|
240
|
+
}
|
|
186
241
|
],
|
|
187
242
|
"teammate": {
|
|
188
243
|
"role": "Backend Squad Leader",
|
|
@@ -206,12 +261,15 @@
|
|
|
206
261
|
"ci/cd",
|
|
207
262
|
"container",
|
|
208
263
|
"iac",
|
|
209
|
-
"pipeline"
|
|
264
|
+
"pipeline",
|
|
265
|
+
"vercel",
|
|
266
|
+
"neon",
|
|
267
|
+
"planetscale",
|
|
268
|
+
"serverless database",
|
|
269
|
+
"serverless postgres"
|
|
210
270
|
],
|
|
211
271
|
"always_active": true,
|
|
212
|
-
"validators": [
|
|
213
|
-
"architecture"
|
|
214
|
-
],
|
|
272
|
+
"validators": [],
|
|
215
273
|
"relationships": {
|
|
216
274
|
"reports_to": "standards-architect",
|
|
217
275
|
"coordinates": [
|
|
@@ -228,13 +286,26 @@
|
|
|
228
286
|
"team_role": "domain_leader"
|
|
229
287
|
},
|
|
230
288
|
"standards": [
|
|
231
|
-
{
|
|
232
|
-
|
|
289
|
+
{
|
|
290
|
+
"id": "core-coding",
|
|
291
|
+
"scope": "all",
|
|
292
|
+
"priority": "required"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"id": "core-architecture",
|
|
296
|
+
"scope": "all",
|
|
297
|
+
"priority": "required"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"id": "infrastructure-vercel-database",
|
|
301
|
+
"scope": "design",
|
|
302
|
+
"priority": "required"
|
|
303
|
+
}
|
|
233
304
|
],
|
|
234
305
|
"teammate": {
|
|
235
306
|
"role": "Infrastructure Squad Leader",
|
|
236
307
|
"icon": "🏗️",
|
|
237
|
-
"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. Escalate to standards-architect on conflicts."
|
|
308
|
+
"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."
|
|
238
309
|
}
|
|
239
310
|
},
|
|
240
311
|
"azure-architect": {
|
|
@@ -280,9 +351,21 @@
|
|
|
280
351
|
]
|
|
281
352
|
},
|
|
282
353
|
"standards": [
|
|
283
|
-
{
|
|
284
|
-
|
|
285
|
-
|
|
354
|
+
{
|
|
355
|
+
"id": "core-coding",
|
|
356
|
+
"scope": "all",
|
|
357
|
+
"priority": "required"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"id": "core-architecture",
|
|
361
|
+
"scope": "all",
|
|
362
|
+
"priority": "required"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"id": "infrastructure-azure-azure",
|
|
366
|
+
"scope": "all",
|
|
367
|
+
"priority": "required"
|
|
368
|
+
}
|
|
286
369
|
],
|
|
287
370
|
"teammate": {
|
|
288
371
|
"role": "Infrastructure Squad Leader",
|
|
@@ -338,9 +421,21 @@
|
|
|
338
421
|
]
|
|
339
422
|
},
|
|
340
423
|
"standards": [
|
|
341
|
-
{
|
|
342
|
-
|
|
343
|
-
|
|
424
|
+
{
|
|
425
|
+
"id": "frontend-blazor-fluent-ui",
|
|
426
|
+
"scope": "uiux",
|
|
427
|
+
"priority": "required"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"id": "frontend-design-system-naming",
|
|
431
|
+
"scope": "all",
|
|
432
|
+
"priority": "required"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"id": "frontend-design-system-animations",
|
|
436
|
+
"scope": "all",
|
|
437
|
+
"priority": "required"
|
|
438
|
+
}
|
|
344
439
|
],
|
|
345
440
|
"teammate": {
|
|
346
441
|
"role": "UI/UX Squad Leader (FASE 1.5)",
|
|
@@ -387,9 +482,21 @@
|
|
|
387
482
|
]
|
|
388
483
|
},
|
|
389
484
|
"standards": [
|
|
390
|
-
{
|
|
391
|
-
|
|
392
|
-
|
|
485
|
+
{
|
|
486
|
+
"id": "core-coding",
|
|
487
|
+
"scope": "all",
|
|
488
|
+
"priority": "required"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"id": "backend-database-ef-core",
|
|
492
|
+
"scope": "all",
|
|
493
|
+
"priority": "required"
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"id": "backend-dotnet-core",
|
|
497
|
+
"scope": "implement",
|
|
498
|
+
"priority": "required"
|
|
499
|
+
}
|
|
393
500
|
],
|
|
394
501
|
"teammate": {
|
|
395
502
|
"role": "Data Persistence Specialist",
|
|
@@ -440,8 +547,16 @@
|
|
|
440
547
|
]
|
|
441
548
|
},
|
|
442
549
|
"standards": [
|
|
443
|
-
{
|
|
444
|
-
|
|
550
|
+
{
|
|
551
|
+
"id": "core-coding",
|
|
552
|
+
"scope": "all",
|
|
553
|
+
"priority": "required"
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
"id": "core-architecture",
|
|
557
|
+
"scope": "all",
|
|
558
|
+
"priority": "required"
|
|
559
|
+
}
|
|
445
560
|
],
|
|
446
561
|
"teammate": {
|
|
447
562
|
"role": "Event-Driven Architecture Specialist",
|
|
@@ -469,9 +584,7 @@
|
|
|
469
584
|
"endpoint"
|
|
470
585
|
],
|
|
471
586
|
"always_active": false,
|
|
472
|
-
"validators": [
|
|
473
|
-
"architecture"
|
|
474
|
-
],
|
|
587
|
+
"validators": [],
|
|
475
588
|
"relationships": {
|
|
476
589
|
"reports_to": "dotnet-senior",
|
|
477
590
|
"coordinates": [],
|
|
@@ -489,8 +602,16 @@
|
|
|
489
602
|
]
|
|
490
603
|
},
|
|
491
604
|
"standards": [
|
|
492
|
-
{
|
|
493
|
-
|
|
605
|
+
{
|
|
606
|
+
"id": "core-coding",
|
|
607
|
+
"scope": "all",
|
|
608
|
+
"priority": "required"
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"id": "core-architecture",
|
|
612
|
+
"scope": "all",
|
|
613
|
+
"priority": "required"
|
|
614
|
+
}
|
|
494
615
|
],
|
|
495
616
|
"teammate": {
|
|
496
617
|
"role": "API Design Specialist",
|
|
@@ -517,9 +638,7 @@
|
|
|
517
638
|
"azure storage"
|
|
518
639
|
],
|
|
519
640
|
"always_active": false,
|
|
520
|
-
"validators": [
|
|
521
|
-
"architecture"
|
|
522
|
-
],
|
|
641
|
+
"validators": [],
|
|
523
642
|
"relationships": {
|
|
524
643
|
"reports_to": "dotnet-senior",
|
|
525
644
|
"coordinates": [],
|
|
@@ -535,8 +654,16 @@
|
|
|
535
654
|
]
|
|
536
655
|
},
|
|
537
656
|
"standards": [
|
|
538
|
-
{
|
|
539
|
-
|
|
657
|
+
{
|
|
658
|
+
"id": "core-coding",
|
|
659
|
+
"scope": "all",
|
|
660
|
+
"priority": "required"
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"id": "core-architecture",
|
|
664
|
+
"scope": "all",
|
|
665
|
+
"priority": "required"
|
|
666
|
+
}
|
|
540
667
|
],
|
|
541
668
|
"teammate": {
|
|
542
669
|
"role": "NoSQL & Cache Specialist",
|
|
@@ -584,14 +711,46 @@
|
|
|
584
711
|
"team_role": "domain_leader"
|
|
585
712
|
},
|
|
586
713
|
"standards": [
|
|
587
|
-
{
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
{
|
|
593
|
-
|
|
594
|
-
|
|
714
|
+
{
|
|
715
|
+
"id": "core-coding",
|
|
716
|
+
"scope": "all",
|
|
717
|
+
"priority": "required"
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
"id": "core-architecture",
|
|
721
|
+
"scope": "all",
|
|
722
|
+
"priority": "required"
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
"id": "architecture-ddd-complexity-levels",
|
|
726
|
+
"scope": "design",
|
|
727
|
+
"priority": "required"
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"id": "architecture-ddd-aggregates",
|
|
731
|
+
"scope": "design",
|
|
732
|
+
"priority": "required"
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
"id": "architecture-ddd-entities",
|
|
736
|
+
"scope": "design",
|
|
737
|
+
"priority": "required"
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"id": "architecture-ddd-value-objects",
|
|
741
|
+
"scope": "design",
|
|
742
|
+
"priority": "required"
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
"id": "architecture-ddd-bounded-contexts",
|
|
746
|
+
"scope": "design",
|
|
747
|
+
"priority": "required"
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"id": "architecture-ddd-ubiquitous-language",
|
|
751
|
+
"scope": "design",
|
|
752
|
+
"priority": "required"
|
|
753
|
+
}
|
|
595
754
|
],
|
|
596
755
|
"active_phases": [
|
|
597
756
|
"design",
|
|
@@ -639,8 +798,16 @@
|
|
|
639
798
|
]
|
|
640
799
|
},
|
|
641
800
|
"standards": [
|
|
642
|
-
{
|
|
643
|
-
|
|
801
|
+
{
|
|
802
|
+
"id": "core-coding",
|
|
803
|
+
"scope": "all",
|
|
804
|
+
"priority": "required"
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"id": "core-architecture",
|
|
808
|
+
"scope": "all",
|
|
809
|
+
"priority": "required"
|
|
810
|
+
}
|
|
644
811
|
],
|
|
645
812
|
"teammate": {
|
|
646
813
|
"role": "Background Jobs Specialist",
|
|
@@ -687,11 +854,31 @@
|
|
|
687
854
|
]
|
|
688
855
|
},
|
|
689
856
|
"standards": [
|
|
690
|
-
{
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
857
|
+
{
|
|
858
|
+
"id": "core-coding",
|
|
859
|
+
"scope": "all",
|
|
860
|
+
"priority": "required"
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
"id": "ai-agents-setup",
|
|
864
|
+
"scope": "all",
|
|
865
|
+
"priority": "required"
|
|
866
|
+
},
|
|
867
|
+
{
|
|
868
|
+
"id": "ai-agents-workflows",
|
|
869
|
+
"scope": "design",
|
|
870
|
+
"priority": "required"
|
|
871
|
+
},
|
|
872
|
+
{
|
|
873
|
+
"id": "ai-agents-production",
|
|
874
|
+
"scope": "implement",
|
|
875
|
+
"priority": "required"
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
"id": "ai-agents-blazor-ui",
|
|
879
|
+
"scope": "implement",
|
|
880
|
+
"priority": "reference"
|
|
881
|
+
}
|
|
695
882
|
],
|
|
696
883
|
"teammate": {
|
|
697
884
|
"role": "Microsoft Agent Framework Expert",
|
|
@@ -716,10 +903,7 @@
|
|
|
716
903
|
"edge functions"
|
|
717
904
|
],
|
|
718
905
|
"always_active": false,
|
|
719
|
-
"validators": [
|
|
720
|
-
"architecture",
|
|
721
|
-
"packages"
|
|
722
|
-
],
|
|
906
|
+
"validators": [],
|
|
723
907
|
"relationships": {
|
|
724
908
|
"reports_to": "dotnet-senior",
|
|
725
909
|
"coordinates": [],
|
|
@@ -736,8 +920,16 @@
|
|
|
736
920
|
]
|
|
737
921
|
},
|
|
738
922
|
"standards": [
|
|
739
|
-
{
|
|
740
|
-
|
|
923
|
+
{
|
|
924
|
+
"id": "core-coding",
|
|
925
|
+
"scope": "all",
|
|
926
|
+
"priority": "required"
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
"id": "core-architecture",
|
|
930
|
+
"scope": "all",
|
|
931
|
+
"priority": "required"
|
|
932
|
+
}
|
|
741
933
|
],
|
|
742
934
|
"teammate": {
|
|
743
935
|
"role": "Supabase & PostgreSQL Specialist",
|
|
@@ -762,9 +954,7 @@
|
|
|
762
954
|
"retrieval augmented"
|
|
763
955
|
],
|
|
764
956
|
"always_active": false,
|
|
765
|
-
"validators": [
|
|
766
|
-
"architecture"
|
|
767
|
-
],
|
|
957
|
+
"validators": [],
|
|
768
958
|
"relationships": {
|
|
769
959
|
"reports_to": "ai-system-architect",
|
|
770
960
|
"coordinates": [],
|
|
@@ -781,9 +971,21 @@
|
|
|
781
971
|
]
|
|
782
972
|
},
|
|
783
973
|
"standards": [
|
|
784
|
-
{
|
|
785
|
-
|
|
786
|
-
|
|
974
|
+
{
|
|
975
|
+
"id": "core-coding",
|
|
976
|
+
"scope": "all",
|
|
977
|
+
"priority": "required"
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
"id": "ai-agents-setup",
|
|
981
|
+
"scope": "all",
|
|
982
|
+
"priority": "required"
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
"id": "ai-agents-workflows",
|
|
986
|
+
"scope": "design",
|
|
987
|
+
"priority": "required"
|
|
988
|
+
}
|
|
787
989
|
],
|
|
788
990
|
"teammate": {
|
|
789
991
|
"role": "Vector Search & RAG Specialist",
|
|
@@ -822,8 +1024,16 @@
|
|
|
822
1024
|
]
|
|
823
1025
|
},
|
|
824
1026
|
"standards": [
|
|
825
|
-
{
|
|
826
|
-
|
|
1027
|
+
{
|
|
1028
|
+
"id": "core-coding",
|
|
1029
|
+
"scope": "all",
|
|
1030
|
+
"priority": "required"
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
"id": "ai-agents-workflows",
|
|
1034
|
+
"scope": "all",
|
|
1035
|
+
"priority": "required"
|
|
1036
|
+
}
|
|
827
1037
|
],
|
|
828
1038
|
"teammate": {
|
|
829
1039
|
"role": "Context & Token Optimization Specialist",
|
|
@@ -867,8 +1077,16 @@
|
|
|
867
1077
|
]
|
|
868
1078
|
},
|
|
869
1079
|
"standards": [
|
|
870
|
-
{
|
|
871
|
-
|
|
1080
|
+
{
|
|
1081
|
+
"id": "core-coding",
|
|
1082
|
+
"scope": "all",
|
|
1083
|
+
"priority": "required"
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
"id": "core-architecture",
|
|
1087
|
+
"scope": "all",
|
|
1088
|
+
"priority": "required"
|
|
1089
|
+
}
|
|
872
1090
|
],
|
|
873
1091
|
"teammate": {
|
|
874
1092
|
"role": "Payment Integration Specialist",
|
|
@@ -899,9 +1117,7 @@
|
|
|
899
1117
|
"already have auth"
|
|
900
1118
|
],
|
|
901
1119
|
"always_active": false,
|
|
902
|
-
"validators": [
|
|
903
|
-
"architecture"
|
|
904
|
-
],
|
|
1120
|
+
"validators": [],
|
|
905
1121
|
"relationships": {
|
|
906
1122
|
"reports_to": "dotnet-senior",
|
|
907
1123
|
"coordinates": [],
|
|
@@ -918,8 +1134,16 @@
|
|
|
918
1134
|
]
|
|
919
1135
|
},
|
|
920
1136
|
"standards": [
|
|
921
|
-
{
|
|
922
|
-
|
|
1137
|
+
{
|
|
1138
|
+
"id": "core-coding",
|
|
1139
|
+
"scope": "all",
|
|
1140
|
+
"priority": "required"
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
"id": "core-architecture",
|
|
1144
|
+
"scope": "all",
|
|
1145
|
+
"priority": "required"
|
|
1146
|
+
}
|
|
923
1147
|
],
|
|
924
1148
|
"teammate": {
|
|
925
1149
|
"role": "Auth SaaS Integration Specialist",
|
|
@@ -967,8 +1191,16 @@
|
|
|
967
1191
|
]
|
|
968
1192
|
},
|
|
969
1193
|
"standards": [
|
|
970
|
-
{
|
|
971
|
-
|
|
1194
|
+
{
|
|
1195
|
+
"id": "core-coding",
|
|
1196
|
+
"scope": "all",
|
|
1197
|
+
"priority": "required"
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
"id": "core-architecture",
|
|
1201
|
+
"scope": "all",
|
|
1202
|
+
"priority": "required"
|
|
1203
|
+
}
|
|
972
1204
|
],
|
|
973
1205
|
"teammate": {
|
|
974
1206
|
"role": "Email Integration Specialist",
|
|
@@ -1022,12 +1254,36 @@
|
|
|
1022
1254
|
]
|
|
1023
1255
|
},
|
|
1024
1256
|
"standards": [
|
|
1025
|
-
{
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
{
|
|
1257
|
+
{
|
|
1258
|
+
"id": "core-coding",
|
|
1259
|
+
"scope": "all",
|
|
1260
|
+
"priority": "required"
|
|
1261
|
+
},
|
|
1262
|
+
{
|
|
1263
|
+
"id": "frontend-blazor-lifecycle",
|
|
1264
|
+
"scope": "all",
|
|
1265
|
+
"priority": "required"
|
|
1266
|
+
},
|
|
1267
|
+
{
|
|
1268
|
+
"id": "frontend-blazor-state",
|
|
1269
|
+
"scope": "all",
|
|
1270
|
+
"priority": "required"
|
|
1271
|
+
},
|
|
1272
|
+
{
|
|
1273
|
+
"id": "frontend-blazor-pitfalls",
|
|
1274
|
+
"scope": "all",
|
|
1275
|
+
"priority": "required"
|
|
1276
|
+
},
|
|
1277
|
+
{
|
|
1278
|
+
"id": "backend-database-ef-core",
|
|
1279
|
+
"scope": "implement",
|
|
1280
|
+
"priority": "reference"
|
|
1281
|
+
},
|
|
1282
|
+
{
|
|
1283
|
+
"id": "frontend-blazor-fluent-ui",
|
|
1284
|
+
"scope": "all",
|
|
1285
|
+
"priority": "required"
|
|
1286
|
+
}
|
|
1031
1287
|
],
|
|
1032
1288
|
"teammate": {
|
|
1033
1289
|
"role": "Blazor Development Specialist",
|
|
@@ -1055,11 +1311,13 @@
|
|
|
1055
1311
|
"react-hook-form",
|
|
1056
1312
|
"app router",
|
|
1057
1313
|
"server component",
|
|
1058
|
-
"client component"
|
|
1314
|
+
"client component",
|
|
1315
|
+
"vercel",
|
|
1316
|
+
"neon",
|
|
1317
|
+
"planetscale"
|
|
1059
1318
|
],
|
|
1060
1319
|
"always_active": false,
|
|
1061
1320
|
"validators": [
|
|
1062
|
-
"packages",
|
|
1063
1321
|
"nextjs-component"
|
|
1064
1322
|
],
|
|
1065
1323
|
"relationships": {
|
|
@@ -1078,22 +1336,71 @@
|
|
|
1078
1336
|
]
|
|
1079
1337
|
},
|
|
1080
1338
|
"standards": [
|
|
1081
|
-
{
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
{
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
{
|
|
1339
|
+
{
|
|
1340
|
+
"id": "core-coding",
|
|
1341
|
+
"scope": "all",
|
|
1342
|
+
"priority": "required"
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
"id": "core-architecture",
|
|
1346
|
+
"scope": "all",
|
|
1347
|
+
"priority": "required"
|
|
1348
|
+
},
|
|
1349
|
+
{
|
|
1350
|
+
"id": "frontend-nextjs-naming-conventions",
|
|
1351
|
+
"scope": "all",
|
|
1352
|
+
"priority": "required"
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
"id": "frontend-nextjs-project-structure",
|
|
1356
|
+
"scope": "all",
|
|
1357
|
+
"priority": "required"
|
|
1358
|
+
},
|
|
1359
|
+
{
|
|
1360
|
+
"id": "frontend-nextjs-app-router",
|
|
1361
|
+
"scope": "all",
|
|
1362
|
+
"priority": "required"
|
|
1363
|
+
},
|
|
1364
|
+
{
|
|
1365
|
+
"id": "frontend-nextjs-components",
|
|
1366
|
+
"scope": "all",
|
|
1367
|
+
"priority": "required"
|
|
1368
|
+
},
|
|
1369
|
+
{
|
|
1370
|
+
"id": "frontend-nextjs-data-fetching",
|
|
1371
|
+
"scope": "implement",
|
|
1372
|
+
"priority": "required"
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
"id": "frontend-nextjs-forms",
|
|
1376
|
+
"scope": "implement",
|
|
1377
|
+
"priority": "required"
|
|
1378
|
+
},
|
|
1379
|
+
{
|
|
1380
|
+
"id": "frontend-nextjs-state-management",
|
|
1381
|
+
"scope": "implement",
|
|
1382
|
+
"priority": "required"
|
|
1383
|
+
},
|
|
1384
|
+
{
|
|
1385
|
+
"id": "frontend-nextjs-testing",
|
|
1386
|
+
"scope": "implement",
|
|
1387
|
+
"priority": "reference"
|
|
1388
|
+
},
|
|
1389
|
+
{
|
|
1390
|
+
"id": "frontend-nextjs-nextjs-patterns",
|
|
1391
|
+
"scope": "all",
|
|
1392
|
+
"priority": "required"
|
|
1393
|
+
},
|
|
1394
|
+
{
|
|
1395
|
+
"id": "infrastructure-vercel-database",
|
|
1396
|
+
"scope": "design",
|
|
1397
|
+
"priority": "required"
|
|
1398
|
+
}
|
|
1092
1399
|
],
|
|
1093
1400
|
"teammate": {
|
|
1094
1401
|
"role": "Next.js Development Specialist",
|
|
1095
1402
|
"icon": "⚛️",
|
|
1096
|
-
"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."
|
|
1403
|
+
"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."
|
|
1097
1404
|
}
|
|
1098
1405
|
},
|
|
1099
1406
|
"css-specialist": {
|
|
@@ -1131,8 +1438,16 @@
|
|
|
1131
1438
|
]
|
|
1132
1439
|
},
|
|
1133
1440
|
"standards": [
|
|
1134
|
-
{
|
|
1135
|
-
|
|
1441
|
+
{
|
|
1442
|
+
"id": "frontend-design-system-naming",
|
|
1443
|
+
"scope": "all",
|
|
1444
|
+
"priority": "required"
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
"id": "frontend-design-system-animations",
|
|
1448
|
+
"scope": "all",
|
|
1449
|
+
"priority": "required"
|
|
1450
|
+
}
|
|
1136
1451
|
],
|
|
1137
1452
|
"teammate": {
|
|
1138
1453
|
"role": "CSS & Design System Specialist",
|
|
@@ -1175,9 +1490,21 @@
|
|
|
1175
1490
|
]
|
|
1176
1491
|
},
|
|
1177
1492
|
"standards": [
|
|
1178
|
-
{
|
|
1179
|
-
|
|
1180
|
-
|
|
1493
|
+
{
|
|
1494
|
+
"id": "core-coding",
|
|
1495
|
+
"scope": "all",
|
|
1496
|
+
"priority": "required"
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
"id": "core-architecture",
|
|
1500
|
+
"scope": "all",
|
|
1501
|
+
"priority": "required"
|
|
1502
|
+
},
|
|
1503
|
+
{
|
|
1504
|
+
"id": "infrastructure-azure-azure",
|
|
1505
|
+
"scope": "all",
|
|
1506
|
+
"priority": "required"
|
|
1507
|
+
}
|
|
1181
1508
|
],
|
|
1182
1509
|
"teammate": {
|
|
1183
1510
|
"role": "Infrastructure as Code Specialist",
|
|
@@ -1202,9 +1529,7 @@
|
|
|
1202
1529
|
"deployment"
|
|
1203
1530
|
],
|
|
1204
1531
|
"always_active": false,
|
|
1205
|
-
"validators": [
|
|
1206
|
-
"architecture"
|
|
1207
|
-
],
|
|
1532
|
+
"validators": [],
|
|
1208
1533
|
"relationships": {
|
|
1209
1534
|
"reports_to": "infra-architect",
|
|
1210
1535
|
"coordinates": [],
|
|
@@ -1219,8 +1544,16 @@
|
|
|
1219
1544
|
]
|
|
1220
1545
|
},
|
|
1221
1546
|
"standards": [
|
|
1222
|
-
{
|
|
1223
|
-
|
|
1547
|
+
{
|
|
1548
|
+
"id": "core-coding",
|
|
1549
|
+
"scope": "all",
|
|
1550
|
+
"priority": "required"
|
|
1551
|
+
},
|
|
1552
|
+
{
|
|
1553
|
+
"id": "core-architecture",
|
|
1554
|
+
"scope": "all",
|
|
1555
|
+
"priority": "required"
|
|
1556
|
+
}
|
|
1224
1557
|
],
|
|
1225
1558
|
"teammate": {
|
|
1226
1559
|
"role": "CI/CD Specialist",
|
|
@@ -1244,9 +1577,7 @@
|
|
|
1244
1577
|
"container apps"
|
|
1245
1578
|
],
|
|
1246
1579
|
"always_active": false,
|
|
1247
|
-
"validators": [
|
|
1248
|
-
"architecture"
|
|
1249
|
-
],
|
|
1580
|
+
"validators": [],
|
|
1250
1581
|
"relationships": {
|
|
1251
1582
|
"reports_to": "infra-architect",
|
|
1252
1583
|
"coordinates": [],
|
|
@@ -1261,8 +1592,16 @@
|
|
|
1261
1592
|
]
|
|
1262
1593
|
},
|
|
1263
1594
|
"standards": [
|
|
1264
|
-
{
|
|
1265
|
-
|
|
1595
|
+
{
|
|
1596
|
+
"id": "core-coding",
|
|
1597
|
+
"scope": "all",
|
|
1598
|
+
"priority": "required"
|
|
1599
|
+
},
|
|
1600
|
+
{
|
|
1601
|
+
"id": "core-architecture",
|
|
1602
|
+
"scope": "all",
|
|
1603
|
+
"priority": "required"
|
|
1604
|
+
}
|
|
1266
1605
|
],
|
|
1267
1606
|
"teammate": {
|
|
1268
1607
|
"role": "Containerization Specialist",
|
|
@@ -1306,8 +1645,16 @@
|
|
|
1306
1645
|
]
|
|
1307
1646
|
},
|
|
1308
1647
|
"standards": [
|
|
1309
|
-
{
|
|
1310
|
-
|
|
1648
|
+
{
|
|
1649
|
+
"id": "core-coding",
|
|
1650
|
+
"scope": "all",
|
|
1651
|
+
"priority": "required"
|
|
1652
|
+
},
|
|
1653
|
+
{
|
|
1654
|
+
"id": "core-architecture",
|
|
1655
|
+
"scope": "all",
|
|
1656
|
+
"priority": "required"
|
|
1657
|
+
}
|
|
1311
1658
|
],
|
|
1312
1659
|
"teammate": {
|
|
1313
1660
|
"role": "Observability Specialist",
|
|
@@ -1333,9 +1680,7 @@
|
|
|
1333
1680
|
"managed identity"
|
|
1334
1681
|
],
|
|
1335
1682
|
"always_active": false,
|
|
1336
|
-
"validators": [
|
|
1337
|
-
"architecture"
|
|
1338
|
-
],
|
|
1683
|
+
"validators": [],
|
|
1339
1684
|
"relationships": {
|
|
1340
1685
|
"reports_to": "infra-architect",
|
|
1341
1686
|
"coordinates": [],
|
|
@@ -1352,8 +1697,16 @@
|
|
|
1352
1697
|
]
|
|
1353
1698
|
},
|
|
1354
1699
|
"standards": [
|
|
1355
|
-
{
|
|
1356
|
-
|
|
1700
|
+
{
|
|
1701
|
+
"id": "core-coding",
|
|
1702
|
+
"scope": "all",
|
|
1703
|
+
"priority": "required"
|
|
1704
|
+
},
|
|
1705
|
+
{
|
|
1706
|
+
"id": "core-architecture",
|
|
1707
|
+
"scope": "all",
|
|
1708
|
+
"priority": "required"
|
|
1709
|
+
}
|
|
1357
1710
|
],
|
|
1358
1711
|
"teammate": {
|
|
1359
1712
|
"role": "Microsoft Identity Specialist",
|
|
@@ -1381,9 +1734,7 @@
|
|
|
1381
1734
|
"bunit"
|
|
1382
1735
|
],
|
|
1383
1736
|
"always_active": false,
|
|
1384
|
-
"validators": [
|
|
1385
|
-
"architecture"
|
|
1386
|
-
],
|
|
1737
|
+
"validators": [],
|
|
1387
1738
|
"relationships": {
|
|
1388
1739
|
"reports_to": "standards-architect",
|
|
1389
1740
|
"coordinates": [],
|
|
@@ -1399,8 +1750,16 @@
|
|
|
1399
1750
|
]
|
|
1400
1751
|
},
|
|
1401
1752
|
"standards": [
|
|
1402
|
-
{
|
|
1403
|
-
|
|
1753
|
+
{
|
|
1754
|
+
"id": "core-coding",
|
|
1755
|
+
"scope": "all",
|
|
1756
|
+
"priority": "required"
|
|
1757
|
+
},
|
|
1758
|
+
{
|
|
1759
|
+
"id": "core-architecture",
|
|
1760
|
+
"scope": "all",
|
|
1761
|
+
"priority": "required"
|
|
1762
|
+
}
|
|
1404
1763
|
],
|
|
1405
1764
|
"teammate": {
|
|
1406
1765
|
"role": "Testing Specialist",
|
|
@@ -1426,10 +1785,7 @@
|
|
|
1426
1785
|
"architecture review"
|
|
1427
1786
|
],
|
|
1428
1787
|
"always_active": false,
|
|
1429
|
-
"validators": [
|
|
1430
|
-
"architecture",
|
|
1431
|
-
"packages"
|
|
1432
|
-
],
|
|
1788
|
+
"validators": [],
|
|
1433
1789
|
"relationships": {
|
|
1434
1790
|
"reports_to": "standards-architect",
|
|
1435
1791
|
"coordinates": [],
|
|
@@ -1444,8 +1800,16 @@
|
|
|
1444
1800
|
]
|
|
1445
1801
|
},
|
|
1446
1802
|
"standards": [
|
|
1447
|
-
{
|
|
1448
|
-
|
|
1803
|
+
{
|
|
1804
|
+
"id": "core-coding",
|
|
1805
|
+
"scope": "all",
|
|
1806
|
+
"priority": "required"
|
|
1807
|
+
},
|
|
1808
|
+
{
|
|
1809
|
+
"id": "core-architecture",
|
|
1810
|
+
"scope": "all",
|
|
1811
|
+
"priority": "required"
|
|
1812
|
+
}
|
|
1449
1813
|
],
|
|
1450
1814
|
"teammate": {
|
|
1451
1815
|
"role": "Code Quality Analyst",
|
|
@@ -1485,8 +1849,16 @@
|
|
|
1485
1849
|
]
|
|
1486
1850
|
},
|
|
1487
1851
|
"standards": [
|
|
1488
|
-
{
|
|
1489
|
-
|
|
1852
|
+
{
|
|
1853
|
+
"id": "core-coding",
|
|
1854
|
+
"scope": "all",
|
|
1855
|
+
"priority": "required"
|
|
1856
|
+
},
|
|
1857
|
+
{
|
|
1858
|
+
"id": "core-architecture",
|
|
1859
|
+
"scope": "all",
|
|
1860
|
+
"priority": "required"
|
|
1861
|
+
}
|
|
1490
1862
|
],
|
|
1491
1863
|
"teammate": {
|
|
1492
1864
|
"role": "Troubleshooting Expert (Escalation)",
|
|
@@ -1530,8 +1902,16 @@
|
|
|
1530
1902
|
]
|
|
1531
1903
|
},
|
|
1532
1904
|
"standards": [
|
|
1533
|
-
{
|
|
1534
|
-
|
|
1905
|
+
{
|
|
1906
|
+
"id": "core-coding",
|
|
1907
|
+
"scope": "all",
|
|
1908
|
+
"priority": "required"
|
|
1909
|
+
},
|
|
1910
|
+
{
|
|
1911
|
+
"id": "core-architecture",
|
|
1912
|
+
"scope": "all",
|
|
1913
|
+
"priority": "required"
|
|
1914
|
+
}
|
|
1535
1915
|
],
|
|
1536
1916
|
"teammate": {
|
|
1537
1917
|
"role": "Load Testing Specialist",
|
|
@@ -1571,8 +1951,16 @@
|
|
|
1571
1951
|
]
|
|
1572
1952
|
},
|
|
1573
1953
|
"standards": [
|
|
1574
|
-
{
|
|
1575
|
-
|
|
1954
|
+
{
|
|
1955
|
+
"id": "core-coding",
|
|
1956
|
+
"scope": "all",
|
|
1957
|
+
"priority": "required"
|
|
1958
|
+
},
|
|
1959
|
+
{
|
|
1960
|
+
"id": "core-architecture",
|
|
1961
|
+
"scope": "all",
|
|
1962
|
+
"priority": "required"
|
|
1963
|
+
}
|
|
1576
1964
|
],
|
|
1577
1965
|
"teammate": {
|
|
1578
1966
|
"role": "Documentation Specialist (Post-FASE 5)",
|
|
@@ -1606,8 +1994,16 @@
|
|
|
1606
1994
|
"implement"
|
|
1607
1995
|
],
|
|
1608
1996
|
"standards": [
|
|
1609
|
-
{
|
|
1610
|
-
|
|
1997
|
+
{
|
|
1998
|
+
"id": "core-coding",
|
|
1999
|
+
"scope": "all",
|
|
2000
|
+
"priority": "required"
|
|
2001
|
+
},
|
|
2002
|
+
{
|
|
2003
|
+
"id": "architecture-vertical-slice-vertical-slice",
|
|
2004
|
+
"scope": "all",
|
|
2005
|
+
"priority": "required"
|
|
2006
|
+
}
|
|
1611
2007
|
],
|
|
1612
2008
|
"teammate": {
|
|
1613
2009
|
"role": "VSA Architecture Specialist",
|
|
@@ -1620,37 +2016,83 @@
|
|
|
1620
2016
|
"tier": 3,
|
|
1621
2017
|
"role": "specialist",
|
|
1622
2018
|
"title": "Morph-Spec Architect",
|
|
1623
|
-
"domains": [
|
|
1624
|
-
|
|
1625
|
-
|
|
2019
|
+
"domains": [
|
|
2020
|
+
"cli",
|
|
2021
|
+
"framework-design",
|
|
2022
|
+
"nodejs",
|
|
2023
|
+
"architecture"
|
|
2024
|
+
],
|
|
2025
|
+
"keywords": [
|
|
2026
|
+
"morph-spec",
|
|
2027
|
+
"framework feature",
|
|
2028
|
+
"new command",
|
|
2029
|
+
"cli architecture",
|
|
2030
|
+
"plugin",
|
|
2031
|
+
"hook design"
|
|
2032
|
+
],
|
|
2033
|
+
"negativeKeywords": [
|
|
2034
|
+
"blazor",
|
|
2035
|
+
"dotnet",
|
|
2036
|
+
"react",
|
|
2037
|
+
"frontend"
|
|
2038
|
+
],
|
|
1626
2039
|
"always_active": false,
|
|
1627
2040
|
"validators": [],
|
|
1628
2041
|
"relationships": {
|
|
1629
2042
|
"reports_to": "feature-lead",
|
|
1630
|
-
"coordinates": [
|
|
1631
|
-
|
|
2043
|
+
"coordinates": [
|
|
2044
|
+
"nodejs-cli-expert",
|
|
2045
|
+
"morph-spec-validator"
|
|
2046
|
+
],
|
|
2047
|
+
"active_phases": [
|
|
2048
|
+
"design",
|
|
2049
|
+
"tasks"
|
|
2050
|
+
]
|
|
1632
2051
|
},
|
|
1633
2052
|
"standards": [],
|
|
1634
2053
|
"teammate": {
|
|
1635
2054
|
"role": "specialist",
|
|
1636
2055
|
"icon": "🔧",
|
|
1637
|
-
"spawn_prompt": "You are the Morph-Spec Architect. You deeply understand the morph-spec-framework codebase: its 4-tier agent hierarchy, state machine (
|
|
2056
|
+
"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."
|
|
1638
2057
|
}
|
|
1639
2058
|
},
|
|
1640
2059
|
"nodejs-cli-expert": {
|
|
1641
2060
|
"tier": 3,
|
|
1642
2061
|
"role": "specialist",
|
|
1643
2062
|
"title": "Node.js CLI Expert",
|
|
1644
|
-
"domains": [
|
|
1645
|
-
|
|
1646
|
-
|
|
2063
|
+
"domains": [
|
|
2064
|
+
"nodejs",
|
|
2065
|
+
"cli",
|
|
2066
|
+
"javascript",
|
|
2067
|
+
"esm",
|
|
2068
|
+
"testing"
|
|
2069
|
+
],
|
|
2070
|
+
"keywords": [
|
|
2071
|
+
"nodejs",
|
|
2072
|
+
"javascript",
|
|
2073
|
+
"esm",
|
|
2074
|
+
"commander",
|
|
2075
|
+
"node --test",
|
|
2076
|
+
"cli command",
|
|
2077
|
+
"morph-spec implementation"
|
|
2078
|
+
],
|
|
2079
|
+
"negativeKeywords": [
|
|
2080
|
+
"blazor",
|
|
2081
|
+
"dotnet",
|
|
2082
|
+
"react",
|
|
2083
|
+
"typescript"
|
|
2084
|
+
],
|
|
1647
2085
|
"always_active": false,
|
|
1648
2086
|
"validators": [],
|
|
1649
2087
|
"relationships": {
|
|
1650
2088
|
"reports_to": "feature-lead",
|
|
1651
|
-
"coordinates": [
|
|
2089
|
+
"coordinates": [
|
|
2090
|
+
"morph-spec-architect"
|
|
2091
|
+
],
|
|
1652
2092
|
"escalates_to": "morph-spec-validator",
|
|
1653
|
-
"active_phases": [
|
|
2093
|
+
"active_phases": [
|
|
2094
|
+
"implement"
|
|
2095
|
+
]
|
|
1654
2096
|
},
|
|
1655
2097
|
"standards": [],
|
|
1656
2098
|
"teammate": {
|
|
@@ -1691,8 +2133,16 @@
|
|
|
1691
2133
|
"team_role": "validator"
|
|
1692
2134
|
},
|
|
1693
2135
|
"standards": [
|
|
1694
|
-
{
|
|
1695
|
-
|
|
2136
|
+
{
|
|
2137
|
+
"id": "core-coding",
|
|
2138
|
+
"scope": "all",
|
|
2139
|
+
"priority": "required"
|
|
2140
|
+
},
|
|
2141
|
+
{
|
|
2142
|
+
"id": "core-architecture",
|
|
2143
|
+
"scope": "all",
|
|
2144
|
+
"priority": "required"
|
|
2145
|
+
}
|
|
1696
2146
|
],
|
|
1697
2147
|
"teammate": null,
|
|
1698
2148
|
"hook_behavior": {
|
|
@@ -1735,8 +2185,16 @@
|
|
|
1735
2185
|
"team_role": "validator"
|
|
1736
2186
|
},
|
|
1737
2187
|
"standards": [
|
|
1738
|
-
{
|
|
1739
|
-
|
|
2188
|
+
{
|
|
2189
|
+
"id": "core-coding",
|
|
2190
|
+
"scope": "all",
|
|
2191
|
+
"priority": "required"
|
|
2192
|
+
},
|
|
2193
|
+
{
|
|
2194
|
+
"id": "core-architecture",
|
|
2195
|
+
"scope": "all",
|
|
2196
|
+
"priority": "required"
|
|
2197
|
+
}
|
|
1740
2198
|
],
|
|
1741
2199
|
"teammate": null,
|
|
1742
2200
|
"hook_behavior": {
|
|
@@ -1777,7 +2235,11 @@
|
|
|
1777
2235
|
"team_role": "validator"
|
|
1778
2236
|
},
|
|
1779
2237
|
"standards": [
|
|
1780
|
-
{
|
|
2238
|
+
{
|
|
2239
|
+
"id": "core-coding",
|
|
2240
|
+
"scope": "all",
|
|
2241
|
+
"priority": "required"
|
|
2242
|
+
}
|
|
1781
2243
|
],
|
|
1782
2244
|
"teammate": null,
|
|
1783
2245
|
"hook_behavior": {
|
|
@@ -1817,8 +2279,16 @@
|
|
|
1817
2279
|
"team_role": "validator"
|
|
1818
2280
|
},
|
|
1819
2281
|
"standards": [
|
|
1820
|
-
{
|
|
1821
|
-
|
|
2282
|
+
{
|
|
2283
|
+
"id": "frontend-design-system-naming",
|
|
2284
|
+
"scope": "all",
|
|
2285
|
+
"priority": "required"
|
|
2286
|
+
},
|
|
2287
|
+
{
|
|
2288
|
+
"id": "frontend-design-system-animations",
|
|
2289
|
+
"scope": "all",
|
|
2290
|
+
"priority": "required"
|
|
2291
|
+
}
|
|
1822
2292
|
],
|
|
1823
2293
|
"teammate": null,
|
|
1824
2294
|
"hook_behavior": {
|
|
@@ -1860,9 +2330,21 @@
|
|
|
1860
2330
|
"team_role": "validator"
|
|
1861
2331
|
},
|
|
1862
2332
|
"standards": [
|
|
1863
|
-
{
|
|
1864
|
-
|
|
1865
|
-
|
|
2333
|
+
{
|
|
2334
|
+
"id": "frontend-blazor-lifecycle",
|
|
2335
|
+
"scope": "all",
|
|
2336
|
+
"priority": "required"
|
|
2337
|
+
},
|
|
2338
|
+
{
|
|
2339
|
+
"id": "frontend-blazor-pitfalls",
|
|
2340
|
+
"scope": "all",
|
|
2341
|
+
"priority": "required"
|
|
2342
|
+
},
|
|
2343
|
+
{
|
|
2344
|
+
"id": "frontend-blazor-state",
|
|
2345
|
+
"scope": "all",
|
|
2346
|
+
"priority": "required"
|
|
2347
|
+
}
|
|
1866
2348
|
],
|
|
1867
2349
|
"teammate": null,
|
|
1868
2350
|
"hook_behavior": {
|
|
@@ -1880,14 +2362,28 @@
|
|
|
1880
2362
|
"tier": 4,
|
|
1881
2363
|
"role": "validator",
|
|
1882
2364
|
"title": "Morph-Spec Validator",
|
|
1883
|
-
"domains": [
|
|
1884
|
-
|
|
2365
|
+
"domains": [
|
|
2366
|
+
"nodejs",
|
|
2367
|
+
"cli",
|
|
2368
|
+
"testing",
|
|
2369
|
+
"validation"
|
|
2370
|
+
],
|
|
2371
|
+
"keywords": [
|
|
2372
|
+
"validate morph-spec",
|
|
2373
|
+
"node.js validation",
|
|
2374
|
+
"cli test"
|
|
2375
|
+
],
|
|
1885
2376
|
"always_active": false,
|
|
1886
|
-
"validators": [
|
|
2377
|
+
"validators": [
|
|
2378
|
+
"morph-spec-standards"
|
|
2379
|
+
],
|
|
1887
2380
|
"relationships": {
|
|
1888
2381
|
"reports_to": "qa-lead",
|
|
1889
2382
|
"runs_in": "post-implement",
|
|
1890
|
-
"active_phases": [
|
|
2383
|
+
"active_phases": [
|
|
2384
|
+
"implement",
|
|
2385
|
+
"validate"
|
|
2386
|
+
]
|
|
1891
2387
|
},
|
|
1892
2388
|
"standards": [],
|
|
1893
2389
|
"teammate": null,
|
|
@@ -1903,6 +2399,32 @@
|
|
|
1903
2399
|
"severity": "error",
|
|
1904
2400
|
"blocks_on_fail": true
|
|
1905
2401
|
}
|
|
2402
|
+
},
|
|
2403
|
+
"nextjs-component-validator": {
|
|
2404
|
+
"tier": 4,
|
|
2405
|
+
"title": "Next.js Component Validator",
|
|
2406
|
+
"description": "Tier-4 validator for Next.js Server/Client component patterns",
|
|
2407
|
+
"keywords": [
|
|
2408
|
+
"nextjs",
|
|
2409
|
+
"tsx",
|
|
2410
|
+
"use client",
|
|
2411
|
+
"server component",
|
|
2412
|
+
"app router"
|
|
2413
|
+
],
|
|
2414
|
+
"validators": [
|
|
2415
|
+
"nextjs-component"
|
|
2416
|
+
],
|
|
2417
|
+
"always_active": false,
|
|
2418
|
+
"hook_behavior": {
|
|
2419
|
+
"severity": "warning",
|
|
2420
|
+
"blocks_on_fail": false,
|
|
2421
|
+
"validates": [
|
|
2422
|
+
"use-client directive",
|
|
2423
|
+
"hook usage",
|
|
2424
|
+
"file naming"
|
|
2425
|
+
]
|
|
2426
|
+
},
|
|
2427
|
+
"spawn_prompt": "You are the Next.js Component Validator (Tier 4). Scan all .tsx/.ts files under src/ and validate: (1) \"use client\" is present when React hooks are used, (2) \"use client\" is absent for pure Server Components (no hooks, no event handlers), (3) component files use kebab-case naming. Output { \"passed\": boolean, \"issues\": [{\"file\": string, \"message\": string, \"suggestion\": string}] }."
|
|
1906
2428
|
}
|
|
1907
2429
|
},
|
|
1908
2430
|
"squads": {
|