@polymorphism-tech/morph-spec 7.9.0 → 7.9.2

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.
Files changed (171) hide show
  1. package/README.md +4 -4
  2. package/bin/validate.js +379 -379
  3. package/claude-plugin.json +1 -1
  4. package/docs/CHEATSHEET.md +6 -2
  5. package/docs/QUICKSTART.md +4 -4
  6. package/framework/CLAUDE.md +1 -1
  7. package/framework/MORPH.md +2 -2
  8. package/framework/commands/commit.md +166 -166
  9. package/framework/commands/morph-infra.md +215 -215
  10. package/framework/commands/morph-preflight.md +205 -205
  11. package/framework/commands/morph-troubleshoot.md +124 -124
  12. package/framework/hooks/claude-code/statusline.py +679 -679
  13. package/framework/hooks/claude-code/statusline.sh +11 -11
  14. package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
  15. package/framework/hooks/git/pre-commit/agents.sh +25 -25
  16. package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
  17. package/framework/hooks/git/pre-commit/specs.sh +50 -50
  18. package/framework/hooks/git/pre-push/run-tests.sh +44 -44
  19. package/framework/hooks/shared/activity-logger.js +160 -160
  20. package/framework/hooks/shared/hook-response.js +45 -45
  21. package/framework/hooks/shared/payload-utils.js +78 -78
  22. package/framework/hooks/shared/stdin-reader.js +26 -26
  23. package/framework/rubrics/backend.json +41 -41
  24. package/framework/rules/ai-agents-standards.md +45 -45
  25. package/framework/rules/dotnet-templates.md +86 -86
  26. package/framework/rules/frontend-standards.md +13 -13
  27. package/framework/rules/infrastructure-standards.md +27 -27
  28. package/framework/rules/neon-standards.md +25 -25
  29. package/framework/rules/nextjs-standards.md +20 -20
  30. package/framework/rules/nextjs-templates.md +40 -40
  31. package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
  32. package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
  33. package/framework/skills/core/morph-apply/SKILL.md +13 -8
  34. package/framework/skills/core/morph-brainstorming/SKILL.md +1 -1
  35. package/framework/skills/core/morph-eval/SKILL.md +1 -1
  36. package/framework/skills/core/morph-implement/SKILL.md +13 -8
  37. package/framework/skills/core/morph-plan/SKILL.md +1 -1
  38. package/framework/skills/core/morph-proposal/SKILL.md +1 -1
  39. package/framework/skills/core/morph-review/SKILL.md +10 -7
  40. package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
  41. package/framework/skills/core/morph-standards/SKILL.md +1 -1
  42. package/framework/standards/ai-agents/agent-session.md +160 -160
  43. package/framework/standards/ai-agents/batching.md +193 -193
  44. package/framework/standards/ai-agents/context-providers.md +188 -188
  45. package/framework/standards/ai-agents/mcp-server.md +250 -250
  46. package/framework/standards/ai-agents/mcp-tools.md +197 -197
  47. package/framework/standards/ai-agents/middleware-patterns.md +207 -207
  48. package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
  49. package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
  50. package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
  51. package/framework/standards/ai-agents/modalities-vision.md +201 -201
  52. package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
  53. package/framework/standards/ai-agents/production.md +275 -275
  54. package/framework/standards/ai-agents/prompts-in-db.md +214 -214
  55. package/framework/standards/ai-agents/providers/model-registry.md +158 -158
  56. package/framework/standards/ai-agents/service-tier-flex.md +135 -135
  57. package/framework/standards/ai-agents/structured-output.md +249 -249
  58. package/framework/standards/ai-agents/sweet-spot.md +109 -109
  59. package/framework/templates/IDE-SNIPPETS.md +262 -262
  60. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
  61. package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
  62. package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
  63. package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
  64. package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
  65. package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
  66. package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
  67. package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
  68. package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -281
  69. package/framework/templates/code/dotnet/database/migration.cs +83 -83
  70. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
  71. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
  72. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
  73. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
  74. package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
  75. package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
  76. package/framework/templates/code/typescript/contracts.ts +167 -167
  77. package/framework/templates/docs/clarifications.md +253 -253
  78. package/framework/templates/docs/schema-analysis.md +119 -119
  79. package/framework/templates/docs/ui-components.md +52 -52
  80. package/framework/templates/docs/ui-design-system.md +76 -76
  81. package/framework/templates/docs/ui-flows.md +167 -167
  82. package/framework/templates/docs/ui-mockups.md +98 -98
  83. package/framework/templates/feature/decisions.md +122 -122
  84. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
  85. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
  86. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
  87. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
  88. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
  89. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
  90. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
  91. package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
  92. package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -50
  93. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  94. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  95. package/framework/templates/infrastructure/github/README.md +56 -56
  96. package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
  97. package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
  98. package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
  99. package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
  100. package/framework/templates/integrations/asaas-client.cs +387 -387
  101. package/framework/templates/integrations/asaas-webhook.cs +351 -351
  102. package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
  103. package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
  104. package/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -113
  105. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
  106. package/framework/templates/project/validate.js +120 -120
  107. package/framework/templates/state.template.json +17 -17
  108. package/framework/templates/ui/design-system.css +226 -226
  109. package/package.json +2 -1
  110. package/src/commands/dashboard/dashboard.js +53 -53
  111. package/src/commands/index.js +13 -13
  112. package/src/commands/mcp/mcp-setup.js +519 -519
  113. package/src/commands/project/checkpoint.js +209 -209
  114. package/src/commands/project/doctor.js +1 -1
  115. package/src/commands/project/update.js +4 -1
  116. package/src/core/state/phase-state-machine.js +197 -197
  117. package/src/core/templates/template-renderer.js +477 -477
  118. package/src/dashboard/app/components/DetailPanel.jsx +11 -11
  119. package/src/dashboard/app/components/FlowGraph.jsx +17 -17
  120. package/src/dashboard/app/components/SearchFilter.jsx +22 -22
  121. package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
  122. package/src/dashboard/app/main.jsx +13 -13
  123. package/src/dashboard/app/pages/AgentMap.jsx +370 -370
  124. package/src/dashboard/app/pages/HookInspector.jsx +418 -418
  125. package/src/dashboard/app/pages/LiveState.jsx +239 -239
  126. package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
  127. package/src/dashboard/app/pages/RulesMap.jsx +273 -273
  128. package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
  129. package/src/dashboard/app/pages/Standards.jsx +332 -332
  130. package/src/dashboard/app/styles/index.css +47 -47
  131. package/src/dashboard/index.html +12 -12
  132. package/src/dashboard/package.json +24 -24
  133. package/src/dashboard/scanner/hooks-scanner.js +41 -41
  134. package/src/dashboard/scanner/phases-scanner.js +15 -15
  135. package/src/dashboard/scanner/rubrics-scanner.js +12 -12
  136. package/src/dashboard/scanner/rules-scanner.js +37 -37
  137. package/src/dashboard/scanner/skills-scanner.js +43 -43
  138. package/src/dashboard/scanner/squads-scanner.js +13 -13
  139. package/src/dashboard/scanner/standards-scanner.js +26 -26
  140. package/src/dashboard/vite-plugin-morph-data.js +17 -17
  141. package/src/dashboard/vite.config.js +24 -24
  142. package/src/lib/agents/metrics-aggregator.js +56 -56
  143. package/src/lib/agents/metrics-calculator.js +125 -125
  144. package/src/lib/agents/output-collector.js +73 -73
  145. package/src/lib/detectors/claude-config-detector.js +152 -152
  146. package/src/lib/detectors/design-system-detector.js +231 -231
  147. package/src/lib/detectors/index.js +217 -217
  148. package/src/lib/generators/architecture-scanner.js +639 -639
  149. package/src/lib/generators/design-system-generator.js +508 -508
  150. package/src/lib/generators/index.js +13 -13
  151. package/src/lib/generators/settings-generator.js +209 -209
  152. package/src/lib/hooks/hook-executor.js +167 -167
  153. package/src/lib/installers/mcp-installer.js +719 -719
  154. package/src/lib/tasks/task-classifier.js +30 -30
  155. package/src/lib/tasks/task-parser.js +209 -209
  156. package/src/lib/tasks/test-runner.js +81 -81
  157. package/src/lib/validators/architecture/architecture-validator.js +259 -259
  158. package/src/lib/validators/checkpoint-persistence.js +39 -39
  159. package/src/lib/validators/contracts/contract-compliance-validator.js +274 -274
  160. package/src/lib/validators/css/css-validator.js +340 -340
  161. package/src/lib/validators/packages/package-validator.js +347 -347
  162. package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
  163. package/src/lib/validators/shared/issue-counter.js +14 -14
  164. package/src/lib/validators/validation-runner.js +349 -349
  165. package/src/scripts/setup-infra.js +385 -385
  166. package/src/utils/agent-id-mapper.js +11 -11
  167. package/src/utils/claude-settings-manager.js +300 -300
  168. package/src/utils/skills-installer.js +174 -174
  169. package/src/utils/version-checker.js +2 -2
  170. package/framework/templates/.idea/morph-templates.xml +0 -92
  171. package/framework/templates/.vscode/morph-templates.code-snippets +0 -186
@@ -1,41 +1,41 @@
1
- {
2
- "id": "backend",
3
- "version": "1.1.0",
4
- "description": "Backend-focused rubric. Higher weight on architecture, security, and package health. Deterministic-validator rubric — approve threshold aligned to the single bar 9 from MORPH.md §0.",
5
- "categories": {
6
- "functionality": {
7
- "weight": 0.25,
8
- "validators": ["contract-compliance"],
9
- "description": "Core feature correctness and contract compliance"
10
- },
11
- "code_quality": {
12
- "weight": 0.25,
13
- "validators": ["architecture"],
14
- "description": "Architecture patterns, dependency direction, and code structure"
15
- },
16
- "design_ui": {
17
- "weight": 0.05,
18
- "validators": ["design-system", "css", "contrast", "nextjs-component"],
19
- "description": "Design system compliance (minimal weight for backend projects)"
20
- },
21
- "security": {
22
- "weight": 0.15,
23
- "validators": [],
24
- "description": "Security posture (agent-evaluated, no automated validator)"
25
- },
26
- "packages": {
27
- "weight": 0.20,
28
- "validators": ["packages"],
29
- "description": "Dependency health, version compatibility, and deprecated packages"
30
- },
31
- "maf_compliance": {
32
- "weight": 0.10,
33
- "validators": [],
34
- "description": "MAF agent compliance (agent-evaluated, applies only when the feature touches AI agents): Microsoft.Agents.AI GA packages used; Model Registry alias referenced not hardcoded models; structured output for pipelined agents; prompts from DB not hardcoded; no Semantic Kernel; no hosted agent services."
35
- }
36
- },
37
- "thresholds": {
38
- "approve": 9.0,
39
- "retry": 6.0
40
- }
41
- }
1
+ {
2
+ "id": "backend",
3
+ "version": "1.1.0",
4
+ "description": "Backend-focused rubric. Higher weight on architecture, security, and package health. Deterministic-validator rubric — approve threshold aligned to the single bar 9 from MORPH.md §0.",
5
+ "categories": {
6
+ "functionality": {
7
+ "weight": 0.25,
8
+ "validators": ["contract-compliance"],
9
+ "description": "Core feature correctness and contract compliance"
10
+ },
11
+ "code_quality": {
12
+ "weight": 0.25,
13
+ "validators": ["architecture"],
14
+ "description": "Architecture patterns, dependency direction, and code structure"
15
+ },
16
+ "design_ui": {
17
+ "weight": 0.05,
18
+ "validators": ["design-system", "css", "contrast", "nextjs-component"],
19
+ "description": "Design system compliance (minimal weight for backend projects)"
20
+ },
21
+ "security": {
22
+ "weight": 0.15,
23
+ "validators": [],
24
+ "description": "Security posture (agent-evaluated, no automated validator)"
25
+ },
26
+ "packages": {
27
+ "weight": 0.20,
28
+ "validators": ["packages"],
29
+ "description": "Dependency health, version compatibility, and deprecated packages"
30
+ },
31
+ "maf_compliance": {
32
+ "weight": 0.10,
33
+ "validators": [],
34
+ "description": "MAF agent compliance (agent-evaluated, applies only when the feature touches AI agents): Microsoft.Agents.AI GA packages used; Model Registry alias referenced not hardcoded models; structured output for pipelined agents; prompts from DB not hardcoded; no Semantic Kernel; no hosted agent services."
35
+ }
36
+ },
37
+ "thresholds": {
38
+ "approve": 9.0,
39
+ "retry": 6.0
40
+ }
41
+ }
@@ -1,45 +1,45 @@
1
- ---
2
- paths:
3
- - "**/Agents/**"
4
- - "**/agents/**"
5
- - "**/*Agent*.cs"
6
- stacks:
7
- - dotnet
8
- ---
9
-
10
- # Microsoft Agent Framework Standards
11
-
12
- > **Layer 0/1 — auto-carregados.** São os standards core: aplicam-se a praticamente todo
13
- > agente MAF. Carregue-os sempre que tocar código de agentes.
14
-
15
- @.morph/framework/standards/ai-agents/setup.md
16
- @.morph/framework/standards/ai-agents/sweet-spot.md
17
- @.morph/framework/standards/ai-agents/providers/model-registry.md
18
- @.morph/framework/standards/ai-agents/structured-output.md
19
- @.morph/framework/standards/ai-agents/multi-agent-patterns.md
20
- @.morph/framework/standards/ai-agents/prompts-in-db.md
21
- @.morph/framework/standards/ai-agents/rag-custom-pgvector.md
22
- @.morph/framework/standards/ai-agents/middleware-patterns.md
23
- @.morph/framework/standards/ai-agents/workflows.md
24
- @.morph/framework/standards/ai-agents/production.md
25
-
26
- ---
27
-
28
- > **Layer 2 — sob demanda (NÃO auto-carregados).** São standards de modalidade, otimização e
29
- > MCP: relevantes apenas quando a feature usa especificamente esse recurso. Carregue via
30
- > `morph-standards` quando uma keyword corresponder — manter fora do auto-load preserva o
31
- > context window para o trabalho que importa.
32
-
33
- | Standard | Carregue quando a feature envolve |
34
- |----------|-----------------------------------|
35
- | `ai-agents/modalities-vision.md` | imagem → texto (OCR, análise de documento, visão) |
36
- | `ai-agents/modalities-image-gen.md` | texto → imagem (geração de mockups, posts, assets) |
37
- | `ai-agents/modalities-speech-to-text.md` | áudio → texto (transcrição, legendagem) |
38
- | `ai-agents/modalities-text-to-speech.md` | texto → áudio (síntese de voz) |
39
- | `ai-agents/batching.md` | processar N prompts independentes em lote (Batch API) |
40
- | `ai-agents/service-tier-flex.md` | otimização de custo em jobs assíncronos (tier flex) |
41
- | `ai-agents/agent-session.md` | agentes conversacionais com histórico/reducers |
42
- | `ai-agents/context-providers.md` | injeção dinâmica de contexto (`AIContextProvider`) |
43
- | `ai-agents/mcp-tools.md` | agente MAF consome um MCP server externo |
44
- | `ai-agents/mcp-server.md` | projeto expõe capacidades como MCP server |
45
- | `integration/mcp/mcp-tools.md` | integração MCP cross-domain (fora do escopo MAF) |
1
+ ---
2
+ paths:
3
+ - "**/Agents/**"
4
+ - "**/agents/**"
5
+ - "**/*Agent*.cs"
6
+ stacks:
7
+ - dotnet
8
+ ---
9
+
10
+ # Microsoft Agent Framework Standards
11
+
12
+ > **Layer 0/1 — auto-carregados.** São os standards core: aplicam-se a praticamente todo
13
+ > agente MAF. Carregue-os sempre que tocar código de agentes.
14
+
15
+ @.morph/framework/standards/ai-agents/setup.md
16
+ @.morph/framework/standards/ai-agents/sweet-spot.md
17
+ @.morph/framework/standards/ai-agents/providers/model-registry.md
18
+ @.morph/framework/standards/ai-agents/structured-output.md
19
+ @.morph/framework/standards/ai-agents/multi-agent-patterns.md
20
+ @.morph/framework/standards/ai-agents/prompts-in-db.md
21
+ @.morph/framework/standards/ai-agents/rag-custom-pgvector.md
22
+ @.morph/framework/standards/ai-agents/middleware-patterns.md
23
+ @.morph/framework/standards/ai-agents/workflows.md
24
+ @.morph/framework/standards/ai-agents/production.md
25
+
26
+ ---
27
+
28
+ > **Layer 2 — sob demanda (NÃO auto-carregados).** São standards de modalidade, otimização e
29
+ > MCP: relevantes apenas quando a feature usa especificamente esse recurso. Carregue via
30
+ > `morph-standards` quando uma keyword corresponder — manter fora do auto-load preserva o
31
+ > context window para o trabalho que importa.
32
+
33
+ | Standard | Carregue quando a feature envolve |
34
+ |----------|-----------------------------------|
35
+ | `ai-agents/modalities-vision.md` | imagem → texto (OCR, análise de documento, visão) |
36
+ | `ai-agents/modalities-image-gen.md` | texto → imagem (geração de mockups, posts, assets) |
37
+ | `ai-agents/modalities-speech-to-text.md` | áudio → texto (transcrição, legendagem) |
38
+ | `ai-agents/modalities-text-to-speech.md` | texto → áudio (síntese de voz) |
39
+ | `ai-agents/batching.md` | processar N prompts independentes em lote (Batch API) |
40
+ | `ai-agents/service-tier-flex.md` | otimização de custo em jobs assíncronos (tier flex) |
41
+ | `ai-agents/agent-session.md` | agentes conversacionais com histórico/reducers |
42
+ | `ai-agents/context-providers.md` | injeção dinâmica de contexto (`AIContextProvider`) |
43
+ | `ai-agents/mcp-tools.md` | agente MAF consome um MCP server externo |
44
+ | `ai-agents/mcp-server.md` | projeto expõe capacidades como MCP server |
45
+ | `integration/mcp/mcp-tools.md` | integração MCP cross-domain (fora do escopo MAF) |
@@ -1,86 +1,86 @@
1
- ---
2
- paths:
3
- - "**/*.cs"
4
- - "**/*.csproj"
5
- stacks:
6
- - dotnet
7
- ---
8
-
9
- # .NET Code Templates
10
-
11
- When implementing .NET features, use these templates as reference patterns.
12
- Read the template file to see the exact pattern, then generate code following it.
13
-
14
- ## Scaffold (preferred for new slices)
15
-
16
- **Always use scaffold for new VSA slices — never create feature files manually.**
17
-
18
- ```bash
19
- morph-spec scaffold dotnet <feature> <slice-name> [--namespace <ns>] [--dry-run]
20
- ```
21
-
22
- Examples:
23
- ```bash
24
- morph-spec scaffold dotnet book create-book
25
- morph-spec scaffold dotnet book get-book-by-id
26
- morph-spec scaffold dotnet book update-book
27
- morph-spec scaffold dotnet book delete-book
28
- morph-spec scaffold dotnet book get-all-books
29
- ```
30
-
31
- Generates 7 files: endpoint, handler, request, response, validator + entity, errors (shared at feature level). Entity/errors auto-skipped if they already exist.
32
-
33
- **Only use `template render` for individual files when adding to an existing slice.**
34
-
35
- ## VSA Feature Templates (Vertical Slice Architecture)
36
-
37
- For each new feature slice, follow the patterns in these templates:
38
-
39
- | Template | Path | Purpose |
40
- |----------|------|---------|
41
- | Endpoint | `.morph/framework/templates/code/dotnet/feature/endpoint.cs.hbs` | IApiEndpoint with MapEndpoint() |
42
- | Handler | `.morph/framework/templates/code/dotnet/feature/handler.cs.hbs` | IHandler<TRequest, TResponse> |
43
- | Request | `.morph/framework/templates/code/dotnet/feature/request.cs.hbs` | Sealed record DTO |
44
- | Response | `.morph/framework/templates/code/dotnet/feature/response.cs.hbs` | Sealed record DTO |
45
- | Validator | `.morph/framework/templates/code/dotnet/feature/validator.cs.hbs` | FluentValidation AbstractValidator |
46
- | Entity | `.morph/framework/templates/code/dotnet/feature/entity.cs.hbs` | Domain entity |
47
- | Errors | `.morph/framework/templates/code/dotnet/feature/errors.cs.hbs` | Error factory |
48
-
49
- ## Base Abstractions (read once per project setup)
50
-
51
- | Template | Path | Purpose |
52
- |----------|------|---------|
53
- | IHandler | `.morph/framework/templates/code/dotnet/abstractions/handler.cs` | Handler interface |
54
- | Result<T> | `.morph/framework/templates/code/dotnet/abstractions/result.cs` | Railway-oriented result |
55
- | Error | `.morph/framework/templates/code/dotnet/abstractions/error.cs` | Error types |
56
- | IApiEndpoint | `.morph/framework/templates/code/dotnet/abstractions/api-endpoint.cs` | Endpoint interface |
57
-
58
- ## Extensions & Pipeline (read once per project setup)
59
-
60
- | Template | Path | Purpose |
61
- |----------|------|---------|
62
- | Handler Registration | `.morph/framework/templates/code/dotnet/extensions/handler-registration.cs` | Scrutor auto-discovery |
63
- | Map Endpoints | `.morph/framework/templates/code/dotnet/extensions/map-endpoints.cs` | IApiEndpoint discovery |
64
- | Result Extensions | `.morph/framework/templates/code/dotnet/extensions/result-extensions.cs` | Match() pattern |
65
- | Database Config | `.morph/framework/templates/code/dotnet/extensions/database-extensions.cs` | EF Core + Npgsql |
66
- | Health Checks | `.morph/framework/templates/code/dotnet/extensions/health-checks.cs` | Health endpoints |
67
- | Validation Decorator | `.morph/framework/templates/code/dotnet/pipelines/validation-decorator.cs` | FluentValidation pipeline |
68
- | Logging Decorator | `.morph/framework/templates/code/dotnet/pipelines/logging-decorator.cs` | Duration tracking |
69
- | Exception Handler | `.morph/framework/templates/code/dotnet/exceptions/exception-handler.cs` | ProblemDetails |
70
- | API Tags | `.morph/framework/templates/code/dotnet/constants/api-tags.cs` | Scalar/Swagger groups |
71
-
72
- ## Specialized Templates
73
-
74
- | Template | Path | Purpose |
75
- |----------|------|---------|
76
- | Migration | `.morph/framework/templates/code/dotnet/database/migration.cs` | EF Core migration |
77
- | Hangfire Job | `.morph/framework/templates/code/dotnet/jobs/job.cs` | Background job |
78
- | MAF Agent | `.morph/framework/templates/code/dotnet/jobs/agent.cs` | MS Agent Framework |
79
- | Unit Test | `.morph/framework/templates/code/dotnet/test.cs` | xUnit AAA test |
80
- | Contracts VSA | `.morph/framework/templates/code/dotnet/contracts/contracts-vsa.cs` | Full slice contracts |
81
-
82
- ## Usage
83
-
84
- 1. **Read the template** to see the exact pattern
85
- 2. **Generate code following the same structure** (naming, namespaces, imports)
86
- 3. Or render via CLI: `morph-spec template render <id> <output> '<variables>'`
1
+ ---
2
+ paths:
3
+ - "**/*.cs"
4
+ - "**/*.csproj"
5
+ stacks:
6
+ - dotnet
7
+ ---
8
+
9
+ # .NET Code Templates
10
+
11
+ When implementing .NET features, use these templates as reference patterns.
12
+ Read the template file to see the exact pattern, then generate code following it.
13
+
14
+ ## Scaffold (preferred for new slices)
15
+
16
+ **Always use scaffold for new VSA slices — never create feature files manually.**
17
+
18
+ ```bash
19
+ morph-spec scaffold dotnet <feature> <slice-name> [--namespace <ns>] [--dry-run]
20
+ ```
21
+
22
+ Examples:
23
+ ```bash
24
+ morph-spec scaffold dotnet book create-book
25
+ morph-spec scaffold dotnet book get-book-by-id
26
+ morph-spec scaffold dotnet book update-book
27
+ morph-spec scaffold dotnet book delete-book
28
+ morph-spec scaffold dotnet book get-all-books
29
+ ```
30
+
31
+ Generates 7 files: endpoint, handler, request, response, validator + entity, errors (shared at feature level). Entity/errors auto-skipped if they already exist.
32
+
33
+ **Only use `template render` for individual files when adding to an existing slice.**
34
+
35
+ ## VSA Feature Templates (Vertical Slice Architecture)
36
+
37
+ For each new feature slice, follow the patterns in these templates:
38
+
39
+ | Template | Path | Purpose |
40
+ |----------|------|---------|
41
+ | Endpoint | `.morph/framework/templates/code/dotnet/feature/endpoint.cs.hbs` | IApiEndpoint with MapEndpoint() |
42
+ | Handler | `.morph/framework/templates/code/dotnet/feature/handler.cs.hbs` | IHandler<TRequest, TResponse> |
43
+ | Request | `.morph/framework/templates/code/dotnet/feature/request.cs.hbs` | Sealed record DTO |
44
+ | Response | `.morph/framework/templates/code/dotnet/feature/response.cs.hbs` | Sealed record DTO |
45
+ | Validator | `.morph/framework/templates/code/dotnet/feature/validator.cs.hbs` | FluentValidation AbstractValidator |
46
+ | Entity | `.morph/framework/templates/code/dotnet/feature/entity.cs.hbs` | Domain entity |
47
+ | Errors | `.morph/framework/templates/code/dotnet/feature/errors.cs.hbs` | Error factory |
48
+
49
+ ## Base Abstractions (read once per project setup)
50
+
51
+ | Template | Path | Purpose |
52
+ |----------|------|---------|
53
+ | IHandler | `.morph/framework/templates/code/dotnet/abstractions/handler.cs` | Handler interface |
54
+ | Result<T> | `.morph/framework/templates/code/dotnet/abstractions/result.cs` | Railway-oriented result |
55
+ | Error | `.morph/framework/templates/code/dotnet/abstractions/error.cs` | Error types |
56
+ | IApiEndpoint | `.morph/framework/templates/code/dotnet/abstractions/api-endpoint.cs` | Endpoint interface |
57
+
58
+ ## Extensions & Pipeline (read once per project setup)
59
+
60
+ | Template | Path | Purpose |
61
+ |----------|------|---------|
62
+ | Handler Registration | `.morph/framework/templates/code/dotnet/extensions/handler-registration.cs` | Scrutor auto-discovery |
63
+ | Map Endpoints | `.morph/framework/templates/code/dotnet/extensions/map-endpoints.cs` | IApiEndpoint discovery |
64
+ | Result Extensions | `.morph/framework/templates/code/dotnet/extensions/result-extensions.cs` | Match() pattern |
65
+ | Database Config | `.morph/framework/templates/code/dotnet/extensions/database-extensions.cs` | EF Core + Npgsql |
66
+ | Health Checks | `.morph/framework/templates/code/dotnet/extensions/health-checks.cs` | Health endpoints |
67
+ | Validation Decorator | `.morph/framework/templates/code/dotnet/pipelines/validation-decorator.cs` | FluentValidation pipeline |
68
+ | Logging Decorator | `.morph/framework/templates/code/dotnet/pipelines/logging-decorator.cs` | Duration tracking |
69
+ | Exception Handler | `.morph/framework/templates/code/dotnet/exceptions/exception-handler.cs` | ProblemDetails |
70
+ | API Tags | `.morph/framework/templates/code/dotnet/constants/api-tags.cs` | Scalar/Swagger groups |
71
+
72
+ ## Specialized Templates
73
+
74
+ | Template | Path | Purpose |
75
+ |----------|------|---------|
76
+ | Migration | `.morph/framework/templates/code/dotnet/database/migration.cs` | EF Core migration |
77
+ | Hangfire Job | `.morph/framework/templates/code/dotnet/jobs/job.cs` | Background job |
78
+ | MAF Agent | `.morph/framework/templates/code/dotnet/jobs/agent.cs` | MS Agent Framework |
79
+ | Unit Test | `.morph/framework/templates/code/dotnet/test.cs` | xUnit AAA test |
80
+ | Contracts VSA | `.morph/framework/templates/code/dotnet/contracts/contracts-vsa.cs` | Full slice contracts |
81
+
82
+ ## Usage
83
+
84
+ 1. **Read the template** to see the exact pattern
85
+ 2. **Generate code following the same structure** (naming, namespaces, imports)
86
+ 3. Or render via CLI: `morph-spec template render <id> <output> '<variables>'`
@@ -1,13 +1,13 @@
1
- ---
2
- paths:
3
- - "**/*.tsx"
4
- - "**/*.css"
5
- - "**/*.scss"
6
- stacks:
7
- - nextjs
8
- ---
9
-
10
- # Frontend Standards
11
-
12
- @.morph/framework/standards/frontend/design-system/naming.md
13
- @.morph/framework/standards/frontend/design-system/animations.md
1
+ ---
2
+ paths:
3
+ - "**/*.tsx"
4
+ - "**/*.css"
5
+ - "**/*.scss"
6
+ stacks:
7
+ - nextjs
8
+ ---
9
+
10
+ # Frontend Standards
11
+
12
+ @.morph/framework/standards/frontend/design-system/naming.md
13
+ @.morph/framework/standards/frontend/design-system/animations.md
@@ -1,27 +1,27 @@
1
- ---
2
- paths:
3
- - "**/Dockerfile*"
4
- - "**/docker-compose*"
5
- - "**/.github/**"
6
- - "**/coolify*"
7
- stacks:
8
- - docker
9
- ---
10
-
11
- # Infrastructure Standards
12
-
13
- @.morph/framework/standards/infrastructure/docker/coolify-deploy.md
14
-
15
- ## Infrastructure Templates
16
-
17
- | Template | Path | Purpose |
18
- |----------|------|---------|
19
- | .NET API Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile` | Multi-stage .NET |
20
- | Next.js Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile` | Multi-stage Next.js |
21
- | Docker Compose | `.morph/framework/templates/infrastructure/docker/docker-compose.template.yml` | Local dev env |
22
- | Coolify Config | `.morph/framework/templates/infrastructure/docker/coolify.template.json` | Deployment config |
23
- | .NET Build CI | `.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs` | CI workflow |
24
- | Docker Push CI | `.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs` | Build & push |
25
- | Deploy Coolify | `.morph/framework/templates/infrastructure/github/workflows/deploy-coolify.yml.hbs` | CD via SSH |
26
-
27
- Read the template and adapt to your project structure.
1
+ ---
2
+ paths:
3
+ - "**/Dockerfile*"
4
+ - "**/docker-compose*"
5
+ - "**/.github/**"
6
+ - "**/coolify*"
7
+ stacks:
8
+ - docker
9
+ ---
10
+
11
+ # Infrastructure Standards
12
+
13
+ @.morph/framework/standards/infrastructure/docker/coolify-deploy.md
14
+
15
+ ## Infrastructure Templates
16
+
17
+ | Template | Path | Purpose |
18
+ |----------|------|---------|
19
+ | .NET API Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile` | Multi-stage .NET |
20
+ | Next.js Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile` | Multi-stage Next.js |
21
+ | Docker Compose | `.morph/framework/templates/infrastructure/docker/docker-compose.template.yml` | Local dev env |
22
+ | Coolify Config | `.morph/framework/templates/infrastructure/docker/coolify.template.json` | Deployment config |
23
+ | .NET Build CI | `.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs` | CI workflow |
24
+ | Docker Push CI | `.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs` | Build & push |
25
+ | Deploy Coolify | `.morph/framework/templates/infrastructure/github/workflows/deploy-coolify.yml.hbs` | CD via SSH |
26
+
27
+ Read the template and adapt to your project structure.
@@ -1,25 +1,25 @@
1
- ---
2
- paths:
3
- - "**/neon/**"
4
- - "**/database/**"
5
- - "**/*Migration*.sql"
6
- - "**/*migration*.sql"
7
- stacks:
8
- - neon
9
- ---
10
-
11
- # Neon PostgreSQL Standards
12
-
13
- @.morph/framework/standards/infrastructure/neon/neon-setup.md
14
- @.morph/framework/standards/infrastructure/neon/neon-pgvector.md
15
- @.morph/framework/standards/infrastructure/neon/neon-pgrag.md
16
- @.morph/framework/standards/backend/integrations/neon-auth/neon-auth.md
17
-
18
- ## SQL Templates
19
-
20
- | Template | Path | Purpose |
21
- |----------|------|---------|
22
- | PostgreSQL Migration | `.morph/framework/templates/code/sql/postgresql-migration.sql` | Database migration |
23
- | PostgreSQL RLS Policy | `.morph/framework/templates/code/sql/postgresql-rls-policy.sql` | Row-level security |
24
-
25
- Read the template and adapt to your project structure.
1
+ ---
2
+ paths:
3
+ - "**/neon/**"
4
+ - "**/database/**"
5
+ - "**/*Migration*.sql"
6
+ - "**/*migration*.sql"
7
+ stacks:
8
+ - neon
9
+ ---
10
+
11
+ # Neon PostgreSQL Standards
12
+
13
+ @.morph/framework/standards/infrastructure/neon/neon-setup.md
14
+ @.morph/framework/standards/infrastructure/neon/neon-pgvector.md
15
+ @.morph/framework/standards/infrastructure/neon/neon-pgrag.md
16
+ @.morph/framework/standards/backend/integrations/neon-auth/neon-auth.md
17
+
18
+ ## SQL Templates
19
+
20
+ | Template | Path | Purpose |
21
+ |----------|------|---------|
22
+ | PostgreSQL Migration | `.morph/framework/templates/code/sql/postgresql-migration.sql` | Database migration |
23
+ | PostgreSQL RLS Policy | `.morph/framework/templates/code/sql/postgresql-rls-policy.sql` | Row-level security |
24
+
25
+ Read the template and adapt to your project structure.
@@ -1,20 +1,20 @@
1
- ---
2
- paths:
3
- - "**/*.tsx"
4
- - "**/*.ts"
5
- stacks:
6
- - nextjs
7
- ---
8
-
9
- # Next.js Standards
10
-
11
- @.morph/framework/standards/frontend/nextjs/naming-conventions.md
12
- @.morph/framework/standards/frontend/nextjs/project-structure.md
13
- @.morph/framework/standards/frontend/nextjs/app-router.md
14
- @.morph/framework/standards/frontend/nextjs/components.md
15
- @.morph/framework/standards/frontend/nextjs/data-fetching.md
16
- @.morph/framework/standards/frontend/nextjs/forms.md
17
- @.morph/framework/standards/frontend/nextjs/state-management.md
18
- @.morph/framework/standards/frontend/nextjs/testing.md
19
- @.morph/framework/standards/frontend/nextjs/nextjs-patterns.md
20
- @.morph/framework/standards/frontend/nextjs/motion-patterns.md
1
+ ---
2
+ paths:
3
+ - "**/*.tsx"
4
+ - "**/*.ts"
5
+ stacks:
6
+ - nextjs
7
+ ---
8
+
9
+ # Next.js Standards
10
+
11
+ @.morph/framework/standards/frontend/nextjs/naming-conventions.md
12
+ @.morph/framework/standards/frontend/nextjs/project-structure.md
13
+ @.morph/framework/standards/frontend/nextjs/app-router.md
14
+ @.morph/framework/standards/frontend/nextjs/components.md
15
+ @.morph/framework/standards/frontend/nextjs/data-fetching.md
16
+ @.morph/framework/standards/frontend/nextjs/forms.md
17
+ @.morph/framework/standards/frontend/nextjs/state-management.md
18
+ @.morph/framework/standards/frontend/nextjs/testing.md
19
+ @.morph/framework/standards/frontend/nextjs/nextjs-patterns.md
20
+ @.morph/framework/standards/frontend/nextjs/motion-patterns.md
@@ -1,40 +1,40 @@
1
- ---
2
- paths:
3
- - "**/*.tsx"
4
- - "**/*.ts"
5
- stacks:
6
- - nextjs
7
- ---
8
-
9
- # Next.js Code Templates
10
-
11
- When implementing Next.js features, use these templates as reference patterns.
12
- Read the template file to see the exact pattern, then generate code following it.
13
-
14
- ## Scaffold (preferred for new features)
15
-
16
- **Always use scaffold for new feature pages — never create feature files manually.**
17
-
18
- ```bash
19
- morph-spec scaffold nextjs <feature> [--dry-run]
20
- ```
21
-
22
- Examples:
23
- ```bash
24
- morph-spec scaffold nextjs book
25
- morph-spec scaffold nextjs user-profile
26
- ```
27
-
28
- Generates 4 files: page (Server Component), list component, form component, TanStack Query hook.
29
-
30
- **Only use `template render` for individual files when modifying an existing feature.**
31
-
32
- | Template | Path | Purpose |
33
- |----------|------|---------|
34
- | Server Page | `.morph/framework/templates/frontend/nextjs/page.tsx.hbs` | App Router server component |
35
- | Client Component | `.morph/framework/templates/frontend/nextjs/client-component.tsx.hbs` | `'use client'` component |
36
- | Feature Form | `.morph/framework/templates/frontend/nextjs/feature-form.tsx.hbs` | react-hook-form + Zod + shadcn |
37
- | Custom Hook | `.morph/framework/templates/frontend/nextjs/use-feature.ts.hbs` | TanStack Query hook |
38
- | Env Config | `.morph/framework/templates/frontend/nextjs/env.mjs.hbs` | T3 Env validation |
39
- | TypeScript Config | `.morph/framework/templates/frontend/nextjs/tsconfig.json.hbs` | Path aliases |
40
- | Dockerfile | `.morph/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs` | Multi-stage build |
1
+ ---
2
+ paths:
3
+ - "**/*.tsx"
4
+ - "**/*.ts"
5
+ stacks:
6
+ - nextjs
7
+ ---
8
+
9
+ # Next.js Code Templates
10
+
11
+ When implementing Next.js features, use these templates as reference patterns.
12
+ Read the template file to see the exact pattern, then generate code following it.
13
+
14
+ ## Scaffold (preferred for new features)
15
+
16
+ **Always use scaffold for new feature pages — never create feature files manually.**
17
+
18
+ ```bash
19
+ morph-spec scaffold nextjs <feature> [--dry-run]
20
+ ```
21
+
22
+ Examples:
23
+ ```bash
24
+ morph-spec scaffold nextjs book
25
+ morph-spec scaffold nextjs user-profile
26
+ ```
27
+
28
+ Generates 4 files: page (Server Component), list component, form component, TanStack Query hook.
29
+
30
+ **Only use `template render` for individual files when modifying an existing feature.**
31
+
32
+ | Template | Path | Purpose |
33
+ |----------|------|---------|
34
+ | Server Page | `.morph/framework/templates/frontend/nextjs/page.tsx.hbs` | App Router server component |
35
+ | Client Component | `.morph/framework/templates/frontend/nextjs/client-component.tsx.hbs` | `'use client'` component |
36
+ | Feature Form | `.morph/framework/templates/frontend/nextjs/feature-form.tsx.hbs` | react-hook-form + Zod + shadcn |
37
+ | Custom Hook | `.morph/framework/templates/frontend/nextjs/use-feature.ts.hbs` | TanStack Query hook |
38
+ | Env Config | `.morph/framework/templates/frontend/nextjs/env.mjs.hbs` | T3 Env validation |
39
+ | TypeScript Config | `.morph/framework/templates/frontend/nextjs/tsconfig.json.hbs` | Path aliases |
40
+ | Dockerfile | `.morph/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs` | Multi-stage build |
@@ -4,7 +4,7 @@ description: Guia a criação de uma landing page nova ponta-a-ponta a partir do
4
4
  version: core
5
5
  when-to-invoke: ao iniciar um novo projeto de LP com o template Umbraco genérico
6
6
  user-invokable: true
7
- cliVersion: "7.9.0"
7
+ cliVersion: "7.9.2"
8
8
  ---
9
9
 
10
10
  # create-umbraco-lp
@@ -4,7 +4,7 @@ description: Migra uma landing page existente (React/Vite, Next.js estático ou
4
4
  version: core
5
5
  when-to-invoke: ao receber instrução "use /migrate-lp-to-umbraco {projeto}" do usuário, ou quando o usuário descrever necessidade de migrar uma LP para Umbraco
6
6
  user-invokable: true
7
- cliVersion: "7.9.0"
7
+ cliVersion: "7.9.2"
8
8
  ---
9
9
 
10
10
  # migrate-lp-to-umbraco