@polymorphism-tech/morph-spec 4.12.0 → 4.13.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/README.md +21 -29
- package/bin/morph-spec.js +41 -24
- package/bin/task-manager.js +962 -1341
- package/bin/validate.js +1 -1
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +10 -11
- package/docs/QUICKSTART.md +15 -15
- package/framework/CLAUDE.md +5 -2
- package/framework/agents/README.md +3 -4
- package/framework/agents/ai-agents/ai-system-architect.md +6 -10
- package/framework/agents/architecture/seo-growth-hacker.md +166 -326
- package/framework/agents/architecture/standards-architect.md +21 -31
- package/framework/agents/backend/dotnet-senior.md +160 -86
- package/framework/agents/backend/ef-modeler.md +2 -6
- package/framework/agents/backend/hangfire-orchestrator.md +8 -9
- package/framework/agents/backend/ms-agent-expert.md +1 -1
- package/framework/agents/frontend/nextjs-expert.md +198 -133
- package/framework/agents/frontend/ui-ux-designer.md +226 -267
- package/framework/agents/infrastructure/infra-architect.md +191 -27
- package/framework/agents/integrations/clerk-auth.md +19 -26
- package/framework/agents/integrations/hangfire-integration.md +1 -4
- package/framework/agents.json +215 -1453
- package/framework/commands/morph-apply.md +4 -4
- package/framework/commands/morph-preflight.md +4 -26
- package/framework/commands/morph-proposal.md +19 -19
- package/framework/commands/morph-status.md +2 -2
- package/framework/commands/morph-troubleshoot.md +6 -13
- package/framework/hooks/README.md +1 -6
- package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +4 -6
- package/framework/hooks/claude-code/pre-compact/save-morph-context.js +12 -7
- package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +2 -2
- package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +2 -2
- package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +5 -10
- package/framework/hooks/claude-code/session-start/inject-morph-context.js +63 -30
- package/framework/hooks/claude-code/session-start/resume-context.js +77 -0
- package/framework/hooks/claude-code/statusline.py +4 -5
- package/framework/hooks/claude-code/stop/validate-completion.js +4 -4
- package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +8 -8
- package/framework/hooks/shared/compact-restore.js +28 -5
- package/framework/hooks/shared/phase-utils.js +4 -8
- package/framework/hooks/shared/state-reader.js +34 -3
- package/framework/phases.json +7 -45
- package/framework/rules/ai-agents-standards.md +15 -0
- package/framework/rules/asaas-standards.md +13 -0
- package/framework/rules/clerk-standards.md +13 -0
- package/framework/rules/csharp-standards.md +8 -4
- package/framework/rules/data-standards.md +18 -0
- package/framework/rules/dotnet-templates.md +87 -0
- package/framework/rules/frontend-standards.md +13 -13
- package/framework/rules/hangfire-standards.md +13 -0
- package/framework/rules/infrastructure-standards.md +27 -16
- package/framework/rules/morph-workflow.md +73 -13
- package/framework/rules/nextjs-standards.md +1 -0
- package/framework/rules/nextjs-templates.md +40 -0
- package/framework/rules/resend-standards.md +12 -0
- package/framework/rules/supabase-standards.md +29 -0
- package/framework/skills/README.md +6 -8
- package/framework/skills/level-0-meta/mcp-registry.json +21 -99
- package/framework/{standards/ai-agents/team-orchestration.md → skills/level-0-meta/morph-agent-teams/SKILL.md} +472 -479
- package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +28 -1
- package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
- package/framework/skills/level-0-meta/morph-code-review/SKILL.md +1 -5
- package/framework/skills/level-0-meta/morph-code-review/scripts/scan-csharp.mjs +1 -1
- package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +23 -41
- package/framework/skills/level-0-meta/morph-init/SKILL.md +18 -14
- package/framework/skills/level-0-meta/morph-parallel-dispatch/SKILL.md +225 -0
- package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +20 -0
- package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +4 -8
- package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +15 -59
- package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +7 -19
- package/framework/skills/level-0-meta/morph-verification-before-completion/scripts/check-phase-outputs.mjs +8 -8
- package/framework/skills/level-1-workflows/README.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +49 -50
- package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +58 -124
- package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +5 -50
- package/framework/skills/level-1-workflows/morph-phase-design/references/spec-example.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +127 -159
- package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +4 -3
- package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +2 -2
- package/framework/skills/level-1-workflows/morph-phase-implement/references/recap-example.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +17 -13
- package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +22 -40
- package/framework/skills/level-1-workflows/morph-phase-tasks/references/task-planning-patterns.md +0 -2
- package/framework/skills/level-1-workflows/morph-phase-tasks/references/tasks-example.md +5 -5
- package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +57 -77
- package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +1 -1
- package/framework/squad-templates/backend-only.json +6 -6
- package/framework/squad-templates/frontend-only.json +17 -8
- package/framework/squad-templates/full-stack.json +29 -24
- package/framework/standards/STANDARDS.json +1021 -2369
- package/framework/standards/backend/dotnet/fluent-validation-vsa.md +200 -0
- package/framework/standards/backend/dotnet/result-pattern.md +213 -0
- package/framework/standards/backend/dotnet/scalar-ui.md +172 -0
- package/framework/standards/backend/dotnet/scrutor.md +158 -0
- package/framework/standards/backend/dotnet/vsa-handler-patterns.md +274 -0
- package/framework/standards/frontend/nextjs/motion-patterns.md +1 -1
- package/framework/standards/infrastructure/supabase/mcp-setup.md +83 -193
- package/framework/standards/integration/mcp/mcp-tools.md +91 -77
- package/framework/templates/IDE-SNIPPETS.md +2 -6
- package/framework/templates/README.md +709 -814
- package/framework/templates/REGISTRY.json +223 -762
- package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -0
- package/framework/templates/code/dotnet/abstractions/error.cs +60 -0
- package/framework/templates/code/dotnet/abstractions/handler.cs +12 -0
- package/framework/templates/code/dotnet/abstractions/result.cs +74 -0
- package/framework/templates/code/dotnet/backend/repository.cs +148 -141
- package/framework/templates/code/dotnet/constants/api-tags.cs +6 -0
- package/framework/templates/code/dotnet/exceptions/exception-handler.cs +32 -0
- package/framework/templates/code/dotnet/extensions/database-extensions.cs +20 -0
- package/framework/templates/code/dotnet/extensions/handler-registration.cs +38 -0
- package/framework/templates/code/dotnet/extensions/health-checks.cs +24 -0
- package/framework/templates/code/dotnet/extensions/map-endpoints.cs +35 -0
- package/framework/templates/code/dotnet/extensions/result-extensions.cs +29 -0
- package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -0
- package/framework/templates/code/dotnet/feature/entity.cs.hbs +8 -0
- package/framework/templates/code/dotnet/feature/errors.cs.hbs +8 -0
- package/framework/templates/code/dotnet/feature/handler.cs.hbs +24 -0
- package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -0
- package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -0
- package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -0
- package/framework/templates/code/dotnet/jobs/job.cs +21 -17
- package/framework/templates/code/dotnet/pipelines/logging-decorator.cs +31 -0
- package/framework/templates/code/dotnet/pipelines/validation-decorator.cs +97 -0
- package/framework/templates/code/dotnet/test.cs +192 -106
- package/framework/templates/context/ARCHITECTURE.md +89 -0
- package/framework/templates/context/CONTEXT-FEATURE.md +2 -2
- package/framework/templates/context/CONTEXT.md +180 -181
- package/framework/templates/context/design-system.md +1 -5
- package/framework/templates/docs/onboarding.md +2 -3
- package/framework/templates/docs/proposal.md +171 -182
- package/framework/templates/docs/spec.md +1 -3
- package/framework/templates/docs/ui-components.md +0 -72
- package/framework/templates/examples/design-system-examples.md +4 -4
- package/framework/templates/feature/decisions.md +0 -66
- package/framework/templates/feature/recap.md +1 -2
- package/framework/templates/infrastructure/github/README.md +56 -593
- package/framework/templates/integrations/clerk-config.cs +0 -41
- package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +2 -2
- package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +1 -2
- package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +83 -126
- package/framework/templates/meta-prompts/validators/pre-commit-validator.md +2 -2
- package/framework/templates/project/validate.js +2 -4
- package/framework/templates/ui/design-system.css +1 -1
- package/framework/workflows/README.md +8 -8
- package/framework/workflows/configs/fast-track.json +51 -0
- package/framework/workflows/configs/full.json +68 -0
- package/framework/workflows/configs/standard.json +7 -3
- package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +1 -1
- package/framework/workflows/docs/enforcement-pipeline.md +18 -19
- package/framework/workflows/docs/full-morph.md +69 -76
- package/framework/workflows/docs/standard.md +49 -44
- package/framework/workflows/docs/ui-refresh.md +1 -1
- package/package.json +3 -3
- package/src/commands/agents/dispatch-agents.js +55 -116
- package/src/commands/context/context-refresh.js +79 -0
- package/src/commands/phase/phase-reset.js +1 -1
- package/src/commands/project/doctor.js +10 -32
- package/src/commands/project/init.js +12 -0
- package/src/commands/project/status.js +6 -12
- package/src/commands/scaffold/scaffold.js +131 -0
- package/src/commands/scope/escalate.js +1 -1
- package/src/commands/state/advance-phase.js +15 -29
- package/src/commands/state/state.js +20 -5
- package/src/commands/tasks/task.js +0 -30
- package/src/commands/validation/validate-feature.js +3 -10
- package/src/core/paths/output-schema.js +12 -13
- package/src/core/state/phase-state-machine.js +211 -217
- package/src/core/state/state-manager.js +9 -9
- package/src/lib/agents/agents-manager.js +2 -2
- package/src/lib/agents/output-collector.js +1 -2
- package/src/lib/detectors/design-system-detector.js +4 -4
- package/src/lib/detectors/index.js +1 -11
- package/src/lib/generators/architecture-scanner.js +640 -0
- package/src/lib/generators/context-generator.js +3 -3
- package/src/lib/generators/design-system-generator.js +508 -587
- package/src/lib/generators/index.js +12 -10
- package/src/lib/generators/metadata-extractor.js +386 -387
- package/src/lib/generators/recap-generator.js +4 -4
- package/src/lib/generators/scaffold-generator.js +317 -0
- package/src/lib/generators/settings-generator.js +0 -1
- package/src/lib/phase-chain/phase-validator.js +64 -42
- package/src/lib/stack/stack-profile.js +2 -2
- package/src/lib/standards/digest-builder.js +72 -285
- package/src/lib/tasks/task-parser.js +11 -5
- package/src/lib/validators/architecture/architecture-validator.js +259 -387
- package/src/lib/validators/content/content-validator.js +287 -287
- package/src/lib/validators/css/css-validator.js +340 -352
- package/src/lib/validators/packages/package-validator.js +347 -360
- package/src/lib/validators/shared/issue-counter.js +14 -18
- package/src/lib/validators/validation-runner.js +3 -19
- package/src/scripts/setup-infra.js +1 -1
- package/src/utils/agents-installer.js +24 -3
- package/src/utils/file-copier.js +1 -0
- package/src/utils/hooks-installer.js +11 -19
- package/src/utils/skills-installer.js +178 -178
- package/framework/agents/architecture/prompt-engineer.md +0 -195
- package/framework/agents/backend/api-designer.md +0 -106
- package/framework/agents/frontend/blazor-builder.md +0 -229
- package/framework/agents/frontend/nextjs-ui-specialist.md +0 -218
- package/framework/agents/infrastructure/azure-architect.md +0 -150
- package/framework/agents/infrastructure/azure-deploy-specialist.md +0 -707
- package/framework/agents/infrastructure/bicep-architect.md +0 -132
- package/framework/agents/infrastructure/container-specialist.md +0 -137
- package/framework/agents/infrastructure/devops-engineer.md +0 -126
- package/framework/agents/integrations/azure-identity.md +0 -148
- package/framework/agents/quality/code-analyzer.md +0 -239
- package/framework/agents/quality/testing-specialist.md +0 -130
- package/framework/hooks/claude-code/notification/approval-reminder.js +0 -57
- package/framework/hooks/claude-code/post-tool-use/context-refresh.js +0 -109
- package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +0 -78
- package/framework/index/troubleshooting-index.json +0 -184
- package/framework/rules/testing-standards.md +0 -14
- package/framework/skills/level-0-meta/morph-replicate/SKILL.md +0 -230
- package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +0 -70
- package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +0 -256
- package/framework/skills/level-1-workflows/morph-phase-clarify/references/clarifications-example.md +0 -117
- package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +0 -269
- package/framework/standards/ai-agents/blazor-ui.md +0 -364
- package/framework/standards/architecture/ddd/aggregates.md +0 -120
- package/framework/standards/architecture/ddd/bounded-contexts.md +0 -105
- package/framework/standards/architecture/ddd/complexity-levels.md +0 -108
- package/framework/standards/architecture/ddd/entities.md +0 -99
- package/framework/standards/architecture/ddd/ubiquitous-language.md +0 -58
- package/framework/standards/architecture/ddd/value-objects.md +0 -124
- package/framework/standards/backend/api/minimal-api.md +0 -494
- package/framework/standards/backend/api/rest.md +0 -492
- package/framework/standards/backend/authentication/passkeys.md +0 -428
- package/framework/standards/backend/database/ef-core.md +0 -199
- package/framework/standards/backend/database/migrations.md +0 -393
- package/framework/standards/backend/database/repository-patterns.md +0 -528
- package/framework/standards/backend/dotnet/async.md +0 -366
- package/framework/standards/backend/dotnet/core.md +0 -117
- package/framework/standards/backend/dotnet/di.md +0 -439
- package/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
- package/framework/standards/context/analytics.md +0 -96
- package/framework/standards/context/bundles.md +0 -110
- package/framework/standards/context/priming.md +0 -78
- package/framework/standards/core/architecture.md +0 -185
- package/framework/standards/core/coding.md +0 -214
- package/framework/standards/core/git-branching-strategy.md +0 -403
- package/framework/standards/core/git.md +0 -185
- package/framework/standards/core/testing.md +0 -295
- package/framework/standards/data/nosql/blob-storage.md +0 -102
- package/framework/standards/data/vector-search/azure-ai-search.md +0 -121
- package/framework/standards/frontend/blazor/design-checklist.md +0 -222
- package/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
- package/framework/standards/frontend/blazor/fluent-ui.md +0 -137
- package/framework/standards/frontend/blazor/html-conversion.md +0 -184
- package/framework/standards/frontend/blazor/lifecycle.md +0 -195
- package/framework/standards/frontend/blazor/pitfalls.md +0 -198
- package/framework/standards/frontend/blazor/state.md +0 -191
- package/framework/standards/frontend/design-system/aesthetic-direction.md +0 -266
- package/framework/standards/frontend/design-system/design-trends.md +0 -171
- package/framework/standards/infrastructure/azure/azure.md +0 -624
- package/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
- package/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
- package/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
- package/framework/standards/infrastructure/azure/services/functions.md +0 -486
- package/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
- package/framework/standards/infrastructure/azure/services/storage.md +0 -407
- package/framework/standards/infrastructure/vercel/vercel-database.md +0 -106
- package/framework/standards/integration/api/graphql.md +0 -91
- package/framework/standards/integration/api/grpc.md +0 -114
- package/framework/standards/integration/api/rest-design.md +0 -95
- package/framework/standards/integration/event-driven/cqrs.md +0 -101
- package/framework/standards/integration/event-driven/event-sourcing.md +0 -124
- package/framework/standards/integration/event-driven/service-bus.md +0 -95
- package/framework/standards/observability/logging.md +0 -131
- package/framework/standards/observability/metrics.md +0 -121
- package/framework/standards/observability/monitoring.md +0 -114
- package/framework/standards/observability/tracing.md +0 -132
- package/framework/standards/workflows/parallel-execution.md +0 -112
- package/framework/standards/workflows/thread-management.md +0 -113
- package/framework/templates/code/dotnet/backend/service.cs +0 -139
- package/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
- package/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
- package/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
- package/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
- package/framework/templates/code/dotnet/contracts/contracts-level1.cs +0 -69
- package/framework/templates/code/dotnet/contracts/contracts-level2.cs +0 -86
- package/framework/templates/code/dotnet/contracts/contracts-level3.cs +0 -41
- package/framework/templates/code/dotnet/frontend/component.razor +0 -239
- package/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
- package/framework/templates/infrastructure/azure/README.md +0 -286
- package/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
- package/framework/templates/infrastructure/azure/app-service.bicep +0 -164
- package/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
- package/framework/templates/infrastructure/azure/container-app.bicep +0 -156
- package/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
- package/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
- package/framework/templates/infrastructure/azure/deploy.sh +0 -208
- package/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
- package/framework/templates/infrastructure/azure/main.bicep +0 -189
- package/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
- package/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
- package/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
- package/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
- package/framework/templates/infrastructure/azure/storage.bicep +0 -106
- package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
- package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
- package/framework/templates/integrations/azure-identity-config.cs +0 -288
- package/framework/templates/project-structure/dotnet-ddd.md +0 -70
- package/framework/templates/saas/subscription.cs +0 -347
- package/framework/templates/saas/tenant.cs +0 -338
- package/framework/templates/ui/FluentDesignTheme.cs +0 -149
- package/framework/templates/ui/MudTheme.cs +0 -281
- package/framework/workflows/configs/nodejs-cli.json +0 -40
- package/src/commands/standards/context-budget.js +0 -89
- package/src/lib/standards/index.js +0 -7
- package/src/lib/standards/standards-context-injector.js +0 -302
- package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +0 -316
- package/src/lib/validators/blazor/blazor-state-validator.js +0 -279
- package/src/lib/validators/blazor/blazor-validator.js +0 -369
- package/src/lib/validators/blazor/index.js +0 -9
package/framework/agents.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./agent-schema.json",
|
|
3
3
|
"version": "4.0.0",
|
|
4
|
-
"total_agents":
|
|
4
|
+
"total_agents": 22,
|
|
5
5
|
"tiers": {
|
|
6
|
-
"tier_1_orchestrators":
|
|
7
|
-
"tier_2_leaders":
|
|
8
|
-
"tier_3_specialists":
|
|
9
|
-
"tier_4_validators":
|
|
6
|
+
"tier_1_orchestrators": 2,
|
|
7
|
+
"tier_2_leaders": 3,
|
|
8
|
+
"tier_3_specialists": 12,
|
|
9
|
+
"tier_4_validators": 5
|
|
10
10
|
},
|
|
11
11
|
"agents": {
|
|
12
12
|
"standards-architect": {
|
|
@@ -23,23 +23,7 @@
|
|
|
23
23
|
],
|
|
24
24
|
"keywords": [],
|
|
25
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
|
-
],
|
|
26
|
+
"standards": [],
|
|
43
27
|
"teammate": {
|
|
44
28
|
"role": "Team Lead (Delegate Mode)",
|
|
45
29
|
"icon": "🎯",
|
|
@@ -68,16 +52,6 @@
|
|
|
68
52
|
],
|
|
69
53
|
"validators": [],
|
|
70
54
|
"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
55
|
{
|
|
82
56
|
"id": "ai-agents-setup",
|
|
83
57
|
"scope": "all",
|
|
@@ -92,11 +66,6 @@
|
|
|
92
66
|
"id": "ai-agents-production",
|
|
93
67
|
"scope": "implement",
|
|
94
68
|
"priority": "required"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"id": "ai-agents-blazor-ui",
|
|
98
|
-
"scope": "implement",
|
|
99
|
-
"priority": "reference"
|
|
100
69
|
}
|
|
101
70
|
],
|
|
102
71
|
"teammate": {
|
|
@@ -105,43 +74,6 @@
|
|
|
105
74
|
"spawn_prompt": "You are the AI/Agent System Architect. Design agent workflows, tool integrations, and orchestration patterns."
|
|
106
75
|
}
|
|
107
76
|
},
|
|
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
77
|
"dotnet-senior": {
|
|
146
78
|
"tier": 2,
|
|
147
79
|
"title": "Backend Squad Leader",
|
|
@@ -151,7 +83,9 @@
|
|
|
151
83
|
],
|
|
152
84
|
"reports_to": "standards-architect",
|
|
153
85
|
"domains": [
|
|
154
|
-
"backend"
|
|
86
|
+
"backend",
|
|
87
|
+
"backend-api",
|
|
88
|
+
"architecture"
|
|
155
89
|
],
|
|
156
90
|
"keywords": [
|
|
157
91
|
"backend",
|
|
@@ -161,7 +95,28 @@
|
|
|
161
95
|
"csharp",
|
|
162
96
|
"c#",
|
|
163
97
|
"web api",
|
|
164
|
-
"minimal api"
|
|
98
|
+
"minimal api",
|
|
99
|
+
"vertical slice",
|
|
100
|
+
"vertical-slice",
|
|
101
|
+
"vsa",
|
|
102
|
+
"minimal apis",
|
|
103
|
+
"ihandler",
|
|
104
|
+
"result pattern",
|
|
105
|
+
"feature slice",
|
|
106
|
+
"scrutor",
|
|
107
|
+
"vertical slice architecture",
|
|
108
|
+
"scaffold",
|
|
109
|
+
"feature-slice",
|
|
110
|
+
"vsa-scaffold",
|
|
111
|
+
"rest",
|
|
112
|
+
"graphql",
|
|
113
|
+
"grpc",
|
|
114
|
+
"openapi",
|
|
115
|
+
"swagger",
|
|
116
|
+
"versioning",
|
|
117
|
+
"rate limiting",
|
|
118
|
+
"hot chocolate",
|
|
119
|
+
"endpoint"
|
|
165
120
|
],
|
|
166
121
|
"validators": [
|
|
167
122
|
"architecture",
|
|
@@ -169,34 +124,43 @@
|
|
|
169
124
|
],
|
|
170
125
|
"standards": [
|
|
171
126
|
{
|
|
172
|
-
"id": "
|
|
127
|
+
"id": "architecture-vertical-slice-vertical-slice",
|
|
173
128
|
"scope": "all",
|
|
174
129
|
"priority": "required"
|
|
175
130
|
},
|
|
176
131
|
{
|
|
177
|
-
"id": "
|
|
132
|
+
"id": "backend-dotnet-scrutor",
|
|
133
|
+
"scope": "implement",
|
|
134
|
+
"priority": "required"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "backend-dotnet-result-pattern",
|
|
178
138
|
"scope": "all",
|
|
179
139
|
"priority": "required"
|
|
180
140
|
},
|
|
181
141
|
{
|
|
182
|
-
"id": "backend-dotnet-
|
|
142
|
+
"id": "backend-dotnet-fluent-validation-vsa",
|
|
183
143
|
"scope": "implement",
|
|
184
144
|
"priority": "required"
|
|
185
145
|
},
|
|
186
146
|
{
|
|
187
|
-
"id": "backend-dotnet-
|
|
147
|
+
"id": "backend-dotnet-scalar-ui",
|
|
188
148
|
"scope": "implement",
|
|
149
|
+
"priority": "reference"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"id": "backend-dotnet-vsa-handler-patterns",
|
|
153
|
+
"scope": "all",
|
|
189
154
|
"priority": "required"
|
|
190
155
|
}
|
|
191
156
|
],
|
|
192
157
|
"stacks": [
|
|
193
|
-
"dotnet"
|
|
194
|
-
"blazor"
|
|
158
|
+
"dotnet"
|
|
195
159
|
],
|
|
196
160
|
"teammate": {
|
|
197
161
|
"role": "Backend Squad Leader",
|
|
198
162
|
"icon": "⚙️",
|
|
199
|
-
"spawn_prompt": "You are the Backend Squad Leader. Coordinate backend specialists (ef-modeler,
|
|
163
|
+
"spawn_prompt": "You are the Backend Squad Leader. Coordinate backend specialists (ef-modeler, hangfire-orchestrator, etc.). Assign tasks, review designs, enforce backend standards. Escalate cross-domain conflicts to standards-architect.\n\nYou also own VSA Architecture: Analyze proposals and produce VSA Blueprints:\n1. ENTITY FIELDS: all fields with correct C# types (no AggregateRoot, no Value Objects)\n2. OPERATIONS: required slices (Create, GetAll, GetById, Update, Delete + custom operations)\n3. ROUTES: HTTP method + route per operation (e.g., POST /api/products, GET /api/products/{id:guid})\n4. ERROR TYPES: Error factory methods for {Entity}Errors (only NotFound and specific cases)\n5. VALIDATION RULES: FluentValidation rules per field per operation\nEach operation is a self-contained slice: Request + Response + Handler + Validator + Endpoint.\nRef: framework/standards/architecture/vertical-slice/vertical-slice.md\n\nYou also own API Design: 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.\n\nReference: Read `.morph/framework/templates/code/dotnet/feature/` for VSA code patterns. Follow the templates exactly."
|
|
200
164
|
}
|
|
201
165
|
},
|
|
202
166
|
"infra-architect": {
|
|
@@ -208,7 +172,9 @@
|
|
|
208
172
|
],
|
|
209
173
|
"reports_to": "standards-architect",
|
|
210
174
|
"domains": [
|
|
211
|
-
"infrastructure"
|
|
175
|
+
"infrastructure",
|
|
176
|
+
"infrastructure-cicd",
|
|
177
|
+
"infrastructure-containers"
|
|
212
178
|
],
|
|
213
179
|
"keywords": [
|
|
214
180
|
"infrastructure",
|
|
@@ -224,82 +190,24 @@
|
|
|
224
190
|
"neon",
|
|
225
191
|
"planetscale",
|
|
226
192
|
"serverless database",
|
|
227
|
-
"serverless postgres"
|
|
193
|
+
"serverless postgres",
|
|
194
|
+
"docker",
|
|
195
|
+
"containerize",
|
|
196
|
+
"dockerfile",
|
|
197
|
+
"multi-stage",
|
|
198
|
+
"deploy",
|
|
199
|
+
"release",
|
|
200
|
+
"github actions"
|
|
228
201
|
],
|
|
229
202
|
"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
|
-
],
|
|
203
|
+
"standards": [],
|
|
247
204
|
"stacks": [
|
|
248
|
-
"azure",
|
|
249
205
|
"docker"
|
|
250
206
|
],
|
|
251
207
|
"teammate": {
|
|
252
208
|
"role": "Infrastructure Squad Leader",
|
|
253
209
|
"icon": "🏗️",
|
|
254
|
-
"spawn_prompt": "You are the Infrastructure Squad Leader. Coordinate infra
|
|
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."
|
|
210
|
+
"spawn_prompt": "You are the Infrastructure Squad Leader. Coordinate infra work: CI/CD pipelines, containerization, cost optimization. Delegate to cloud-specific specialists as needed. IMPORTANT: When deployment target is Vercel, ALWAYS enforce serverless database (Neon, Supabase/PgBouncer, PlanetScale) — never TCP connection pools. Escalate to standards-architect on conflicts.\n\nYou also own Containerization: Write Dockerfiles (multi-stage builds), .dockerignore. Deploy to Docker/EasyPanel (scale-to-zero). Optimize image size, configure health checks.\n\nYou also own CI/CD: Build GitHub Actions workflows. Implement Blue-Green, Canary, Rolling deployment strategies. Integrate IaC deployment with container image builds.\n\nReference: Read `.morph/framework/templates/infrastructure/` for Docker/CI templates."
|
|
303
211
|
}
|
|
304
212
|
},
|
|
305
213
|
"ui-designer": {
|
|
@@ -337,11 +245,6 @@
|
|
|
337
245
|
"contrast"
|
|
338
246
|
],
|
|
339
247
|
"standards": [
|
|
340
|
-
{
|
|
341
|
-
"id": "frontend-blazor-fluent-ui",
|
|
342
|
-
"scope": "uiux",
|
|
343
|
-
"priority": "required"
|
|
344
|
-
},
|
|
345
248
|
{
|
|
346
249
|
"id": "frontend-design-system-naming",
|
|
347
250
|
"scope": "all",
|
|
@@ -354,9 +257,9 @@
|
|
|
354
257
|
}
|
|
355
258
|
],
|
|
356
259
|
"teammate": {
|
|
357
|
-
"role": "UI/UX Squad Leader (FASE
|
|
260
|
+
"role": "UI/UX Squad Leader (FASE 2)",
|
|
358
261
|
"icon": "🎨",
|
|
359
|
-
"spawn_prompt": "You are the UI/UX Squad Leader for FASE
|
|
262
|
+
"spawn_prompt": "You are the UI/UX Squad Leader for FASE 2. 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 shadcn/ui component selection. Enforce WCAG AA accessibility (4.5:1 contrast, focus visible, ARIA)."
|
|
360
263
|
}
|
|
361
264
|
},
|
|
362
265
|
"ef-modeler": {
|
|
@@ -381,127 +284,100 @@
|
|
|
381
284
|
"dbcontext"
|
|
382
285
|
],
|
|
383
286
|
"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
|
-
}
|
|
287
|
+
"architecture"
|
|
403
288
|
],
|
|
289
|
+
"standards": [],
|
|
404
290
|
"teammate": {
|
|
405
291
|
"role": "Data Persistence Specialist",
|
|
406
292
|
"icon": "🗄️",
|
|
407
|
-
"spawn_prompt": "You are the Data Persistence Specialist (EF Core). Focus on Models/, Migrations/, DbContext. Follow
|
|
293
|
+
"spawn_prompt": "You are the Data Persistence Specialist (EF Core). Focus on Models/, Migrations/, DbContext. Follow .NET standards. Use IDbContextFactory for background ops. Message nextjs-expert when entities ready for UI binding."
|
|
408
294
|
}
|
|
409
295
|
},
|
|
410
|
-
"
|
|
296
|
+
"hangfire-orchestrator": {
|
|
411
297
|
"tier": 3,
|
|
412
|
-
"title": "
|
|
298
|
+
"title": "Background Jobs Specialist",
|
|
413
299
|
"group": "backend",
|
|
414
300
|
"active_phases": [
|
|
415
|
-
"design",
|
|
416
301
|
"implement"
|
|
417
302
|
],
|
|
418
303
|
"reports_to": "dotnet-senior",
|
|
419
304
|
"domains": [
|
|
420
|
-
"backend-
|
|
305
|
+
"backend-jobs"
|
|
421
306
|
],
|
|
422
307
|
"keywords": [
|
|
423
|
-
"
|
|
424
|
-
"
|
|
425
|
-
"
|
|
426
|
-
"
|
|
427
|
-
"
|
|
428
|
-
"
|
|
429
|
-
"
|
|
430
|
-
"
|
|
431
|
-
"saga",
|
|
432
|
-
"real-time",
|
|
433
|
-
"realtime",
|
|
434
|
-
"websocket",
|
|
435
|
-
"live updates"
|
|
308
|
+
"scheduled",
|
|
309
|
+
"job",
|
|
310
|
+
"background",
|
|
311
|
+
"cron",
|
|
312
|
+
"hangfire",
|
|
313
|
+
"recurring",
|
|
314
|
+
"fire and forget",
|
|
315
|
+
"delayed"
|
|
436
316
|
],
|
|
437
317
|
"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
|
-
}
|
|
318
|
+
"architecture"
|
|
452
319
|
],
|
|
320
|
+
"standards": [],
|
|
453
321
|
"teammate": {
|
|
454
|
-
"role": "
|
|
455
|
-
"icon": "
|
|
456
|
-
"spawn_prompt": "You are the
|
|
322
|
+
"role": "Background Jobs Specialist",
|
|
323
|
+
"icon": "⏰",
|
|
324
|
+
"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."
|
|
457
325
|
}
|
|
458
326
|
},
|
|
459
|
-
"
|
|
327
|
+
"ms-agent-expert": {
|
|
460
328
|
"tier": 3,
|
|
461
|
-
"title": "
|
|
462
|
-
"group": "
|
|
329
|
+
"title": "Microsoft Agent Framework Expert",
|
|
330
|
+
"group": "ai",
|
|
463
331
|
"active_phases": [
|
|
464
332
|
"design",
|
|
465
333
|
"implement"
|
|
466
334
|
],
|
|
467
|
-
"reports_to": "
|
|
335
|
+
"reports_to": "ai-system-architect",
|
|
468
336
|
"domains": [
|
|
469
|
-
"
|
|
337
|
+
"ai-agents"
|
|
470
338
|
],
|
|
471
339
|
"keywords": [
|
|
472
|
-
"
|
|
473
|
-
"
|
|
474
|
-
"
|
|
475
|
-
"
|
|
476
|
-
"
|
|
477
|
-
"
|
|
478
|
-
"
|
|
479
|
-
"
|
|
480
|
-
"
|
|
481
|
-
"
|
|
340
|
+
"agent",
|
|
341
|
+
"ai",
|
|
342
|
+
"llm",
|
|
343
|
+
"rag",
|
|
344
|
+
"embedding",
|
|
345
|
+
"mcp",
|
|
346
|
+
"a2a",
|
|
347
|
+
"middleware",
|
|
348
|
+
"microsoft agent framework",
|
|
349
|
+
"ichatclient"
|
|
350
|
+
],
|
|
351
|
+
"validators": [
|
|
352
|
+
"architecture",
|
|
353
|
+
"packages"
|
|
482
354
|
],
|
|
483
|
-
"validators": [],
|
|
484
355
|
"standards": [
|
|
485
356
|
{
|
|
486
|
-
"id": "
|
|
357
|
+
"id": "ai-agents-setup",
|
|
487
358
|
"scope": "all",
|
|
488
359
|
"priority": "required"
|
|
489
360
|
},
|
|
490
361
|
{
|
|
491
|
-
"id": "
|
|
492
|
-
"scope": "
|
|
362
|
+
"id": "ai-agents-workflows",
|
|
363
|
+
"scope": "design",
|
|
364
|
+
"priority": "required"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"id": "ai-agents-production",
|
|
368
|
+
"scope": "implement",
|
|
493
369
|
"priority": "required"
|
|
494
370
|
}
|
|
495
371
|
],
|
|
496
372
|
"teammate": {
|
|
497
|
-
"role": "
|
|
498
|
-
"icon": "
|
|
499
|
-
"spawn_prompt": "You are the
|
|
373
|
+
"role": "Microsoft Agent Framework Expert",
|
|
374
|
+
"icon": "🤖",
|
|
375
|
+
"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)."
|
|
500
376
|
}
|
|
501
377
|
},
|
|
502
|
-
"
|
|
378
|
+
"supabase-expert": {
|
|
503
379
|
"tier": 3,
|
|
504
|
-
"title": "
|
|
380
|
+
"title": "Supabase & PostgreSQL Specialist",
|
|
505
381
|
"group": "backend",
|
|
506
382
|
"active_phases": [
|
|
507
383
|
"design",
|
|
@@ -509,258 +385,23 @@
|
|
|
509
385
|
],
|
|
510
386
|
"reports_to": "dotnet-senior",
|
|
511
387
|
"domains": [
|
|
512
|
-
"backend-
|
|
388
|
+
"backend-supabase"
|
|
513
389
|
],
|
|
514
390
|
"keywords": [
|
|
515
|
-
"
|
|
516
|
-
"
|
|
517
|
-
"
|
|
518
|
-
"
|
|
519
|
-
"
|
|
520
|
-
"
|
|
521
|
-
"
|
|
522
|
-
"key-value",
|
|
523
|
-
"azure storage"
|
|
391
|
+
"supabase",
|
|
392
|
+
"postgresql",
|
|
393
|
+
"rls",
|
|
394
|
+
"realtime",
|
|
395
|
+
"pgvector",
|
|
396
|
+
"row level security",
|
|
397
|
+
"edge functions"
|
|
524
398
|
],
|
|
525
399
|
"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
|
-
],
|
|
400
|
+
"standards": [],
|
|
538
401
|
"teammate": {
|
|
539
|
-
"role": "
|
|
540
|
-
"icon": "
|
|
541
|
-
"spawn_prompt": "You are the
|
|
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."
|
|
402
|
+
"role": "Supabase & PostgreSQL Specialist",
|
|
403
|
+
"icon": "🐘",
|
|
404
|
+
"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
405
|
}
|
|
765
406
|
},
|
|
766
407
|
"vector-search-expert": {
|
|
@@ -786,11 +427,6 @@
|
|
|
786
427
|
],
|
|
787
428
|
"validators": [],
|
|
788
429
|
"standards": [
|
|
789
|
-
{
|
|
790
|
-
"id": "core-coding",
|
|
791
|
-
"scope": "all",
|
|
792
|
-
"priority": "required"
|
|
793
|
-
},
|
|
794
430
|
{
|
|
795
431
|
"id": "ai-agents-setup",
|
|
796
432
|
"scope": "all",
|
|
@@ -805,80 +441,7 @@
|
|
|
805
441
|
"teammate": {
|
|
806
442
|
"role": "Vector Search & RAG Specialist",
|
|
807
443
|
"icon": "🔎",
|
|
808
|
-
"spawn_prompt": "You are the Vector Search & RAG Specialist. Implement vector embeddings (OpenAI
|
|
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."
|
|
444
|
+
"spawn_prompt": "You are the Vector Search & RAG Specialist. Implement vector embeddings (OpenAI), similarity search (pgvector), RAG pipelines (chunking, embedding, retrieval). Design hybrid search (vector + full-text). Optimize embedding dimensions and index types (HNSW, IVFFlat)."
|
|
882
445
|
}
|
|
883
446
|
},
|
|
884
447
|
"asaas-financial": {
|
|
@@ -906,18 +469,7 @@
|
|
|
906
469
|
"architecture",
|
|
907
470
|
"contract-compliance"
|
|
908
471
|
],
|
|
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
|
-
],
|
|
472
|
+
"standards": [],
|
|
921
473
|
"teammate": {
|
|
922
474
|
"role": "Payment Integration Specialist",
|
|
923
475
|
"icon": "💳",
|
|
@@ -946,22 +498,11 @@
|
|
|
946
498
|
"oauth"
|
|
947
499
|
],
|
|
948
500
|
"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
|
-
],
|
|
501
|
+
"standards": [],
|
|
961
502
|
"teammate": {
|
|
962
503
|
"role": "Auth SaaS Integration Specialist",
|
|
963
504
|
"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
|
|
505
|
+
"spawn_prompt": "You are the Auth SaaS Integration Specialist (Clerk SDK). Implement Clerk authentication flows (login, signup, OAuth), session management, user profile. Integrate with Next.js frontend."
|
|
965
506
|
}
|
|
966
507
|
},
|
|
967
508
|
"resend-email": {
|
|
@@ -988,107 +529,27 @@
|
|
|
988
529
|
"architecture",
|
|
989
530
|
"contract-compliance"
|
|
990
531
|
],
|
|
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
|
-
],
|
|
532
|
+
"standards": [],
|
|
1003
533
|
"teammate": {
|
|
1004
534
|
"role": "Email Integration Specialist",
|
|
1005
535
|
"icon": "📧",
|
|
1006
536
|
"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
537
|
}
|
|
1008
538
|
},
|
|
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
539
|
"nextjs-expert": {
|
|
1081
540
|
"tier": 3,
|
|
1082
541
|
"title": "Next.js Development Specialist",
|
|
1083
542
|
"group": "frontend",
|
|
1084
543
|
"active_phases": [
|
|
1085
544
|
"uiux",
|
|
545
|
+
"design",
|
|
1086
546
|
"tasks",
|
|
1087
547
|
"implement"
|
|
1088
548
|
],
|
|
1089
549
|
"reports_to": "ui-designer",
|
|
1090
550
|
"domains": [
|
|
1091
|
-
"frontend-nextjs"
|
|
551
|
+
"frontend-nextjs",
|
|
552
|
+
"frontend-nextjs-ui"
|
|
1092
553
|
],
|
|
1093
554
|
"keywords": [
|
|
1094
555
|
"next.js",
|
|
@@ -1106,96 +567,12 @@
|
|
|
1106
567
|
"client component",
|
|
1107
568
|
"vercel",
|
|
1108
569
|
"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": [
|
|
570
|
+
"planetscale",
|
|
1196
571
|
"framer-motion",
|
|
1197
572
|
"animation",
|
|
1198
573
|
"transition",
|
|
574
|
+
"scaffold",
|
|
575
|
+
"feature-page",
|
|
1199
576
|
"motion design",
|
|
1200
577
|
"shadcn theme",
|
|
1201
578
|
"tailwind tokens",
|
|
@@ -1212,560 +589,135 @@
|
|
|
1212
589
|
"AnimatePresence"
|
|
1213
590
|
],
|
|
1214
591
|
"validators": [
|
|
1215
|
-
"
|
|
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",
|
|
592
|
+
"nextjs-component",
|
|
1268
593
|
"design-system"
|
|
1269
594
|
],
|
|
1270
595
|
"standards": [
|
|
1271
596
|
{
|
|
1272
|
-
"id": "frontend-
|
|
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 — colors (var(--color-*)), spacing (var(--space-*)), typography (var(--font-*, --text-*)), motion (var(--duration-*, --easing-*)), shadows (var(--shadow-*)), and advanced effects (var(--glass-*, --aurora-*, --perspective-*)). 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). Ref: framework/standards/frontend/design-system/design-trends.md for modern technique catalog. 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",
|
|
597
|
+
"id": "frontend-nextjs-naming-conventions",
|
|
1555
598
|
"scope": "all",
|
|
1556
599
|
"priority": "required"
|
|
1557
600
|
},
|
|
1558
601
|
{
|
|
1559
|
-
"id": "
|
|
602
|
+
"id": "frontend-nextjs-project-structure",
|
|
1560
603
|
"scope": "all",
|
|
1561
604
|
"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": [
|
|
605
|
+
},
|
|
1593
606
|
{
|
|
1594
|
-
"id": "
|
|
607
|
+
"id": "frontend-nextjs-app-router",
|
|
1595
608
|
"scope": "all",
|
|
1596
609
|
"priority": "required"
|
|
1597
610
|
},
|
|
1598
611
|
{
|
|
1599
|
-
"id": "
|
|
612
|
+
"id": "frontend-nextjs-components",
|
|
1600
613
|
"scope": "all",
|
|
1601
614
|
"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": [
|
|
615
|
+
},
|
|
1631
616
|
{
|
|
1632
|
-
"id": "
|
|
1633
|
-
"scope": "
|
|
617
|
+
"id": "frontend-nextjs-data-fetching",
|
|
618
|
+
"scope": "implement",
|
|
1634
619
|
"priority": "required"
|
|
1635
620
|
},
|
|
1636
621
|
{
|
|
1637
|
-
"id": "
|
|
1638
|
-
"scope": "
|
|
622
|
+
"id": "frontend-nextjs-forms",
|
|
623
|
+
"scope": "implement",
|
|
1639
624
|
"priority": "required"
|
|
1640
|
-
}
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
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": [
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"id": "frontend-nextjs-state-management",
|
|
628
|
+
"scope": "implement",
|
|
629
|
+
"priority": "required"
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"id": "frontend-nextjs-testing",
|
|
633
|
+
"scope": "implement",
|
|
634
|
+
"priority": "reference"
|
|
635
|
+
},
|
|
1674
636
|
{
|
|
1675
|
-
"id": "
|
|
637
|
+
"id": "frontend-nextjs-nextjs-patterns",
|
|
1676
638
|
"scope": "all",
|
|
1677
639
|
"priority": "required"
|
|
1678
640
|
},
|
|
1679
641
|
{
|
|
1680
|
-
"id": "
|
|
642
|
+
"id": "frontend-nextjs-motion-patterns",
|
|
1681
643
|
"scope": "all",
|
|
1682
644
|
"priority": "required"
|
|
1683
645
|
}
|
|
1684
646
|
],
|
|
1685
647
|
"teammate": {
|
|
1686
|
-
"role": "
|
|
1687
|
-
"icon": "
|
|
1688
|
-
"spawn_prompt": "You are the
|
|
648
|
+
"role": "Next.js Development Specialist",
|
|
649
|
+
"icon": "⚛️",
|
|
650
|
+
"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. IMPORTANT: When deployment target is Vercel, database must be serverless (Neon, Supabase/PgBouncer port 6543, PlanetScale) — never a plain TCP connection pool.\n\nYou also own UI/animation: Focus on 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.\n\nReference: Read `.morph/framework/templates/frontend/nextjs/` for Next.js code patterns."
|
|
1689
651
|
}
|
|
1690
652
|
},
|
|
1691
|
-
"
|
|
653
|
+
"css-specialist": {
|
|
1692
654
|
"tier": 3,
|
|
1693
|
-
"title": "
|
|
1694
|
-
"group": "
|
|
655
|
+
"title": "CSS & Design System Specialist",
|
|
656
|
+
"group": "frontend",
|
|
1695
657
|
"active_phases": [
|
|
1696
658
|
"implement"
|
|
1697
659
|
],
|
|
1698
|
-
"reports_to": "
|
|
660
|
+
"reports_to": "ui-designer",
|
|
1699
661
|
"domains": [
|
|
1700
|
-
"
|
|
662
|
+
"frontend-css"
|
|
1701
663
|
],
|
|
1702
664
|
"keywords": [
|
|
1703
|
-
"
|
|
1704
|
-
"
|
|
1705
|
-
"
|
|
1706
|
-
"
|
|
1707
|
-
"
|
|
1708
|
-
"
|
|
665
|
+
"css",
|
|
666
|
+
"design system",
|
|
667
|
+
"styling",
|
|
668
|
+
"theme",
|
|
669
|
+
"design tokens",
|
|
670
|
+
"palette"
|
|
671
|
+
],
|
|
672
|
+
"validators": [
|
|
673
|
+
"css",
|
|
674
|
+
"contrast",
|
|
675
|
+
"design-system"
|
|
1709
676
|
],
|
|
1710
|
-
"validators": [],
|
|
1711
677
|
"standards": [
|
|
1712
678
|
{
|
|
1713
|
-
"id": "
|
|
679
|
+
"id": "frontend-design-system-naming",
|
|
1714
680
|
"scope": "all",
|
|
1715
681
|
"priority": "required"
|
|
1716
682
|
},
|
|
1717
683
|
{
|
|
1718
|
-
"id": "
|
|
684
|
+
"id": "frontend-design-system-animations",
|
|
1719
685
|
"scope": "all",
|
|
1720
686
|
"priority": "required"
|
|
1721
687
|
}
|
|
1722
688
|
],
|
|
1723
689
|
"teammate": {
|
|
1724
|
-
"role": "
|
|
1725
|
-
"icon": "
|
|
1726
|
-
"spawn_prompt": "You are the
|
|
690
|
+
"role": "CSS & Design System Specialist",
|
|
691
|
+
"icon": "🎨",
|
|
692
|
+
"spawn_prompt": "You are the CSS & Design System Specialist (FASE 7 only). MANDATORY FIRST STEP: Read .morph/context/design-system.md. Validate all CSS follows the design system — colors (var(--color-*)), spacing (var(--space-*)), typography (var(--font-*, --text-*)), motion (var(--duration-*, --easing-*)), shadows (var(--shadow-*)), and advanced effects (var(--glass-*, --aurora-*, --perspective-*)). 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."
|
|
1727
693
|
}
|
|
1728
694
|
},
|
|
1729
|
-
"
|
|
695
|
+
"seo-growth-hacker": {
|
|
1730
696
|
"tier": 3,
|
|
1731
|
-
"title": "
|
|
1732
|
-
"group": "
|
|
697
|
+
"title": "SEO & Growth Specialist",
|
|
698
|
+
"group": "frontend",
|
|
1733
699
|
"active_phases": [
|
|
1734
|
-
"design",
|
|
1735
700
|
"implement"
|
|
1736
701
|
],
|
|
702
|
+
"reports_to": "ui-designer",
|
|
1737
703
|
"domains": [
|
|
1738
|
-
"
|
|
1739
|
-
"backend"
|
|
704
|
+
"seo"
|
|
1740
705
|
],
|
|
1741
706
|
"keywords": [
|
|
1742
|
-
"
|
|
1743
|
-
"
|
|
1744
|
-
"
|
|
1745
|
-
"
|
|
1746
|
-
"
|
|
1747
|
-
"
|
|
1748
|
-
"
|
|
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
|
-
}
|
|
707
|
+
"seo",
|
|
708
|
+
"landing page",
|
|
709
|
+
"meta tags",
|
|
710
|
+
"core web vitals",
|
|
711
|
+
"schema markup",
|
|
712
|
+
"organic traffic",
|
|
713
|
+
"content marketing"
|
|
1764
714
|
],
|
|
715
|
+
"validators": [],
|
|
716
|
+
"standards": [],
|
|
1765
717
|
"teammate": {
|
|
1766
|
-
"role": "
|
|
1767
|
-
"icon": "
|
|
1768
|
-
"spawn_prompt": "
|
|
718
|
+
"role": "SEO & Growth Specialist",
|
|
719
|
+
"icon": "📈",
|
|
720
|
+
"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 page optimization, Lighthouse scores, and organic traffic growth."
|
|
1769
721
|
}
|
|
1770
722
|
},
|
|
1771
723
|
"morph-spec-architect": {
|
|
@@ -1799,38 +751,6 @@
|
|
|
1799
751
|
"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
752
|
}
|
|
1801
753
|
},
|
|
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
754
|
"security-expert": {
|
|
1835
755
|
"tier": 4,
|
|
1836
756
|
"title": "Security Validator",
|
|
@@ -1854,28 +774,17 @@
|
|
|
1854
774
|
"validators": [
|
|
1855
775
|
"security"
|
|
1856
776
|
],
|
|
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
|
-
],
|
|
777
|
+
"standards": [],
|
|
1869
778
|
"teammate": {
|
|
1870
779
|
"icon": "🛡️",
|
|
1871
780
|
"role": "Security Validator (read-only)",
|
|
1872
|
-
"spawn_prompt": "You are the Security Validator (Tier 4, READ-ONLY). Scan ALL source files (.cs, .
|
|
781
|
+
"spawn_prompt": "You are the Security Validator (Tier 4, READ-ONLY). Scan ALL source files (.cs, .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 — unsanitized HTML rendering\n4. Insecure deserialization — BinaryFormatter usage\n5. CSRF — POST forms/endpoints missing anti-forgery 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\": \"error\" }] }"
|
|
1873
782
|
},
|
|
1874
783
|
"hook_behavior": {
|
|
1875
784
|
"validates": [
|
|
1876
785
|
"SQL injection (string concatenation in queries)",
|
|
1877
786
|
"Hardcoded secrets (API keys, passwords, connection strings)",
|
|
1878
|
-
"XSS (
|
|
787
|
+
"XSS (unsanitized HTML rendering)",
|
|
1879
788
|
"Insecure deserialization (BinaryFormatter)",
|
|
1880
789
|
"CSRF (missing anti-forgery tokens)"
|
|
1881
790
|
],
|
|
@@ -1903,29 +812,18 @@
|
|
|
1903
812
|
"validators": [
|
|
1904
813
|
"architecture"
|
|
1905
814
|
],
|
|
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
|
-
],
|
|
815
|
+
"standards": [],
|
|
1918
816
|
"teammate": {
|
|
1919
817
|
"icon": "🏗️",
|
|
1920
818
|
"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
|
|
819
|
+
"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 background services\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. 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
820
|
},
|
|
1923
821
|
"hook_behavior": {
|
|
1924
822
|
"validates": [
|
|
1925
823
|
"DbContext injection (IDbContextFactory required)",
|
|
1926
824
|
"Async/await patterns (no .Result or .Wait)",
|
|
1927
825
|
"DI registration order (services before middleware)",
|
|
1928
|
-
"
|
|
826
|
+
"Layer violations"
|
|
1929
827
|
],
|
|
1930
828
|
"severity": "error",
|
|
1931
829
|
"blocks_on_fail": true
|
|
@@ -1951,13 +849,7 @@
|
|
|
1951
849
|
"validators": [
|
|
1952
850
|
"packages"
|
|
1953
851
|
],
|
|
1954
|
-
"standards": [
|
|
1955
|
-
{
|
|
1956
|
-
"id": "core-coding",
|
|
1957
|
-
"scope": "all",
|
|
1958
|
-
"priority": "required"
|
|
1959
|
-
}
|
|
1960
|
-
],
|
|
852
|
+
"standards": [],
|
|
1961
853
|
"teammate": {
|
|
1962
854
|
"icon": "📦",
|
|
1963
855
|
"role": "Packages Validator (read-only)",
|
|
@@ -2012,7 +904,7 @@
|
|
|
2012
904
|
"teammate": {
|
|
2013
905
|
"icon": "🎨",
|
|
2014
906
|
"role": "Design System Validator (read-only)",
|
|
2015
|
-
"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-accent), var(--color-surface-*), var(--color-text-*), etc.)\n2. Spacing — look for hardcoded px/rem values instead of spacing variables (var(--space-*))\n3. Typography — look for hardcoded font-size/font-family instead of typography variables (var(--font-display), var(--font-body), var(--text-*))\n4. Motion — look for hardcoded transition/animation durations instead of motion tokens (var(--duration-*), var(--easing-*))\n5. Shadows — look for hardcoded box-shadow instead of shadow tokens (var(--shadow-*), var(--shadow-colored-*), var(--shadow-layered-*))\n6. Advanced effects — verify glassmorphism uses tokens (var(--glass-*)), aurora uses tokens (var(--aurora-*)), perspective uses tokens (var(--perspective-*))\n7. Component naming — verify
|
|
907
|
+
"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-accent), var(--color-surface-*), var(--color-text-*), etc.)\n2. Spacing — look for hardcoded px/rem values instead of spacing variables (var(--space-*))\n3. Typography — look for hardcoded font-size/font-family instead of typography variables (var(--font-display), var(--font-body), var(--text-*))\n4. Motion — look for hardcoded transition/animation durations instead of motion tokens (var(--duration-*), var(--easing-*))\n5. Shadows — look for hardcoded box-shadow instead of shadow tokens (var(--shadow-*), var(--shadow-colored-*), var(--shadow-layered-*))\n6. Advanced effects — verify glassmorphism uses tokens (var(--glass-*)), aurora uses tokens (var(--aurora-*)), perspective uses tokens (var(--perspective-*))\n7. Component naming — verify kebab-case for CSS classes\n8. Check .morph/context/design-system.md 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\" }] }"
|
|
2016
908
|
},
|
|
2017
909
|
"hook_behavior": {
|
|
2018
910
|
"validates": [
|
|
@@ -2022,113 +914,12 @@
|
|
|
2022
914
|
"Motion tokens (use var(--duration-*), var(--easing-*))",
|
|
2023
915
|
"Shadow tokens (use var(--shadow-*), var(--shadow-colored-*), var(--shadow-layered-*))",
|
|
2024
916
|
"Advanced effects (glassmorphism: var(--glass-*), aurora: var(--aurora-*), perspective: var(--perspective-*))",
|
|
2025
|
-
"Component naming (
|
|
917
|
+
"Component naming (kebab-case for CSS)"
|
|
2026
918
|
],
|
|
2027
919
|
"severity": "warning",
|
|
2028
920
|
"blocks_on_fail": false
|
|
2029
921
|
}
|
|
2030
922
|
},
|
|
2031
|
-
"blazor-concurrency-validator": {
|
|
2032
|
-
"tier": 4,
|
|
2033
|
-
"title": "Blazor Concurrency Validator",
|
|
2034
|
-
"group": "frontend",
|
|
2035
|
-
"active_phases": [
|
|
2036
|
-
"implement"
|
|
2037
|
-
],
|
|
2038
|
-
"reports_to": "blazor-builder",
|
|
2039
|
-
"domains": [
|
|
2040
|
-
"blazor-concurrency"
|
|
2041
|
-
],
|
|
2042
|
-
"keywords": [
|
|
2043
|
-
"blazor",
|
|
2044
|
-
"dbcontext",
|
|
2045
|
-
"lifecycle",
|
|
2046
|
-
"async",
|
|
2047
|
-
"concurrency"
|
|
2048
|
-
],
|
|
2049
|
-
"validators": [
|
|
2050
|
-
"blazor-concurrency"
|
|
2051
|
-
],
|
|
2052
|
-
"standards": [
|
|
2053
|
-
{
|
|
2054
|
-
"id": "frontend-blazor-lifecycle",
|
|
2055
|
-
"scope": "all",
|
|
2056
|
-
"priority": "required"
|
|
2057
|
-
},
|
|
2058
|
-
{
|
|
2059
|
-
"id": "frontend-blazor-pitfalls",
|
|
2060
|
-
"scope": "all",
|
|
2061
|
-
"priority": "required"
|
|
2062
|
-
},
|
|
2063
|
-
{
|
|
2064
|
-
"id": "frontend-blazor-state",
|
|
2065
|
-
"scope": "all",
|
|
2066
|
-
"priority": "required"
|
|
2067
|
-
}
|
|
2068
|
-
],
|
|
2069
|
-
"stacks": [
|
|
2070
|
-
"blazor"
|
|
2071
|
-
],
|
|
2072
|
-
"teammate": {
|
|
2073
|
-
"icon": "⚡",
|
|
2074
|
-
"role": "Blazor Concurrency Validator (read-only)",
|
|
2075
|
-
"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\" }] }"
|
|
2076
|
-
},
|
|
2077
|
-
"hook_behavior": {
|
|
2078
|
-
"validates": [
|
|
2079
|
-
"DbContext lifecycle violations (dispose, scope issues)",
|
|
2080
|
-
"Async void methods (use async Task instead)",
|
|
2081
|
-
"JSInterop in OnInitialized (move to OnAfterRender)",
|
|
2082
|
-
"State mutation without StateHasChanged"
|
|
2083
|
-
],
|
|
2084
|
-
"severity": "error",
|
|
2085
|
-
"blocks_on_fail": true
|
|
2086
|
-
}
|
|
2087
|
-
},
|
|
2088
|
-
"morph-spec-validator": {
|
|
2089
|
-
"tier": 4,
|
|
2090
|
-
"title": "Morph-Spec Validator",
|
|
2091
|
-
"group": "testing",
|
|
2092
|
-
"active_phases": [
|
|
2093
|
-
"implement",
|
|
2094
|
-
"validate"
|
|
2095
|
-
],
|
|
2096
|
-
"reports_to": "qa-lead",
|
|
2097
|
-
"domains": [
|
|
2098
|
-
"nodejs",
|
|
2099
|
-
"cli",
|
|
2100
|
-
"testing",
|
|
2101
|
-
"validation"
|
|
2102
|
-
],
|
|
2103
|
-
"keywords": [
|
|
2104
|
-
"validate morph-spec",
|
|
2105
|
-
"node.js validation",
|
|
2106
|
-
"cli test"
|
|
2107
|
-
],
|
|
2108
|
-
"validators": [
|
|
2109
|
-
"morph-spec-standards"
|
|
2110
|
-
],
|
|
2111
|
-
"standards": [],
|
|
2112
|
-
"teammate": {
|
|
2113
|
-
"icon": "🔬",
|
|
2114
|
-
"role": "Morph-Spec Validator (read-only)",
|
|
2115
|
-
"tools": "Read, Glob, Grep, Bash",
|
|
2116
|
-
"maxTurns": 12,
|
|
2117
|
-
"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\" }] }"
|
|
2118
|
-
},
|
|
2119
|
-
"hook_behavior": {
|
|
2120
|
-
"validates": [
|
|
2121
|
-
"ESM imports use .js extensions on relative paths",
|
|
2122
|
-
"New commands are registered in bin/morph-spec.js",
|
|
2123
|
-
"Tests exist for new modules (one test file per module)",
|
|
2124
|
-
"npm test passes with no failures",
|
|
2125
|
-
"No require() or module.exports used",
|
|
2126
|
-
"Error handling follows fail-open pattern for hooks"
|
|
2127
|
-
],
|
|
2128
|
-
"severity": "error",
|
|
2129
|
-
"blocks_on_fail": true
|
|
2130
|
-
}
|
|
2131
|
-
},
|
|
2132
923
|
"nextjs-component-validator": {
|
|
2133
924
|
"tier": 4,
|
|
2134
925
|
"title": "Next.js Component Validator",
|
|
@@ -2173,15 +964,10 @@
|
|
|
2173
964
|
"leader": "dotnet-senior",
|
|
2174
965
|
"members": [
|
|
2175
966
|
"ef-modeler",
|
|
2176
|
-
"event-architect",
|
|
2177
|
-
"api-designer",
|
|
2178
|
-
"nosql-cache-expert",
|
|
2179
967
|
"hangfire-orchestrator",
|
|
2180
968
|
"ms-agent-expert",
|
|
2181
969
|
"supabase-expert",
|
|
2182
970
|
"vector-search-expert",
|
|
2183
|
-
"context-optimizer",
|
|
2184
|
-
"prompt-engineer",
|
|
2185
971
|
"asaas-financial",
|
|
2186
972
|
"clerk-auth",
|
|
2187
973
|
"resend-email"
|
|
@@ -2189,15 +975,11 @@
|
|
|
2189
975
|
"domains": [
|
|
2190
976
|
"backend",
|
|
2191
977
|
"backend-data",
|
|
2192
|
-
"backend-events",
|
|
2193
978
|
"backend-api",
|
|
2194
|
-
"backend-nosql",
|
|
2195
|
-
"backend-ddd",
|
|
2196
979
|
"backend-jobs",
|
|
2197
980
|
"ai-agents",
|
|
2198
981
|
"backend-supabase",
|
|
2199
982
|
"ai-vector",
|
|
2200
|
-
"ai-context",
|
|
2201
983
|
"integration-payment",
|
|
2202
984
|
"integration-auth",
|
|
2203
985
|
"integration-email"
|
|
@@ -2206,15 +988,14 @@
|
|
|
2206
988
|
"frontend_squad": {
|
|
2207
989
|
"leader": "ui-designer",
|
|
2208
990
|
"members": [
|
|
2209
|
-
"blazor-builder",
|
|
2210
991
|
"nextjs-expert",
|
|
2211
992
|
"css-specialist",
|
|
2212
993
|
"seo-growth-hacker"
|
|
2213
994
|
],
|
|
2214
995
|
"domains": [
|
|
2215
996
|
"frontend-design",
|
|
2216
|
-
"frontend-blazor",
|
|
2217
997
|
"frontend-nextjs",
|
|
998
|
+
"frontend-nextjs-ui",
|
|
2218
999
|
"frontend-css",
|
|
2219
1000
|
"seo"
|
|
2220
1001
|
],
|
|
@@ -2223,7 +1004,6 @@
|
|
|
2223
1004
|
"ui-designer"
|
|
2224
1005
|
],
|
|
2225
1006
|
"implement": [
|
|
2226
|
-
"blazor-builder",
|
|
2227
1007
|
"nextjs-expert",
|
|
2228
1008
|
"css-specialist",
|
|
2229
1009
|
"seo-growth-hacker"
|
|
@@ -2232,37 +1012,19 @@
|
|
|
2232
1012
|
},
|
|
2233
1013
|
"infrastructure_squad": {
|
|
2234
1014
|
"leader": "infra-architect",
|
|
2235
|
-
"members": [
|
|
2236
|
-
"bicep-architect",
|
|
2237
|
-
"devops-engineer",
|
|
2238
|
-
"container-specialist",
|
|
2239
|
-
"observability-expert",
|
|
2240
|
-
"azure-identity"
|
|
2241
|
-
],
|
|
1015
|
+
"members": [],
|
|
2242
1016
|
"domains": [
|
|
2243
1017
|
"infrastructure",
|
|
2244
|
-
"infrastructure-iac",
|
|
2245
1018
|
"infrastructure-cicd",
|
|
2246
|
-
"infrastructure-containers"
|
|
2247
|
-
"infrastructure-observability",
|
|
2248
|
-
"infrastructure-identity"
|
|
1019
|
+
"infrastructure-containers"
|
|
2249
1020
|
]
|
|
2250
1021
|
},
|
|
2251
1022
|
"quality_squad": {
|
|
2252
1023
|
"leader": "standards-architect",
|
|
2253
|
-
"members": [
|
|
2254
|
-
"testing-specialist",
|
|
2255
|
-
"code-analyzer",
|
|
2256
|
-
"troubleshooting-expert",
|
|
2257
|
-
"load-testing-expert",
|
|
2258
|
-
"documentation-specialist"
|
|
2259
|
-
],
|
|
1024
|
+
"members": [],
|
|
2260
1025
|
"domains": [
|
|
2261
1026
|
"quality-testing",
|
|
2262
|
-
"quality-review"
|
|
2263
|
-
"quality-debug",
|
|
2264
|
-
"quality-performance",
|
|
2265
|
-
"developer-experience-docs"
|
|
1027
|
+
"quality-review"
|
|
2266
1028
|
],
|
|
2267
1029
|
"note": "No permanent leader — standards-architect coordinates directly"
|
|
2268
1030
|
}
|