@polymorphism-tech/morph-spec 4.3.3 → 4.3.4
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/.morph/analytics/threads-log.jsonl +9 -0
- package/{stacks/blazor-azure/.morph → .morph}/config/config.json +9 -9
- package/.morph/state.json +48 -0
- package/bin/detect-agents.js +1 -2
- package/bin/morph-spec.js +2 -15
- package/{stacks/blazor-azure/.morph/config → framework}/agents.json +948 -948
- package/{stacks/nextjs-supabase/.claude → framework}/commands/morph-infra.md +1 -1
- package/framework/hooks/README.md +282 -0
- package/framework/hooks/agent-stop/validate-and-continue.js +96 -0
- package/framework/hooks/agent-stop/validate-checkpoints.js +101 -0
- package/framework/hooks/agent-stop/validate-tests.js +109 -0
- package/framework/hooks/agent-teams/dispatch.js +67 -0
- package/framework/hooks/agent-teams/phase-advanced.js +80 -0
- package/framework/hooks/agent-teams/task-completed.js +76 -0
- package/framework/hooks/agent-teams/teammate-idle.js +70 -0
- package/framework/hooks/commit-msg/conventional-commits.sh +33 -0
- package/framework/hooks/pre-commit/agents.sh +25 -0
- package/framework/hooks/pre-commit/orchestrator.sh +64 -0
- package/framework/hooks/pre-commit/specs.sh +50 -0
- package/framework/hooks/pre-push/run-tests.sh +44 -0
- package/framework/index/troubleshooting-index.json +184 -0
- package/framework/memory/patterns-learned.md +766 -0
- package/framework/skills/level-0-meta/README.md +7 -0
- package/framework/skills/level-0-meta/code-review.md +226 -0
- package/framework/skills/level-0-meta/morph-checklist.md +117 -0
- package/framework/skills/level-0-meta/simulation-checklist.md +77 -0
- package/framework/skills/level-1-workflows/README.md +7 -0
- package/framework/skills/level-1-workflows/morph-replicate.md +213 -0
- package/framework/skills/level-1-workflows/phase-clarify.md +131 -0
- package/framework/skills/level-1-workflows/phase-design.md +213 -0
- package/framework/skills/level-1-workflows/phase-setup.md +106 -0
- package/framework/skills/level-1-workflows/phase-tasks.md +164 -0
- package/framework/skills/level-1-workflows/phase-uiux.md +169 -0
- package/framework/skills/level-2-domains/README.md +14 -0
- package/framework/skills/level-2-domains/ai-agents/ai-system-architect.md +192 -0
- package/framework/skills/level-2-domains/architecture/po-pm-advisor.md +197 -0
- package/framework/skills/level-2-domains/architecture/prompt-engineer.md +189 -0
- package/framework/skills/level-2-domains/architecture/seo-growth-hacker.md +320 -0
- package/framework/skills/level-2-domains/architecture/standards-architect.md +156 -0
- package/framework/skills/level-2-domains/backend/api-designer.md +59 -0
- package/framework/skills/level-2-domains/backend/dotnet-senior.md +77 -0
- package/framework/skills/level-2-domains/backend/ef-modeler.md +58 -0
- package/framework/skills/level-2-domains/backend/hangfire-orchestrator.md +126 -0
- package/framework/skills/level-2-domains/backend/ms-agent-expert.md +45 -0
- package/framework/skills/level-2-domains/frontend/blazor-builder.md +210 -0
- package/framework/skills/level-2-domains/frontend/nextjs-expert.md +154 -0
- package/framework/skills/level-2-domains/frontend/ui-ux-designer.md +191 -0
- package/framework/skills/level-2-domains/infrastructure/azure-architect.md +142 -0
- package/framework/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +699 -0
- package/framework/skills/level-2-domains/infrastructure/bicep-architect.md +126 -0
- package/framework/skills/level-2-domains/infrastructure/container-specialist.md +131 -0
- package/framework/skills/level-2-domains/infrastructure/devops-engineer.md +119 -0
- package/framework/skills/level-2-domains/integrations/asaas-financial.md +130 -0
- package/framework/skills/level-2-domains/integrations/azure-identity.md +142 -0
- package/framework/skills/level-2-domains/integrations/clerk-auth.md +108 -0
- package/framework/skills/level-2-domains/integrations/hangfire-orchestrator.md +64 -0
- package/framework/skills/level-2-domains/integrations/resend-email.md +119 -0
- package/framework/skills/level-2-domains/quality/code-analyzer.md +235 -0
- package/framework/skills/level-2-domains/quality/testing-specialist.md +126 -0
- package/framework/skills/level-3-technologies/README.md +7 -0
- package/framework/skills/level-4-patterns/README.md +7 -0
- package/framework/squad-templates/backend-only.json +34 -0
- package/framework/squad-templates/frontend-only.json +34 -0
- package/framework/squad-templates/full-stack.json +52 -0
- package/framework/templates/.idea/morph-templates.xml +92 -0
- package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
- package/framework/templates/IDE-SNIPPETS.md +266 -0
- package/framework/templates/README.md +814 -0
- package/framework/templates/REGISTRY.json +1677 -0
- package/framework/templates/code/dotnet/backend/repository.cs +141 -0
- package/framework/templates/code/dotnet/backend/service.cs +139 -0
- package/framework/templates/code/dotnet/contracts/Commands.cs +74 -0
- package/framework/templates/code/dotnet/contracts/Entities.cs +25 -0
- package/framework/templates/code/dotnet/contracts/Queries.cs +74 -0
- package/framework/templates/code/dotnet/contracts/README.md +74 -0
- package/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -0
- package/framework/templates/code/dotnet/contracts/contracts.cs +217 -0
- package/framework/templates/code/dotnet/database/migration.cs +83 -0
- package/framework/templates/code/dotnet/frontend/component.razor +239 -0
- package/framework/templates/code/dotnet/jobs/agent.cs +163 -0
- package/framework/templates/code/dotnet/jobs/job.cs +171 -0
- package/framework/templates/code/dotnet/test.cs +239 -0
- package/framework/templates/code/sql/rls-policy.sql +57 -0
- package/framework/templates/code/sql/supabase-migration.sql +100 -0
- package/framework/templates/code/sql/supabase-migration.template.sql +113 -0
- package/framework/templates/code/typescript/contracts.ts +168 -0
- package/framework/templates/context/CONTEXT-FEATURE.md +276 -0
- package/framework/templates/context/CONTEXT.md +181 -0
- package/framework/templates/docs/proposal.md +182 -0
- package/framework/templates/docs/spec.md +149 -0
- package/framework/templates/examples/design-system-examples.md +357 -0
- package/framework/templates/examples/spec-examples.md +90 -0
- package/framework/templates/feature/decisions.md +187 -0
- package/framework/templates/feature/recap.md +146 -0
- package/framework/templates/feature/tasks.md +199 -0
- package/framework/templates/infrastructure/azure/Dockerfile.example +82 -0
- package/framework/templates/infrastructure/azure/README.md +286 -0
- package/framework/templates/infrastructure/azure/app-insights.bicep +63 -0
- package/framework/templates/infrastructure/azure/app-service.bicep +164 -0
- package/framework/templates/infrastructure/azure/container-app-env.bicep +49 -0
- package/framework/templates/infrastructure/azure/container-app.bicep +156 -0
- package/framework/templates/infrastructure/azure/deploy-checklist.md +426 -0
- package/framework/templates/infrastructure/azure/deploy.ps1 +229 -0
- package/framework/templates/infrastructure/azure/deploy.sh +208 -0
- package/framework/templates/infrastructure/azure/key-vault.bicep +91 -0
- package/framework/templates/infrastructure/azure/main.bicep +189 -0
- package/framework/templates/infrastructure/azure/parameters.dev.json +29 -0
- package/framework/templates/infrastructure/azure/parameters.prod.json +29 -0
- package/framework/templates/infrastructure/azure/parameters.staging.json +29 -0
- package/framework/templates/infrastructure/azure/sql-database.bicep +103 -0
- package/framework/templates/infrastructure/azure/storage.bicep +106 -0
- package/framework/templates/infrastructure/docker/Dockerfile.template +58 -0
- package/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -0
- package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -0
- package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -0
- package/framework/templates/infrastructure/docker/easypanel.template.json +54 -0
- package/framework/templates/infrastructure/github/README.md +593 -0
- package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +22 -0
- package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -0
- package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -0
- package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +61 -0
- package/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +31 -0
- package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -0
- package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -0
- package/framework/templates/integrations/asaas-client.cs +387 -0
- package/framework/templates/integrations/asaas-webhook.cs +351 -0
- package/framework/templates/integrations/azure-identity-config.cs +288 -0
- package/framework/templates/integrations/clerk-config.cs +258 -0
- package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -0
- package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -0
- package/framework/templates/meta-prompts/hops/hop-retry.md +78 -0
- package/framework/templates/meta-prompts/hops/hop-validation.md +97 -0
- package/framework/templates/meta-prompts/hops/hop-wrapper.md +36 -0
- package/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -0
- package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +80 -0
- package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +90 -0
- package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +126 -0
- package/framework/templates/meta-prompts/squad-leaders/squad-leader.md +43 -0
- package/framework/templates/meta-prompts/validators/checkpoint-validator.md +107 -0
- package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -0
- package/framework/templates/saas/subscription.cs +347 -0
- package/framework/templates/saas/tenant.cs +338 -0
- package/framework/templates/state.template.json +17 -0
- package/framework/templates/ui/FluentDesignTheme.cs +149 -0
- package/framework/templates/ui/MudTheme.cs +281 -0
- package/framework/templates/ui/design-system.css +226 -0
- package/framework/workflows/README.md +1041 -0
- package/framework/workflows/configs/design-impl.json +49 -0
- package/framework/workflows/configs/fast-track.json +42 -0
- package/framework/workflows/configs/full-morph.json +79 -0
- package/framework/workflows/configs/fusion.json +39 -0
- package/framework/workflows/configs/long-running.json +33 -0
- package/framework/workflows/configs/standard.json +60 -0
- package/framework/workflows/configs/ui-refresh.json +49 -0
- package/framework/workflows/configs/zero-touch.json +75 -0
- package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -0
- package/framework/workflows/docs/design-impl.md +37 -0
- package/framework/workflows/docs/enforcement-pipeline.md +668 -0
- package/framework/workflows/docs/fast-track.md +29 -0
- package/framework/workflows/docs/full-morph.md +76 -0
- package/framework/workflows/docs/standard.md +44 -0
- package/framework/workflows/docs/ui-refresh.md +39 -0
- package/package.json +3 -3
- package/src/commands/feature/create-story.js +11 -7
- package/src/commands/project/detect-agents.js +1 -2
- package/src/commands/project/init.js +69 -32
- package/src/commands/project/update.js +2 -2
- package/src/commands/templates/template-customize.js +3 -17
- package/src/commands/templates/template-list.js +1 -15
- package/src/commands/templates/template-render.js +2 -3
- package/src/commands/templates/template-show.js +3 -5
- package/src/core/templates/template-registry.js +9 -23
- package/src/lib/detectors/structure-detector.js +3 -3
- package/src/lib/generators/context-generator.js +18 -6
- package/src/lib/hooks/hook-executor.js +0 -2
- package/src/lib/orchestration/team-orchestrator.js +1 -2
- package/src/lib/standards/standards-context-injector.js +3 -4
- package/src/lib/troubleshooting/troubleshoot-grep.js +3 -9
- package/src/lib/validators/validation-runner.js +1 -2
- package/src/utils/file-copier.js +1 -2
- package/docs/README.md +0 -144
- package/docs/api/fonts/Montserrat/Montserrat-Bold.eot +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Bold.woff +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Regular.eot +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Regular.woff +0 -0
- package/docs/api/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -978
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -1049
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
- package/docs/api/scripts/collapse.js +0 -39
- package/docs/api/scripts/commonNav.js +0 -28
- package/docs/api/scripts/linenumber.js +0 -25
- package/docs/api/scripts/nav.js +0 -12
- package/docs/api/scripts/polyfill.js +0 -4
- package/docs/api/scripts/prettify/Apache-License-2.0.txt +0 -202
- package/docs/api/scripts/prettify/lang-css.js +0 -2
- package/docs/api/scripts/prettify/prettify.js +0 -28
- package/docs/api/scripts/search.js +0 -99
- package/docs/api/styles/jsdoc.css +0 -776
- package/docs/api/styles/prettify.css +0 -80
- package/docs/cli-auto-detection.md +0 -219
- package/docs/getting-started.md +0 -296
- package/docs/installation.md +0 -361
- package/docs/next-generation/AGENTS.md +0 -521
- package/docs/next-generation/ANALYSIS.md +0 -555
- package/docs/next-generation/ARCHITECTURE.md +0 -436
- package/docs/next-generation/CONTEXT-OPTIMIZATION.md +0 -267
- package/docs/next-generation/EXECUTION-FLOW.md +0 -274
- package/docs/next-generation/FEATURES.md +0 -688
- package/docs/next-generation/META-PROMPTS.md +0 -235
- package/docs/next-generation/MIGRATION-GUIDE.md +0 -253
- package/docs/next-generation/README.md +0 -231
- package/docs/next-generation/ROADMAP.md +0 -801
- package/docs/next-generation/THREAD-MANAGEMENT.md +0 -240
- package/docs/templates.md +0 -418
- package/docs/troubleshooting.md +0 -269
- package/docs/validation-checklist.md +0 -264
- package/scripts/postinstall.js +0 -132
- package/src/lib/stacks/index.js +0 -7
- package/src/lib/stacks/stack-resolver.js +0 -180
- package/stacks/blazor-azure/.claude/commands/morph-deploy.md +0 -529
- package/stacks/blazor-azure/.claude/commands/morph-infra.md +0 -209
- package/stacks/blazor-azure/.morph/.morphversion +0 -5
- package/stacks/blazor-azure/.morph/project/context/README.md +0 -17
- package/stacks/blazor-azure/CLAUDE.md +0 -155
- package/stacks/blazor-azure/README.md +0 -79
- package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +0 -221
- package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +0 -79
- package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +0 -529
- package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +0 -227
- package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +0 -122
- package/stacks/nextjs-supabase/.claude/commands/morph-status.md +0 -86
- package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +0 -122
- package/stacks/nextjs-supabase/.morph/.morphversion +0 -5
- package/stacks/nextjs-supabase/.morph/config/agents.json +0 -345
- package/stacks/nextjs-supabase/.morph/config/config.json +0 -9
- package/stacks/nextjs-supabase/.morph/project/context/README.md +0 -17
- package/stacks/nextjs-supabase/.morph/standards/ai-agents/blazor-ui.md +0 -364
- package/stacks/nextjs-supabase/.morph/standards/ai-agents/production.md +0 -415
- package/stacks/nextjs-supabase/.morph/standards/ai-agents/setup.md +0 -418
- package/stacks/nextjs-supabase/.morph/standards/ai-agents/team-orchestration.md +0 -479
- package/stacks/nextjs-supabase/.morph/standards/ai-agents/workflows.md +0 -354
- package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/aggregates.md +0 -120
- package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/entities.md +0 -99
- package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/value-objects.md +0 -124
- package/stacks/nextjs-supabase/.morph/standards/backend/api/minimal-api.md +0 -494
- package/stacks/nextjs-supabase/.morph/standards/backend/api/rest.md +0 -492
- package/stacks/nextjs-supabase/.morph/standards/backend/api/validation.md +0 -88
- package/stacks/nextjs-supabase/.morph/standards/backend/authentication/passkeys.md +0 -428
- package/stacks/nextjs-supabase/.morph/standards/backend/database/ef-core.md +0 -199
- package/stacks/nextjs-supabase/.morph/standards/backend/database/migrations.md +0 -393
- package/stacks/nextjs-supabase/.morph/standards/backend/database/postgresql/database.md +0 -352
- package/stacks/nextjs-supabase/.morph/standards/backend/database/repository-patterns.md +0 -528
- package/stacks/nextjs-supabase/.morph/standards/backend/database/vector-search-rag.md +0 -541
- package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/async.md +0 -366
- package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/core.md +0 -117
- package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/di.md +0 -439
- package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/program-cs-checklist.md +0 -92
- package/stacks/nextjs-supabase/.morph/standards/backend/integrations/asaas/asaas-api.md +0 -216
- package/stacks/nextjs-supabase/.morph/standards/backend/integrations/clerk/clerk-auth.md +0 -290
- package/stacks/nextjs-supabase/.morph/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
- package/stacks/nextjs-supabase/.morph/standards/backend/integrations/resend/resend-email.md +0 -385
- package/stacks/nextjs-supabase/.morph/standards/context/analytics.md +0 -96
- package/stacks/nextjs-supabase/.morph/standards/context/bundles.md +0 -110
- package/stacks/nextjs-supabase/.morph/standards/context/priming.md +0 -78
- package/stacks/nextjs-supabase/.morph/standards/core/architecture.md +0 -185
- package/stacks/nextjs-supabase/.morph/standards/core/coding.md +0 -214
- package/stacks/nextjs-supabase/.morph/standards/core/git-branching-strategy.md +0 -403
- package/stacks/nextjs-supabase/.morph/standards/core/git.md +0 -185
- package/stacks/nextjs-supabase/.morph/standards/core/testing.md +0 -295
- package/stacks/nextjs-supabase/.morph/standards/data/nosql/blob-storage.md +0 -102
- package/stacks/nextjs-supabase/.morph/standards/data/nosql/cache/redis.md +0 -97
- package/stacks/nextjs-supabase/.morph/standards/data/nosql/cosmos-db.md +0 -118
- package/stacks/nextjs-supabase/.morph/standards/data/vector-search/azure-ai-search.md +0 -121
- package/stacks/nextjs-supabase/.morph/standards/data/vector-search/rag-chunking.md +0 -104
- package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/design-checklist.md +0 -222
- package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/fluent-ui-setup.md +0 -595
- package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/fluent-ui.md +0 -137
- package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/html-conversion.md +0 -184
- package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/lifecycle.md +0 -195
- package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/pitfalls.md +0 -198
- package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/state.md +0 -191
- package/stacks/nextjs-supabase/.morph/standards/frontend/design-system/animations.md +0 -151
- package/stacks/nextjs-supabase/.morph/standards/frontend/design-system/naming.md +0 -64
- package/stacks/nextjs-supabase/.morph/standards/frontend/nextjs/nextjs-patterns.md +0 -198
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/azure.md +0 -624
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/devops/local-development.md +0 -520
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/functions.md +0 -486
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/service-bus.md +0 -459
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/storage.md +0 -407
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/docker/easypanel-deploy.md +0 -196
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/mcp-setup.md +0 -252
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-auth.md +0 -176
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-rls.md +0 -184
- package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-storage.md +0 -153
- package/stacks/nextjs-supabase/.morph/standards/integration/api/graphql.md +0 -91
- package/stacks/nextjs-supabase/.morph/standards/integration/api/grpc.md +0 -114
- package/stacks/nextjs-supabase/.morph/standards/integration/api/rest-design.md +0 -95
- package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/cqrs.md +0 -101
- package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/event-sourcing.md +0 -124
- package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/service-bus.md +0 -95
- package/stacks/nextjs-supabase/.morph/standards/observability/logging.md +0 -131
- package/stacks/nextjs-supabase/.morph/standards/observability/metrics.md +0 -121
- package/stacks/nextjs-supabase/.morph/standards/observability/monitoring.md +0 -114
- package/stacks/nextjs-supabase/.morph/standards/observability/tracing.md +0 -132
- package/stacks/nextjs-supabase/.morph/standards/workflows/parallel-execution.md +0 -112
- package/stacks/nextjs-supabase/.morph/standards/workflows/thread-management.md +0 -113
- package/stacks/nextjs-supabase/CLAUDE.md +0 -155
- package/stacks/nextjs-supabase/README.md +0 -103
- /package/{stacks/blazor-azure/.claude → framework}/commands/morph-apply.md +0 -0
- /package/{stacks/blazor-azure/.claude → framework}/commands/morph-archive.md +0 -0
- /package/{stacks/blazor-azure/.claude → framework}/commands/morph-preflight.md +0 -0
- /package/{stacks/blazor-azure/.claude → framework}/commands/morph-proposal.md +0 -0
- /package/{stacks/blazor-azure/.claude → framework}/commands/morph-status.md +0 -0
- /package/{stacks/blazor-azure/.claude → framework}/commands/morph-troubleshoot.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/blazor-ui.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/production.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/setup.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/team-orchestration.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/workflows.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/aggregates.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/entities.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/value-objects.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/minimal-api.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/rest.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/validation.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/authentication/passkeys.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/ef-core.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/migrations.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/postgresql/database.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/repository-patterns.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/vector-search-rag.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/async.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/core.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/di.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/program-cs-checklist.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/asaas/asaas-api.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/clerk/clerk-auth.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/resend/resend-email.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/context/analytics.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/context/bundles.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/context/priming.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/core/architecture.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/core/coding.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/core/git-branching-strategy.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/core/git.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/core/testing.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/blob-storage.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/cache/redis.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/cosmos-db.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/data/vector-search/azure-ai-search.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/data/vector-search/rag-chunking.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/design-checklist.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/fluent-ui-setup.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/fluent-ui.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/html-conversion.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/lifecycle.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/pitfalls.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/state.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/design-system/animations.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/design-system/naming.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/nextjs/nextjs-patterns.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/azure.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/devops/local-development.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/functions.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/service-bus.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/storage.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/docker/easypanel-deploy.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/mcp-setup.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-auth.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-pgvector.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-rls.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-storage.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/graphql.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/grpc.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/rest-design.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/cqrs.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/event-sourcing.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/service-bus.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/observability/logging.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/observability/metrics.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/observability/monitoring.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/observability/tracing.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/workflows/parallel-execution.md +0 -0
- /package/{stacks/blazor-azure/.morph → framework}/standards/workflows/thread-management.md +0 -0
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
# Thread Management — MORPH-SPEC v3.0
|
|
2
|
-
|
|
3
|
-
Thread management is the v3.0 system for coordinating multi-agent execution within a single feature. Threads allow parallel, sequential, and hybrid agent workflows with full lifecycle tracking.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Thread Types
|
|
8
|
-
|
|
9
|
-
| Thread | Code | Purpose | Auto-kill? |
|
|
10
|
-
|--------|------|---------|------------|
|
|
11
|
-
| **Base Thread** | B | Single agent, sequential implementation | No |
|
|
12
|
-
| **Parallel Thread** | P | Isolated domain worker in a parallel squad | No |
|
|
13
|
-
| **Fusion Thread** | F | One of N agents solving the same problem | No |
|
|
14
|
-
| **Long-Running** | L | Persistent background agent with stop hooks | Yes (on stop hook) |
|
|
15
|
-
| **Zero-Touch** | Z | Autonomous agent with auto-approval (requires max trust) | No |
|
|
16
|
-
|
|
17
|
-
### Choosing a Thread Type
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Is this a single, sequential implementation?
|
|
21
|
-
└─ YES → B-Thread (Base)
|
|
22
|
-
|
|
23
|
-
Do you want N agents working on different domains simultaneously?
|
|
24
|
-
└─ YES → P-Thread (Parallel) per domain
|
|
25
|
-
|
|
26
|
-
Do you want N agents solving the SAME problem (pick best result)?
|
|
27
|
-
└─ YES → F-Thread (Fusion)
|
|
28
|
-
|
|
29
|
-
Will the agent run for >30 minutes or need periodic check-ins?
|
|
30
|
-
└─ YES → L-Thread (Long-Running)
|
|
31
|
-
|
|
32
|
-
Is trust level "maximum" (>95% checkpoint pass rate)?
|
|
33
|
-
└─ YES → Z-Thread (Zero-Touch) eligible
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Thread Lifecycle
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
pending → running → completed
|
|
42
|
-
└→ failed
|
|
43
|
-
└→ killed
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Each thread stores its state in `.morph/state.json` under `threads`:
|
|
47
|
-
|
|
48
|
-
```json
|
|
49
|
-
{
|
|
50
|
-
"threads": {
|
|
51
|
-
"thr_abc12345": {
|
|
52
|
-
"id": "thr_abc12345",
|
|
53
|
-
"type": "parallel",
|
|
54
|
-
"feature": "user-auth",
|
|
55
|
-
"agent": "dotnet-senior",
|
|
56
|
-
"status": "running",
|
|
57
|
-
"startedAt": "2026-02-19T10:00:00Z",
|
|
58
|
-
"completedAt": null,
|
|
59
|
-
"metrics": {
|
|
60
|
-
"tasksCompleted": 3,
|
|
61
|
-
"filesCreated": 5,
|
|
62
|
-
"filesModified": 2,
|
|
63
|
-
"checkpointsPassed": 1,
|
|
64
|
-
"checkpointsFailed": 0
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## CLI Reference
|
|
74
|
-
|
|
75
|
-
### List threads
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
morph-spec threads list
|
|
79
|
-
morph-spec threads list --feature user-auth
|
|
80
|
-
morph-spec threads list --status running
|
|
81
|
-
morph-spec threads list --type parallel
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Thread status
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
morph-spec threads status thr_abc12345
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Kill a thread
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
morph-spec threads kill thr_abc12345
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Analytics
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
morph-spec threads analytics --feature user-auth
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### Wait for completion
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
# Wait for ALL threads in a feature
|
|
106
|
-
morph-spec threads wait-all user-auth --timeout 60
|
|
107
|
-
|
|
108
|
-
# Wait for ANY thread to complete
|
|
109
|
-
morph-spec threads wait-any user-auth --timeout 30
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## P-Thread Isolation Rules
|
|
115
|
-
|
|
116
|
-
Parallel threads (P-Threads) MUST follow strict isolation:
|
|
117
|
-
|
|
118
|
-
| Rule | Description |
|
|
119
|
-
|------|-------------|
|
|
120
|
-
| **File ownership** | Each P-Thread writes ONLY to its assigned file set |
|
|
121
|
-
| **Read-only shared** | Shared files (spec.md, contracts, standards) are READ-ONLY |
|
|
122
|
-
| **No cross-writes** | Never write to another thread's files |
|
|
123
|
-
| **Report on done** | Submit PARALLEL WORKER REPORT when complete |
|
|
124
|
-
| **No external calls** | Don't spawn additional threads |
|
|
125
|
-
|
|
126
|
-
### P-Thread Report Format
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
## PARALLEL WORKER REPORT
|
|
130
|
-
|
|
131
|
-
**Thread ID:** {id}
|
|
132
|
-
**Status:** completed | failed | blocked
|
|
133
|
-
|
|
134
|
-
**Files Created:**
|
|
135
|
-
- path/to/file1.cs
|
|
136
|
-
- path/to/file2.cs
|
|
137
|
-
|
|
138
|
-
**Tasks Completed:** T001, T002, T003
|
|
139
|
-
|
|
140
|
-
**Blockers (if any):** None
|
|
141
|
-
|
|
142
|
-
**Notes:** Any important implementation decisions
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## L-Thread Stop Hooks
|
|
148
|
-
|
|
149
|
-
Long-running threads respond to stop hooks. Configure in `.claude/settings.local.json`:
|
|
150
|
-
|
|
151
|
-
```json
|
|
152
|
-
{
|
|
153
|
-
"hooks": {
|
|
154
|
-
"Stop": [
|
|
155
|
-
{
|
|
156
|
-
"matcher": "",
|
|
157
|
-
"hooks": [
|
|
158
|
-
{
|
|
159
|
-
"type": "command",
|
|
160
|
-
"command": "node framework/hooks/agent-teams/validate-and-continue.js {feature}"
|
|
161
|
-
}
|
|
162
|
-
]
|
|
163
|
-
}
|
|
164
|
-
]
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Stop hooks run every N seconds (configurable in `zero-touch.json`):
|
|
170
|
-
|
|
171
|
-
```json
|
|
172
|
-
{
|
|
173
|
-
"monitoring": {
|
|
174
|
-
"stopHooks": {
|
|
175
|
-
"enabled": true,
|
|
176
|
-
"interval": 30,
|
|
177
|
-
"hooks": ["validate-and-continue", "validate-checkpoints"]
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Thread Metrics Tracking
|
|
186
|
-
|
|
187
|
-
Each feature tracks aggregate thread metrics in `state.json`:
|
|
188
|
-
|
|
189
|
-
```json
|
|
190
|
-
{
|
|
191
|
-
"features": {
|
|
192
|
-
"user-auth": {
|
|
193
|
-
"threadMetrics": {
|
|
194
|
-
"totalThreads": 3,
|
|
195
|
-
"completedThreads": 2,
|
|
196
|
-
"failedThreads": 0,
|
|
197
|
-
"parallelBatches": 1
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
Access via:
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
morph-spec analytics feature user-auth
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## Decision Tree: When to Use Threads
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
Feature complexity?
|
|
216
|
-
SIMPLE (1-5 files) → B-Thread only, no parallelization
|
|
217
|
-
MEDIUM (6-15 files) → Consider P-Threads by domain
|
|
218
|
-
HIGH (>15 files) → P-Threads mandatory for speed
|
|
219
|
-
|
|
220
|
-
Multiple independent domains?
|
|
221
|
-
YES → Spawn P-Thread per domain (backend, frontend, infra)
|
|
222
|
-
NO → Single B-Thread is fine
|
|
223
|
-
|
|
224
|
-
Need best-quality output from N attempts?
|
|
225
|
-
YES → F-Thread (Fusion) with aggregation
|
|
226
|
-
|
|
227
|
-
Long implementation (>30 mins estimated)?
|
|
228
|
-
YES → L-Thread with stop hooks for periodic validation
|
|
229
|
-
|
|
230
|
-
Trust level maximum + fully automated pipeline?
|
|
231
|
-
YES → Z-Thread (check with: morph-spec trust status)
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## Related
|
|
237
|
-
|
|
238
|
-
- [Parallel Execution](PARALLEL-EXECUTION.md) — Squad templates and P-Thread coordination
|
|
239
|
-
- [Context Optimization](CONTEXT-OPTIMIZATION.md) — Token efficiency during thread execution
|
|
240
|
-
- [Migration Guide](MIGRATION-GUIDE.md) — Upgrading state.json to v3.0 thread schema
|
package/docs/templates.md
DELETED
|
@@ -1,418 +0,0 @@
|
|
|
1
|
-
# MORPH-SPEC Templates Reference
|
|
2
|
-
|
|
3
|
-
Documentação completa de todos os templates disponíveis.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Feature Templates
|
|
8
|
-
|
|
9
|
-
Templates para documentação de features.
|
|
10
|
-
|
|
11
|
-
### spec.md
|
|
12
|
-
Template de especificação técnica.
|
|
13
|
-
|
|
14
|
-
**Localização**: `.morph/templates/spec.md`
|
|
15
|
-
|
|
16
|
-
**Seções**:
|
|
17
|
-
- Visão Geral
|
|
18
|
-
- Requisitos Funcionais
|
|
19
|
-
- Requisitos Não-Funcionais
|
|
20
|
-
- Arquitetura
|
|
21
|
-
- Modelo de Dados
|
|
22
|
-
- APIs
|
|
23
|
-
- Segurança
|
|
24
|
-
|
|
25
|
-
### tasks.md
|
|
26
|
-
Template de breakdown de tasks.
|
|
27
|
-
|
|
28
|
-
**Localização**: `.morph/templates/tasks.md`
|
|
29
|
-
|
|
30
|
-
**Estrutura**:
|
|
31
|
-
```markdown
|
|
32
|
-
| ID | Task | Dependências | Estimativa |
|
|
33
|
-
|----|------|--------------|------------|
|
|
34
|
-
| T001 | Descrição | - | S/M/L |
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### contracts.cs
|
|
38
|
-
Template de contratos (interfaces, DTOs).
|
|
39
|
-
|
|
40
|
-
**Localização**: `.morph/templates/contracts.cs`
|
|
41
|
-
|
|
42
|
-
**Inclui**:
|
|
43
|
-
- Interfaces de serviço
|
|
44
|
-
- DTOs de request/response
|
|
45
|
-
- Enums
|
|
46
|
-
- Interfaces de repositório
|
|
47
|
-
|
|
48
|
-
### decisions.md
|
|
49
|
-
Template de Architecture Decision Records.
|
|
50
|
-
|
|
51
|
-
**Localização**: `.morph/templates/decisions.md`
|
|
52
|
-
|
|
53
|
-
**Formato ADR**:
|
|
54
|
-
```markdown
|
|
55
|
-
## ADR-001: Título
|
|
56
|
-
|
|
57
|
-
**Status**: Proposed | Accepted | Deprecated
|
|
58
|
-
|
|
59
|
-
**Context**: Descrição do contexto
|
|
60
|
-
|
|
61
|
-
**Decision**: A decisão tomada
|
|
62
|
-
|
|
63
|
-
**Consequences**: Impactos positivos e negativos
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### recap.md
|
|
67
|
-
Template de resumo pós-implementação.
|
|
68
|
-
|
|
69
|
-
**Localização**: `.morph/templates/recap.md`
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Code Templates
|
|
74
|
-
|
|
75
|
-
Templates para geração de código.
|
|
76
|
-
|
|
77
|
-
### component.razor
|
|
78
|
-
Componente Blazor com parâmetros e lifecycle.
|
|
79
|
-
|
|
80
|
-
**Localização**: `.morph/templates/component.razor`
|
|
81
|
-
|
|
82
|
-
```razor
|
|
83
|
-
@namespace {{Namespace}}.Components
|
|
84
|
-
|
|
85
|
-
<div class="{{ComponentName | kebab-case}}">
|
|
86
|
-
@* Content *@
|
|
87
|
-
</div>
|
|
88
|
-
|
|
89
|
-
@code {
|
|
90
|
-
[Parameter] public string Title { get; set; }
|
|
91
|
-
|
|
92
|
-
protected override async Task OnInitializedAsync()
|
|
93
|
-
{
|
|
94
|
-
await base.OnInitializedAsync();
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### service.cs
|
|
100
|
-
Serviço com injeção de dependência.
|
|
101
|
-
|
|
102
|
-
**Localização**: `.morph/templates/service.cs`
|
|
103
|
-
|
|
104
|
-
```csharp
|
|
105
|
-
public interface I{{ServiceName}}Service
|
|
106
|
-
{
|
|
107
|
-
Task<Result> ExecuteAsync(Request request, CancellationToken ct);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
public class {{ServiceName}}Service : I{{ServiceName}}Service
|
|
111
|
-
{
|
|
112
|
-
private readonly IRepository _repository;
|
|
113
|
-
private readonly ILogger<{{ServiceName}}Service> _logger;
|
|
114
|
-
|
|
115
|
-
public {{ServiceName}}Service(
|
|
116
|
-
IRepository repository,
|
|
117
|
-
ILogger<{{ServiceName}}Service> logger)
|
|
118
|
-
{
|
|
119
|
-
_repository = repository;
|
|
120
|
-
_logger = logger;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### repository.cs
|
|
126
|
-
Repositório EF Core.
|
|
127
|
-
|
|
128
|
-
**Localização**: `.morph/templates/repository.cs`
|
|
129
|
-
|
|
130
|
-
```csharp
|
|
131
|
-
public interface I{{Entity}}Repository
|
|
132
|
-
{
|
|
133
|
-
Task<{{Entity}}?> GetByIdAsync(int id, CancellationToken ct);
|
|
134
|
-
Task<IReadOnlyList<{{Entity}}>> GetAllAsync(CancellationToken ct);
|
|
135
|
-
Task AddAsync({{Entity}} entity, CancellationToken ct);
|
|
136
|
-
void Update({{Entity}} entity);
|
|
137
|
-
void Delete({{Entity}} entity);
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### test.cs
|
|
142
|
-
Teste xUnit com FluentAssertions.
|
|
143
|
-
|
|
144
|
-
**Localização**: `.morph/templates/test.cs`
|
|
145
|
-
|
|
146
|
-
```csharp
|
|
147
|
-
public class {{ServiceName}}ServiceTests
|
|
148
|
-
{
|
|
149
|
-
private readonly Mock<IRepository> _repositoryMock;
|
|
150
|
-
private readonly {{ServiceName}}Service _sut;
|
|
151
|
-
|
|
152
|
-
public {{ServiceName}}ServiceTests()
|
|
153
|
-
{
|
|
154
|
-
_repositoryMock = new Mock<IRepository>();
|
|
155
|
-
_sut = new {{ServiceName}}Service(_repositoryMock.Object);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
[Fact]
|
|
159
|
-
public async Task Method_Should_ReturnExpected_When_Condition()
|
|
160
|
-
{
|
|
161
|
-
// Arrange
|
|
162
|
-
// Act
|
|
163
|
-
// Assert
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### migration.cs
|
|
169
|
-
Migration EF Core.
|
|
170
|
-
|
|
171
|
-
**Localização**: `.morph/templates/migration.cs`
|
|
172
|
-
|
|
173
|
-
### agent.cs
|
|
174
|
-
Agente AI com Semantic Kernel.
|
|
175
|
-
|
|
176
|
-
**Localização**: `.morph/templates/agent.cs`
|
|
177
|
-
|
|
178
|
-
```csharp
|
|
179
|
-
public class {{AgentName}}Agent
|
|
180
|
-
{
|
|
181
|
-
private readonly Kernel _kernel;
|
|
182
|
-
|
|
183
|
-
[KernelFunction("function_name")]
|
|
184
|
-
[Description("Description of the function")]
|
|
185
|
-
public async Task<string> ExecuteAsync(
|
|
186
|
-
[Description("Parameter description")] string input)
|
|
187
|
-
{
|
|
188
|
-
// Implementation
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### job.cs
|
|
194
|
-
Background job Hangfire.
|
|
195
|
-
|
|
196
|
-
**Localização**: `.morph/templates/job.cs`
|
|
197
|
-
|
|
198
|
-
```csharp
|
|
199
|
-
public class {{JobName}}Job
|
|
200
|
-
{
|
|
201
|
-
private readonly IService _service;
|
|
202
|
-
private readonly ILogger<{{JobName}}Job> _logger;
|
|
203
|
-
|
|
204
|
-
[AutomaticRetry(Attempts = 3)]
|
|
205
|
-
public async Task ExecuteAsync(JobParameters parameters)
|
|
206
|
-
{
|
|
207
|
-
_logger.LogInformation("Starting job {JobName}", nameof({{JobName}}Job));
|
|
208
|
-
// Implementation
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
## IaC Templates (Bicep)
|
|
216
|
-
|
|
217
|
-
Templates de Infrastructure as Code.
|
|
218
|
-
|
|
219
|
-
### main.bicep
|
|
220
|
-
Entry point que compõe todos os módulos.
|
|
221
|
-
|
|
222
|
-
**Localização**: `.morph/templates/infra/main.bicep`
|
|
223
|
-
|
|
224
|
-
**Parâmetros**:
|
|
225
|
-
- `appName` - Nome da aplicação
|
|
226
|
-
- `environment` - dev/staging/prod
|
|
227
|
-
- `location` - Região Azure
|
|
228
|
-
|
|
229
|
-
**Módulos incluídos**:
|
|
230
|
-
- Container App Environment
|
|
231
|
-
- Container App
|
|
232
|
-
- SQL Database
|
|
233
|
-
- Storage Account
|
|
234
|
-
- Key Vault
|
|
235
|
-
- Application Insights
|
|
236
|
-
|
|
237
|
-
### container-app.bicep
|
|
238
|
-
Azure Container Apps com auto-scaling.
|
|
239
|
-
|
|
240
|
-
**Localização**: `.morph/templates/infra/container-app.bicep`
|
|
241
|
-
|
|
242
|
-
**Features**:
|
|
243
|
-
- Scale-to-zero
|
|
244
|
-
- HTTP auto-scaling
|
|
245
|
-
- Health probes (liveness + readiness)
|
|
246
|
-
- Environment variables
|
|
247
|
-
- Secrets integration
|
|
248
|
-
|
|
249
|
-
### container-app-env.bicep
|
|
250
|
-
Managed Environment para Container Apps.
|
|
251
|
-
|
|
252
|
-
**Localização**: `.morph/templates/infra/container-app-env.bicep`
|
|
253
|
-
|
|
254
|
-
**Inclui**:
|
|
255
|
-
- Log Analytics workspace
|
|
256
|
-
- Internal/External ingress
|
|
257
|
-
|
|
258
|
-
### sql-database.bicep
|
|
259
|
-
Azure SQL Database.
|
|
260
|
-
|
|
261
|
-
**Localização**: `.morph/templates/infra/sql-database.bicep`
|
|
262
|
-
|
|
263
|
-
**Tiers suportados**:
|
|
264
|
-
- Free (32GB) - Desenvolvimento
|
|
265
|
-
- Basic - Produção pequena
|
|
266
|
-
- Standard - Produção
|
|
267
|
-
|
|
268
|
-
### storage.bicep
|
|
269
|
-
Storage Account com containers.
|
|
270
|
-
|
|
271
|
-
**Localização**: `.morph/templates/infra/storage.bicep`
|
|
272
|
-
|
|
273
|
-
**Containers padrão**:
|
|
274
|
-
- uploads
|
|
275
|
-
- reports
|
|
276
|
-
- backups
|
|
277
|
-
|
|
278
|
-
### key-vault.bicep
|
|
279
|
-
Azure Key Vault.
|
|
280
|
-
|
|
281
|
-
**Localização**: `.morph/templates/infra/key-vault.bicep`
|
|
282
|
-
|
|
283
|
-
**Features**:
|
|
284
|
-
- RBAC authorization
|
|
285
|
-
- Soft delete
|
|
286
|
-
- Purge protection (prod)
|
|
287
|
-
|
|
288
|
-
### app-insights.bicep
|
|
289
|
-
Application Insights para monitoring.
|
|
290
|
-
|
|
291
|
-
**Localização**: `.morph/templates/infra/app-insights.bicep`
|
|
292
|
-
|
|
293
|
-
### parameters.dev.json / parameters.prod.json
|
|
294
|
-
Parâmetros por ambiente.
|
|
295
|
-
|
|
296
|
-
**Localização**: `.morph/templates/infra/parameters.*.json`
|
|
297
|
-
|
|
298
|
-
---
|
|
299
|
-
|
|
300
|
-
## Integration Templates
|
|
301
|
-
|
|
302
|
-
Templates para integrações externas.
|
|
303
|
-
|
|
304
|
-
### asaas-client.cs
|
|
305
|
-
Cliente HTTP completo para Asaas.
|
|
306
|
-
|
|
307
|
-
**Localização**: `.morph/templates/integrations/asaas-client.cs`
|
|
308
|
-
|
|
309
|
-
**Endpoints**:
|
|
310
|
-
- Customers (CRUD)
|
|
311
|
-
- Payments (PIX, Boleto, Credit Card)
|
|
312
|
-
- Subscriptions
|
|
313
|
-
- Webhooks validation
|
|
314
|
-
|
|
315
|
-
**Uso**:
|
|
316
|
-
```csharp
|
|
317
|
-
services.AddAsaasClient(options =>
|
|
318
|
-
{
|
|
319
|
-
options.ApiKey = configuration["Asaas:ApiKey"];
|
|
320
|
-
options.Environment = AsaasEnvironment.Sandbox;
|
|
321
|
-
});
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
### asaas-webhook.cs
|
|
325
|
-
Controller para webhooks Asaas.
|
|
326
|
-
|
|
327
|
-
**Localização**: `.morph/templates/integrations/asaas-webhook.cs`
|
|
328
|
-
|
|
329
|
-
**Eventos suportados**:
|
|
330
|
-
- PAYMENT_CREATED
|
|
331
|
-
- PAYMENT_RECEIVED
|
|
332
|
-
- PAYMENT_CONFIRMED
|
|
333
|
-
- PAYMENT_OVERDUE
|
|
334
|
-
- PAYMENT_REFUNDED
|
|
335
|
-
- SUBSCRIPTION_*
|
|
336
|
-
|
|
337
|
-
### clerk-config.cs
|
|
338
|
-
Configuração de autenticação Clerk.
|
|
339
|
-
|
|
340
|
-
**Localização**: `.morph/templates/integrations/clerk-config.cs`
|
|
341
|
-
|
|
342
|
-
**Features**:
|
|
343
|
-
- JWT validation
|
|
344
|
-
- User claims
|
|
345
|
-
- Middleware
|
|
346
|
-
- Blazor integration
|
|
347
|
-
|
|
348
|
-
### azure-identity-config.cs
|
|
349
|
-
Microsoft Identity Platform.
|
|
350
|
-
|
|
351
|
-
**Localização**: `.morph/templates/integrations/azure-identity-config.cs`
|
|
352
|
-
|
|
353
|
-
**Modos**:
|
|
354
|
-
- Web App (OpenID Connect)
|
|
355
|
-
- API (JWT Bearer)
|
|
356
|
-
- Blazor Server
|
|
357
|
-
- Downstream APIs (Graph)
|
|
358
|
-
|
|
359
|
-
---
|
|
360
|
-
|
|
361
|
-
## SaaS Templates
|
|
362
|
-
|
|
363
|
-
Templates para aplicações SaaS.
|
|
364
|
-
|
|
365
|
-
### subscription.cs
|
|
366
|
-
Modelo completo de assinaturas.
|
|
367
|
-
|
|
368
|
-
**Localização**: `.morph/templates/saas/subscription.cs`
|
|
369
|
-
|
|
370
|
-
**Entidades**:
|
|
371
|
-
- `Plan` - Planos com limites e features
|
|
372
|
-
- `Subscription` - Assinatura do tenant
|
|
373
|
-
- `SubscriptionPayment` - Histórico de pagamentos
|
|
374
|
-
|
|
375
|
-
**Features**:
|
|
376
|
-
- Ciclos mensais e anuais
|
|
377
|
-
- Trial period
|
|
378
|
-
- Status machine (Trial → Active → PastDue → Canceled)
|
|
379
|
-
- Integração Asaas
|
|
380
|
-
|
|
381
|
-
### tenant.cs
|
|
382
|
-
Multi-tenancy completo.
|
|
383
|
-
|
|
384
|
-
**Localização**: `.morph/templates/saas/tenant.cs`
|
|
385
|
-
|
|
386
|
-
**Entidades**:
|
|
387
|
-
- `Tenant` - Organização
|
|
388
|
-
- `TenantUser` - Usuários do tenant
|
|
389
|
-
|
|
390
|
-
**Features**:
|
|
391
|
-
- Múltiplas estratégias de resolução:
|
|
392
|
-
- Subdomínio (`acme.app.com`)
|
|
393
|
-
- Header (`X-Tenant-ID`)
|
|
394
|
-
- Route (`/tenant/{slug}`)
|
|
395
|
-
- Claim (JWT)
|
|
396
|
-
- EF Core query filters
|
|
397
|
-
- Status management
|
|
398
|
-
|
|
399
|
-
---
|
|
400
|
-
|
|
401
|
-
## Como Usar
|
|
402
|
-
|
|
403
|
-
### 1. Copiar Template
|
|
404
|
-
Os templates são automaticamente aplicados pelo MORPH durante `/morph-apply`.
|
|
405
|
-
|
|
406
|
-
### 2. Substituir Placeholders
|
|
407
|
-
Placeholders comuns:
|
|
408
|
-
- `{{Namespace}}` - Namespace do projeto
|
|
409
|
-
- `{{ServiceName}}` - Nome do serviço
|
|
410
|
-
- `{{Entity}}` - Nome da entidade
|
|
411
|
-
- `{{ComponentName}}` - Nome do componente
|
|
412
|
-
|
|
413
|
-
### 3. Customizar
|
|
414
|
-
Edite os templates em `.morph/templates/` para seu estilo.
|
|
415
|
-
|
|
416
|
-
---
|
|
417
|
-
|
|
418
|
-
*MORPH-SPEC by Polymorphism Tech*
|