@polymorphism-tech/morph-spec 3.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +882 -3
- package/README.md +79 -18
- package/bin/detect-agents.js +1 -1
- package/bin/morph-spec.js +163 -26
- package/bin/task-manager.cjs +101 -7
- package/bin/validate.js +1 -1
- package/docs/cli-auto-detection.md +219 -0
- package/docs/getting-started.md +0 -5
- package/docs/llm-interaction-config.md +735 -0
- package/docs/troubleshooting.md +269 -0
- package/docs/v3.0/AGENTS.md +521 -0
- package/docs/v3.0/ANALYSIS.md +555 -0
- package/docs/v3.0/ARCHITECTURE.md +436 -0
- package/docs/v3.0/EXECUTION-FLOW.md +1304 -0
- package/docs/v3.0/FEATURES.md +688 -0
- package/docs/v3.0/README.md +231 -0
- package/docs/v3.0/ROADMAP.md +801 -0
- package/docs/validation-checklist.md +0 -1
- package/package.json +5 -1
- package/src/commands/agents/index.js +4 -0
- package/src/commands/agents/spawn-team.js +172 -0
- package/src/commands/{create-story.js → feature/create-story.js} +357 -354
- package/src/commands/feature/index.js +6 -0
- package/src/commands/{shard-spec.js → feature/shard-spec.js} +2 -2
- package/src/commands/{sprint-status.js → feature/sprint-status.js} +1 -1
- package/src/commands/{generate-context.js → generation/generate-context.js} +40 -40
- package/src/commands/{generate.js → generation/generate.js} +130 -3
- package/src/commands/generation/index.js +5 -0
- package/src/commands/index.js +16 -0
- package/src/commands/learning/capture-pattern.js +121 -0
- package/src/commands/learning/index.js +5 -0
- package/src/commands/learning/search-patterns.js +126 -0
- package/src/commands/{detect-agents.js → project/detect-agents.js} +178 -178
- package/src/commands/project/detect-workflow.js +174 -0
- package/src/commands/{detect.js → project/detect.js} +104 -104
- package/src/commands/{doctor.js → project/doctor.js} +356 -356
- package/src/commands/project/index.js +10 -0
- package/src/commands/{init.js → project/init.js} +305 -258
- package/src/commands/{sync.js → project/sync.js} +167 -167
- package/src/commands/{update.js → project/update.js} +240 -204
- package/src/commands/{advance-phase.js → state/advance-phase.js} +416 -266
- package/src/commands/state/approve.js +221 -0
- package/src/commands/state/index.js +8 -0
- package/src/commands/{rollback-phase.js → state/rollback-phase.js} +185 -185
- package/src/commands/{state.js → state/state.js} +334 -334
- package/src/commands/{validate-phase.js → state/validate-phase.js} +221 -221
- package/src/commands/tasks/index.js +4 -0
- package/src/commands/{task.js → tasks/task.js} +78 -78
- package/src/commands/templates/index.js +8 -0
- package/src/commands/templates/template-customize.js +101 -0
- package/src/commands/templates/template-list.js +128 -0
- package/src/commands/templates/template-render.js +95 -0
- package/src/commands/templates/template-show.js +131 -0
- package/src/commands/templates/template-validate.js +91 -0
- package/src/commands/utils/index.js +7 -0
- package/src/commands/utils/migrate-state.js +158 -0
- package/src/commands/{session-summary.js → utils/session-summary.js} +291 -291
- package/src/commands/{troubleshoot.js → utils/troubleshoot.js} +222 -222
- package/src/commands/utils/upgrade.js +346 -0
- package/src/commands/{analyze-blazor-concurrency.js → validation/analyze-blazor-concurrency.js} +193 -193
- package/src/commands/validation/index.js +8 -0
- package/src/commands/{lint-fluent.js → validation/lint-fluent.js} +352 -352
- package/src/commands/{validate-blazor-state.js → validation/validate-blazor-state.js} +210 -210
- package/src/commands/{validate-blazor.js → validation/validate-blazor.js} +156 -156
- package/src/commands/{validate-css.js → validation/validate-css.js} +84 -84
- package/src/core/index.js +10 -0
- package/src/core/registry/command-registry.js +302 -0
- package/src/core/registry/index.js +8 -0
- package/src/core/registry/validator-registry.js +204 -0
- package/src/core/state/index.js +8 -0
- package/src/core/state/phase-state-machine.js +214 -0
- package/src/{lib → core/state}/state-manager.js +572 -414
- package/src/core/templates/index.js +9 -0
- package/src/core/templates/template-data-sources.js +325 -0
- package/src/core/templates/template-registry.js +335 -0
- package/src/core/templates/template-renderer.js +477 -0
- package/src/core/templates/template-validator.js +296 -0
- package/src/core/workflows/index.js +7 -0
- package/src/core/workflows/workflow-detector.js +354 -0
- package/src/generator/config-generator.js +206 -0
- package/src/generator/templates/config.json.template +40 -0
- package/src/generator/templates/project.md.template +67 -0
- package/src/lib/{complexity-analyzer.js → analysis/complexity-analyzer.js} +441 -441
- package/src/lib/analysis/index.js +7 -0
- package/src/lib/checkpoints/checkpoint-hooks.js +258 -0
- package/src/lib/checkpoints/index.js +7 -0
- package/src/lib/detectors/config-detector.js +223 -223
- package/src/lib/detectors/conversation-analyzer.js +163 -163
- package/src/lib/{design-system-detector.js → detectors/design-system-detector.js} +187 -187
- package/src/lib/detectors/index.js +87 -84
- package/src/lib/detectors/standards-generator.js +275 -275
- package/src/lib/detectors/structure-detector.js +245 -245
- package/src/lib/{context-generator.js → generators/context-generator.js} +526 -516
- package/src/lib/generators/index.js +10 -0
- package/src/lib/generators/metadata-extractor.js +387 -0
- package/src/lib/{recap-generator.js → generators/recap-generator.js} +205 -205
- package/src/lib/learning/index.js +7 -0
- package/src/lib/orchestration/index.js +7 -0
- package/src/lib/{team-orchestrator.js → orchestration/team-orchestrator.js} +323 -323
- package/src/lib/stacks/index.js +7 -0
- package/src/lib/{stack-resolver.js → stacks/stack-resolver.js} +180 -148
- package/src/lib/standards/index.js +7 -0
- package/src/lib/{standards-context-injector.js → standards/standards-context-injector.js} +298 -288
- package/src/lib/troubleshooting/index.js +8 -0
- package/src/lib/{troubleshoot-grep.js → troubleshooting/troubleshoot-grep.js} +204 -204
- package/src/lib/{troubleshoot-index.js → troubleshooting/troubleshoot-index.js} +144 -144
- package/src/lib/validators/architecture/architecture-validator.js +387 -0
- package/src/lib/validators/architecture/index.js +7 -0
- package/src/lib/validators/architecture-validator.js +40 -367
- package/src/lib/{blazor-concurrency-analyzer.js → validators/blazor/blazor-concurrency-analyzer.js} +277 -288
- package/src/lib/{blazor-state-validator.js → validators/blazor/blazor-state-validator.js} +279 -291
- package/src/lib/{blazor-validator.js → validators/blazor/blazor-validator.js} +369 -374
- package/src/lib/validators/blazor/index.js +9 -0
- package/src/lib/validators/content/content-validator.js +351 -0
- package/src/lib/validators/content/index.js +7 -0
- package/src/lib/validators/content-validator.js +164 -0
- package/src/lib/validators/{contract-compliance-validator.js → contracts/contract-compliance-validator.js} +273 -273
- package/src/lib/validators/contracts/index.js +7 -0
- package/src/lib/{css-validator.js → validators/css/css-validator.js} +352 -352
- package/src/lib/validators/css/index.js +7 -0
- package/src/lib/validators/{design-system-validator.js → design-system/design-system-validator.js} +231 -231
- package/src/lib/validators/design-system/index.js +7 -0
- package/src/lib/validators/package-validator.js +41 -340
- package/src/lib/validators/packages/index.js +7 -0
- package/src/lib/validators/packages/package-validator.js +360 -0
- package/src/lib/validators/shared/index.js +12 -0
- package/src/lib/validators/shared/issue-counter.js +18 -0
- package/src/lib/validators/shared/result-formatter.js +124 -0
- package/src/lib/{spec-validator.js → validators/spec-validator.js} +258 -258
- package/src/lib/validators/ui/index.js +7 -0
- package/src/lib/validators/ui/ui-contrast-validator.js +422 -0
- package/src/lib/validators/ui-contrast-validator.js +31 -409
- package/src/lib/{validation-runner.js → validators/validation-runner.js} +286 -284
- package/src/llm/analyzer.js +215 -0
- package/src/llm/environment-detector.js +43 -0
- package/src/llm/few-shot-examples.js +216 -0
- package/src/llm/project-config-schema.json +188 -0
- package/src/llm/prompt-builder.js +96 -0
- package/src/orchestrator.js +206 -0
- package/src/sanitizer/context-sanitizer.js +221 -0
- package/src/sanitizer/patterns.js +163 -0
- package/src/scanner/project-scanner.js +242 -0
- package/src/ui/diff-display.js +91 -0
- package/src/ui/interactive-wizard.js +96 -0
- package/src/ui/user-review.js +211 -0
- package/src/ui/wizard-questions.js +188 -0
- package/src/utils/color-utils.js +70 -0
- package/src/utils/file-copier.js +188 -189
- package/src/utils/process-handler.js +97 -0
- package/src/writer/file-writer.js +86 -0
- package/stacks/blazor-azure/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +3 -3
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/api-designer.md +59 -0
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/dotnet-senior.md +45 -255
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ef-modeler.md +33 -88
- package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ms-agent-expert.md +25 -89
- package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/hangfire-orchestrator.md +64 -0
- package/stacks/blazor-azure/.morph/config/agents.json +879 -764
- package/stacks/blazor-azure/.morph/hooks/{pre-commit-tests.sh → pre-commit/tests-csharp.sh} +3 -2
- package/stacks/blazor-azure/.morph/templates/.gitkeep +0 -0
- package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +41 -0
- package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +24 -0
- package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +23 -0
- package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +221 -0
- package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +79 -0
- package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +529 -0
- package/stacks/nextjs-supabase/.claude/commands/morph-infra.md +209 -0
- package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +227 -0
- package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +122 -0
- package/stacks/nextjs-supabase/.claude/commands/morph-status.md +86 -0
- package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +122 -0
- package/stacks/nextjs-supabase/.claude/settings.local.json +6 -0
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +30 -150
- package/stacks/nextjs-supabase/.morph/config/agents.json +345 -345
- package/stacks/nextjs-supabase/.morph/hooks/pre-commit/tests-typescript.sh +61 -0
- package/stacks/nextjs-supabase/.morph/templates/.gitkeep +0 -0
- package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +22 -0
- package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +22 -0
- package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +35 -0
- package/stacks/nextjs-supabase/README.md +6 -15
- package/bin/render-template.js +0 -303
- package/bin/semantic-detect-agents.js +0 -247
- package/bin/validate-agents-skills.js +0 -257
- package/bin/validate-agents.js +0 -70
- package/bin/validate-phase.js +0 -263
- package/docs/examples.md +0 -328
- package/scripts/reorganize-skills.cjs +0 -175
- package/scripts/validate-agents-structure.cjs +0 -52
- package/scripts/validate-skills.cjs +0 -180
- package/src/commands/deploy.js +0 -780
- package/src/lib/continuous-validator.js +0 -421
- package/src/lib/decision-constraint-loader.js +0 -109
- package/src/lib/design-system-scaffolder.js +0 -299
- package/src/lib/hook-executor.js +0 -257
- package/src/lib/mockup-generator.js +0 -366
- package/src/lib/ui-detector.js +0 -350
- package/stacks/blazor-azure/.azure/README.md +0 -293
- package/stacks/blazor-azure/.azure/docs/azure-devops-setup.md +0 -454
- package/stacks/blazor-azure/.azure/docs/branch-strategy.md +0 -398
- package/stacks/blazor-azure/.azure/docs/local-development.md +0 -515
- package/stacks/blazor-azure/.azure/pipelines/pipeline-variables.yml +0 -34
- package/stacks/blazor-azure/.azure/pipelines/prod-pipeline.yml +0 -319
- package/stacks/blazor-azure/.azure/pipelines/staging-pipeline.yml +0 -234
- package/stacks/blazor-azure/.azure/pipelines/templates/build-dotnet.yml +0 -75
- package/stacks/blazor-azure/.azure/pipelines/templates/deploy-app-service.yml +0 -94
- package/stacks/blazor-azure/.azure/pipelines/templates/deploy-container-app.yml +0 -120
- package/stacks/blazor-azure/.azure/pipelines/templates/infra-deploy.yml +0 -90
- package/stacks/blazor-azure/.claude/settings.local.json +0 -15
- package/stacks/blazor-azure/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +0 -392
- package/stacks/blazor-azure/.morph/docs/workflows/design-impl.md +0 -37
- package/stacks/blazor-azure/.morph/docs/workflows/enforcement-pipeline.md +0 -668
- package/stacks/blazor-azure/.morph/docs/workflows/fast-track.md +0 -29
- package/stacks/blazor-azure/.morph/docs/workflows/full-morph.md +0 -76
- package/stacks/blazor-azure/.morph/docs/workflows/standard.md +0 -44
- package/stacks/blazor-azure/.morph/docs/workflows/ui-refresh.md +0 -39
- package/stacks/blazor-azure/.morph/examples/api-nextjs/README.md +0 -241
- package/stacks/blazor-azure/.morph/examples/api-nextjs/contracts.ts +0 -307
- package/stacks/blazor-azure/.morph/examples/api-nextjs/spec.md +0 -399
- package/stacks/blazor-azure/.morph/examples/api-nextjs/tasks.md +0 -168
- package/stacks/blazor-azure/.morph/examples/micro-saas/README.md +0 -125
- package/stacks/blazor-azure/.morph/examples/micro-saas/contracts.cs +0 -358
- package/stacks/blazor-azure/.morph/examples/micro-saas/decisions.md +0 -246
- package/stacks/blazor-azure/.morph/examples/micro-saas/spec.md +0 -236
- package/stacks/blazor-azure/.morph/examples/micro-saas/tasks.md +0 -150
- package/stacks/blazor-azure/.morph/examples/multi-agent/README.md +0 -309
- package/stacks/blazor-azure/.morph/examples/multi-agent/contracts.cs +0 -433
- package/stacks/blazor-azure/.morph/examples/multi-agent/spec.md +0 -479
- package/stacks/blazor-azure/.morph/examples/multi-agent/tasks.md +0 -185
- package/stacks/blazor-azure/.morph/examples/scheduled-reports/decisions.md +0 -158
- package/stacks/blazor-azure/.morph/examples/scheduled-reports/proposal.md +0 -95
- package/stacks/blazor-azure/.morph/examples/scheduled-reports/spec.md +0 -267
- package/stacks/blazor-azure/.morph/examples/state-v3.json +0 -188
- package/stacks/blazor-azure/.morph/hooks/README.md +0 -348
- package/stacks/blazor-azure/.morph/hooks/pre-commit-agents.sh +0 -24
- package/stacks/blazor-azure/.morph/hooks/pre-commit-all.sh +0 -48
- package/stacks/blazor-azure/.morph/hooks/pre-commit-specs.sh +0 -49
- package/stacks/blazor-azure/.morph/hooks/task-completed.js +0 -73
- package/stacks/blazor-azure/.morph/hooks/teammate-idle.js +0 -68
- package/stacks/blazor-azure/.morph/standards/agent-framework-blazor-ui.md +0 -359
- package/stacks/blazor-azure/.morph/standards/agent-framework-production.md +0 -410
- package/stacks/blazor-azure/.morph/standards/agent-framework-setup.md +0 -413
- package/stacks/blazor-azure/.morph/standards/agent-framework-workflows.md +0 -349
- package/stacks/blazor-azure/.morph/standards/agent-teams-workflow.md +0 -474
- package/stacks/blazor-azure/.morph/standards/architecture.md +0 -325
- package/stacks/blazor-azure/.morph/standards/azure.md +0 -605
- package/stacks/blazor-azure/.morph/standards/coding.md +0 -377
- package/stacks/blazor-azure/.morph/standards/dotnet10-migration.md +0 -520
- package/stacks/blazor-azure/.morph/standards/fluent-ui-setup.md +0 -590
- package/stacks/blazor-azure/.morph/standards/migration-guide.md +0 -514
- package/stacks/blazor-azure/.morph/standards/passkeys-auth.md +0 -423
- package/stacks/blazor-azure/.morph/standards/vector-search-rag.md +0 -536
- package/stacks/blazor-azure/.morph/templates/CONTEXT-FEATURE.md +0 -276
- package/stacks/blazor-azure/.morph/templates/CONTEXT.md +0 -170
- package/stacks/blazor-azure/.morph/templates/FluentDesignTheme.cs +0 -149
- package/stacks/blazor-azure/.morph/templates/MudTheme.cs +0 -281
- package/stacks/blazor-azure/.morph/templates/agent.cs +0 -163
- package/stacks/blazor-azure/.morph/templates/clarify-questions.md +0 -159
- package/stacks/blazor-azure/.morph/templates/component.razor +0 -239
- package/stacks/blazor-azure/.morph/templates/contracts/Commands.cs +0 -74
- package/stacks/blazor-azure/.morph/templates/contracts/Entities.cs +0 -25
- package/stacks/blazor-azure/.morph/templates/contracts/Queries.cs +0 -74
- package/stacks/blazor-azure/.morph/templates/contracts/README.md +0 -74
- package/stacks/blazor-azure/.morph/templates/contracts.cs +0 -217
- package/stacks/blazor-azure/.morph/templates/decisions.md +0 -123
- package/stacks/blazor-azure/.morph/templates/design-system.css +0 -226
- package/stacks/blazor-azure/.morph/templates/infra/.dockerignore.example +0 -89
- package/stacks/blazor-azure/.morph/templates/infra/Dockerfile.example +0 -82
- package/stacks/blazor-azure/.morph/templates/infra/README.md +0 -286
- package/stacks/blazor-azure/.morph/templates/infra/app-insights.bicep +0 -63
- package/stacks/blazor-azure/.morph/templates/infra/app-service.bicep +0 -164
- package/stacks/blazor-azure/.morph/templates/infra/azure-pipelines-deploy.yml +0 -480
- package/stacks/blazor-azure/.morph/templates/infra/container-app-env.bicep +0 -49
- package/stacks/blazor-azure/.morph/templates/infra/container-app.bicep +0 -156
- package/stacks/blazor-azure/.morph/templates/infra/deploy-checklist.md +0 -426
- package/stacks/blazor-azure/.morph/templates/infra/deploy.ps1 +0 -229
- package/stacks/blazor-azure/.morph/templates/infra/deploy.sh +0 -208
- package/stacks/blazor-azure/.morph/templates/infra/key-vault.bicep +0 -91
- package/stacks/blazor-azure/.morph/templates/infra/main.bicep +0 -189
- package/stacks/blazor-azure/.morph/templates/infra/parameters.dev.json +0 -29
- package/stacks/blazor-azure/.morph/templates/infra/parameters.prod.json +0 -29
- package/stacks/blazor-azure/.morph/templates/infra/parameters.staging.json +0 -29
- package/stacks/blazor-azure/.morph/templates/infra/sql-database.bicep +0 -103
- package/stacks/blazor-azure/.morph/templates/infra/storage.bicep +0 -106
- package/stacks/blazor-azure/.morph/templates/integrations/asaas-client.cs +0 -387
- package/stacks/blazor-azure/.morph/templates/integrations/asaas-webhook.cs +0 -351
- package/stacks/blazor-azure/.morph/templates/integrations/azure-identity-config.cs +0 -288
- package/stacks/blazor-azure/.morph/templates/integrations/clerk-config.cs +0 -258
- package/stacks/blazor-azure/.morph/templates/job.cs +0 -171
- package/stacks/blazor-azure/.morph/templates/migration.cs +0 -83
- package/stacks/blazor-azure/.morph/templates/proposal.md +0 -141
- package/stacks/blazor-azure/.morph/templates/recap.md +0 -94
- package/stacks/blazor-azure/.morph/templates/repository.cs +0 -141
- package/stacks/blazor-azure/.morph/templates/saas/subscription.cs +0 -347
- package/stacks/blazor-azure/.morph/templates/saas/tenant.cs +0 -338
- package/stacks/blazor-azure/.morph/templates/service.cs +0 -139
- package/stacks/blazor-azure/.morph/templates/simulation.md +0 -353
- package/stacks/blazor-azure/.morph/templates/spec.md +0 -149
- package/stacks/blazor-azure/.morph/templates/sprint-status.yaml +0 -68
- package/stacks/blazor-azure/.morph/templates/state.template.json +0 -222
- package/stacks/blazor-azure/.morph/templates/story.md +0 -143
- package/stacks/blazor-azure/.morph/templates/tasks.md +0 -257
- package/stacks/blazor-azure/.morph/templates/test.cs +0 -239
- package/stacks/blazor-azure/.morph/templates/ui-components.md +0 -362
- package/stacks/blazor-azure/.morph/templates/ui-design-system.md +0 -286
- package/stacks/blazor-azure/.morph/templates/ui-flows.md +0 -336
- package/stacks/blazor-azure/.morph/templates/ui-mockups.md +0 -133
- package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +0 -169
- package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +0 -247
- package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +0 -697
- package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +0 -85
- package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +0 -86
- package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +0 -498
- package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +0 -121
- package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +0 -138
- package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +0 -162
- package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +0 -191
- package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +0 -193
- package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +0 -171
- package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +0 -164
- package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +0 -179
- package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +0 -148
- package/stacks/nextjs-supabase/.morph/templates/contracts.cs +0 -173
- package/stacks/nextjs-supabase/.morph/templates/contracts.ts +0 -168
- package/stacks/nextjs-supabase/.morph/templates/decisions.md +0 -115
- package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +0 -38
- package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +0 -48
- package/stacks/nextjs-supabase/.morph/templates/proposal.md +0 -145
- package/stacks/nextjs-supabase/.morph/templates/recap.md +0 -134
- package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +0 -57
- package/stacks/nextjs-supabase/.morph/templates/spec.md +0 -231
- package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +0 -100
- package/stacks/nextjs-supabase/.morph/templates/tasks.md +0 -257
- /package/src/lib/{design-system-generator.js → generators/design-system-generator.js} +0 -0
- /package/src/lib/{learning-system.js → learning/learning-system.js} +0 -0
|
@@ -1,112 +1,57 @@
|
|
|
1
1
|
# EF Modeler
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## .NET 10 Compatibility
|
|
8
|
-
- EF Core: **>= 10.0.0** | New: Vector search, primitive collections
|
|
9
|
-
- **Ref:** `framework/standards/dotnet10-compatibility.md`
|
|
3
|
+
**Tier:** 3 (Specialist)
|
|
4
|
+
**Always Active:** No
|
|
5
|
+
**Keywords:** entity, database, migration, ef core, dbcontext, table, column, relationship, query
|
|
6
|
+
**Reports to:** dotnet-senior
|
|
10
7
|
|
|
11
8
|
---
|
|
12
9
|
|
|
13
|
-
##
|
|
10
|
+
## Role
|
|
14
11
|
|
|
15
|
-
|
|
16
|
-
public class Order : BaseEntity
|
|
17
|
-
{
|
|
18
|
-
public string OrderNumber { get; private set; } = null!;
|
|
19
|
-
public OrderStatus Status { get; private set; }
|
|
20
|
-
public decimal Total { get; private set; }
|
|
21
|
-
public DateTime CreatedAt { get; private set; }
|
|
12
|
+
Entity Framework Core specialist for database modeling, entities, configurations, and migrations.
|
|
22
13
|
|
|
23
|
-
|
|
24
|
-
public int CustomerId { get; private set; }
|
|
25
|
-
public Customer Customer { get; private set; } = null!;
|
|
26
|
-
public ICollection<OrderItem> Items { get; private set; } = new List<OrderItem>();
|
|
14
|
+
---
|
|
27
15
|
|
|
28
|
-
|
|
29
|
-
public static Order Create(int customerId, IEnumerable<OrderItem> items) { ... }
|
|
30
|
-
}
|
|
31
|
-
```
|
|
16
|
+
## Standards Applied
|
|
32
17
|
|
|
33
|
-
**Rules:** Private setters, factory methods, explicit navigation properties.
|
|
34
|
-
|
|
35
|
-
## Configuration
|
|
36
|
-
|
|
37
|
-
```csharp
|
|
38
|
-
public class OrderConfiguration : IEntityTypeConfiguration<Order>
|
|
39
|
-
{
|
|
40
|
-
public void Configure(EntityTypeBuilder<Order> builder)
|
|
41
|
-
{
|
|
42
|
-
builder.ToTable("Orders");
|
|
43
|
-
builder.HasKey(o => o.Id);
|
|
44
|
-
builder.Property(o => o.OrderNumber).IsRequired().HasMaxLength(20);
|
|
45
|
-
builder.Property(o => o.Total).HasPrecision(18, 2);
|
|
46
|
-
builder.HasIndex(o => o.OrderNumber).IsUnique();
|
|
47
|
-
builder.HasOne(o => o.Customer).WithMany(c => c.Orders)
|
|
48
|
-
.HasForeignKey(o => o.CustomerId).OnDelete(DeleteBehavior.Restrict);
|
|
49
|
-
builder.HasMany(o => o.Items).WithOne(i => i.Order)
|
|
50
|
-
.HasForeignKey(i => i.OrderId).OnDelete(DeleteBehavior.Cascade);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
18
|
```
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
dotnet ef database update
|
|
19
|
+
framework/standards/core/coding.md
|
|
20
|
+
framework/standards/backend/dotnet/core.md
|
|
21
|
+
framework/standards/backend/database/ef-core.md
|
|
22
|
+
framework/standards/backend/database/migrations.md
|
|
23
|
+
framework/standards/backend/database/repository-patterns.md
|
|
24
|
+
framework/standards/backend/database/performance.md
|
|
61
25
|
```
|
|
62
26
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
## Query Optimization
|
|
66
|
-
|
|
67
|
-
```csharp
|
|
68
|
-
// ❌ N+1 problem
|
|
69
|
-
var orders = await _context.Orders.ToListAsync();
|
|
70
|
-
foreach (var o in orders) { var items = o.Items; } // N extra queries!
|
|
27
|
+
---
|
|
71
28
|
|
|
72
|
-
|
|
73
|
-
var orders = await _context.Orders.Include(o => o.Items).Include(o => o.Customer).ToListAsync();
|
|
29
|
+
## Responsibilities
|
|
74
30
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
31
|
+
- Design entity models with private setters and factory methods
|
|
32
|
+
- Create IEntityTypeConfiguration for each entity
|
|
33
|
+
- Configure relationships, indexes, and constraints
|
|
34
|
+
- Generate and review EF Core migrations
|
|
35
|
+
- Optimize database queries (avoid N+1, use proper includes)
|
|
36
|
+
- Implement repository patterns with IDbContextFactory
|
|
80
37
|
|
|
81
38
|
---
|
|
82
39
|
|
|
83
|
-
##
|
|
84
|
-
|
|
85
|
-
> **Ref:** `framework/standards/blazor-efcore.md` — Repository Factory pattern for background ops
|
|
40
|
+
## When to Use
|
|
86
41
|
|
|
87
|
-
|
|
88
|
-
|
|
42
|
+
- Creating/modifying entity classes
|
|
43
|
+
- Database schema changes
|
|
44
|
+
- Migration creation/review
|
|
45
|
+
- Query optimization
|
|
46
|
+
- DbContext configuration
|
|
89
47
|
|
|
90
48
|
---
|
|
91
49
|
|
|
92
|
-
##
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
| `PendingModelChangesWarning` | Model changed without migration | Create new migration |
|
|
98
|
-
| `Include() doesn't load` | `HasMany<T>()` without navigation | Use `HasMany(x => x.Nav)` |
|
|
99
|
-
| `A second operation was started` | Shared DbContext | Use `IDbContextFactory` |
|
|
100
|
-
|
|
101
|
-
## Checklist
|
|
102
|
-
- [ ] Entities with private setters + factory methods
|
|
103
|
-
- [ ] Separate configuration (IEntityTypeConfiguration)
|
|
104
|
-
- [ ] Indexes on search columns
|
|
105
|
-
- [ ] Precision defined for decimals
|
|
106
|
-
- [ ] Delete behavior explicit
|
|
107
|
-
- [ ] Migration script generated and reviewed
|
|
108
|
-
- [ ] Queries with Include or Projection (no N+1)
|
|
109
|
-
- [ ] `IDbContextFactory` for background ops
|
|
50
|
+
## Collaborates With
|
|
51
|
+
|
|
52
|
+
- **dotnet-senior** - Service layer consuming repositories
|
|
53
|
+
- **api-designer** - DTO mapping from entities
|
|
54
|
+
- **azure-architect** - Database provisioning (Azure SQL, Cosmos DB)
|
|
110
55
|
|
|
111
56
|
---
|
|
112
57
|
|
|
@@ -2,107 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
> **Layer:** 2 | **Load:** on-keyword | **Keywords:** agent, ai, llm, openai, chat, prompt, tool, function calling, rag, embedding, workflow, orchestration, mcp, a2a, middleware
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Identity
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
> **Ref:** `agent-framework-workflows.md` — Orchestration patterns
|
|
9
|
-
> **Ref:** `agent-framework-production.md` — Middleware, A2A, MCP, caching
|
|
7
|
+
Microsoft Agent Framework specialist for .NET 10. Implements AI agents, tools, workflows, and middleware.
|
|
10
8
|
|
|
11
|
-
##
|
|
9
|
+
## Knowledge Base (Consult These)
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
.GetChatClient("gpt-4o-mini")
|
|
17
|
-
.AsAIAgent(instructions: "You are a helpful assistant.");
|
|
11
|
+
- `framework/standards/ai-agents/setup.md` - Agent configuration, DI, tools, streaming
|
|
12
|
+
- `framework/standards/ai-agents/workflows.md` - Sequential, parallel, conditional workflows
|
|
13
|
+
- `framework/standards/ai-agents/production.md` - Middleware, A2A, MCP, caching, observability
|
|
18
14
|
|
|
19
|
-
|
|
20
|
-
```
|
|
15
|
+
## Responsibilities
|
|
21
16
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{
|
|
27
|
-
private readonly IOrderService _orderService;
|
|
28
|
-
|
|
29
|
-
public OrderFunctions(IOrderService orderService) => _orderService = orderService;
|
|
30
|
-
|
|
31
|
-
[Description("Get order by number")]
|
|
32
|
-
public async Task<Order?> GetOrderAsync(
|
|
33
|
-
[Description("Order number")] string orderNumber, CancellationToken ct = default)
|
|
34
|
-
=> await _orderService.GetByNumberAsync(orderNumber, ct);
|
|
35
|
-
|
|
36
|
-
[Description("Calculate customer discount")]
|
|
37
|
-
public decimal CalculateDiscount(
|
|
38
|
-
[Description("Customer ID")] int customerId,
|
|
39
|
-
[Description("Order total")] decimal orderTotal) => orderTotal * 0.1m;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Register agent with tools via DI
|
|
43
|
-
builder.AddAIAgent("OrderAgent", (sp, key) =>
|
|
44
|
-
{
|
|
45
|
-
var chatClient = sp.GetRequiredService<IChatClient>();
|
|
46
|
-
var orderFunctions = sp.GetRequiredService<OrderFunctions>();
|
|
47
|
-
|
|
48
|
-
return new ChatClientAgent(chatClient, name: key,
|
|
49
|
-
instructions: "You are an order assistant. Use tools to help users.",
|
|
50
|
-
tools: [
|
|
51
|
-
AIFunctionFactory.Create(orderFunctions.GetOrderAsync),
|
|
52
|
-
AIFunctionFactory.Create(orderFunctions.CalculateDiscount)]);
|
|
53
|
-
});
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Workflow (Sequential)
|
|
57
|
-
|
|
58
|
-
```csharp
|
|
59
|
-
Workflow workflow = AgentWorkflowBuilder.BuildSequential(writer, editor);
|
|
60
|
-
AIAgent workflowAgent = await workflow.AsAgentAsync();
|
|
61
|
-
var response = await workflowAgent.RunAsync("Write a report.");
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Middleware (Error Handling)
|
|
65
|
-
|
|
66
|
-
```csharp
|
|
67
|
-
var agent = originalAgent.AsBuilder()
|
|
68
|
-
.Use(async (agent, context, next, ct) =>
|
|
69
|
-
{
|
|
70
|
-
try { return await next(context, ct); }
|
|
71
|
-
catch (Exception ex) { return $"Error: {ex.Message}"; }
|
|
72
|
-
})
|
|
73
|
-
.Build();
|
|
74
|
-
```
|
|
17
|
+
- Configure agents per setup.md patterns (ChatClientAgent, keyed services)
|
|
18
|
+
- Design workflows per workflows.md orchestration patterns
|
|
19
|
+
- Implement middleware per production.md (error handling, logging, retry)
|
|
20
|
+
- Use recommended models from setup.md (gpt-4o-mini default)
|
|
75
21
|
|
|
76
22
|
## Prompt Template
|
|
77
23
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
# Examples: Input: {In} → Output: {Out}
|
|
84
|
-
```
|
|
24
|
+
When working on AI agent tasks:
|
|
25
|
+
1. Consult `setup.md` for agent configuration, tools, and DI registration
|
|
26
|
+
2. Follow `workflows.md` for orchestration (sequential, parallel, conditional)
|
|
27
|
+
3. Apply `production.md` for middleware, observability, and production patterns
|
|
28
|
+
4. NEVER use Semantic Kernel - use Microsoft.Agents.AI exclusively
|
|
85
29
|
|
|
86
|
-
##
|
|
30
|
+
## When to Use
|
|
87
31
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
| Embeddings | text-embedding-3-small | $0.02/1M |
|
|
32
|
+
- AI/LLM integration requests
|
|
33
|
+
- Agent workflow design
|
|
34
|
+
- Tool/function calling implementation
|
|
35
|
+
- Agent middleware and observability
|
|
93
36
|
|
|
94
|
-
##
|
|
37
|
+
## Collaborates With
|
|
95
38
|
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
- [ ] Agents registered with `builder.AddAIAgent()` (keyed services)
|
|
100
|
-
- [ ] Tools use `AIFunctionFactory.Create()` + `[Description]`
|
|
101
|
-
- [ ] Middleware for error handling and logging
|
|
102
|
-
- [ ] gpt-4o-mini as default model
|
|
103
|
-
- [ ] API keys in Key Vault
|
|
104
|
-
- [ ] OpenTelemetry enabled: `agent.WithOpenTelemetry()`
|
|
105
|
-
- [ ] **Do NOT use Semantic Kernel** (`Kernel`, `KernelFunction`, `InvokePromptAsync`)
|
|
39
|
+
- ai-system-architect - Overall AI strategy
|
|
40
|
+
- dotnet-senior - Backend integration
|
|
41
|
+
- azure-architect - Azure OpenAI provisioning
|
|
106
42
|
|
|
107
43
|
---
|
|
108
44
|
|
package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/hangfire-orchestrator.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Hangfire Orchestrator
|
|
2
|
+
|
|
3
|
+
**Tier:** 3 (Specialist)
|
|
4
|
+
**Always Active:** No
|
|
5
|
+
**Keywords:** scheduled, job, background, cron, recurring, batch, queue, hangfire
|
|
6
|
+
**Reports to:** dotnet-senior
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Role
|
|
11
|
+
|
|
12
|
+
Hangfire specialist for background jobs, scheduled tasks, and asynchronous processing.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Standards Applied
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
framework/standards/core/coding.md
|
|
20
|
+
framework/standards/backend/dotnet/async.md
|
|
21
|
+
framework/standards/backend/database/repository-patterns.md (Factory pattern for scoped repos)
|
|
22
|
+
framework/standards/backend/integrations/hangfire/setup.md
|
|
23
|
+
framework/standards/backend/integrations/hangfire/jobs.md
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Responsibilities
|
|
29
|
+
|
|
30
|
+
- Configure Hangfire with SQL Server storage
|
|
31
|
+
- Create fire-and-forget jobs
|
|
32
|
+
- Schedule recurring jobs with cron expressions
|
|
33
|
+
- Implement delayed and continuation jobs
|
|
34
|
+
- Use IRepositoryFactory for DbContext in jobs (NOT direct injection)
|
|
35
|
+
- Configure Hangfire Dashboard with authentication
|
|
36
|
+
- Handle job failures and retries
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## When to Use
|
|
41
|
+
|
|
42
|
+
- Background processing (emails, reports, cleanup)
|
|
43
|
+
- Scheduled tasks (daily/hourly jobs)
|
|
44
|
+
- Delayed operations (abandoned cart after 24h)
|
|
45
|
+
- Long-running operations outside HTTP request
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Critical Pattern
|
|
50
|
+
|
|
51
|
+
**ALWAYS use IRepositoryFactory in Hangfire jobs** - DbContext is scoped to HTTP request and won't exist in background jobs.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Collaborates With
|
|
56
|
+
|
|
57
|
+
- **dotnet-senior** - Service layer triggering jobs
|
|
58
|
+
- **ef-modeler** - Repository factory implementation
|
|
59
|
+
- **azure-architect** - Hangfire dashboard security
|
|
60
|
+
- **resend-email** - Email jobs coordination
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
*MORPH-SPEC by Polymorphism Tech*
|