@polymorphism-tech/morph-spec 4.11.1 → 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 +226 -1454
- 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/agent-complete.js +122 -0
- 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/dispatch-helpers.js +17 -0
- 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 +275 -61
- 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 -2338
- 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 +342 -211
- 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/mcp/mcp-setup.js +28 -6
- package/src/commands/phase/phase-reset.js +1 -1
- package/src/commands/project/doctor.js +10 -32
- package/src/commands/project/init.js +32 -1
- 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 -298
- 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/design-system/design-system-validator.js +11 -5
- 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 +21 -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 -213
- 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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: morph-phase-design
|
|
3
|
-
description: MORPH-SPEC Phase 2 (Design). Schema-first interactive design: reads EF models/Supabase/DB, validates findings with user, then
|
|
3
|
+
description: MORPH-SPEC Phase 2 (Design). Schema-first interactive design: reads EF models/Supabase/DB, validates findings with user, then generates VSA Blueprint based on config.architecture.style, producing spec.md, contracts.cs, schema-analysis.md, and decisions.md through a unified quality + clarification loop (score 0-100). Use after proposal phase to create technical specifications grounded in the real database schema.
|
|
4
4
|
argument-hint: "[feature-name]"
|
|
5
5
|
user-invocable: false
|
|
6
6
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Agent
|
|
7
|
-
cliVersion: "4.
|
|
7
|
+
cliVersion: "4.13.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# MORPH Design — Phase
|
|
10
|
+
# MORPH Design — Phase 3
|
|
11
11
|
|
|
12
12
|
> INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
|
|
13
13
|
|
|
@@ -15,9 +15,8 @@ Schema-first interactive design: read the real schema, validate with user, gener
|
|
|
15
15
|
|
|
16
16
|
## Prerequisites
|
|
17
17
|
|
|
18
|
-
- [ ] Phase 1 (Setup) completed
|
|
19
|
-
- [ ] Phase 1.5 (UI/UX) completed OR skipped
|
|
20
18
|
- [ ] Proposal approved by the user
|
|
19
|
+
- [ ] Phase 2 (UI/UX) completed OR skipped
|
|
21
20
|
|
|
22
21
|
## Recommended Tools
|
|
23
22
|
|
|
@@ -29,16 +28,14 @@ Schema-first interactive design: read the real schema, validate with user, gener
|
|
|
29
28
|
|--------|------|-------------|
|
|
30
29
|
| Read proposal + UI specs | **Read** output files | — |
|
|
31
30
|
| **Detect architecture** | **Read** `.morph/config/config.json` → check `architecture.style` | **Bash** `grep` |
|
|
32
|
-
| **Schema: Supabase** | **
|
|
31
|
+
| **Schema: Supabase** | **Bash** `npx supabase status` → `npx supabase db dump --local` / `psql <DB_URL>` | **Grep** `.from(` in code |
|
|
33
32
|
| **Schema: EF Core** | **Glob** `**/Entities/**/*.cs` + **Glob** `**/*Context.cs` → **Read** | **Grep** `DbSet<` |
|
|
34
33
|
| **Schema: Next.js/TS** | **Glob** `src/**/types/**/*.ts` + **Grep** `interface\|type.*=` | — |
|
|
35
|
-
| Schema: RLS policies | **
|
|
36
|
-
| Dispatch
|
|
37
|
-
| Dispatch domain-architect | **Agent** `subagent_type=domain-architect` + `prompt=agent.taskPrompt` | — |
|
|
34
|
+
| Schema: RLS policies | **Bash** `psql <DB_URL> -c "SELECT ... FROM pg_policies"` | **Read** policy files |
|
|
35
|
+
| Dispatch dotnet-senior | **Agent** `subagent_type="morph-dotnet-senior"` — agent .md file provides the prompt | — |
|
|
38
36
|
| Dispatch tech leads | **Agent** for each active agent from dispatch config | — |
|
|
39
37
|
| Research library | **Context7 MCP** `query_docs()` | **WebSearch** + **WebFetch** |
|
|
40
38
|
| Render contracts VSA | **Bash** `morph-spec template render dotnet-contracts-vsa ...` | — |
|
|
41
|
-
| Render contracts DDD | **Bash** `morph-spec template render dotnet-contracts-level{N} ...` | — |
|
|
42
39
|
| Render spec.md | **Bash** `morph-spec template render docs/spec ...` | — |
|
|
43
40
|
| Render decisions.md | **Bash** `morph-spec template render docs/decisions ...` | — |
|
|
44
41
|
| Update state | **Bash** `morph-spec state mark-output $ARGUMENTS <type>` | — |
|
|
@@ -53,6 +50,16 @@ Schema-first interactive design: read the real schema, validate with user, gener
|
|
|
53
50
|
|
|
54
51
|
## PRE-FLIGHT
|
|
55
52
|
|
|
53
|
+
## Pre-flight — Tool Availability
|
|
54
|
+
|
|
55
|
+
Check session context lines for tool readiness:
|
|
56
|
+
- `docker ✓` + `supabase ✓` → Supabase CLI method for schema analysis
|
|
57
|
+
- `docker ✗` or `supabase ✗` → Static code analysis fallback (Grep/Read)
|
|
58
|
+
- `context7 ✓` → Use for library docs when writing spec.md
|
|
59
|
+
- `context7 ✗` → WebSearch + WebFetch fallback
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
56
63
|
## MANDATORY: Session Tasks
|
|
57
64
|
|
|
58
65
|
> **BEFORE starting any design work**, analyze the workflow below and create session tasks.
|
|
@@ -75,15 +82,11 @@ Check the `"phase"` field in the output:
|
|
|
75
82
|
|
|
76
83
|
**If `"phase": "proposal"`** → execute in sequence:
|
|
77
84
|
1. `morph-spec state mark-output $ARGUMENTS proposal`
|
|
78
|
-
2. `morph-spec phase advance $ARGUMENTS` (→
|
|
79
|
-
3. `morph-spec phase advance $ARGUMENTS` (→ design)
|
|
80
|
-
|
|
81
|
-
**If `"phase": "setup"`** → execute:
|
|
82
|
-
1. `morph-spec phase advance $ARGUMENTS` (→ design)
|
|
85
|
+
2. `morph-spec phase advance $ARGUMENTS` (→ design)
|
|
83
86
|
|
|
84
87
|
**Any other value** → do not proceed — inconsistent state, report to user.
|
|
85
88
|
|
|
86
|
-
> **Rule:** Never write to `
|
|
89
|
+
> **Rule:** Never write to `2-design/` while the phase is not `design`. The hook will block and the sequence will be corrupted.
|
|
87
90
|
|
|
88
91
|
---
|
|
89
92
|
|
|
@@ -99,7 +102,7 @@ Read: .morph/features/$ARGUMENTS/0-proposal/proposal.md
|
|
|
99
102
|
| Value of `config.architecture.style` | Path |
|
|
100
103
|
|--------------------------------------|------|
|
|
101
104
|
| `"vertical-slice"` | → **VSA** (CHECKPOINT 2-VSA + VSA contracts) |
|
|
102
|
-
| any other value or absent | → **
|
|
105
|
+
| any other value or absent | → **Standard** design flow (no architecture-specific blueprint) |
|
|
103
106
|
|
|
104
107
|
If scope ≥ 20 tasks or refactor touches ≥ 5 domain files → **EnterPlanMode** before continuing.
|
|
105
108
|
|
|
@@ -113,10 +116,18 @@ If scope ≥ 20 tasks or refactor touches ≥ 5 domain files → **EnterPlanMode
|
|
|
113
116
|
|
|
114
117
|
Execute in parallel according to the stack detected in `config.json`:
|
|
115
118
|
|
|
116
|
-
**Supabase (
|
|
119
|
+
**Supabase (local Docker via CLI):**
|
|
120
|
+
|
|
121
|
+
> **Supabase CLI:** Run `npx supabase status` to get the local DB URL (port may vary across instances).
|
|
122
|
+
> Then use `npx supabase db dump --local` for full schema export, or `psql <DB_URL>` for targeted queries.
|
|
123
|
+
> Always query the **local Docker instance** — never production. Cross-reference existing schema with the proposal to avoid duplicating tables or missing foreign keys to existing data.
|
|
124
|
+
> If local Supabase is not running, rely on EF Core/TypeScript entity scanning as described below.
|
|
125
|
+
|
|
117
126
|
```
|
|
118
|
-
|
|
119
|
-
|
|
127
|
+
Bash: npx supabase status → extract DB URL
|
|
128
|
+
+ npx supabase db dump --local | grep -A20 "CREATE TABLE relevant_table"
|
|
129
|
+
+ psql <DB_URL> -c "SELECT column_name, data_type, is_nullable FROM information_schema.columns WHERE table_name = 'X'"
|
|
130
|
+
+ psql <DB_URL> -c "SELECT tablename, policyname, cmd, qual FROM pg_policies WHERE schemaname = 'public'"
|
|
120
131
|
```
|
|
121
132
|
|
|
122
133
|
**EF Core (.NET):**
|
|
@@ -134,7 +145,7 @@ Grep: "export interface|export type" → Read found files
|
|
|
134
145
|
|
|
135
146
|
### 1.2 Generate schema-analysis.md
|
|
136
147
|
|
|
137
|
-
Write `.morph/features/$ARGUMENTS/
|
|
148
|
+
Write `.morph/features/$ARGUMENTS/2-design/schema-analysis.md` with:
|
|
138
149
|
|
|
139
150
|
```markdown
|
|
140
151
|
# Schema Analysis — {Feature}
|
|
@@ -188,16 +199,16 @@ Use `AskUserQuestion`:
|
|
|
188
199
|
|
|
189
200
|
### CHECKPOINT 2-VSA — Vertical Slice Architecture
|
|
190
201
|
|
|
191
|
-
#### 2-VSA.1 Dispatch
|
|
202
|
+
#### 2-VSA.1 Dispatch dotnet-senior (VSA mode)
|
|
192
203
|
|
|
193
204
|
```bash
|
|
194
205
|
morph-spec dispatch-agents $ARGUMENTS design
|
|
195
206
|
```
|
|
196
207
|
|
|
197
|
-
Use the `
|
|
208
|
+
Use the `recommended` field to find the dotnet-senior agent. The agent `.md` file is self-contained. Call:
|
|
198
209
|
|
|
199
210
|
```
|
|
200
|
-
Agent(subagent_type=
|
|
211
|
+
Agent(subagent_type="morph-dotnet-senior", prompt="Design VSA blueprint for feature {feature}. Read .morph/features/{feature}/0-proposal/proposal.md and schema-analysis.md for context.")
|
|
201
212
|
```
|
|
202
213
|
|
|
203
214
|
The agent produces a VSA Blueprint with:
|
|
@@ -232,60 +243,6 @@ Present the generated blueprint in a readable format and use `AskUserQuestion`:
|
|
|
232
243
|
|
|
233
244
|
---
|
|
234
245
|
|
|
235
|
-
### CHECKPOINT 2-DDD — Domain-Driven Design
|
|
236
|
-
|
|
237
|
-
#### 2-DDD.1 Determine Complexity Level
|
|
238
|
-
|
|
239
|
-
Read the proposal and evaluate using the 5 detection questions in `framework/standards/architecture/ddd/complexity-levels.md`:
|
|
240
|
-
|
|
241
|
-
| Level | When to use |
|
|
242
|
-
|-------|-------------|
|
|
243
|
-
| **Level 1 (CRUD)** | Simple entities, no complex business rules, basic CRUD |
|
|
244
|
-
| **Level 2 (Business Logic)** | Domain invariants, business workflows, multiple related entities |
|
|
245
|
-
| **Level 3 (Bounded Context)** | Context isolation, integration events, distributed systems |
|
|
246
|
-
|
|
247
|
-
> If uncertain, assume Level 1 and use `AskUserQuestion` to confirm.
|
|
248
|
-
|
|
249
|
-
#### 2-DDD.2 Dispatch domain-architect
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
|
-
morph-spec dispatch-agents $ARGUMENTS design
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
Use the `taskPrompt` from the `domain-architect` agent in the result. Call:
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
Agent(subagent_type=domain-architect, prompt=<taskPrompt + contents of proposal.md + schema-analysis.md + detected level>)
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
The agent produces an Architecture Blueprint with:
|
|
262
|
-
- **Level 1:** Entities, repositories, services, DTOs
|
|
263
|
-
- **Level 2:** AggregateRoot, Value Objects, Domain Events, CQRS handlers
|
|
264
|
-
- **Level 3:** BC setup, Integration Events, Anti-corruption layer
|
|
265
|
-
|
|
266
|
-
**Parallelize** with other active agents from the dispatch config.
|
|
267
|
-
|
|
268
|
-
#### 2-DDD.3 Validate Blueprint with user
|
|
269
|
-
|
|
270
|
-
Present the generated blueprint in a readable format and use `AskUserQuestion`:
|
|
271
|
-
|
|
272
|
-
```json
|
|
273
|
-
{
|
|
274
|
-
"questions": [{
|
|
275
|
-
"header": "Blueprint OK?",
|
|
276
|
-
"question": "Planned this domain architecture for the feature. Confirm before generating spec and contracts?",
|
|
277
|
-
"multiSelect": false,
|
|
278
|
-
"options": [
|
|
279
|
-
{ "label": "Confirm blueprint", "description": "Generate spec.md and contracts with this blueprint" },
|
|
280
|
-
{ "label": "Need adjustments", "description": "Use Other to describe what to change" }
|
|
281
|
-
]
|
|
282
|
-
}]
|
|
283
|
-
}
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
- **"Confirm"** → proceed to DDD generation
|
|
287
|
-
- **"Need adjustments" / Other** → update blueprint and repeat 2-DDD.3
|
|
288
|
-
|
|
289
246
|
---
|
|
290
247
|
|
|
291
248
|
## Artifact Generation
|
|
@@ -296,11 +253,12 @@ With schema validated (Checkpoint 1) and blueprint confirmed (Checkpoint 2):
|
|
|
296
253
|
|
|
297
254
|
> Detailed structure: `references/spec-authoring-guide.md`
|
|
298
255
|
|
|
299
|
-
|
|
256
|
+
> **MCP:** Before writing spec.md, use **Context7 MCP** (`resolve-library-id` → `query-docs`) to fetch current API docs for libraries referenced in the proposal (e.g., FluentValidation, MediatR, TanStack Query). This ensures spec references correct method signatures and patterns. If Context7 is not available, use **WebSearch** + **WebFetch** to look up the official documentation.
|
|
257
|
+
|
|
258
|
+
Read the spec-authoring-guide first, then create `.morph/features/$ARGUMENTS/2-design/spec.md` with:
|
|
300
259
|
- Overview, Functional Requirements (FR001...) with measurable acceptance criteria
|
|
301
260
|
- Non-Functional Requirements, Data Model
|
|
302
261
|
- **VSA:** section `## Architecture Style: Vertical Slice` with slices and operations
|
|
303
|
-
- **DDD:** section `## Domain Complexity` with level (1/2/3) and justification
|
|
304
262
|
- Infrastructure Requirements (if applicable)
|
|
305
263
|
|
|
306
264
|
### Generate contracts — VSA
|
|
@@ -310,7 +268,7 @@ Read the spec-authoring-guide first, then create `.morph/features/$ARGUMENTS/1-d
|
|
|
310
268
|
```bash
|
|
311
269
|
morph-spec template render \
|
|
312
270
|
dotnet-contracts-vsa \
|
|
313
|
-
.morph/features/$ARGUMENTS/
|
|
271
|
+
.morph/features/$ARGUMENTS/2-design/contracts.cs \
|
|
314
272
|
'{
|
|
315
273
|
"FEATURE_NAME": "$ARGUMENTS",
|
|
316
274
|
"NAMESPACE": "{ProjectNamespace}",
|
|
@@ -328,42 +286,19 @@ After rendering, fill in the `// placeholder:` sections with real fields from sc
|
|
|
328
286
|
- `{Entity}Errors` static shared across all slices
|
|
329
287
|
- CancellationToken in all async methods
|
|
330
288
|
|
|
331
|
-
### Generate contracts — DDD
|
|
332
|
-
|
|
333
|
-
**Mandatory source:** fields from `schema-analysis.md` + components from the DDD Blueprint.
|
|
334
|
-
|
|
335
|
-
```bash
|
|
336
|
-
# Replace {N} with the detected level (1, 2, or 3):
|
|
337
|
-
morph-spec template render \
|
|
338
|
-
dotnet-contracts-level{N} \
|
|
339
|
-
.morph/features/$ARGUMENTS/1-design/contracts.cs \
|
|
340
|
-
'{
|
|
341
|
-
"FEATURE_NAME": "$ARGUMENTS",
|
|
342
|
-
"NAMESPACE": "{ProjectNamespace}",
|
|
343
|
-
"DATE": "{{TODAY}}"
|
|
344
|
-
}'
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
After rendering, fill in the `// placeholder:` sections with real fields from schema-analysis.md.
|
|
348
|
-
|
|
349
|
-
**Mandatory DDD patterns:**
|
|
350
|
-
- Level 1: repository interfaces + service with mapped methods
|
|
351
|
-
- Level 2: AggregateRoot with invariants + immutable Value Objects + Domain Events
|
|
352
|
-
- Level 3: adds Integration Events + Bounded Context boundary
|
|
353
|
-
|
|
354
289
|
### Stack adaptation for contracts
|
|
355
290
|
|
|
356
|
-
For TypeScript/Next.js projects, generate `contracts.ts` instead of `contracts.cs`. Use TypeScript interfaces with the same
|
|
291
|
+
For TypeScript/Next.js projects, generate `contracts.ts` instead of `contracts.cs`. Use TypeScript interfaces with the same VSA patterns adapted to the language (e.g., `readonly` fields, union types for status enums, typed event interfaces).
|
|
357
292
|
|
|
358
293
|
### Generate decisions.md
|
|
359
294
|
|
|
360
295
|
```bash
|
|
361
296
|
morph-spec template render docs/decisions \
|
|
362
|
-
.morph/features/$ARGUMENTS/
|
|
297
|
+
.morph/features/$ARGUMENTS/2-design/decisions.md \
|
|
363
298
|
'{"FEATURE_NAME": "$ARGUMENTS", "DATE": "{{TODAY}}", "decisions": []}'
|
|
364
299
|
```
|
|
365
300
|
|
|
366
|
-
Mandatory ADRs: architecture choice (VSA
|
|
301
|
+
Mandatory ADRs: architecture choice (VSA + justification), UI library (if UI/UX phase ran), external integrations, Azure resources with cost estimates.
|
|
367
302
|
|
|
368
303
|
---
|
|
369
304
|
|
|
@@ -375,7 +310,7 @@ After generating artifacts, evaluate the design with the **Quality Score (0–10
|
|
|
375
310
|
|-----------|-----|----------------------|
|
|
376
311
|
| **Schema fidelity** | 25 | All fields in contracts have traceable origin in schema-analysis.md — zero guessed |
|
|
377
312
|
| **Functional coverage** | 20 | All FRs from the proposal are in spec with measurable acceptance criteria |
|
|
378
|
-
| **Blueprint complete** | 20 | **VSA:** all slices have handler, validator (except GetAll), endpoint and errors
|
|
313
|
+
| **Blueprint complete** | 20 | **VSA:** all slices have handler, validator (except GetAll), endpoint and errors |
|
|
379
314
|
| **External integrations** | 20 | APIs/services with payload, error format and retry policy documented |
|
|
380
315
|
| **Infra / costs** | 15 | Azure resources estimated with cost, or "N/A" explicitly documented |
|
|
381
316
|
|
|
@@ -406,7 +341,6 @@ Typical questions by dimension:
|
|
|
406
341
|
| Schema fidelity | "The `metadata` field (JSONB) — what is its structure? Which keys?" |
|
|
407
342
|
| Functional coverage | "FR003 says 'notify user' — by email, push, or both?" |
|
|
408
343
|
| Blueprint VSA | "Should the CreateOrder slice trigger an email job or is it synchronous?" |
|
|
409
|
-
| Blueprint DDD | "Should `Place()` on OrderAggregate emit `OrderPlacedEvent`?" |
|
|
410
344
|
| Integrations | "Does the payment API use webhook or polling to confirm?" |
|
|
411
345
|
| Infra/costs | "Does this feature need Azure storage? Which tier?" |
|
|
412
346
|
|
|
@@ -421,7 +355,7 @@ Maximum 3 technical questions per call. In the last call of each round, always i
|
|
|
421
355
|
"multiSelect": false,
|
|
422
356
|
"options": [
|
|
423
357
|
{ "label": "Continue refining", "description": "More open questions identified" },
|
|
424
|
-
{ "label": "Finalize design", "description": "Proceed to
|
|
358
|
+
{ "label": "Finalize design", "description": "Proceed to Plan phase with current design" }
|
|
425
359
|
]
|
|
426
360
|
}
|
|
427
361
|
```
|
|
@@ -459,10 +393,10 @@ morph-spec state set $ARGUMENTS costs.estimated {X.XX}
|
|
|
459
393
|
{
|
|
460
394
|
"questions": [{
|
|
461
395
|
"header": "Approval",
|
|
462
|
-
"question": "Design generated. Approve to continue to
|
|
396
|
+
"question": "Design generated. Approve to continue to Plan?",
|
|
463
397
|
"multiSelect": false,
|
|
464
398
|
"options": [
|
|
465
|
-
{ "label": "Approve and continue", "description": "Advance to
|
|
399
|
+
{ "label": "Approve and continue", "description": "Advance to Plan phase" },
|
|
466
400
|
{ "label": "I have feedback", "description": "Describe what to change (Other)" }
|
|
467
401
|
]
|
|
468
402
|
}]
|
|
@@ -478,16 +412,16 @@ morph-spec state set $ARGUMENTS costs.estimated {X.XX}
|
|
|
478
412
|
|
|
479
413
|
## Generated Outputs
|
|
480
414
|
|
|
481
|
-
- `.morph/features/$ARGUMENTS/
|
|
482
|
-
- `.morph/features/$ARGUMENTS/
|
|
483
|
-
- `.morph/features/$ARGUMENTS/
|
|
484
|
-
- `.morph/features/$ARGUMENTS/
|
|
415
|
+
- `.morph/features/$ARGUMENTS/2-design/schema-analysis.md` — Real schema mapped and validated
|
|
416
|
+
- `.morph/features/$ARGUMENTS/2-design/spec.md` — Complete technical specification
|
|
417
|
+
- `.morph/features/$ARGUMENTS/2-design/contracts.cs` (or `.ts` for TypeScript projects) — Contracts based on real schema (VSA)
|
|
418
|
+
- `.morph/features/$ARGUMENTS/2-design/decisions.md` — Documented ADRs
|
|
485
419
|
|
|
486
420
|
## Advancement Criteria
|
|
487
421
|
|
|
488
422
|
- [x] Architecture style detected from `config.architecture.style`
|
|
489
423
|
- [x] Schema validated by user (Checkpoint 1)
|
|
490
|
-
- [x] Blueprint confirmed by user (Checkpoint 2-VSA
|
|
424
|
+
- [x] Blueprint confirmed by user (Checkpoint 2-VSA)
|
|
491
425
|
- [x] Quality score ≥ 85 OR user finalized
|
|
492
426
|
- [x] All field names in contracts traceable to schema-analysis.md
|
|
493
427
|
- [x] State updated
|
|
@@ -498,12 +432,12 @@ morph-spec state set $ARGUMENTS costs.estimated {X.XX}
|
|
|
498
432
|
<!-- morph-outputs:design -->
|
|
499
433
|
| Output | Caminho |
|
|
500
434
|
|--------|---------|
|
|
501
|
-
| `schemaAnalysis` | `.morph/features/{feature}/
|
|
502
|
-
| `spec` | `.morph/features/{feature}/
|
|
503
|
-
| `contracts` | `.morph/features/{feature}/
|
|
504
|
-
| `contractsTs` | `.morph/features/{feature}/
|
|
505
|
-
| `contractsVsa` | `.morph/features/{feature}/
|
|
506
|
-
| `decisions` | `.morph/features/{feature}/
|
|
435
|
+
| `schemaAnalysis` | `.morph/features/{feature}/2-design/schema-analysis.md` |
|
|
436
|
+
| `spec` | `.morph/features/{feature}/2-design/spec.md` |
|
|
437
|
+
| `contracts` | `.morph/features/{feature}/2-design/contracts.cs` |
|
|
438
|
+
| `contractsTs` | `.morph/features/{feature}/2-design/contracts.ts` |
|
|
439
|
+
| `contractsVsa` | `.morph/features/{feature}/2-design/contracts-vsa.cs` |
|
|
440
|
+
| `decisions` | `.morph/features/{feature}/2-design/decisions.md` |
|
|
507
441
|
<!-- /morph-outputs -->
|
|
508
442
|
|
|
509
|
-
Continue automatically to
|
|
443
|
+
Continue automatically to Plan phase after approval.
|
|
@@ -5,62 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
## Caminho
|
|
8
|
+
## Caminho: `dotnet-senior` (VSA)
|
|
9
9
|
|
|
10
|
-
**Quando usar:**
|
|
11
|
-
|
|
12
|
-
**Ref:** `framework/standards/architecture/ddd/complexity-levels.md`
|
|
13
|
-
|
|
14
|
-
**Obtenha o taskPrompt do dispatch config** (`morph-spec dispatch-agents $ARGUMENTS design`) e use o Task tool:
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
[Task tool — domain-architect]
|
|
18
|
-
Prompt (do dispatch config, enriquecido com conteúdo da proposta):
|
|
19
|
-
|
|
20
|
-
Você é o Domain Architect da feature '$ARGUMENTS'.
|
|
21
|
-
|
|
22
|
-
Proposta da feature:
|
|
23
|
-
[conteúdo de .morph/features/$ARGUMENTS/0-proposal/proposal.md]
|
|
24
|
-
|
|
25
|
-
Standards de referência:
|
|
26
|
-
[.morph/framework/standards/architecture/ddd/complexity-levels.md]
|
|
27
|
-
|
|
28
|
-
Sua tarefa — responda cada ponto com "SIM" ou "NÃO" e cite trecho da proposta:
|
|
29
|
-
1. A entidade principal tem estados com transições? (ex: Draft → Confirmed → Shipped)
|
|
30
|
-
2. Existem invariants de negócio que impedem operações? (ex: "só cancela se Ativo")
|
|
31
|
-
3. Há cálculos derivados sobre a entidade? (ex: Total, Saldo, Desconto)
|
|
32
|
-
4. Outros módulos precisam reagir a mudanças? (Domain Events com consumidores reais)
|
|
33
|
-
5. A proposta declara explicitamente Bounded Context ou múltiplos domínios conflitantes?
|
|
34
|
-
|
|
35
|
-
Regra de decisão:
|
|
36
|
-
→ Todas "NÃO": Nível 1 (CRUD simples)
|
|
37
|
-
→ Alguma de 1-4 "SIM": Nível 2 (Business Logic com AggregateRoot)
|
|
38
|
-
→ 5 "SIM" OU múltiplos domínios com modelos conflitantes: Nível 3 (Bounded Context)
|
|
39
|
-
|
|
40
|
-
Retorne:
|
|
41
|
-
- Nível detectado (1, 2 ou 3)
|
|
42
|
-
- Justificativa com citações da proposta
|
|
43
|
-
- Para Nível 2+: Aggregate Blueprint inicial (entidade principal, value objects, invariants)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**Após receber o resultado:**
|
|
47
|
-
- Documente no spec.md (seção `## Domain Complexity`)
|
|
48
|
-
- **Para Nível 2+:** Preencha o `## Aggregate Blueprint` no spec.md
|
|
49
|
-
- **Para Nível 3:** Adicione `BOUNDED_CONTEXT` como variável ao renderizar o template
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Caminho B: `vsa-architect` (VSA)
|
|
54
|
-
|
|
55
|
-
**Quando usar:** Config com `architecture.style: "vertical-slice"`.
|
|
10
|
+
**Quando usar:** Default architecture style (Vertical Slice Architecture).
|
|
56
11
|
|
|
57
12
|
**Ref:** `framework/standards/architecture/vertical-slice/vertical-slice.md`
|
|
58
13
|
|
|
59
|
-
**
|
|
14
|
+
**Use o Agent tool com o subagentType do dispatch recommendation:**
|
|
60
15
|
|
|
61
16
|
```
|
|
62
|
-
|
|
63
|
-
Prompt (
|
|
17
|
+
Agent(subagent_type="morph-dotnet-senior", prompt="...")
|
|
18
|
+
Prompt (enriquecido com conteúdo da proposta):
|
|
64
19
|
|
|
65
20
|
Você é o VSA Specialist da feature '$ARGUMENTS'.
|
|
66
21
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| **Stack** | blazor-azure |
|
|
11
11
|
| **Complexity** | Medium |
|
|
12
12
|
| **Estimated Cost** | ~$5.50/month |
|
|
13
|
-
| **Agents** | Core: All / Specialists:
|
|
13
|
+
| **Agents** | Core: All / Specialists: dotnet-senior, nextjs-expert, infra-architect |
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|